/* Shared, scoped promotion cards. They occupy layout space, never cover the tools. */
.pm-promo-rail { width:100%; min-width:0; scroll-margin-top:90px; font-family:system-ui,-apple-system,"Noto Sans TC","Microsoft JhengHei",sans-serif; }
.pm-promo-rail * { box-sizing:border-box; }
.pm-promo-heading { display:flex; justify-content:space-between; align-items:center; margin:0 0 10px; color:#64748b; font-size:12px; font-weight:700; letter-spacing:.08em; }
.pm-promo-heading span:last-child { font-size:11px; font-weight:500; letter-spacing:0; }
.pm-promo-cards { display:grid; gap:16px; }
.pm-promo-card { position:relative; overflow:hidden; padding:22px; border:1px solid; border-radius:20px; }
.pm-promo-card h2 { position:relative; margin:14px 0 10px; font-size:25px; line-height:1.4; font-weight:800; letter-spacing:-.035em; }
.pm-promo-card p { margin:0; }
.pm-promo-kicker { position:relative; display:flex; align-items:center; gap:7px; font-size:11px; font-weight:750; letter-spacing:.04em; }
.pm-promo-stars { border-color:#eadab5; background:#fff9eb; color:#3d3020; }
.pm-promo-stars h2 { color:#3d3020; }
.pm-promo-stars .pm-promo-kicker { color:#8a611d; }
.pm-promo-star-art { position:absolute; top:43px; right:14px; color:#edbd5a; transform:rotate(12deg); opacity:.45; }
.pm-promo-star-art > svg:first-child { fill:#f7cf7c; }
.pm-promo-star-art > svg:last-child { position:absolute; right:-4px; bottom:-6px; fill:#fff9eb; }
.pm-promo-card .pm-promo-copy { position:relative; font-size:13px; line-height:1.8; margin-bottom:17px; }
.pm-promo-button { display:flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:10px 12px; border-radius:11px; font-size:14px; font-weight:800; text-decoration:none; transition:background .15s; }
.pm-promo-button-stars { color:#fff!important; background:#1d4ed8; }
.pm-promo-button-stars:hover { background:#1e40af; }
.pm-promo-card .pm-promo-note { color:#6a583b; font-size:12px; line-height:1.7; margin-top:11px; }
.pm-promo-store { display:inline-flex; align-items:center; gap:4px; min-height:44px; color:#765118!important; font-size:12px; font-weight:650; text-decoration:underline; text-underline-offset:3px; }
.pm-promo-card .pm-promo-fine { color:#786647; font-size:11px; line-height:1.6; }
.pm-promo-travel { border-color:#244a59; background:#102d3a; color:#e0edf0; }
.pm-promo-travel h2 { color:#fff; }
.pm-promo-travel .pm-promo-kicker { color:#9dd1d6; }
.pm-promo-travel-art { position:absolute; right:16px; top:45px; display:flex; flex-direction:column; align-items:center; gap:10px; color:#83bac0; opacity:.3; transform:rotate(-12deg); }
.pm-promo-travel-art span { border:1px solid currentColor; border-radius:4px; padding:3px 5px; font-size:9px; letter-spacing:.15em; }
.pm-promo-offers { display:grid; gap:9px; }
.pm-promo-merchant { padding:15px; border:1px solid #426270; border-radius:14px; background:#163643; min-width:0; }
.pm-promo-merchant h3 { display:flex; align-items:center; gap:8px; margin:0 0 8px; color:#fff; font-size:17px; font-weight:800; }
.pm-promo-merchant h3 svg { color:#eac98c; flex-shrink:0; }
.pm-promo-card .pm-promo-intro { color:#c4dbe1; font-size:12px; line-height:1.75; }
.pm-promo-deal { margin:13px 0; padding-top:12px; border-top:1px solid #426270; }
.pm-promo-deal:not([data-pm-current]) { display:none; }
.pm-promo-badge { display:inline-block; padding:4px 7px; border-radius:5px; background:#345258; color:#f5ddb0; font-size:10px; font-weight:700; }
.pm-promo-savings { display:block; margin:8px 0; color:#fff1cb; font-size:20px; line-height:1.45; font-weight:800; }
.pm-promo-deal p { color:#c4dbe1; font-size:12px; line-height:1.75; }
.pm-promo-terms { margin:6px 0; color:#c4dbe1; font-size:12px; line-height:1.75; }
.pm-promo-terms summary { min-height:36px; padding:7px 0; cursor:pointer; color:#e3eff1; }
.pm-promo-terms summary:focus-visible { outline:3px solid #e7ad3e; outline-offset:3px; }
.pm-promo-terms a { color:#e7d3a6; text-decoration:underline; }
.pm-promo-deal-cta { display:flex; justify-content:space-between; align-items:center; gap:5px; min-height:44px; padding:10px; border-radius:8px; color:#193441!important; background:#f4d694; font-size:12px; font-weight:750; text-decoration:none; }
.pm-promo-deal-cta:hover { background:#ffe7b2; }
.pm-promo-code { display:block; margin:8px 0; padding:9px 10px; border:1px dashed #8aaeb6; border-radius:7px; color:#fff1cb; font-size:16px; letter-spacing:.04em; font-weight:700; user-select:all; overflow-wrap:anywhere; }
.pm-promo-deal .pm-promo-checked { margin-top:8px; color:#b5cbd1; font-size:10px; }
.pm-promo-deal .pm-promo-deadline { color:#f5ddb0; font-size:11px; }
.pm-promo-merchant > .pm-promo-offer { margin-top:12px; padding:9px; }
.pm-promo-merchant .pm-promo-offer strong { font-size:12px; }
.pm-promo-merchant .pm-promo-offer small { font-size:11px; }
.pm-promo-offer { display:flex; align-items:center; gap:10px; min-height:64px; padding:10px 12px; border:1px solid #426270; border-radius:11px; color:#f4fbfc!important; background:#1b3b49; text-decoration:none; transition:background .15s,border-color .15s; }
.pm-promo-offer:hover { background:#264f5c; border-color:#7bb4bf; }
.pm-promo-offer > svg:first-child { color:#eac98c; flex-shrink:0; }
.pm-promo-offer > svg:last-child { margin-left:auto; flex-shrink:0; }
.pm-promo-offer strong { display:block; font-size:14px; font-weight:750; line-height:1.5; }
.pm-promo-offer small { display:block; color:#b9d3db; font-size:12px; line-height:1.5; }
.pm-promo-guide { display:flex; align-items:center; justify-content:space-between; gap:4px; min-height:44px; margin-top:7px; color:#b6dde3!important; font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.pm-promo-card .pm-promo-disclosure { padding-top:10px; border-top:1px solid #365564; color:#b5cbd1; font-size:11px; line-height:1.7; }
.pm-promo-rail a:focus-visible { outline:3px solid #e7ad3e; outline-offset:4px; }
.pm-app-main { max-width:1600px; }
.pm-workspace { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; }
.pm-workspace > [aria-label="快捷側邊導覽"] { width:100%; }
.pm-promo-mobile-shortcut { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:44px; padding:10px 14px; border:1px solid #e2e8f0; border-radius:12px; background:white; color:#475569; font-size:13px; font-weight:650; text-decoration:none; }
.pm-article-layout { width:100%; }
.pm-article-layout > .pm-promo-rail { max-width:736px; margin:24px auto 40px; padding:0 16px; }
@media (min-width:640px) and (max-width:1279px) { .pm-promo-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1024px) { .pm-workspace { grid-template-columns:240px minmax(0,1fr); } .pm-workspace > .pm-promo-rail { grid-column:2; } }
@media (min-width:1280px) {
  .pm-workspace { grid-template-columns:220px minmax(0,1fr) 320px; }
  .pm-workspace > .pm-promo-rail { grid-column:3; grid-row:1; }
  .pm-promo-mobile-shortcut { display:none; }
  .pm-article-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:32px; max-width:1168px; padding:0 16px; margin:auto; align-items:start; }
  .pm-article-layout > main { min-width:0; width:100%; margin-left:0; margin-right:0; }
  .pm-article-layout > .pm-promo-rail { padding:0; margin-top:30px; }
}
@media (min-width:1536px) { .pm-workspace { grid-template-columns:256px minmax(0,1fr) 320px; } }
@media print { .pm-promo-rail,.pm-promo-mobile-shortcut { display:none!important; } .pm-workspace,.pm-article-layout { display:block; max-width:none; padding:0; } }
