.promotion-bundle { margin: 36px 0; padding: 28px; border: 1px solid #dae4f3; border-radius: 20px; background: #f0f4fe; color: #172438; }
.promotion-bundle[hidden] { display:none; }
.promotion-bundle { scroll-margin-top: 24px; }
.promotion-bundle:target { border-color: #598ee3; }
.promotion-bundle__required { display: block; color: #3567a7; font-size: 11px; font-weight: 600; }
.promotion-bundle__card--required { border-color: #598ee3; }
.promotion-bundle__header { display:flex; justify-content:space-between; gap:24px; align-items:flex-start; }
.promotion-bundle__header h2 { margin:8px 0 10px; font-size:26px; }
.promotion-bundle__header p { margin:0; line-height:1.6; }
.promotion-bundle__header > a { white-space:nowrap; color:#477dd0; font-size:14px; }
.promotion-bundle__eyebrow { color:#bd4f70; font-size:11px; font-weight:750; letter-spacing:.12em; }
.promotion-bundle__tiers { display:flex; flex-wrap:wrap; gap:8px; margin:24px 0 14px; }
.promotion-bundle__tiers button, .promotion-bundle__replace { border:1px solid #cbd9ef; background:white; border-radius:10px; padding:11px 16px; font:inherit; font-size:13px; cursor:pointer; color:#263c5b; }
.promotion-bundle__tiers button[aria-pressed="true"] { color:white; border-color:#598ee3; background:#598ee3; }
.promotion-bundle__rules { color:#57677e; font-size:13px; line-height:1.65; margin-bottom:20px; }
.promotion-bundle__items { display:grid; grid-template-columns:repeat(auto-fit,minmax(165px,1fr)); gap:12px; }
.promotion-bundle__card { display:flex; flex-direction:column; gap:10px; min-width:0; padding:16px; border-radius:14px; background:#fff; border:1px solid #e4e9f0; }
.promotion-bundle__card > a:first-child { display:flex; align-items:center; justify-content:center; height:150px; }
.promotion-bundle__card img { display:block; width:100%; height:150px; object-fit:contain; }
.promotion-bundle__card small { color:#6d788b; font-size:11px; min-height:28px; }
.promotion-bundle__name { color:inherit; font-size:14px; line-height:1.5; text-decoration:none; min-height:63px; overflow-wrap:anywhere; }
.promotion-bundle__price { margin-top:auto; display:flex; flex-direction:column; justify-content:flex-end; min-height:50px; gap:5px; }
.promotion-bundle__price strong { font-size:19px; }
.promotion-bundle del { color:#7f8997; font-size:13px; }
.promotion-bundle__replace { width:100%; color:#497dce; margin-top:4px; padding:10px 5px; }
.promotion-bundle__footer { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:24px; }
.promotion-bundle__footer > div > span { color:#57677e; font-size:12px; }
.promotion-bundle__sum { display:flex; flex-wrap:wrap; align-items:baseline; gap:14px; margin:6px 0; }
.promotion-bundle__sum strong { font-size:30px; }
.promotion-bundle__footer p { color:#b44d6a; margin:4px 0; font-size:13px; }
.promotion-bundle__footer .button-primary { min-width:250px; border:0; cursor:pointer; }
.promotion-bundle button:disabled { opacity:.55; cursor:wait; }
.promotion-bundle__status { font-size:12px; color:#57677e; min-height:18px; line-height:1.5; margin:18px 0 0; }
.promotion-bundle__dialog { width:min(960px,calc(100% - 24px)); max-height:90dvh; padding:24px; border:0; border-radius:18px; color:#172438; }
.promotion-bundle__dialog::backdrop { background:rgb(15 28 47 / .6); }
.promotion-bundle__dialog header { display:flex; align-items:center; justify-content:space-between; gap:15px; }
.promotion-bundle__dialog h3 { font-size:22px; margin:0; }
.promotion-bundle__dialog header button { padding:12px; border:0; background:#eef3fc; border-radius:50%; cursor:pointer; }
.promotion-bundle__dialog > p { font-size:13px; color:#647287; line-height:1.5; }
.promotion-bundle__filters { display:flex; gap:14px; margin:20px 0; }
.promotion-bundle__filters label { display:flex; flex:1; flex-direction:column; gap:8px; font-size:12px; min-width:0; }
.promotion-bundle__filters input,.promotion-bundle__filters select { width:100%; padding:12px; border:1px solid #cbd9ef; border-radius:9px; background:white; font:inherit; font-size:14px; }
.promotion-bundle__choices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.promotion-bundle__choices .button-primary { border:0; cursor:pointer; }
.bundle-cart-note { padding:18px 24px; margin-bottom:24px; border-radius:14px; background:#eef3fc; font-size:14px; line-height:1.6; }
.bundle-cart-note button { border:0; padding:0; background:none; color:#477dd0; text-decoration:underline; font:inherit; cursor:pointer; }
.cart-line__total del,.cart-line__total small { display:block; color:#7f8997; }
.checkout-summary [hidden] { display:none !important; }
@media(max-width:700px) {
 .promotion-bundle { padding:16px; margin:24px 0; }
 .promotion-bundle__header,.promotion-bundle__footer { flex-direction:column; gap:16px; }
 .promotion-bundle__header h2 { font-size:22px; }
 .promotion-bundle__items { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .promotion-bundle__card { padding:10px; gap:8px; }
 .promotion-bundle__card > a:first-child,.promotion-bundle__card img { height:110px; }
 .promotion-bundle__name { font-size:12px; min-height:72px; }
 .promotion-bundle__price strong { font-size:16px; }
 .promotion-bundle__footer .button-primary { width:100%; min-width:0; }
 .promotion-bundle__tiers button { flex:1 1 40%; padding:11px 6px; }
 .promotion-bundle__dialog { padding:16px; }
 .promotion-bundle__dialog h3 { font-size:18px; }
 .promotion-bundle__choices { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .promotion-bundle__filters { flex-direction:column; }
}
