.promotion-box,.promotion-tools,.promotion-page { color:#243b35; font-family:Arial,Helvetica,sans-serif; text-align:left; letter-spacing:normal; }
.promotion-box { background:#fff; border:1px solid #dbe4de; border-radius:8px; padding:18px 22px; margin:20px 0; }
.promotion-box>summary,.promotion-text>summary { cursor:pointer; font-weight:700; padding:8px 0; }
.promotion-buttons { display:flex; flex-wrap:wrap; gap:10px; margin:18px 0; }
.promotion-buttons button,.promotion-buttons a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; box-sizing:border-box; background:#17653c; color:#fff; padding:10px 16px; border:1px solid #17653c; border-radius:6px; font:600 15px/1.4 Arial,Helvetica,sans-serif; cursor:pointer; text-decoration:none; }
.promotion-buttons button:hover,.promotion-buttons a:hover { background:#104e2d; color:#fff; text-decoration:none; }
.promotion-buttons [hidden] { display:none; }
.promotion-buttons button:disabled { opacity:.65; cursor:wait; }
.promotion-field { display:block; font-size:14px; font-weight:600; margin:12px 0; }
.promotion-field input,.promotion-field textarea { display:block; width:100%; box-sizing:border-box; color:#243b35; background:#f5f8f6; border:1px solid #aabeb1; padding:12px; border-radius:5px; font:400 15px/1.5 Arial,Helvetica,sans-serif; margin-top:6px; }
.promotion-field textarea { resize:vertical; }
.promotion-status { font-size:14px; margin:10px 0 0; }
.promotion-status:empty { display:none; }
.promotion-box :focus-visible,.promotion-page :focus-visible { outline:3px solid #e0a62d; outline-offset:3px; }
.promotion-page { background:#eaf0ec; margin:0; line-height:1.5; }
.promotion-page * { box-sizing:border-box; }
.promotion-controls { max-width:794px; margin:30px auto; padding:26px; background:#fff; border-radius:10px; }
.promotion-controls>a { color:#17653c; font-weight:bold; }
.promotion-controls h1 { font-size:30px; line-height:1.2; margin:8px 0 14px; }
.promotion-eyebrow { color:#17653c; font-weight:bold; letter-spacing:.07em; text-transform:uppercase; font-size:12px; margin:16px 0 8px; }
.promotion-hint,[data-promotion-qr-status] { font-size:14px; color:#4a5f53; }
.promotion-poster { background:#fff; max-width:794px; min-height:1122px; padding:40px; margin:24px auto 48px; display:flex; flex-direction:column; gap:20px; box-shadow:0 8px 28px #14352118; }
.poster-brand { display:flex; justify-content:space-between; gap:16px; padding-bottom:14px; border-bottom:3px solid #17653c; font-size:14px; }
.poster-brand span { color:#53675c; }
.poster-heading h2 { font-size:34px; line-height:1.15; margin:0 0 10px; overflow-wrap:anywhere; }
.poster-heading .promotion-eyebrow { margin-top:0; }
.poster-location { color:#17653c; font-weight:600; margin:0; }
.poster-image { width:100%; height:260px; object-fit:contain; background:#f5f7f5; border-radius:6px; }
.poster-placeholder { display:flex; align-items:center; justify-content:center; color:#17653c; font-size:28px; font-weight:bold; }
.poster-description { margin:0; overflow-wrap:anywhere; }
.poster-price { display:flex; align-items:center; gap:24px; border-top:1px solid #dbe4de; border-bottom:1px solid #dbe4de; padding:16px 0; }
.poster-price>div:first-child { flex:0 0 auto; }
.poster-price span { font-size:12px; display:block; }
.poster-price strong { display:block; font-size:32px; color:#17653c; line-height:1.25; }
.poster-price p { margin:4px 0 0; font-size:14px; }
.poster-booking { display:grid; grid-template-columns:minmax(0,1fr) 144px; gap:20px; align-items:center; margin-top:auto; }
.poster-booking h3 { margin:0 0 10px; font-size:23px; }
.poster-booking p { margin:0 0 12px; }
.poster-link { display:block; color:#17653c; font-size:14px; font-weight:bold; overflow-wrap:anywhere; }
.poster-qr { width:144px; height:144px; font-size:12px; background:#fff; }
.poster-qr svg { display:block; width:100%; height:100%; }
.poster-footer { padding-top:12px; border-top:1px solid #dbe4de; font-size:11px; color:#4a5f53; }
@media screen and (max-width:600px) {
    .promotion-controls { margin:12px; padding:20px; }
    .promotion-poster { margin:12px; padding:22px; min-height:0; gap:18px; }
    .poster-brand { flex-direction:column; gap:3px; }
    .poster-heading h2 { font-size:27px; }
    .poster-image { height:210px; }
    .poster-price { flex-direction:column; align-items:flex-start; gap:10px; }
    .poster-booking { grid-template-columns:minmax(0,1fr); }
    .poster-qr { width:160px; height:160px; }
    .promotion-buttons button,.promotion-buttons a { flex:1 1 auto; }
}
@page { size:A4 portrait; margin:10mm; }
@media print {
    .promotion-page { background:#fff; font-size:11pt; line-height:1.35; }
    .promotion-controls { display:none !important; }
    .promotion-poster { width:190mm; max-width:none; height:276mm; min-height:0; padding:5mm; margin:0; box-shadow:none; gap:4mm; break-inside:avoid; }
    .poster-brand { font-size:10pt; padding-bottom:3mm; }
    .poster-heading h2 { font-size:24pt; }
    .poster-image { height:65mm; min-height:30mm; flex-shrink:1; }
    .poster-price { padding:3mm 0; gap:6mm; }
    .poster-price strong { font-size:25pt; }
    .poster-price p,.poster-link { font-size:10pt; }
    .poster-booking { grid-template-columns:minmax(0,1fr) 36mm; gap:5mm; }
    .poster-booking h3 { font-size:17pt; }
    .poster-qr { width:36mm; height:36mm; }
    .poster-footer { font-size:8pt; padding-top:3mm; }
}
