dialog.campaign {
  box-sizing: border-box;
  width: min(54rem, calc(100% - 1.5rem));
  max-height: calc(100dvh - 1.5rem);
  margin: auto;
  padding: 0;
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid #8f7248;
  border-radius: 1.2rem;
  background: #17120e;
  color: #fff2dd;
  box-shadow: 0 24px 100px #000b;
}
dialog.campaign::backdrop { background: #090706d9; }
.campaign[open] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .92fr); }
.campaign .campaign-art {
  grid-area: 1 / 1;
  display: block;
  align-self: center;
  width: 100%;
  height: auto;
  object-fit: contain;
  background: #100b08;
}
.campaign .campaign-copy { grid-area: 1 / 2; align-self: center; padding: clamp(1.3rem, 4vw, 2.5rem); }
.campaign .campaign-copy h2 {
  margin: 0;
  color: #f8e5c5;
  font: 400 clamp(1.9rem, 4vw, 3.1rem)/1.05 Georgia, serif;
}
.campaign .campaign-copy > p { margin: .8rem 0 1rem; line-height: 1.5; color: #efdeca; }
.campaign .campaign-copy strong { color: #ffe3ac; }
.campaign .campaign-close {
  position: sticky;
  inset-block-start: .6rem;
  grid-area: 1 / 1 / 2 / -1;
  align-self: start;
  justify-self: end;
  transform: translateX(-.65rem);
  z-index: 1;
  display: grid;
  place-items: center;
  min-width: 44px;
  min-height: 44px;
  margin: .6rem 0 -50px;
  padding: 0;
  border: 1px solid #9c8059;
  border-radius: 50%;
  background: #16100df2;
  color: #fff2dd;
  font: 400 1.6rem/1 system-ui, sans-serif;
  cursor: pointer;
}
.campaign .campaign-selector summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  min-height: 44px;
  padding: .7rem .9rem;
  border-radius: .5rem;
  background: linear-gradient(120deg, #f8dfab, #d6a35b);
  color: #21160b;
  font-weight: 750;
  cursor: pointer;
  list-style: none;
}
.campaign .campaign-selector summary::-webkit-details-marker { display: none; }
.campaign .campaign-selector summary::after { content: '+'; font-size: 1.2em; }
.campaign .campaign-selector[open] summary::after { content: '−'; }
.campaign .campaign-selector summary:hover { background: #ffe9bc; }
.campaign .campaign-offers { display: grid; gap: .4rem; list-style: none; margin: .65rem 0 0; padding: 0; }
.campaign .campaign-offers a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: .45rem .65rem;
  border: 1px solid #745c3d;
  border-radius: .45rem;
  background: #241a13;
  color: #ffe3ac;
  text-decoration: none;
}
.campaign .campaign-offers a:hover { background: #47321e; }
.campaign :focus-visible { outline: 2px solid #ffe3ac; outline-offset: 3px; }
.campaign .campaign-copy .campaign-terms { margin: .85rem 0 0; font-size: .85rem; color: #d8c2a7; }
@media (max-width: 650px) {
  .campaign[open] { grid-template-columns: minmax(0, 1fr); }
  .campaign .campaign-art { max-height: 38dvh; }
  .campaign .campaign-copy { grid-area: 2 / 1; padding: 1.2rem; }
}
.campaign [hidden] { display: none !important; }
.campaign .campaign-selection p { margin-block: 1rem; }
.campaign .campaign-selection strong { display: block; font-size: 1.8rem; }
.campaign .campaign-next {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: .7rem .9rem;
  border-radius: .5rem;
  background: linear-gradient(120deg, #f8dfab, #d6a35b);
  color: #21160b;
  font-weight: 750;
  text-decoration: none;
}
.campaign .campaign-headline-discount {
  display: block;
  margin-block-start: .2em;
  color: #ffe1a4;
  font-size: 1.22em;
  font-weight: 700;
}
.campaign .dewi-language-switcher { display: flex; gap: .4rem; margin: 0 0 .8rem; }
.campaign .dewi-language-switcher a {
  display: grid;
  place-items: center;
  min-height: 44px;
  min-width: 44px;
  border: 1px solid #745c3d;
  border-radius: .4rem;
  color: #ffe3ac;
  text-decoration: none;
}
.campaign .dewi-language-switcher a[aria-current] { background: #ffe3ac; color: #21160b; }

.black-weeks-badge {
  display: inline-block;
  padding: .42rem .66rem;
  border-radius: .25rem;
  background: linear-gradient(120deg, #26190e, #100b08);
  border: 1px solid #d0a875;
  color: #ffe1a4;
  font-weight: 750;
  letter-spacing: .025em;
}
.ritual-image:has(.black-weeks-badge) { position: relative; }
.ritual-image .black-weeks-badge { position: absolute; inset-inline-start: .6rem; inset-block-start: .65rem; z-index: 2; }
.black-weeks-notice {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: .4rem .6rem;
  padding: .6rem .8rem;
  border: 1px solid #94734a;
  border-radius: .4rem;
  background: #2a1c12;
  color: #f4dec2;
}
.black-weeks-notice del { color: #e5ccb1; }
.black-weeks-notice b { color: #ffe1a4; font-size: 1.25em; }
.black-weeks-notice > span { flex-basis: 100%; font-size: .85em; }

.ritual-image .black-weeks-badge {
  inset-inline-start: auto;
  inset-inline-end: .7rem;
  inset-block-start: .7rem;
  max-width: calc(100% - 1.4rem);
  box-sizing: border-box;
  padding: .42rem .72rem;
  border: 1px solid #f4dbad;
  border-radius: .35rem;
  background: linear-gradient(120deg, #fff0cf, #d3a160);
  color: #21160d;
  box-shadow: 0 3px 14px #0009;
  font-size: clamp(.75rem, 2.8vw, .9rem);
  line-height: 1.2;
  text-transform: uppercase;
  pointer-events: none;
}

/* Keep the promotion outside the grid row shared by the copy and photo. */
.ritual > .black-weeks-notice {
  grid-column: 1 / -1;
  margin: 0;
  border-inline: 0;
  border-bottom: 0;
  border-radius: 0;
}
.reference-layout #pelna-oferta .catalog .ritual:has(> .black-weeks-notice) {
  grid-template-rows: minmax(0, 1fr) auto;
}
.reference-layout #pelna-oferta .catalog .ritual:has(> .black-weeks-notice) .ritual-image {
  grid-row: 1;
}

.black-weeks-home { margin-block: 1.25rem 2rem; }
.black-weeks-home details {
  overflow: hidden;
  border-block: 1px solid #957548;
  background: linear-gradient(110deg, #19130f, #251b12 58%, #14100d);
}
.black-weeks-home summary {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: clamp(.5rem, 2.5vw, 1.5rem);
  padding: clamp(.75rem, 2vw, 1.15rem) clamp(.75rem, 3vw, 2rem);
  color: #f7dda8;
  font: 500 clamp(1.55rem, 4vw, 2.7rem)/1 var(--serif, Georgia, serif);
  cursor: pointer;
  list-style: none;
}
.black-weeks-home summary::-webkit-details-marker { display: none; }
.black-weeks-home summary small {
  display: inline-block;
  margin-inline-start: .35rem;
  color: #e3c99d;
  font: 600 .75rem/1.25 var(--sans, sans-serif);
  text-transform: uppercase;
  letter-spacing: .13em;
}
.black-weeks-home summary > strong { white-space: nowrap; }
.black-weeks-home-toggle { width: .65rem; height: .65rem; border: solid currentColor; border-width: 0 1px 1px 0; transform: rotate(45deg); }
.black-weeks-home details[open] .black-weeks-home-toggle { transform: rotate(225deg); }
.black-weeks-home-content { padding: 0 clamp(.75rem, 3vw, 2rem) 1rem; }
.black-weeks-home-content > p { color: #e3cbb0; margin: 0 0 .75rem; }
.black-weeks-home-offers {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: clamp(13rem, 31%, 17rem);
  gap: .65rem;
  margin: 0;
  padding: .2rem .2rem .65rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-color: #94734a #1d1510;
  list-style: none;
}
.black-weeks-home-offers li { scroll-snap-align: start; min-width: 0; }
.black-weeks-home-offers a {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: .75rem;
  border: 1px solid #806342;
  background: #17110d;
  color: #f8e6c9;
  text-decoration: none;
}
.black-weeks-home-offers a:hover { border-color: #e2be80; }
.black-weeks-home-offers .black-weeks-notice { border: 0; padding: 0; margin: .4rem 0; background: transparent; }
.black-weeks-home-offers .black-weeks-notice > span { display: none; }
.black-weeks-home-action { margin-block-start: auto; color: #ffe1a4; font-size: .85rem; }
.black-weeks-home :focus-visible { outline: 2px solid #ffe1a4; outline-offset: -2px; }
@media (prefers-reduced-motion: no-preference) {
  .black-weeks-home details[open] .black-weeks-home-offers { animation: black-weeks-enter .25s ease-out; }
  @keyframes black-weeks-enter { from { opacity: 0; transform: translateX(-.7rem); } }
}
.black-weeks-home details:not([open]) > .black-weeks-home-content { display: none; }

.black-weeks-home summary > span:first-child {
  position: relative;
  justify-self: start;
  padding-block-end: .35rem;
}
.black-weeks-home summary > span:first-child::after {
  content: '';
  position: absolute;
  inset-inline-start: 0;
  inset-block-end: 0;
  width: min(100%, 12rem);
  height: 1px;
  background: linear-gradient(90deg, #aa7745, #ffe1a4 45%, transparent);
}
@media (prefers-reduced-motion: no-preference) {
  .black-weeks-home details:not([open]) summary > span:first-child::after {
    background: linear-gradient(105deg, transparent 42%, #fff0c7 50%, transparent 58%) 100% 0 / 260% 100% no-repeat,
      linear-gradient(90deg, #aa7745, #ffe1a4 45%, transparent);
    animation: black-weeks-gold-light 3.6s ease-in-out 1;
  }
  @keyframes black-weeks-gold-light {
    from { background-position: 100% 0, 0 0; }
    to { background-position: 0 0, 0 0; }
  }
}
