
.sz-fest{
  --accent:#aa2e25;
  --gold:#b98547;
  --line:#eadfce;
  --text:#2a231c;
  --muted:#76695c;
  max-width:1080px;
  margin:22px auto;
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  line-height:1.72;
}
.sz-fest *{box-sizing:border-box}
.sz-fest button,.sz-fest input{font:inherit}

.sz-fest__hero{
  display:flex;
  align-items:center;
  gap:16px;
  padding:24px 26px;
  border:1px solid #ead8b9;
  border-radius:16px;
  background:linear-gradient(135deg,#fff8e9,#fff);
}
.sz-fest__hero-icon{
  width:62px;height:62px;flex:0 0 62px;
  display:grid;place-items:center;
  border-radius:14px;
  background:var(--accent);
  color:#fff3db;
  font-family:"STKaiti","KaiTi",serif;
  font-size:29px;
  font-weight:700;
}
.sz-fest__eyebrow{
  display:block;
  color:#9b7443;
  font-size:11px;
  line-height:1.4;
}
.sz-fest__hero h2{
  margin:1px 0 3px;
  font-size:28px;
  line-height:1.35;
}
.sz-fest__hero p{
  margin:0;
  color:var(--muted);
  font-size:14px;
}
.sz-fest__notice{
  margin-top:14px;
  padding:13px 16px;
  border:1px solid #eeddbd;
  border-radius:12px;
  background:#fff9ed;
  color:#705938;
  font-size:13px;
}

.sz-fest__controls{
  margin-top:17px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
}
.sz-fest__year-row{
  display:flex;
  align-items:end;
  gap:8px;
}
.sz-fest__year-row label{
  flex:1 1 auto;
}
.sz-fest__year-row label>span{
  display:block;
  margin-bottom:5px;
  color:#786858;
  font-size:11px;
}
.sz-fest__year-field{
  position:relative;
}
.sz-fest__year-field input{
  width:100%;
  height:44px;
  padding:0 44px 0 12px;
  border:1px solid #d9caba;
  border-radius:9px;
  outline:none;
  background:#fff;
}
.sz-fest__year-field input:focus,
.sz-fest__search input:focus{
  border-color:#bb894c;
  box-shadow:0 0 0 3px rgba(187,137,76,.10);
}
.sz-fest__year-field b{
  position:absolute;
  right:13px;top:50%;
  transform:translateY(-50%);
  color:#987750;
  font-size:12px;
  font-weight:400;
}
.sz-fest__arrow,
.sz-fest__this-year{
  height:44px;
  border:1px solid #dfceb8;
  border-radius:9px;
  background:#fffaf3;
  color:#765736;
  cursor:pointer;
}
.sz-fest__arrow{
  width:44px;
  flex:0 0 44px;
  font-size:24px;
}
.sz-fest__this-year{
  padding:0 14px;
}
.sz-fest__tabs{
  display:flex;
  gap:7px;
  margin-top:11px;
  flex-wrap:wrap;
}
.sz-fest__tabs button{
  min-height:33px;
  padding:4px 11px;
  border:1px solid #e2d2bf;
  border-radius:999px;
  background:#fffaf4;
  color:#6f5942;
  cursor:pointer;
}
.sz-fest__tabs button.is-active{
  border-color:var(--accent);
  background:var(--accent);
  color:#fff;
}
.sz-fest__search{
  position:relative;
  margin-top:10px;
}
.sz-fest__search>span{
  position:absolute;
  left:12px;top:50%;
  transform:translateY(-50%);
  color:#a48765;
  font-size:20px;
  pointer-events:none;
}
.sz-fest__search input{
  width:100%;
  height:42px;
  padding:0 12px 0 39px;
  border:1px solid #d9caba;
  border-radius:9px;
  outline:none;
  background:#fff;
}
.sz-fest__status{
  min-height:1.4em;
  margin:6px 0 0;
  color:#897053;
  font-size:10.5px;
}

.sz-fest__next{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:16px;
  padding:18px 21px;
  border:1px solid #e6d2b3;
  border-radius:15px;
  background:linear-gradient(135deg,#fff8e9,#fff);
}
.sz-fest__next h3{
  margin:1px 0 1px;
  font-size:23px;
}
.sz-fest__next p{
  margin:0;
  color:#75685a;
  font-size:12px;
}
.sz-fest__countdown{
  flex:0 0 auto;
  min-width:135px;
  padding:9px 12px;
  border:1px solid #e6c796;
  border-radius:11px;
  background:#fff2dc;
  text-align:center;
}
.sz-fest__countdown strong{
  display:block;
  color:var(--accent);
  font-size:20px;
}
.sz-fest__countdown span{
  color:#8b6f4b;
  font-size:9px;
}

.sz-fest__summary{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin-top:12px;
}
.sz-fest__summary>div{
  padding:10px 12px;
  border:1px solid #eadfce;
  border-radius:10px;
  background:#fff;
}
.sz-fest__summary span{
  display:block;
  color:#8d7a66;
  font-size:9.5px;
}
.sz-fest__summary strong{
  font-size:13px;
}
.sz-fest__summary b{
  color:#a52f25;
}

.sz-fest__list-card{
  margin-top:13px;
  padding:20px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
}
.sz-fest__section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin-bottom:12px;
}
.sz-fest__section-head h3{
  margin:1px 0 0;
  font-size:20px;
}
.sz-fest__legend{
  display:flex;
  gap:8px;
  color:#796a5a;
  font-size:10px;
}
.sz-fest__legend span{
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.sz-fest__legend i{
  width:22px;height:22px;
  display:grid;place-items:center;
  border-radius:7px;
  font-style:normal;
}
.sz-fest__legend i.traditional{
  background:#fff0df;
  border:1px solid #e8c99e;
  color:#a42f25;
}
.sz-fest__legend i.solar{
  background:#f2f5f8;
  border:1px solid #d9e0e6;
  color:#526579;
}

.sz-fest__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.sz-fest__card{
  position:relative;
  min-width:0;
  min-height:132px;
  padding:12px;
  border:1px solid #eadfce;
  border-radius:11px;
  background:#fffaf4;
  color:var(--text);
  text-align:left;
  cursor:pointer;
  transition:.16s ease;
}
.sz-fest__card:hover{
  transform:translateY(-1px);
  border-color:#cfaa76;
  background:#fff7ed;
  box-shadow:0 5px 14px rgba(82,55,25,.06);
}
.sz-fest__card-type{
  position:absolute;
  right:10px;top:10px;
  width:27px;height:27px;
  display:grid;place-items:center;
  border-radius:8px;
  font-size:12px;
}
.sz-fest__card-type.traditional{
  background:#fff0df;
  border:1px solid #e8c99e;
  color:#a42f25;
}
.sz-fest__card-type.solar{
  background:#f2f5f8;
  border:1px solid #d9e0e6;
  color:#526579;
}
.sz-fest__card>strong{
  display:block;
  color:#9b6536;
  font-size:12px;
}
.sz-fest__card h4{
  margin:8px 34px 3px 0;
  font-size:17px;
}
.sz-fest__card p{
  margin:0;
  color:#766758;
  font-size:10.5px;
}
.sz-fest__card small{
  display:block;
  margin-top:5px;
  color:#9a8875;
  font-size:9px;
}
.sz-fest__empty{
  padding:26px;
  border:1px dashed #d9cab6;
  border-radius:10px;
  color:#7a6c5e;
  text-align:center;
}

.sz-fest__detail{
  position:relative;
  margin-top:15px;
  padding:20px;
  border:1px solid #e6d2b4;
  border-radius:15px;
  background:#fff;
}
.sz-fest__detail-close{
  position:absolute;
  right:10px;top:8px;
  width:34px;height:34px;
  border:0;
  background:transparent;
  color:#9d8263;
  font-size:24px;
  cursor:pointer;
}
.sz-fest__detail-head{
  display:flex;
  align-items:center;
  gap:12px;
  padding-right:35px;
}
.sz-fest__detail-icon{
  width:48px;height:48px;
  flex:0 0 48px;
  display:grid;place-items:center;
  border:1px solid #e5c79c;
  border-radius:11px;
  background:#fff1dd;
  color:#a42e25;
  font-size:21px;
}
.sz-fest__detail-head h3{
  margin:1px 0;
  font-size:22px;
}
.sz-fest__detail-head p{
  margin:0;
  color:#76695b;
  font-size:11px;
}
.sz-fest__detail-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-top:13px;
}
.sz-fest__detail-grid>div{
  padding:10px 11px;
  border:1px solid #eee2d2;
  border-radius:9px;
  background:#fcfaf6;
}
.sz-fest__detail-grid span{
  display:block;
  color:#8d7a66;
  font-size:9.5px;
}
.sz-fest__detail-grid strong{
  font-size:13px;
}
.sz-fest__detail-desc{
  margin-top:10px;
  padding:12px 14px;
  border-left:4px solid #c78d47;
  border-radius:5px 9px 9px 5px;
  background:#fff9ed;
}
.sz-fest__detail-desc h4{
  margin:0 0 3px;
  font-size:14px;
}
.sz-fest__detail-desc p{
  margin:0;
  color:#635548;
  font-size:12px;
}

.sz-fest__traditional-info,
.sz-fest__method{
  margin-top:16px;
  padding:20px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
}
.sz-fest__traditional-info h3,
.sz-fest__method h3{
  margin:0 0 8px;
  font-size:19px;
}
.sz-fest__info-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}
.sz-fest__info-grid>div{
  padding:11px 12px;
  border:1px solid #eee2d2;
  border-radius:9px;
  background:#fcfaf6;
}
.sz-fest__info-grid strong{
  font-size:13px;
}
.sz-fest__info-grid p{
  margin:3px 0 0;
  color:#746658;
  font-size:10.5px;
}
.sz-fest__method p{
  margin:5px 0;
  color:#685b4e;
  font-size:12px;
}
.sz-fest__method-note{
  color:#8b7965!important;
  font-size:10.5px!important;
}

@media(max-width:900px){
  .sz-fest__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:700px){
  .sz-fest__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sz-fest__info-grid{grid-template-columns:1fr 1fr}
  .sz-fest__summary{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .sz-fest{margin:12px auto}
  .sz-fest__hero{
    padding:18px 15px;
    align-items:flex-start;
  }
  .sz-fest__hero-icon{
    width:51px;height:51px;flex-basis:51px;
    font-size:24px;
  }
  .sz-fest__hero h2{font-size:22px}
  .sz-fest__hero p{font-size:11px}
  .sz-fest__controls,
  .sz-fest__list-card,
  .sz-fest__detail,
  .sz-fest__traditional-info,
  .sz-fest__method{padding:14px 12px}
  .sz-fest__next{
    align-items:flex-start;
    flex-direction:column;
    padding:15px 13px;
  }
  .sz-fest__countdown{width:100%}
  .sz-fest__section-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .sz-fest__grid{gap:7px}
  .sz-fest__card{
    min-height:120px;
    padding:10px;
  }
  .sz-fest__card h4{font-size:14px}
  .sz-fest__card p{font-size:9.5px}
  .sz-fest__detail-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:380px){
  .sz-fest__grid{grid-template-columns:1fr}
  .sz-fest__detail-grid{grid-template-columns:1fr}
  .sz-fest__info-grid{grid-template-columns:1fr}
}
