.home-promotions{margin-bottom:26px;border:1px solid #cde8f8;border-radius:24px;background:#f5fbff;overflow:hidden;box-shadow:0 7px 25px #16476506}
.promotion-heading{display:flex;justify-content:space-between;padding:15px 21px;color:#39728f;font-weight:750;font-size:13px;letter-spacing:.08em}
.promotion-slide{width:100%;display:flex;position:relative;align-items:center;min-height:190px;padding:0;border:0;background:linear-gradient(110deg,#e1f4ff,#f7fcff);text-align:left;color:#153f56;cursor:pointer;isolation:isolate}
.promotion-slide>img{display:block;width:46%;max-height:260px;height:230px;object-fit:contain;flex-shrink:0}
.promotion-copy{display:flex;flex-direction:column;gap:12px;padding:26px 30px;flex:1;min-width:0;overflow-wrap:anywhere}
.promotion-copy>strong{font-size:25px;line-height:1.3;letter-spacing:.015em}
.promotion-summary{font-size:15px;line-height:1.65;color:#52758b;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.promotion-detail-link{display:flex;align-items:center;gap:10px;color:#067db7;font-size:14px;font-weight:800;margin-top:5px}
.promotion-controls{display:flex;align-items:center;gap:8px;padding:5px 14px;background:white;border-top:1px solid #e1eff7}
.promotion-controls button{min-width:44px;min-height:44px;border:0;background:transparent;color:#36728f;cursor:pointer;border-radius:12px}
.promotion-controls button:hover{background:#e8f7ff}
.promotion-arrow{font-size:21px}
.promotion-dots{display:flex;flex:1;align-items:center;overflow-x:auto;min-width:0;justify-content:center}
.promotion-dots button{display:grid;place-items:center;flex-shrink:0}
.promotion-dots span{width:7px;height:7px;border-radius:100px;background:#bfd8e6}
.promotion-dots [aria-pressed=true] span{width:22px;background:#168ccc}
.promotion-controls .promotion-pause{font-size:13px;font-weight:750;padding:0 12px;white-space:nowrap}
.promotion-slide:focus-visible,.promotion-controls button:focus-visible,.pin-other-orders:focus-visible{outline:3px solid #0589cd;outline-offset:-4px}
.promotion-detail>img{width:100%;height:auto;max-height:400px;object-fit:contain;border-radius:16px;background:#edf8ff;margin-bottom:22px}
.promotion-full-content{white-space:pre-wrap;overflow-wrap:anywhere;color:#35536a;font-size:16px;line-height:1.85}
.promotion-external-link{margin-top:24px;gap:16px;display:inline-flex}
.home-pin-banner{margin:0 38px 24px;padding:20px 24px;background:linear-gradient(110deg,#e5f6ff,#f5fbff);border:1px solid #b7def4;border-radius:21px;display:flex;align-items:center;gap:24px;justify-content:space-between}
.pickup-pin-reminder{color:#164c6c}
.pin-reminder-eyebrow{color:#527a90;font-size:12px;line-height:1.5;margin:0 0 8px;overflow-wrap:anywhere}
.pin-reminder-heading{font-size:18px;line-height:1.5;display:block;letter-spacing:.02em}
.pin-reminder-digits{display:flex;gap:7px;margin:12px 0 8px}
.pin-reminder-digits>span{display:grid;place-items:center;min-width:40px;min-height:45px;background:#fff;border:1px solid #d0e8f5;border-radius:11px;color:#097faf;font-size:29px;line-height:1;font-weight:850;font-variant-numeric:tabular-nums;box-shadow:0 3px 8px #16719606}
.pickup-pin-reminder>p:last-child{font-size:13px;line-height:1.7;margin:6px 0 0;color:#527a90}
.pin-banner-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex-shrink:0}
.pin-other-orders{border:0;background:transparent;color:#1675a7;padding:9px 2px;min-height:44px;font-size:13px;cursor:pointer;line-height:1.5}
.pickup-pin-reminder.is-large{text-align:center;padding:12px 0 10px}
.is-large .pin-reminder-heading{font-size:23px}
.is-large .pin-reminder-eyebrow{margin-bottom:14px}
.is-large .pin-reminder-digits{justify-content:center;gap:12px;margin:25px 0 20px}
.is-large .pin-reminder-digits>span{min-width:62px;min-height:78px;font-size:47px;border-radius:17px}
.is-large>p:last-child{font-size:15px}
@media(max-width:700px){.home-promotions{border-radius:18px;margin-bottom:20px}.promotion-heading{padding:12px 16px;font-size:12px}.promotion-slide{min-height:160px}.promotion-slide>img{width:41%;height:180px}.promotion-copy{padding:19px 17px;gap:9px}.promotion-copy>strong{font-size:19px}.promotion-summary{font-size:13px;-webkit-line-clamp:2}.promotion-detail-link{font-size:13px;margin:0}.promotion-controls{gap:0;padding:3px 7px}.promotion-dots button{min-width:44px}.promotion-controls .promotion-pause{padding:0 8px;font-size:12px}.home-pin-banner{margin:0 18px 20px;padding:18px;align-items:flex-start;gap:12px;flex-wrap:wrap}.pin-banner-actions{width:100%;flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px 14px}.pin-banner-actions .btn{font-size:13px;min-height:44px}.pin-reminder-heading{font-size:17px}.pin-reminder-digits>span{min-width:39px;min-height:43px;font-size:28px}.is-large .pin-reminder-digits{gap:9px}.is-large .pin-reminder-digits>span{min-width:56px;min-height:72px;font-size:43px}}
@media(prefers-reduced-motion:reduce){.home-promotions *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@media(max-width:700px){.promotion-slide{flex-direction:column;align-items:stretch;min-height:0}.promotion-slide>img{width:100%;height:auto;max-height:none;aspect-ratio:3/1;object-fit:contain}.promotion-copy{padding:12px 16px;gap:7px}.promotion-copy>strong{font-size:18px}.promotion-summary{display:none}}

/* 乘客與司機首頁採較矮的橫式活動卡，保留輪播控制與完整活動詳情。 */
:is([data-portal="driver"],[data-portal="passenger"]) .home-promotions{margin-bottom:16px;border-radius:16px}
:is([data-portal="driver"],[data-portal="passenger"]) .promotion-heading{padding:7px 14px;font-size:11px}
:is([data-portal="driver"],[data-portal="passenger"]) .promotion-slide{min-height:0;flex-direction:row;align-items:center}
:is([data-portal="driver"],[data-portal="passenger"]) .promotion-slide>img{width:40%;height:130px;max-height:130px;aspect-ratio:auto;object-fit:contain}
:is([data-portal="driver"],[data-portal="passenger"]) .promotion-copy{padding:12px 16px;gap:7px}
:is([data-portal="driver"],[data-portal="passenger"]) .promotion-copy>strong{font-size:19px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
:is([data-portal="driver"],[data-portal="passenger"]) .promotion-summary{display:none}
:is([data-portal="driver"],[data-portal="passenger"]) .promotion-detail-link{font-size:12px;margin:0;gap:4px}
:is([data-portal="driver"],[data-portal="passenger"]) .promotion-controls{padding:0 7px;gap:0}
@media(max-width:700px){
    :is([data-portal="driver"],[data-portal="passenger"]) .promotion-slide>img{height:88px;max-height:88px}
    :is([data-portal="driver"],[data-portal="passenger"]) .promotion-copy{padding:10px 12px;gap:5px}
    :is([data-portal="driver"],[data-portal="passenger"]) .promotion-copy>strong{font-size:16px;line-height:1.4}
}

/* 首頁上車碼與抵達資訊採兩列；只限 banner，彈窗大碼保留原尺寸。 */
#home-pin-banner{margin:12px 38px 0;padding:12px 16px;border-radius:16px;gap:0;align-items:stretch}
#home-pin-banner .pin-banner-summary{display:flex;flex-direction:column;width:100%;min-width:0;gap:8px}
#home-pin-banner .pin-banner-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
#home-pin-banner .pin-banner-arrival{flex:1;min-width:0;color:#165778;overflow-wrap:anywhere}
#home-pin-banner .pin-banner-arrival strong{display:block;font-size:17px;font-weight:750;line-height:1.35}
#home-pin-banner .pin-banner-arrival.arrived strong{color:#267d63}
#home-pin-banner .pin-banner-arrival small{display:block;font-size:12px;line-height:1.35;color:#52768b;margin-top:2px}
#home-pin-banner .pin-banner-detail{flex:none;min-height:44px;min-width:76px;padding:8px 12px;font-size:13px;line-height:1.4;white-space:nowrap;border-radius:10px}
#home-pin-banner .pin-banner-code-row{display:flex;align-items:center;gap:8px;min-width:0}
#home-pin-banner .pin-banner-code-label{flex:none;font-size:12px;color:#416c83;line-height:1.4}
#home-pin-banner .pin-reminder-digits{flex:none;gap:5px;margin:0}
#home-pin-banner .pin-reminder-digits>span{width:32px;min-width:32px;height:36px;min-height:36px;font-size:25px;border-radius:8px}
#home-pin-banner .pin-banner-code-help{min-width:0;font-size:12px;line-height:1.45;color:#52768b;overflow-wrap:anywhere}
#home-pin-banner .pin-banner-missing{margin:0;font-size:12px;line-height:1.5;color:#52768b;overflow-wrap:anywhere}
#home-pin-banner .pin-other-orders{align-self:flex-start;min-height:44px;padding:4px 0;margin:0;text-align:left;max-width:100%;overflow-wrap:anywhere}
@media(max-width:700px){#home-pin-banner{margin:12px 18px 0;padding:10px 12px;flex-wrap:nowrap}}
@media(max-width:360px){#home-pin-banner .pin-banner-code-row{gap:6px}#home-pin-banner .pin-reminder-digits{gap:4px}#home-pin-banner .pin-reminder-digits>span{width:28px;min-width:28px}}
