.promo-carousel {
  width:calc(100% - 32px);
  max-width:560px;
  margin:16px auto;
  overflow:hidden;
  border:1px solid #29473b;
  border-radius:12px;
  background:#0d1410;
}
.promo-carousel button,.promo-preview button { font:inherit; cursor:pointer; }
.promo-stage { position:relative; width:100%; aspect-ratio:3/4; max-height:420px; background:#080d0a; touch-action:pan-y pinch-zoom; }
@media (max-width:600px) {
  .promo-stage { max-height:380px; }
}
.promo-slide { position:relative; display:block; width:100%; height:100%; padding:0; border:0; background:transparent; overflow:hidden; }
.promo-slide[hidden] { display:none; }
.promo-slide img { display:block; width:100%; height:100%; object-fit:contain; }
.promo-slide img:not(.promo-background) { position:relative; z-index:1; }
.promo-slide .promo-background { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:blur(16px) brightness(0.45); transform:scale(1.08); z-index:0; pointer-events:none; }
.promo-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:4px 10px; }
.promo-arrow { width:44px; height:44px; padding:0; border:0; border-radius:8px; color:#a8e4cf; background:transparent; font-size:28px!important; line-height:1; }
.promo-dots { display:flex; gap:0; }
.promo-control-center { position:relative; display:flex; align-items:center; justify-content:center; min-width:0; }
.promo-hint { position:absolute; top:26px; left:50%; transform:translateX(-50%); white-space:nowrap; color:#a0aaa5; font-size:11px; font-weight:400; line-height:1.6; pointer-events:none; }
.promo-dot { position:relative; width:28px; height:36px; padding:0; border:0; background:transparent; }
.promo-dot::after { content:""; position:absolute; top:14px; left:10px; width:8px; height:8px; border-radius:50%; background:#56665d; }
.promo-dot[aria-current="true"]::after { background:#1fbf8c; }
.promo-carousel button:focus-visible,.promo-stage:focus-visible,.promo-preview button:focus-visible { outline:2px solid #5ce0b4; outline-offset:-3px; }
.promo-preview { position:fixed; inset:0; width:100vw; height:100vh; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; color:#eef2f0; background:#050706; }
.promo-preview::backdrop { background:rgba(0,0,0,.9); }
.promo-preview-toolbar { height:64px; display:flex; align-items:center; gap:12px; padding:8px 16px; border-bottom:1px solid #29473b; }
.promo-preview-count { margin-right:auto; font-size:14px; font-variant-numeric:tabular-nums; color:#a0aaa5; }
.promo-preview-toolbar button { min-height:44px; padding:8px 12px; border:1px solid #375347; border-radius:8px; color:#eef2f0; background:#12251b; font-size:14px; }
.promo-preview-scroll { width:100%; height:calc(100% - 64px); overflow:auto; overscroll-behavior:contain; touch-action:pan-x pan-y pinch-zoom; }
.promo-preview-image { display:block; width:auto; height:auto; max-width:100%; max-height:100%; margin:auto; object-fit:contain; }
.promo-preview-image.is-zoomed { max-width:none; max-height:none; margin:0 auto; }
.promo-preview.has-service-entry .promo-preview-image:not(.is-zoomed) { max-height:calc(100% - 80px); }
.promo-service-entry { padding:16px; text-align:center; }
.promo-service-entry[hidden] { display:none; }
.promo-service-entry button { min-height:44px; max-width:100%; padding:10px 16px; border:1px solid #286b4d; border-radius:9px; color:#a8e4cf; background:#123c29; font-size:14px; font-weight:600; line-height:1.6; }
.promo-service { position:fixed; inset:0; width:calc(100% - 32px); max-width:360px; max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); margin:auto; padding:20px; overflow:auto; border:1px solid #375347; border-radius:14px; color:#eef2f0; background:#0d1b13; text-align:center; font:inherit; }
.promo-service::backdrop { background:rgba(0,0,0,.75); }
.promo-service-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; }
.promo-service-heading h2 { margin:0; font-size:18px; font-weight:700; }
.promo-service button { min-height:44px; padding:8px 12px; border:1px solid #375347; border-radius:8px; color:#eef2f0; background:#12251b; font:inherit; font-size:14px; cursor:pointer; }
/* Display the existing QR region of the unchanged 1080x1536 poster, including its white margin. */
.promo-service-qr { position:relative; width:232px; max-width:100%; aspect-ratio:1; margin:0 auto; overflow:hidden; border-radius:10px; background:#fff; }
.promo-service-qr img { position:absolute; width:469.565217%; max-width:none; height:auto; left:-185.217391%; top:-463.478261%; }
.promo-service-contact { margin:16px 0 10px; font-size:14px; font-weight:600; line-height:1.8; }
.promo-service-help { margin:0; color:#a0aaa5; font-size:12px; line-height:1.6; }
.promo-service-save { display:inline-block; padding:10px 0 0; color:#a8e4cf; font-size:13px; text-underline-offset:3px; }
.promo-service button:focus-visible,.promo-service-save:focus-visible { outline:2px solid #5ce0b4; outline-offset:2px; }
