/* Расписание: сначала фильтр, затем результаты по запросу. */

.tt-wrap{display:flex; flex-direction:column; gap:34px}
.tt-results[hidden],.tt-loader[hidden]{display:none}
.tt-filter{background:var(--paper); border:1px solid var(--line); border-radius:24px; padding:34px; box-shadow:var(--shadow-sm)}
.tt-filter-head{display:flex; align-items:flex-end; justify-content:space-between; gap:40px; padding-bottom:26px; border-bottom:1px solid var(--line)}
.tt-filter-head h2,.tt-results-head h2{font-size:clamp(1.45rem,2.7vw,2rem); margin-top:9px}
.tt-filter-head p{max-width:470px; margin:0; font-size:.9rem}
.tt-filter-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; padding:30px 0 26px}
.tt-filter-item{min-width:0; margin:0; padding:0; border:0}
.tt-filter-item legend{width:100%; padding:0; margin:0 0 12px; font-family:"Montserrat"; color:var(--ink); font-size:.82rem; font-weight:700}
.tt-filter-buttons{display:flex; flex-wrap:wrap; gap:8px}
.tt-filter-buttons button{appearance:none; border:1.5px solid var(--line); border-radius:100px; background:var(--white); color:var(--ink-2);
  padding:.58em 1em; font:600 .82rem/1.35 "Manrope",sans-serif; cursor:pointer;
  transition:transform .2s var(--ease),border-color .2s,color .2s,background .2s,box-shadow .2s}
.tt-filter-buttons button:hover{transform:translateY(-1px); border-color:var(--gold-2); color:var(--gold-1)}
.tt-filter-buttons button:focus-visible{outline:3px solid rgba(198,160,74,.3); outline-offset:2px}
.tt-filter-buttons button.is-active{background:var(--gold-grad); border-color:transparent; color:#3c2c08; box-shadow:0 10px 22px -16px rgba(172,132,51,.8)}
.tt-filter-actions{display:flex; align-items:center; gap:16px; padding-top:24px; border-top:1px solid var(--line)}
.tt-filter-actions .btn:disabled{opacity:.45; cursor:not-allowed; transform:none; box-shadow:none}
.tt-reset{appearance:none; border:0; background:transparent; padding:.7em .2em; color:var(--ink-2); font:600 .84rem "Montserrat"; cursor:pointer}
.tt-reset:hover{color:var(--gold-1)}
.tt-selection{margin-left:auto; color:var(--muted); font-size:.82rem}

.tt-results{scroll-margin-top:96px; background:var(--white); border:1px solid var(--line); border-radius:24px; padding:34px}
.tt-results-head{margin-bottom:24px}
.tt-loader{display:flex; align-items:center; justify-content:center; gap:14px; min-height:110px}
.tt-loader span{width:34px; height:34px; border:3px solid var(--gold-soft); border-top-color:var(--gold-2); border-radius:50%; animation:tt-spin .75s linear infinite}
.tt-loader p{margin:0; color:var(--ink-2); font-weight:600}
@keyframes tt-spin{to{transform:rotate(360deg)}}
.tt-content{display:flex; flex-direction:column; gap:12px}
.tt-event{display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,.48fr) auto; gap:24px; align-items:center;
  padding:20px 22px; border:1px solid var(--line); border-radius:16px; background:var(--paper);
  opacity:0; transform:translateY(10px); transition:opacity .45s var(--ease) var(--delay),transform .45s var(--ease) var(--delay),box-shadow .3s,border-color .3s}
.tt-event.is-visible{opacity:1; transform:none}
.tt-event:hover{border-color:rgba(198,160,74,.35); box-shadow:var(--shadow-sm)}
.tt-event h3{display:flex; flex-direction:column; gap:3px; font-size:1rem; line-height:1.4}
.tt-event-title-line{display:block}
.tt-event .highlight{color:var(--gold-1)}
.tt-event-address{margin:0; font-size:.88rem; color:var(--ink-2); white-space:pre-line}
.tt-event-price{font-family:"Montserrat"; color:var(--gold-1); white-space:nowrap}
.tt-empty{margin:0; padding:28px; text-align:center; border:1px dashed var(--gold-2); border-radius:16px; background:var(--gold-soft);
  color:var(--ink); font-family:"Montserrat"; font-weight:600}

@media(max-width:900px){
  .tt-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tt-event{grid-template-columns:minmax(0,1fr) auto}
  .tt-event-address{grid-column:1/-1; grid-row:2}
}
@media(max-width:640px){
  .tt-filter,.tt-results{padding:24px 20px; border-radius:18px}
  .tt-filter-head{display:block}
  .tt-filter-head p{margin-top:12px}
  .tt-filter-grid{grid-template-columns:1fr; gap:22px; padding:24px 0}
  .tt-filter-actions{align-items:stretch; flex-direction:column}
  .tt-filter-actions .btn{width:100%}
  .tt-reset{order:2}
  .tt-selection{order:1; margin:0; text-align:center}
  .tt-event{grid-template-columns:1fr; gap:7px; padding:18px}
  .tt-event-address{grid-column:auto; grid-row:auto}
  .tt-event-price{margin-top:4px}
}
@media(prefers-reduced-motion:reduce){
  .tt-loader span{animation:none}
  .tt-event{opacity:1; transform:none; transition:none}
}
