.promotions-hub { --promo-ink:#17252c; --promo-gold:#e7c879; color:var(--promo-ink); }
.promotion-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:2px 0 28px; }
.promotion-tabs button { display:flex; align-items:center; gap:10px; padding:16px 13px; min-height:90px; background:#f2f5f4; color:#465c5d; border:1px solid #e0e7e4; border-radius:14px; text-align:left; cursor:pointer; font-size:13px; font-weight:650; line-height:1.4; }
.promotion-tabs button[aria-selected="true"] { background:#173f38; border-color:#173f38; color:#fff; box-shadow:0 5px 15px #163d3714; }
.promotion-tabs button:hover:not([aria-selected="true"]) { background:#e6ede8; }
.promotion-tabs button > span:nth-child(2) { flex:1; }
.promotion-tabs b { display:grid; place-items:center; border-radius:8px; min-width:25px; height:25px; padding:0 5px; background:#e4ebe6; color:#355449; font-size:12px; font-variant-numeric:tabular-nums; }
.promotion-tabs [aria-selected="true"] b { color:#f6dfa5; background:#ffffff14; }
.promotion-tab-icon { display:flex; flex:0 0 26px; width:26px; height:26px; }
.promotion-tab-icon svg { width:100%; height:100%; }
.promotion-tabs button:focus-visible, .promotion-details summary:focus-visible, .promotion-card a:focus-visible { outline:3px solid #a97716; outline-offset:4px; }
.promotion-section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; }
.promotion-section-head h3 { margin:0 0 7px; font-size:23px; letter-spacing:-.4px; }
.promotion-section-head p { margin:0; color:#506459; font-size:16px; line-height:1.5; }
.promotion-section-head > span { flex-shrink:0; margin-top:5px; color:#6b7c77; font-size:12px; }
.promotion-result-count { margin:0 0 14px; color:#506459; font-size:14px; }
.promotion-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:20px; }
.promotion-grid-featured { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; }
.promotion-card { display:flex; flex-direction:column; min-width:0; padding:24px; border:2px solid #c1d1c5; border-radius:20px; background:#fff; overflow:hidden; box-shadow:0 8px 28px #183c3010; }
.promotion-card-featured { padding:0; }
.promotion-artwork { display:flex; align-items:center; justify-content:center; aspect-ratio:3/2; background:#f1eee5; border-bottom:1px solid #e2e6df; overflow:hidden; }
.promotion-artwork img { display:block; width:100%; height:100%; object-fit:cover; }
.promotion-featured-body { display:flex; flex:1; flex-direction:column; padding:26px; }
.promotion-card-featured .promotion-label { align-self:flex-start; background:#eaf0e8; border:1px solid #d7e3d5; color:#315343; font-size:13px; text-transform:none; letter-spacing:0; padding:7px 11px; border-radius:7px; margin-bottom:16px; }
.promotion-card-top { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:22px; }
.promotion-icon { display:flex; align-items:center; justify-content:center; flex:0 0 56px; width:56px; height:56px; border-radius:16px; background:#f3e7c9; color:#78602b; padding:12px; box-sizing:border-box; }
.promotion-icon svg { display:block; width:32px; height:32px; }
.promotion-tone-laptop .promotion-icon, .promotion-tone-home .promotion-icon { background:#dfebe1; color:#315b47; }
.promotion-label { color:#6b7773; text-align:right; font-size:11px; font-weight:700; letter-spacing:.7px; text-transform:uppercase; }
.promotion-reward { display:flex; flex-direction:column; gap:5px; min-height:85px; margin-bottom:18px; }
.promotion-reward strong { font-size:25px; line-height:1.18; letter-spacing:-.7px; overflow-wrap:anywhere; }
.promotion-card-featured .promotion-reward { min-height:94px; margin-bottom:16px; gap:8px; }
.promotion-card-featured .promotion-reward strong { color:#143e33; font-size:clamp(34px,3.3vw,46px); letter-spacing:-1px; }
.promotion-card-featured .promotion-reward > span { color:#435c52; font-size:16px; }
.promotion-reward > span { font-size:12px; color:#73817c; }
.promotion-card h3 { margin:0 0 12px; font-size:18px; line-height:1.4; }
.promotion-card-featured h3 { color:#172b26; font-size:24px; min-height:66px; line-height:1.35; margin-bottom:14px; }
.promotion-card-featured .promotion-projects { min-height:34px; align-content:start; margin-bottom:16px; }
.promotion-card-featured .promotion-projects span { color:#254b39; background:#edf2e4; font-size:15px; padding:7px 11px; }
.promotion-card-featured .promotion-summary { color:#293f35; font-size:17px; line-height:1.6; margin:0 0 22px; }
.promotion-card-featured .promotion-facts { gap:12px; margin:0 0 24px; }
.promotion-card-featured .promotion-facts > div { display:flex; gap:12px; padding:15px; border:1px solid #dde5dd; background:#f6f8f3; border-radius:12px; }
.promotion-card-featured .promotion-facts dl { margin:0; }
.promotion-card-featured .promotion-facts dt { color:#4b6256; font-size:14px; margin:0 0 5px; }
.promotion-card-featured .promotion-facts dd { color:#1c3c2d; font-size:16px; font-weight:650; line-height:1.5; }
.promotion-step { display:grid; flex:0 0 30px; height:30px; width:30px; place-items:center; border-radius:8px; color:#5b4928; background:#efe3c8; font-size:13px; font-weight:750; margin-top:2px; }
.promotion-card-featured .promotion-card-footer { color:#405c4d; font-size:14px; padding-top:18px; }
.promotion-tier-table { width:100%; border-collapse:separate; border-spacing:0; overflow:hidden; border:1px solid #d4e0d5; border-radius:12px; margin:0 0 24px; font-size:16px; table-layout:fixed; }
.promotion-tier-table caption { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.promotion-tier-table th, .promotion-tier-table td { padding:13px 15px; text-align:left; border-bottom:1px solid #e0e7de; }
.promotion-tier-table thead th { background:#174538; color:#fff; font-size:14px; font-weight:650; }
.promotion-tier-table thead th:first-child { width:58%; }
.promotion-tier-table tbody th { width:55%; font-weight:500; color:#243d30; background:#fafbf8; }
.promotion-tier-table td { color:#173e2d; background:#eff5e8; font-weight:750; white-space:nowrap; text-align:right; font-variant-numeric:tabular-nums; }
.promotion-tier-table thead th:last-child { text-align:right; }
.promotion-tier-table tr:last-child > * { border-bottom:0; }
.promotion-location { font-size:12px; color:#70817d; margin-bottom:14px; }
.promotion-projects { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; }
.promotion-projects span { padding:6px 10px; border-radius:7px; background:#e9efdf; color:#435c3e; font-size:12px; font-weight:650; }
.promotion-summary { margin:0 0 24px; color:#5e7172; font-size:15px; line-height:1.6; }
.promotion-facts { display:grid; gap:12px; margin:0 0 20px; }
.promotion-facts > div { padding-top:12px; border-top:1px solid #e6eae1; }
.promotion-facts dt { color:#71817c; font-size:11px; margin:0 0 4px; }
.promotion-facts dd { margin:0; color:#314e46; font-size:13px; line-height:1.5; font-weight:600; overflow-wrap:anywhere; }
.promotion-details { margin:6px 0 16px; }
.promotion-details summary { display:flex; align-items:center; justify-content:space-between; gap:12px; list-style:none; padding:11px 13px; border-radius:9px; background:#edf2ed; font-size:13px; color:#315748; font-weight:650; cursor:pointer; }
.promotion-details summary::-webkit-details-marker { display:none; }
.promotion-details summary > span { display:grid; place-items:center; flex:0 0 22px; height:22px; width:22px; font-size:19px; line-height:1; }
.promotion-details[open] summary > span { transform:rotate(45deg); }
.promotion-details > div { padding:3px 1px 0; }
.promotion-details p { color:#4f6463; font-size:13px; line-height:1.65; overflow-wrap:anywhere; }
.promotion-business-note { padding:12px; border-left:3px solid #d6b86b; background:#fbf5e6; border-radius:0 6px 6px 0; }
.promotion-card-footer { margin-top:auto; padding-top:16px; border-top:1px solid #e6eae3; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; color:#75847d; font-size:11px; }
.promotion-card-footer a { color:#3f6353; font-weight:650; text-decoration:none; display:inline-flex; align-items:center; gap:7px; min-height:28px; }
.promotion-search-row { display:grid; grid-template-columns:minmax(220px,1fr) 1fr; align-items:end; gap:24px; margin:0 0 18px; padding:18px; border-radius:14px; background:#f4f6f2; }
.promotion-search-row label { display:grid; gap:8px; font-size:14px; font-weight:650; color:#355343; }
.promotion-search-row input { width:100%; box-sizing:border-box; min-height:44px; padding:10px 13px; border:1px solid #d7e0d7; border-radius:9px; background:#fff; font:inherit; font-size:15px; }
.promotion-search-row p { margin:0; color:#506459; font-size:14px; line-height:1.65; }
.promotion-card-developer { padding:0; }
.promotion-developer-header { display:flex; align-items:flex-start; gap:16px; min-height:134px; padding:24px; border-bottom:1px solid #d4dfd3; background:#f3f5eb; }
.promotion-developer-header > div { min-width:0; }
.promotion-card-developer .promotion-icon { background:#efe2bd; color:#725620; border:1px solid #e0cd98; }
.promotion-card-developer .promotion-label { display:block; color:#48613f; text-align:left; font-size:12px; line-height:1.4; margin:0 0 7px; }
.promotion-card-developer h3 { color:#173e32; font-size:24px; line-height:1.3; margin:0 0 7px; overflow-wrap:anywhere; }
.promotion-card-developer .promotion-location { color:#4e6758; font-size:14px; line-height:1.5; margin:0; }
.promotion-developer-body { display:flex; flex:1; flex-direction:column; min-width:0; padding:24px; }
.promotion-card-developer .promotion-reward { min-height:100px; padding:18px; margin:0 0 20px; border:1px solid #d0dfcf; border-radius:12px; background:#eef4e8; gap:8px; }
.promotion-card-developer .promotion-reward strong { color:#173f31; font-size:28px; line-height:1.25; }
.promotion-card-developer .promotion-reward > span { color:#425e4d; font-size:15px; line-height:1.4; }
.promotion-card-developer .promotion-summary { color:#263f33; font-size:16px; line-height:1.65; margin:0 0 20px; }
.promotion-card-developer .promotion-business-note { border:1px solid #e2d09b; border-left:4px solid #bd983e; border-radius:10px; padding:14px 16px; margin:0 0 20px; background:#fcf6e6; color:#644d1d; }
.promotion-card-developer .promotion-business-note strong { font-size:14px; }
.promotion-card-developer .promotion-business-note p { margin:6px 0 0; font-size:15px; line-height:1.6; }
.promotion-card-developer .promotion-details { margin: auto 0 18px; }
.promotion-card-developer .promotion-details summary { min-height:48px; padding:12px 15px; border:1px solid #cad9ca; border-radius:10px; background:#f2f6ef; color:#234a37; font-size:16px; }
.promotion-card-developer .promotion-details summary > span { width:26px; height:26px; flex-basis:26px; border-radius:7px; background:#e2ebdd; }
.promotion-card-developer .promotion-details summary svg { display:block; width:20px; height:20px; }
.promotion-card-developer .promotion-details[open] summary > span { transform:rotate(180deg); }
.promotion-card-developer .promotion-facts { margin:14px 0 0; gap:10px; }
.promotion-card-developer .promotion-facts > div { padding:12px 14px; border:1px solid #dde5db; border-radius:9px; background:#f8faf5; }
.promotion-card-developer .promotion-facts dt { color:#4b6454; font-size:14px; margin-bottom:6px; }
.promotion-card-developer .promotion-facts dd { color:#203e2d; font-size:16px; font-weight:600; line-height:1.55; }
.promotion-card-developer .promotion-card-footer { margin-top:0; padding-top:16px; color:#48614f; font-size:14px; line-height:1.5; gap:12px; }
.promotion-card-developer .promotion-card-footer > span { flex:1 1 120px; }
.promotion-card-developer .promotion-card-footer a { justify-content:center; gap:10px; min-height:44px; padding:10px 14px; border:1px solid #e3cb8e; border-radius:10px; background:#f6eacb; color:#634b16; font-size:14px; }
.promotion-card-developer .promotion-card-footer a:hover { background:#efdcac; }
.promotion-card-developer .promotion-card-footer a > span { display:grid; place-items:center; width:20px; height:20px; }
.promotion-empty { padding:32px 20px; border:1px dashed #cddacc; border-radius:14px; text-align:center; }
.promotion-empty h3 { font-size:18px; }
@media(max-width:1250px) { .promotion-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); } .promotion-tabs button { min-height:70px; } .promotion-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:650px) {
  .promotion-tabs { gap:8px; margin-bottom:22px; }
  .promotion-tabs button { flex-wrap:wrap; align-content:center; padding:12px; gap:8px; min-height:112px; font-size:12px; }
  .promotion-tabs button > span:nth-child(2) { flex:1 1 calc(100% - 36px); order:3; }
  .promotion-tabs b { margin-left:auto; }
  .promotion-tab-icon { flex-basis:24px; width:24px; height:24px; }
  .promotion-section-head { flex-direction:column; gap:8px; }
  .promotion-section-head h3 { font-size:21px; }
  .promotion-section-head > span { margin:0; }
  .promotion-grid { grid-template-columns:minmax(0,1fr); gap:14px; }
  .promotion-card { padding:22px; }
  .promotion-card-featured { padding:0; }
  .promotion-featured-body { padding:20px; }
  .promotion-card-featured h3 { min-height:0; font-size:23px; }
  .promotion-card-featured .promotion-reward { min-height:0; }
  .promotion-card-featured .promotion-summary { font-size:16px; }
  .promotion-card-featured .promotion-facts > div { padding:12px; gap:10px; }
  .promotion-tier-table th, .promotion-tier-table td { padding:13px 10px; font-size:15px; }
  .promotion-card-top { margin-bottom:20px; }
  .promotion-card-featured .promotion-reward strong { font-size:38px; }
  .promotion-card-developer { padding:0; }
  .promotion-developer-header { padding:20px; gap:12px; min-height:0; }
  .promotion-developer-body { padding:20px; }
  .promotion-card-developer .promotion-icon { flex-basis:46px; width:46px; height:46px; padding:9px; border-radius:12px; }
  .promotion-card-developer .promotion-icon svg { width:28px; height:28px; }
  .promotion-card-developer h3 { font-size:22px; }
  .promotion-card-developer .promotion-reward { min-height:0; padding:15px; }
  .promotion-card-developer .promotion-reward strong { font-size:26px; }
  .promotion-card-developer .promotion-card-footer { align-items:stretch; flex-direction:column; }
  .promotion-card-developer .promotion-card-footer > span { flex:initial; }
  .promotion-search-row { grid-template-columns:minmax(0,1fr); padding:14px; gap:13px; }
  .promotion-search-row input { font-size:16px; }
}
