.campaigns{padding:34px 0 40px;background:#fff;scroll-margin-top:155px}.campaigns h2{font:800 23px/1.25 Montserrat,sans-serif;letter-spacing:.035em;color:#0a3152;margin:0 0 20px}.campaign-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.campaign-card{display:grid;grid-template-columns:145px 1fr;gap:24px;align-items:center;background:#e9f8f8;border:1px solid #c6e7e9;border-radius:18px;padding:24px;color:#10344c;text-decoration:none;transition:transform .2s}.campaign-card:hover{transform:translateY(-3px)}.campaign-card.warm{background:#fff3e6;border-color:#f6d8b3}.campaign-value{border-right:1px solid #10344c25;padding-right:20px}.campaign-value small{display:block;font-size:12px;font-weight:700}.campaign-value strong{display:block;font:800 42px/1.2 Montserrat,sans-serif;color:#008b97;white-space:nowrap}.warm .campaign-value strong{color:#b84f08}.campaign-card h3{font-size:20px;line-height:1.25;margin:0 0 8px;color:#10344c}.campaign-card p{font-size:14px;line-height:1.45;margin:0 0 8px}.campaign-date{font-size:12px;display:block;margin:8px 0}.campaign-link{font-size:13px;font-weight:800;text-decoration:underline}.campaign-card[hidden]{display:none}@media(max-width:760px){.campaign-grid{grid-template-columns:1fr}.campaigns h2{font-size:20px}.campaign-card{grid-template-columns:110px 1fr;padding:18px;gap:18px}.campaign-value strong{font-size:33px}.campaign-card h3{font-size:18px}}
.campaign-card{padding:0 0 22px;gap:18px 22px;overflow:hidden;grid-template-columns:155px 1fr;align-content:start}.campaign-ad{grid-column:1/-1;height:260px;display:flex;align-items:center;justify-content:center;background:#07506d;overflow:hidden}.campaign-ad>img{display:block;width:100%;height:100%;object-fit:contain}.campaign-ad-crop{position:relative;width:100%;aspect-ratio:600/225;overflow:hidden}.campaign-ad-crop img{position:absolute;max-width:none;width:133.833333%;height:auto;left:-11.5%;top:-44%}.campaign-card .campaign-value{margin-left:22px;padding-right:14px}.campaign-card>div:last-child{padding-right:20px}.campaign-card h3{font-size:18px}@media(max-width:760px){.campaign-ad{height:220px}.campaign-card{grid-template-columns:125px 1fr;gap:16px}.campaign-card .campaign-value{margin-left:18px}.campaign-value strong{font-size:30px}}

.campaign-crop-parti{aspect-ratio:600/178}.campaign-crop-parti img{width:118.833333%;left:-8.833333%;top:-7.865169%}.campaign-crop-brasile{aspect-ratio:600/300}.campaign-crop-brasile img{width:156.333333%;left:-22.666667%;top:-11.333333%}.campaign-crop-costa{width:85%;max-width:520px;aspect-ratio:292/146}.campaign-crop-costa img{width:273.287671%;left:-103.082192%;top:-114.383562%}

.campaign-crop-brasile{max-width:520px}@media(max-width:760px){.campaign-crop-brasile{max-width:440px}.campaign-crop-costa{max-width:440px}}
/* Compact campaign strip: keep every promotion on one row. */
.campaigns{padding:24px 0 28px}.campaigns h2{font-size:21px;margin-bottom:16px}.campaign-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:stretch}.campaign-card{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:0 0 14px;border-radius:12px;min-width:0}.campaign-ad{height:140px;flex-shrink:0}.campaign-card .campaign-value{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 6px;margin:0 13px;padding:0;border:0}.campaign-value small{font-size:10px}.campaign-value strong{font-size:24px;line-height:1.1}.campaign-card>div:last-child{padding:0 13px;display:flex;flex-direction:column;flex:1}.campaign-card h3{font-size:16px;margin-bottom:6px}.campaign-card p{font-size:12px;line-height:1.4;margin-bottom:5px}.campaign-date{font-size:11px;margin:5px 0 8px}.campaign-link{font-size:12px;margin-top:auto}.campaign-crop-brasile,.campaign-crop-costa{max-width:280px}
@media(max-width:1000px){.campaign-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:270px;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:8px}.campaign-card{scroll-snap-align:start}.campaign-ad{height:135px}.campaign-crop-brasile,.campaign-crop-costa{max-width:270px}}

/* Keep the approved equal frames; zoom artwork within them. */
.campaign-card .campaign-ad{height:140px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.campaign-card .campaign-ad-crop{flex-shrink:0;max-width:none;width:max(100%,373.334px)}
.campaign-card .campaign-crop-parti{width:max(100%,471.911px)}
.campaign-card .campaign-crop-brasile{width:max(100%,280px)}
.campaign-card .campaign-ad:has(.campaign-crop-parti),.campaign-card .campaign-ad-egitto{justify-content:flex-end}
.campaign-card .campaign-ad>img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 40%}
@media(max-width:1000px){.campaign-card .campaign-ad{height:135px}.campaign-card .campaign-ad-crop{width:max(100%,360px)}.campaign-card .campaign-crop-parti{width:max(100%,455.057px)}.campaign-card .campaign-crop-brasile{width:max(100%,270px)}}

/* Fit both complete Alpitour banners inside the approved fixed frames. */
.campaign-card .campaign-ad-egitto .campaign-ad-crop,.campaign-card .campaign-crop-parti{width:100%;height:100%;aspect-ratio:auto;max-width:none}
.campaign-card .campaign-ad-egitto .campaign-ad-crop img{height:307.555556%;width:133.833333%;left:-11.5%;top:-44%}
.campaign-card .campaign-crop-parti img{height:107.865169%;width:118.833333%;left:-8.833333%;top:-7.865169%}

.campaign-card .campaign-ad>img.campaign-parti-art{object-fit:cover!important;object-position:center!important}

/* MSC campaign uses the same card frame, preserving the complete original artwork. */
.campaign-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.campaign-card .campaign-ad-msc{background:#000827}.campaign-card .campaign-ad-msc>img{object-fit:contain!important;object-position:center!important}@media(max-width:1000px){.campaign-grid{grid-template-columns:none}}

.campaign-card .campaign-ad-msc>img{object-fit:contain!important}.promo-detail-art:has(img[src*="msc-black-friday-2026-square"]){max-width:680px!important}

/* Wider promotion cards without increasing the image height. */
@media(min-width:1001px){
  .campaigns>.container{width:min(1440px,calc(100% - 48px))}
  .campaigns .campaign-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}

/* Centre the active promotions even when expired cards are hidden. */
.campaigns h2{text-align:center}
@media(min-width:1001px){
 .campaigns .campaign-grid{display:flex;justify-content:center;gap:14px}
 .campaigns .campaign-card{flex:0 1 300px}
}
