/* ============================================================
   AMC Gig Calendar: page styles. Sits on top of styles.css.
   ============================================================ */

/* ---------- Filter bar ---------- */
.gig-tools{
  position:sticky;top:var(--hdr,0px);z-index:40;
  background:var(--white);border-bottom:1px solid var(--n100);
  box-shadow:0 2px 10px rgba(4,30,66,.06);
}
.gig-tools .wrap{padding-top:12px;padding-bottom:10px}
.gig-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px}
.gig-row:last-child{margin-bottom:0}
.gig-status{min-height:22px}
.gig-status .count{margin-left:0}
.gig-seg{display:inline-flex;border:1.5px solid var(--blue);border-radius:var(--radius-sm);overflow:hidden}
.gig-seg button{
  background:var(--white);color:var(--blue);border:none;cursor:pointer;
  font-family:var(--sans);font-weight:500;font-size:14px;padding:10px 16px;line-height:1;
}
.gig-seg button+button{border-left:1.5px solid var(--blue)}
.gig-seg button[aria-pressed="true"]{background:var(--blue);color:var(--white)}
.gig-seg button:hover:not([aria-pressed="true"]){background:var(--slate-50)}
.gig-seg button:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.gig-tools select,.gig-tools input[type="search"]{
  font-family:var(--sans);font-size:15px;font-weight:300;color:var(--near-black);
  border:1.5px solid var(--n300);border-radius:var(--radius-sm);padding:10px 12px;background:var(--white);
  min-height:40px;
}
.gig-tools select:focus,.gig-tools input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(4,30,66,.12)}
.gig-tools input[type="search"]{flex:1 1 260px;min-width:200px}
.gig-tools select{max-width:240px}
.gig-toggle{background:var(--white);color:var(--blue);border:1.5px solid var(--blue);border-radius:var(--radius-pill);font-family:var(--sans);font-weight:500;font-size:14px;padding:9px 16px;cursor:pointer;line-height:1}
.gig-toggle[aria-pressed="true"]{background:var(--blue);color:var(--white)}
.gig-toggle:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.gig-sort{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--n600);margin-left:auto}
.gig-sort select{min-height:36px;padding:6px 10px}
.gig-view button{padding:9px 14px}
.gig-chips{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}
.chip{background:var(--slate-50);border:1px solid var(--n300);color:var(--near-black);border-radius:var(--radius-pill);font-family:var(--sans);font-size:12.5px;padding:5px 10px;cursor:pointer;line-height:1.2}
.chip span{color:var(--n600);margin-left:4px}
.chip-clear{background:transparent;border-color:transparent;color:var(--blue);text-decoration:underline}
.chip:hover{border-color:var(--blue)}
.gig-tools .count{font-size:13.5px;color:var(--n600);margin-left:auto;white-space:nowrap}
.gig-tools .count b{color:var(--blue);font-weight:500}
@media(max-width:700px){
  .gig-tools{position:static}
  .gig-tools .count{margin-left:0;width:100%}
  .gig-sort{margin-left:0}
  .gig-chips{margin-left:0}
  #gigWhen{width:100%}
  #gigWhen button{flex:1;padding:10px 6px;font-size:13px}
  .gig-tools select{max-width:none;flex:1 1 45%}
}

/* ---------- List + map layout ---------- */
.gig-layout{display:grid;grid-template-columns:1fr;gap:28px;align-items:start}
.gig-layout .gig-map-wrap{display:none}
.gig-layout.with-map{grid-template-columns:minmax(0,1fr) minmax(300px,42%)}
.gig-layout.with-map .gig-map-wrap{display:block;position:sticky;top:calc(var(--hdr,0px) + 16px)}
#gigMap{height:min(72vh,720px);border-radius:var(--box-radius);border:none;box-shadow:var(--box-shadow);background:var(--slate-50)}
.gig-pin span{display:block;width:18px;height:18px;border-radius:50%;background:var(--blue);border:3px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.leaflet-popup-content{font-family:var(--sans);font-size:13px;line-height:1.4}
.leaflet-popup-content ul{margin:6px 0;padding-left:16px}
.leaflet-popup-content .popup-town{color:var(--n600)}
.leaflet-popup-content .popup-filter{color:var(--blue)}
@media(max-width:900px){
  .gig-layout.with-map{grid-template-columns:1fr}
  .gig-layout.with-map .gig-map-wrap{position:static;order:-1}
  #gigMap{height:52vh}
}
.gig .date-line{font-family:var(--sans);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--n600);margin-bottom:4px}
.gig .tag.soft{color:var(--n600);border-style:dashed}
.gig .venue-link{color:inherit;text-decoration:none;border-bottom:1px dotted var(--n300)}
.gig .venue-link:hover{border-bottom-color:var(--blue)}
.hero-gigs .btn-row .btn-secondary{color:#fff;border-color:#fff}

/* ---------- Listing ---------- */
.gig-list{padding:48px 0 80px;min-height:40vh;background:var(--white)}
.gig-day{margin-bottom:40px;padding:0}
.gig-day-head{
  display:flex;align-items:baseline;gap:14px;
  border-bottom:2px solid var(--blue);padding-bottom:8px;margin-bottom:18px;
}
.gig-day-head h2{font-size:30px;margin:0}
.gig-day-head .rel{font-family:var(--sans);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--n600);font-weight:400}
.gig{
  display:grid;grid-template-columns:96px 1fr auto;gap:0 22px;align-items:start;
  background:var(--white);border:none;border-radius:var(--box-radius);
  box-shadow:var(--box-shadow);padding:24px 28px;margin-bottom:20px;
  transition:transform .3s ease,box-shadow .3s ease;
}
.gig:hover{transform:translateY(-4px);box-shadow:var(--box-shadow-hover)}
.gig .when{font-family:var(--display);font-size:24px;line-height:1;color:var(--blue);letter-spacing:.02em;padding-top:3px}
.gig .when small{display:block;font-family:var(--sans);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--n600);margin-top:6px;font-weight:400}
.gig h3{font-family:var(--sans);font-weight:700;font-size:19px;line-height:1.3;color:var(--near-black);margin-bottom:4px}
.gig .artists{font-size:15.5px;color:var(--near-black);margin-bottom:6px}
.gig .where{font-size:14.5px;color:var(--n600);margin-bottom:10px}
.gig .where b{font-weight:500;color:var(--near-black)}
.gig .desc{font-size:14.5px;color:var(--n600);margin-bottom:10px;max-width:60ch}
.gig .tags{display:flex;gap:8px;flex-wrap:wrap}
.gig .src{font-size:12px;color:var(--n600);margin-top:10px}
.gig .src a{color:var(--n600);text-decoration:underline}
.gig-tools .count .upd{color:var(--n600);font-weight:300}
.gig .tag{
  font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);
  border:1px solid var(--n300);border-radius:var(--radius-pill);padding:3px 10px;background:transparent;
}
.gig .tag.free{border-color:var(--success);color:var(--success)}
.gig .actions{display:flex;flex-direction:column;gap:8px;align-items:stretch;min-width:132px}
.gig .actions .btn{padding:10px 14px;font-size:13.5px;white-space:nowrap;justify-content:center}
.gig .actions .btn-text{text-align:center}
@media(max-width:760px){
  .gig{grid-template-columns:1fr;gap:10px;padding:18px}
  .gig .when{font-size:20px;display:flex;gap:10px;align-items:baseline}
  .gig .when small{margin-top:0}
  .gig .actions{flex-direction:row;flex-wrap:wrap;margin-top:4px}
  .gig .actions .btn{flex:1 1 auto}
}

.gig-empty{
  background:var(--white);border:none;border-radius:var(--box-radius);box-shadow:var(--box-shadow);
  padding:24px 28px;max-width:640px;
}
.gig-empty h3{font-size:19px;color:var(--near-black);margin-bottom:6px}
.gig-empty p{color:var(--n600);font-size:15px}

.gig-disclaimer{font-size:13px;color:var(--n600);max-width:860px;margin:0 0 22px;line-height:1.5}
.gig-disclaimer a{color:var(--blue)}
.gig-notice{
  background:#FFF8E1;border:none;border-radius:var(--box-radius);box-shadow:var(--box-shadow);
  padding:14px 18px;font-size:14px;color:var(--near-black);margin-bottom:28px;max-width:760px;
}
.gig-notice b{font-weight:500}
.gig-notice code{font-size:13px;background:rgba(0,0,0,.06);padding:1px 5px;border-radius:3px}
.gig-notice.err{background:#FDECEA;border-color:#F3B8B2}
.gig-notice.hidden{display:none}
.gig-loading{color:var(--n600);font-size:15px;padding:12px 0}

/* ---------- Submit page ---------- */
.gig-form-intro{max-width:680px;margin-bottom:36px}
.gig-form-intro p{font-size:16.5px;color:var(--n600)}
.gig-form .form-grid{max-width:760px}
.gig-form .field .hint{display:block;font-size:12.5px;color:var(--n600);margin-top:5px;font-weight:300}
.gig-form .req{color:var(--error)}
.gig-form .field input,.gig-form .field select,.gig-form .field textarea{width:100%}
.gig-form fieldset{border:none;margin:0 0 8px;padding:0}
.gig-form legend{font-family:var(--display);font-size:24px;color:var(--blue);letter-spacing:.03em;margin-bottom:14px;padding-top:12px}

/* Outline button on a white card */
.gig .btn-secondary{color:var(--blue);border-color:var(--blue)}
.gig .btn-secondary:hover{background:rgba(87,119,138,.12)}
