.pts-promotion {
  background: #fff2f3;
  border-bottom: 1px solid #f0d4d6;
  color: var(--color-ink, #1a1a1a);
  font-family: Inter, Arial, sans-serif;
}
.pts-promo-preview { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; padding:8px 16px; background:#1a1a1a; color:#fff; font:12px/1.4 Inter,Arial,sans-serif; }
.pts-promo-preview a { color:#fff; padding:12px; border:1px solid #666; border-radius:8px; }
.pts-promo-preview a[aria-current] { background:#cf1418; border-color:#cf1418; }
.pts-promotion__art { width:190px; height:auto; border-radius:16px; flex-shrink:0; }
.pts-promotion--photo .pts-promotion__inner { align-items:center; }
.pts-promo-strip { background:#cf1418; color:#fff; font-family:Inter,Arial,sans-serif; }
.pts-promo-strip .container { display:flex; align-items:center; justify-content:center; gap:24px; padding-top:12px; padding-bottom:12px; }
.pts-promo-strip strong { font-size:30px; font-weight:800; }
.pts-promo-strip small { display:block; font-size:12px; margin-top:3px; }
.pts-promo-strip button { background:#fff; color:#a20e12; border:0; border-radius:8px; padding:12px 16px; min-height:44px; font:600 14px Inter,Arial,sans-serif; cursor:pointer; }
.pts-promo-tab { position:fixed; left:0; top:50%; transform:translateY(-50%); z-index:990; width:118px; padding:0; border:0; border-radius:0 16px 16px 0; overflow:hidden; background:#cf1418; color:#fff; box-shadow:0 8px 28px #0003; cursor:pointer; text-align:center; font:600 14px/1.3 Inter,Arial,sans-serif; transition:width .2s; }
.pts-promo-tab:hover { width:132px; }
.pts-promo-tab img { display:block; width:100%; height:auto; }
.pts-promo-tab__open > span { display:block; padding:12px 8px; }
.pts-promo-tab__open { display:block; width:100%; padding:0; border:0; border-radius:inherit; overflow:hidden; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.pts-promo-tab .pts-promo-tab__collapse { top:-13px; right:-13px; width:26px; height:26px; border-radius:6px; }
.pts-promo-tab .pts-promo-tab__collapse svg { width:14px; height:14px; }
.pts-promo-tab__collapse::before { content:""; position:absolute; inset:-9px; }
.pts-promo-tab button:focus-visible { outline:3px solid #fff; outline-offset:-4px; }
.pts-promo-tab b { display:block; font-size:28px; }
.pts-promo-tab small { display:block; font-size:12px; margin-top:4px; }
.pts-promo-open { overflow:hidden; }
.pts-promo-dialog { position:fixed; inset:0; margin:auto; padding:0; width:min(1060px,calc(100% - 32px)); max-height:calc(100dvh - 32px); border:0; border-radius:24px; background:#fff; color:#1a1a1a; overflow:auto; font-family:Inter,Arial,sans-serif; box-shadow:0 20px 80px #0004; }
.pts-promo-dialog::backdrop { background:#000b; }
.pts-promo-dialog__grid { display:grid; grid-template-columns:1fr 1.15fr; align-items:stretch; }
.pts-promo-dialog__grid > img { width:100%; height:100%; min-height:0; object-fit:contain; display:block; }
.pts-promo-dialog__copy { padding:40px 32px 24px; }
.pts-promo-dialog__label { display:inline-block; padding:8px 12px; border-radius:8px; background:#cf1418; color:#fff; font-size:12px; font-weight:700; text-transform:uppercase; }
.pts-promo-dialog__copy h2 { font:800 clamp(22px,2.5vw,32px)/1.15 Inter,Arial,sans-serif; margin:16px 0; color:#1a1a1a; }
.pts-promo-dialog__copy em { color:#cf1418; font-style:normal; }
.pts-promo-dialog__copy p,.pts-promo-dialog__copy li { font-size:14px; line-height:1.6; }
.pts-promo-dialog__copy ul { padding-left:20px; margin:16px 0; }
.pts-promo-dialog__copy .pts-promotion__button { margin-top:16px; width:100%; }
:is(.pts-promo-dialog,.pts-promo-strip,.pts-promo-preview,.pts-promo-tab) :is(a,button):focus-visible,.pts-promo-tab:focus-visible { outline:3px solid #111; outline-offset:3px; }
@media(max-width:700px) {
  .pts-promotion--photo .pts-promotion__inner { display:grid; grid-template-columns:110px 1fr; }
  .pts-promotion__art { width:110px; align-self:start; }
  .pts-promotion--photo .pts-promotion__button { grid-column:1/-1; width:100%; }
  .pts-promo-strip .container { gap:12px; }
  .pts-promo-strip .container > span { font-size:13px; }
  .pts-promo-strip button { font-size:12px; padding:10px; }
  .pts-promo-dialog__grid { grid-template-columns:1fr; }
  .pts-promo-dialog__grid > img { width:100%; height:auto; max-width:none; margin:0; }
  .pts-promo-dialog__copy { padding:24px; }
  .pts-promo-tab { width:76px; top:auto; bottom:100px; transform:none; }
  .pts-promo-tab:hover { width:76px; }
  .pts-promo-tab__open > span { padding:8px 4px; }
  .pts-promo-tab b { font-size:22px; }
}
@media(prefers-reduced-motion:reduce) { .pts-promo-tab { transition:none; } }
.pts-promo-tab,
.pts-promo-tab:hover {
  left: 0;
  right: auto;
  top: auto;
  bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  transform: none;
  overflow: visible;
  width: 118px;
  border-radius: 0 16px 16px 0;
  transition: width .25s ease;
}
.pts-promo-tab .pts-promo-tab__vertical { display: none; }
.pts-promo-tab.is-compact { width: 44px; }
.pts-promo-tab.is-compact img,
.pts-promo-tab.is-compact .pts-promo-tab__caption,
.pts-promo-tab.is-compact .pts-promo-tab__collapse { display: none; }
.pts-promo-tab.is-compact .pts-promo-tab__vertical {
  display: block;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  padding: 18px 12px;
  font-size: 15px;
  letter-spacing: .08em;
}
@media(max-width:700px) {
  .pts-promo-tab,.pts-promo-tab:hover { width: 76px; }
  .pts-promo-tab.is-compact { width: 44px; }
}
@media(prefers-reduced-motion:reduce) { .pts-promo-tab { transition:none; } }
.pts-promotion .pts-promotion__inner {
  display: flex;
  align-items: center;
  gap: 24px;
  padding-top: 20px;
  padding-bottom: 20px;
}
.pts-promotion__discount {
  color: var(--color-primary, #cf1418);
  font-size: clamp(36px, 4vw, 56px);
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}
.pts-promotion__copy { flex: 1; min-width: 0; }
.pts-promotion__copy > strong { font-size: 20px; line-height: 1.3; }
.pts-promotion__copy p { margin: 8px 0 0; font: inherit; font-size: 14px; line-height: 1.6; }
.pts-promotion__button {
  flex-shrink: 0;
  border: 0;
  border-radius: 12px;
  background: var(--color-primary, #cf1418);
  color: #fff;
  padding: 16px 22px;
  min-height: 48px;
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  transition: background-color .2s;
}
.pts-promotion__button:hover { background: var(--color-primary-hover, #b41015); }
.pts-promotion__details summary { cursor: pointer; padding: 12px 0; min-height: 44px; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; }
.pts-promotion__details ul { padding-left: 20px; margin: 12px 0; font-size: 14px; line-height: 1.7; }
.pts-promotion__contacts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.pts-promotion__contacts a { color: #a50e13; padding: 10px 0; text-decoration: underline; }
.pts-promotion :is(button, summary, a):focus-visible { outline: 3px solid #1a1a1a; outline-offset: 4px; }
@media (max-width: 900px) {
  .pts-promotion .pts-promotion__inner { flex-wrap: wrap; gap: 16px; }
  .pts-promotion__copy { flex-basis: calc(100% - 130px); }
  .pts-promotion__button { margin-left: auto; }
}
@media (max-width: 560px) {
  .pts-promotion .pts-promotion__inner { gap: 12px; }
  .pts-promotion__copy { flex-basis: calc(100% - 110px); }
  .pts-promotion__copy > strong { font-size: 17px; }
  .pts-promotion__button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .pts-promotion__button { transition: none; }
}
