.sp-afisha{
  --bg:#f8f2e9;
  --rule: rgba(195,150,98,.60);
  --rule-soft: rgba(195,150,98,.35);
  --rule-w: 1px;

  --accent: var(--accent-primary,#c39662);
  --text:#2d2925;
  --muted:#8b7f74;
  --muted2:#5d534b;

  --pad-y:72px;
  --pad-b:96px;
  --container:1160px;
  --side:10%;

  background: var(--bg);
  padding: var(--pad-y) 0 var(--pad-b);
}

.sp-afisha .sp-container{
  max-width: 80%;
  margin: 0 auto;
  padding: 0 32px;
  box-sizing: border-box;
}

/* header */
.sp-afisha__header{
  margin: 0 0 56px;
  margin-left: var(--side);
}

.sp-afisha__title{
  margin: 0 0 28px;
  font-family: var(--font-display,"Playfair Display",serif);
  font-weight: 400;
  font-size: 56px;
  line-height: 1.05;
  color: var(--accent);
}

/* date boxes */
.sp-afisha__today{
  position: relative;
  display:inline-flex;
  border: var(--rule-w) solid var(--rule);
  background: transparent;
  cursor: pointer;
}

/* прячем input полностью, чтобы он не рисовал иконку и не ломал стиль */
.sp-afisha__datepick{
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}


.sp-afisha__today-cell{
  min-width: 76px;
  padding: 10px 20px;
  display:flex;
  align-items:center;
  justify-content:center;

  font-family: var(--font-ui,"Source Sans 3",sans-serif);
  font-size: 12px;
  line-height: 1;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #a0773f;
  background: var(--bg);
}

.sp-afisha__today-cell + .sp-afisha__today-cell{
  border-left: var(--rule-w) solid var(--rule);
}

/* section */
.sp-afisha__section{
  max-width: 80%;
  margin-left: var(--side);
}

.sp-afisha__section-title{
  margin: 0 0 18px;
  font-family: var(--font-display,"Playfair Display",serif);
  font-weight: 400;
  font-size: 28px;
  color: var(--accent);
}

/* one clean line under title */
.sp-afisha__list{
  border-top: var(--rule-w) solid var(--rule);
}

/* list */
.sp-afisha-item{
  margin: 0;
  padding: 26px 0;
  border-bottom: var(--rule-w) solid var(--rule);
}

.sp-afisha-item__inner{
  display:grid;
  grid-template-columns: 260px minmax(0,1fr);
  gap: 28px;
  align-items: start;
}

/* thumb */
.sp-afisha-item__thumb-wrap{
  display:block;
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: transparent !important;
}

.sp-afisha-item__thumb{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit: cover;
}

/* meta */
.sp-meta{
  margin: 0 0 calc(17px * var(--cat-scale)) !important;
  font-family: "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  font-weight: 400 !important;

  /* ВАЖНО: чтобы не “слетало” в аперкейс */
  text-transform: none !important;

  /* small-caps (и фолбэк через OpenType фичи) */
  font-variant-caps: all-small-caps !important;
  font-feature-settings: "smcp" 1, "c2sc" 1 !important;

  letter-spacing: var(--meta-ls, .12em) !important;
  line-height: 1.35 !important;

  /* размер */
  font-size: var(--meta-size, clamp(12px, 0.95vw, 18px)) !important;

  color: #6f635a !important;

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sp-meta__sep{
  display:inline-block;
  width:6px;
  height:6px;
  margin: 0 10px;
  background: rgba(195,150,98,.95);
  transform: translateY(-1px);
}

/* title */
.sp-afisha-item__title{
  margin: 0 0 10px;
  font-family: var(--font-display,"Playfair Display",serif);
  font-weight: 400;
  font-size: 26px;
  line-height: 1.25;
}

.sp-afisha-item__title a{
  color: var(--accent);
  text-decoration: none;
}
.sp-afisha-item__title a:hover{
  color: var(--accent-soft,#d2ab7a);
}

/* excerpt */
.sp-afisha-item__excerpt{
  margin: 0;
  font-family: var(--font-ui,"Source Sans 3",sans-serif);
  font-size: 14px;
  line-height: 1.7;
  color: var(--muted2);
}

/* pagination */
.sp-afisha__pagination{
  margin-top: 44px;
  text-align: center;
}

.sp-afisha__load-more-btn{
  display:inline-block;
  padding: 16px 72px;
  border: 1px solid var(--accent);
  font-family: var(--font-ui,"Source Sans 3",sans-serif);
  font-size: 14px;
  letter-spacing: .24em;
  text-transform: uppercase;
  text-decoration:none;
  background: transparent;
  color: var(--text);
  margin-bottom: 26px;
}

.sp-afisha__pages{
  display:inline-flex;
  border: 1px solid rgba(227,214,196,.9);
  border-right: 0;
}

.sp-afisha__pages .page-numbers{
  display:inline-block;
  min-width: 52px;
  height: 52px;
  line-height: 52px;
  margin: 0;
  padding: 0 8px;
  border-right: 1px solid rgba(227,214,196,.9);
  font-size: 16px;
  font-family: var(--font-display,"Playfair Display",serif);
  text-decoration:none;
  text-align:center;
  color: #c3b8aa;
}

.sp-afisha__pages .page-numbers.prev,
.sp-afisha__pages .page-numbers.next{
  font-family: var(--font-ui,"Source Sans 3",sans-serif);
  font-size: 20px;
}

.sp-afisha__pages .page-numbers.current{
  background: var(--accent);
  color: #fff;
}

.sp-afisha__pages .page-numbers:not(.current):hover{
  background: #f4e8da;
}

/* responsive */


@media (max-width:904px){
  .sp-afisha{ --pad-y:56px; --pad-b:80px; }
  .sp-afisha .sp-container{ padding: 0 20px; }

  .sp-afisha__title{ font-size: 44px; margin-bottom: 22px; }
  .sp-afisha__section-title{ font-size: 24px; }

  .sp-afisha-item{ padding: 22px 0; }
  .sp-afisha-item__inner{
    grid-template-columns: 1fr;
    gap: 14px;
  }

 .sp-afisha-item__thumb-wrap{
    max-width: none;
    width: 100%;
  }  .sp-meta{ white-space: normal; }

  .sp-afisha__pages .page-numbers{
    min-width: 40px;
    height: 40px;
    line-height: 40px;
  }
}

@media (max-width:480px){
  .sp-afisha__title{ font-size: 40px; }
  .sp-afisha-item__title{ font-size: 24px; }
}


.sp-afisha__today-btn{
  border:0;
  background: var(--bg);
  cursor:pointer;
  font: inherit;
}

/* modal */
.sp-date{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
}
.sp-date.is-open{ display:block; }

.sp-date__backdrop{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.28);
}

.sp-date__panel{
  position:absolute;
  left:50%;
  top:50%;
  transform: translate(-50%,-50%);
  width: min(520px, calc(100vw - 32px));
  background: var(--bg);
  border: 1px solid rgba(195,150,98,.60);
  box-shadow: 0 14px 50px rgba(0,0,0,.18);
}

.sp-date__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 16px 18px;
  border-bottom: 1px solid rgba(195,150,98,.35);
}
.sp-date__title{
  font-family: var(--font-display,"Playfair Display",serif);
  font-size: 22px;
  color: var(--accent);
}
.sp-date__x{
  border:0;
  background:transparent;
  font-size: 26px;
  line-height: 1;
  cursor:pointer;
  color: rgba(45,41,37,.7);
}

.sp-date__tabs{
  display:grid;
  grid-template-columns: 1fr 1fr 1fr;
  border-bottom: 1px solid rgba(195,150,98,.35);
}
.sp-date__tab{
  border:0;
  background: transparent;
  padding: 12px 10px;
  cursor:pointer;
  font-family: var(--font-ui,"Source Sans 3",sans-serif);
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(45,41,37,.7);
}
.sp-date__tab.is-active{
  color: #a0773f;
  background: rgba(195,150,98,.08);
}

.sp-date__body{ padding: 16px 18px 6px; }

.sp-date__grid{
  display:grid;
  gap: 10px;
}

/* grids */
.sp-date__grid--days{
  grid-template-columns: repeat(7, 1fr);
}
.sp-date__grid--months{
  grid-template-columns: repeat(3, 1fr);
}
.sp-date__grid--years{
  grid-template-columns: repeat(4, 1fr);
}

.sp-date__cell{
  border: 1px solid rgba(195,150,98,.35);
  background: #fff0;
  padding: 10px 8px;
  cursor:pointer;
  font-family: var(--font-ui,"Source Sans 3",sans-serif);
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(45,41,37,.82);
}
.sp-date__cell:hover{
  background: rgba(195,150,98,.10);
}
.sp-date__cell.is-active{
  background: var(--accent);
  color: #fff;
  border-color: rgba(195,150,98,.60);
}
.sp-date__cell.is-muted{
  opacity:.45;
  pointer-events:none;
}

.sp-date__bottom{
  display:flex;
  gap: 10px;
  padding: 12px 18px 16px;
}
.sp-date__btn{
  flex:1;
  border: 1px solid rgba(195,150,98,.60);
  background: transparent;
  padding: 12px 10px;
  cursor:pointer;
  font-family: var(--font-ui,"Source Sans 3",sans-serif);
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(45,41,37,.85);
}
.sp-date__btn--apply{
  background: rgba(195,150,98,.14);
}


.sp-afisha__date-reset{
  margin-top: 12px;
}

.sp-afisha__date-reset-link{
  display:inline-block;
  font-family: var(--font-ui,"Source Sans 3",sans-serif);
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(45,41,37,.72);
  text-decoration: none;
  border-bottom: 1px solid rgba(195,150,98,.35);
  padding-bottom: 4px;
}

.sp-afisha__date-reset-link:hover{
  color: #a0773f;
  border-bottom-color: rgba(195,150,98,.60);
}


.sp-afisha-empty{
  border-top: var(--rule-w) solid var(--rule);
  padding: 44px 0 10px;
}

.sp-afisha-empty__inner{
  max-width: 640px;
  padding: 28px 0 34px;
}

.sp-afisha-empty__kicker{
  font-family: var(--font-ui,"Source Sans 3",sans-serif);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(45,41,37,.55);
  margin-bottom: 12px;
}

.sp-afisha-empty__title{
  margin: 0 0 12px;
  font-family: var(--font-display,"Playfair Display",serif);
  font-weight: 400;
  font-size: 30px;
  line-height: 1.15;
  color: var(--accent);
}

.sp-afisha-empty__text{
  margin: 0 0 18px;
  font-family: var(--font-ui,"Source Sans 3",sans-serif);
  font-size: 14px;
  line-height: 1.7;
  color: rgba(45,41,37,.74);
}

.sp-afisha-empty__btn{
  display:inline-block;
  padding: 12px 18px;
  border: 1px solid rgba(195,150,98,.60);
  background: rgba(195,150,98,.10);
  text-decoration:none;
  font-family: var(--font-ui,"Source Sans 3",sans-serif);
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(45,41,37,.86);
}
.sp-afisha-empty__btn:hover{
  background: rgba(195,150,98,.16);
}



