/* ===== IV2UI 互動元件組（精緻版：toast / loading / modal / #loader 覆蓋） ===== */
:root{
  --iv2u-navy:#1e2b4d; --iv2u-navy-2:#2a3a63; --iv2u-ink:#19202e;
  --iv2u-text:#1f2736; --iv2u-sub:#5e6678; --iv2u-line:#e7eaf1; --iv2u-bg:#ffffff;
  --iv2u-ok:#15936a;  --iv2u-ok-s:#e7f6ef;
  --iv2u-err:#d23b39; --iv2u-err-s:#fdecea;
  --iv2u-warn:#f5c400;--iv2u-warn-s:#fff8de;
  --iv2u-info:#2563c9;--iv2u-info-s:#e9f0fd;
  --iv2u-r:18px; --iv2u-r-s:13px;
  --iv2u-e1:0 1px 2px rgba(20,28,50,.06), 0 6px 16px rgba(20,28,50,.09);
  --iv2u-e2:0 2px 6px rgba(20,28,50,.08), 0 16px 34px rgba(20,28,50,.13), 0 34px 70px rgba(20,28,50,.13);
  --iv2u-spring:cubic-bezier(.22,1,.36,1);
  --iv2u-out:cubic-bezier(.4,0,.2,1);
}

/* ---------- toast（左側漸層彩條 + 漸層圖示獎章 + 淡色暈染） ---------- */
#iv2u-toast-root{position:fixed;top:12vh;left:50%;transform:translateX(-50%);z-index:2147483600;display:flex;flex-direction:column;gap:14px;align-items:center;pointer-events:none;width:max-content;max-width:92vw;}
.iv2u-toast{position:relative;overflow:hidden;pointer-events:auto;display:flex;align-items:center;gap:15px;min-width:330px;max-width:92vw;padding:18px 22px 19px 26px;border-radius:15px;background:linear-gradient(100deg, var(--ttint,#f4f7fb), #fff 46%);color:var(--iv2u-text);font:500 1.14rem/1.55 "Noto Sans TC",sans-serif;box-shadow:var(--iv2u-e1);border:1px solid var(--iv2u-line);opacity:0;transform:translateY(-16px) scale(.95);transition:opacity .36s var(--iv2u-spring),transform .36s var(--iv2u-spring),box-shadow .22s;cursor:default;}
.iv2u-toast::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg, var(--tc2,#3f86e6), var(--tc,#2563c9));}
.iv2u-toast.is-in{opacity:1;transform:none;}
.iv2u-toast.is-in:hover{box-shadow:var(--iv2u-e2);}
.iv2u-toast.is-out{opacity:0;transform:translateY(-10px) scale(.97);}
.iv2u-ti{flex-shrink:0;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;color:#fff;background:linear-gradient(140deg, var(--tc2,#3f86e6), var(--tc,#2563c9));box-shadow:0 6px 14px -3px var(--tc,#2563c9);}
.iv2u-ti svg{width:20px;height:20px;}
.iv2u-tm{padding-right:14px;font-size:2rem;line-height:1.3;font-weight:600;word-break:break-word;}
.iv2u-toast.t-error .iv2u-tm{font-weight:700;color:#c1322f;}
.iv2u-toast.t-success{--tc:#15936a;--tc2:#27b083;--ttint:#eff9f4;}
.iv2u-toast.t-error{--tc:#d23b39;--tc2:#ec5f57;--ttint:#fdf1f0;}
.iv2u-toast.t-warn{--tc:#f5c400;--tc2:#ffdf45;--ttint:#fff8de;}
.iv2u-toast.t-warn .iv2u-ti{color:#5a4600;}
.iv2u-toast.t-info{--tc:#2563c9;--tc2:#3f86e6;--ttint:#eff5fe;}
.iv2u-tx{position:absolute;top:9px;right:9px;width:22px;height:22px;border:0;background:transparent;color:var(--iv2u-sub);border-radius:7px;display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .16s,background .16s,color .16s;}
.iv2u-toast:hover .iv2u-tx,.iv2u-tx:focus-visible{opacity:1;}
.iv2u-tx:hover{background:rgba(20,28,50,.07);color:var(--iv2u-text);}
.iv2u-tx:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(37,99,201,.3);}
.iv2u-tx svg{width:13px;height:13px;}
.iv2u-tbar{position:absolute;left:0;bottom:0;height:3px;width:100%;transform-origin:left;background:var(--tc,#2563c9);opacity:.7;}

/* ---------- loading（漸層圓弧 + 尾端散點 spinner，仿 dribbble 彗星尾） ---------- */
#iv2u-loading-root{position:fixed;inset:0;z-index:2147483500;display:flex;flex-direction:column;gap:18px;align-items:center;justify-content:center;background:rgba(15,20,34,.64);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:opacity .3s var(--iv2u-out),visibility .3s;}
#iv2u-loading-root.is-on{opacity:1;visibility:visible;}
.iv2u-arc-spin{width:82px;height:82px;}
.iv2u-arc-spin svg{display:block;width:100%;height:100%;overflow:visible;}
/* 柔藍投影放在「不旋轉」的容器上，固定朝下（仿 dribbble 地面陰影，不隨彗星轉動） */
.iv2u-arc-spin svg,.iv2u-loader-spin svg{filter:drop-shadow(0 4px 9px rgba(80,110,235,.38));}
/* 彗星本體：弧 path（頭藍尾青漸層）+ 兩顆遞減散點，整組等速旋轉一圈 */
.iv2u-comet{transform-box:view-box;transform-origin:32px 32px;animation:iv2uCometSpin 1.2s linear infinite;}
.iv2u-comet-arc{stroke:url(#iv2uCometGrad);}
.iv2u-loader-arc{stroke:url(#iv2uLoaderGrad);}
.iv2u-comet-arc,.iv2u-loader-arc{fill:none;stroke-width:6.6;stroke-linecap:round;}
.iv2u-comet-d{stroke:none;}
.iv2u-comet-d1{fill:#2bc6cd;opacity:.92;}
.iv2u-comet-d2{fill:#27d3c9;opacity:.6;}
.iv2u-loading-meta{display:flex;flex-direction:column;align-items:center;gap:8px;}
.iv2u-loading-brand{font:700 1.15rem/1 "Noto Sans TC",sans-serif;letter-spacing:.34em;text-indent:.34em;color:#dfe9ff;text-shadow:0 1px 8px rgba(8,12,24,.5);}
.iv2u-loading-txt{color:#fff;font:600 1.45rem/1.45 "Noto Sans TC",sans-serif;letter-spacing:.04em;text-shadow:0 1px 8px rgba(8,12,24,.55);}
@keyframes iv2uSpin{to{transform:rotate(360deg);}}
@keyframes iv2uCometSpin{to{transform:rotate(360deg);}}

/* ---------- modal / alert / confirm ---------- */
#iv2u-modal-root{position:fixed;inset:0;z-index:2147483550;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;visibility:hidden;transition:opacity .3s var(--iv2u-out),visibility .3s;}
#iv2u-modal-root.is-on{opacity:1;visibility:visible;}
.iv2u-backdrop{position:absolute;inset:0;background:radial-gradient(130% 130% at 50% 0%, rgba(20,28,52,.40), rgba(11,15,28,.62));backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.iv2u-dialog{position:relative;width:100%;max-width:504px;max-height:86vh;overflow:auto;background:var(--iv2u-bg);border-radius:var(--iv2u-r);box-shadow:var(--iv2u-e2),inset 0 0 0 1px rgba(20,28,50,.04);transform:translateY(20px) scale(.94);font-size:16px;opacity:.5;transition:transform .42s var(--iv2u-spring),opacity .42s var(--iv2u-spring);}
#iv2u-modal-root.is-on .iv2u-dialog{transform:none;opacity:1;}
.iv2u-x{position:absolute;top:16px;right:16px;z-index:1;width:36px;height:36px;border:0;background:transparent;color:var(--iv2u-sub);border-radius:10px;display:grid;place-items:center;cursor:pointer;transition:background .15s,color .15s;}
.iv2u-x:hover{background:#f0f2f7;color:var(--iv2u-text);}
.iv2u-x:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(37,99,201,.3);}
.iv2u-x svg{width:20px;height:20px;}
/* 類型主題色（dt-* 由 JS 依 icon 加上；無類型則用 navy 中性） */
.iv2u-dialog{--dc:var(--iv2u-navy);--dc2:#36488f;--dtint:#f4f6fc;--dsoft:#eef1fa;--dhalo:rgba(40,56,110,.14);}
.iv2u-dialog.dt-success{--dc:#15936a;--dc2:#23ad80;--dtint:#eef8f3;--dsoft:#e0f3ea;--dhalo:rgba(21,147,106,.16);}
.iv2u-dialog.dt-error{--dc:#d23b39;--dc2:#ea5b53;--dtint:#fdf0ef;--dsoft:#fbe2e0;--dhalo:rgba(210,59,57,.16);}
.iv2u-dialog.dt-warn{--dc:#f5c400;--dc2:#ffdf45;--dtint:#fffae6;--dsoft:#fcefb8;--dhalo:rgba(245,196,0,.22);}
.iv2u-dialog.dt-info{--dc:#2563c9;--dc2:#3f86e6;--dtint:#eef4fe;--dsoft:#e0ebfc;--dhalo:rgba(37,99,201,.16);}
/* 檸檬黃為亮色，warn 的獎章圖示與主按鈕文字改深色以維持對比 */
.iv2u-dialog.dt-warn .iv2u-dlg-ic{color:#5a4600;}
.iv2u-dialog.dt-warn .iv2u-btn-primary{color:#4a3900;}
.iv2u-dialog-hd{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;padding:40px 36px 28px;background:linear-gradient(180deg, var(--dsoft), var(--dtint));}
.iv2u-dlg-ic{position:relative;flex-shrink:0;width:74px;height:74px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(140deg, var(--dc2), var(--dc));box-shadow:0 16px 32px -8px var(--dc), 0 0 0 7px #fff, 0 0 0 8px var(--dhalo);}
/* 柔光暈染：獎章外圈一圈淡彩光暈（中心透空不汙染獎章面） */
.iv2u-dlg-ic::before{content:"";position:absolute;left:50%;top:50%;width:190%;height:190%;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(closest-side, transparent 43%, var(--dhalo) 60%, transparent 82%);z-index:0;pointer-events:none;}
/* 脈動環：自獎章邊緣向外擴散淡出（仿聲納漣漪） */
.iv2u-dlg-ic::after{content:"";position:absolute;left:50%;top:50%;width:74px;height:74px;border-radius:50%;border:2px solid var(--dc);transform:translate(-50%,-50%);opacity:0;z-index:1;pointer-events:none;animation:iv2uHalo 2.6s var(--iv2u-out) infinite;}
.iv2u-dlg-ic svg{position:relative;z-index:2;width:37px;height:37px;}
@keyframes iv2uHalo{0%{transform:translate(-50%,-50%) scale(.92);opacity:.5;}62%{opacity:0;}100%{transform:translate(-50%,-50%) scale(1.85);opacity:0;}}
.iv2u-dlg-ttl{font:700 1.82rem/1.3 "Noto Sans TC",sans-serif;color:var(--iv2u-ink);letter-spacing:.005em;}
.iv2u-dialog-bd{padding:22px 40px 10px;font:400 1.5rem/1.6 "Noto Sans TC",sans-serif;color:var(--iv2u-sub);white-space:pre-line;text-align:center;}
.iv2u-dialog-ft{display:flex;gap:13px;padding:26px 36px 32px;}
.iv2u-dialog-ft .iv2u-btn{flex:1 1 0;min-width:120px;}

/* ---------- buttons ---------- */
.iv2u-btn{position:relative;appearance:none;border:1px solid transparent;cursor:pointer;padding:16px 28px;border-radius:13px;font:600 1.45rem/1 "Noto Sans TC",sans-serif;letter-spacing:.02em;transition:transform .16s var(--iv2u-out),box-shadow .2s,background .2s,border-color .2s;}
.iv2u-btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(37,99,201,.32);}
.iv2u-btn-primary{background:linear-gradient(180deg,var(--dc2,var(--iv2u-navy-2)),var(--dc,var(--iv2u-navy)));color:#fff;box-shadow:0 2px 6px -1px var(--dc,var(--iv2u-navy)),0 9px 20px -5px var(--dc,var(--iv2u-navy));}
.iv2u-btn-primary:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 3px 8px -1px var(--dc,var(--iv2u-navy)),0 13px 28px -6px var(--dc,var(--iv2u-navy));}
.iv2u-btn-primary:active{transform:translateY(0) scale(.985);box-shadow:0 2px 6px -1px var(--dc,var(--iv2u-navy));}
.iv2u-btn-ghost{background:#f3f5f9;color:var(--iv2u-text);border-color:var(--iv2u-line);}
.iv2u-btn-ghost:hover{background:#eaeef5;transform:translateY(-1px);}
.iv2u-btn-ghost:active{transform:translateY(0) scale(.985);}
body.iv2u-lock{overflow:hidden;}
.iv2u-btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none;filter:none;}

/* ---------- 推播公告（沉浸雜誌風：頂部全幅 hero 大圖 + 內文 + 圓點翻頁；蓋過 popup.css） ---------- */
/* 推播專用版型：body 去內距讓 hero 全幅貼邊、隱藏預設 footer（改用右上 X 關閉）、X 改白圖深底適配大圖 */
.iv2u-dialog.iv2u-has-notif .iv2u-dialog-bd{padding:0;white-space:normal;text-align:left;font-size:16px;}
.iv2u-dialog.iv2u-has-notif .iv2u-dialog-ft{display:none;}
.iv2u-dialog.iv2u-has-notif .iv2u-x{z-index:6;color:#fff;background:rgba(18,24,42,.34);}
.iv2u-dialog.iv2u-has-notif .iv2u-x:hover{color:#fff;background:rgba(18,24,42,.52);}

.iv2u-notif{font-family:"Noto Sans TC",sans-serif;color:var(--iv2u-text);display:flex;flex-direction:column;}

/* hero 大圖（背景圖由 JS 設定；無圖時退為品牌色細帶 is-noimg） */
.iv2u-notif-hero{position:relative;width:100%;aspect-ratio:16/9;background:#1e2b4d center/cover no-repeat;overflow:hidden;}
.iv2u-notif-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(11,15,28,0) 46%, rgba(11,15,28,.5) 100%);pointer-events:none;}
.iv2u-notif-hero.is-noimg{aspect-ratio:auto;height:76px;background:linear-gradient(120deg, var(--iv2u-navy), var(--iv2u-navy-2));}
.iv2u-notif-hero.is-noimg::after{display:none;}
/* 品牌 chip（左上，懸浮於 hero） */
.iv2u-notif-brand{position:absolute;left:16px;top:13px;z-index:2;max-width:calc(100% - 64px);display:inline-flex;align-items:center;padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 4px 14px rgba(20,28,50,.2);overflow:hidden;}
.iv2u-notif-hero.is-noimg .iv2u-notif-brand{background:rgba(255,255,255,.92);box-shadow:0 2px 8px rgba(0,0,0,.25);}
.iv2u-notif-brand img{display:block !important;height:26px !important;max-height:26px !important;width:auto !important;max-width:100% !important;object-fit:contain !important;}

/* 內文區 */
.iv2u-notif-body{padding:24px 34px 2px;}
.iv2u-notif #notificationContent{font-size:1.28rem;}
.iv2u-notif #notificationContent .notification-title{margin:0 0 8px !important;padding:0 !important;font:800 1.6rem/1.32 "Noto Sans TC",sans-serif !important;color:var(--iv2u-ink) !important;text-align:left !important;}
.iv2u-notif #notificationContent .notification-title::after{content:none !important;display:none !important;}
.iv2u-notif #notificationContent .notification-subtitle{margin:0 0 16px !important;padding:0 !important;font:600 1.35rem/1.45 "Noto Sans TC",sans-serif !important;color:var(--iv2u-navy) !important;text-align:left !important;letter-spacing:normal !important;}
.iv2u-notif #notificationContent .notification-subtitle::before{content:none !important;display:none !important;}
.iv2u-notif #notificationContent .push-content,.iv2u-notif #notificationContent .push-description{font:400 1.28rem/1.7 "Noto Sans TC",sans-serif !important;text-align:left;margin:0 0 12px !important;background:transparent !important;}
.iv2u-notif #notificationContent .push-content{color:var(--iv2u-text);}
.iv2u-notif #notificationContent .push-description{color:var(--iv2u-sub);}
.iv2u-notif #notificationContent .push-content p{margin:0 0 .7em;}
.iv2u-notif #notificationContent img,.iv2u-notif #notificationContent .img-fluid{max-width:100%;height:auto;border-radius:12px;margin:10px 0;display:block;}
.iv2u-notif #notificationContent .notification-thumbnail{display:none !important;} /* 縮圖已升級為 hero，內文不重複 */
/* 中和 popup.css 殘留：main.master 全站仍載入 popup.css，其 #notificationContent p{font-size:2.25rem} 等會穿透內文，需壓回新版尺寸（確保與 demo 一致） */
.iv2u-notif #notificationContent p{font-size:1.28rem !important;line-height:1.7 !important;margin:0 0 .7em !important;}
.iv2u-notif #notificationContent img,.iv2u-notif #notificationContent .img-fluid{margin:10px 0 !important;}
.iv2u-notif .link-container{display:flex;justify-content:flex-start;margin:16px 0 6px;}
.iv2u-notif .notification-link{display:inline-flex;align-items:center;gap:8px;padding:13px 26px !important;border-radius:13px !important;background:linear-gradient(180deg,var(--iv2u-navy-2),var(--iv2u-navy)) !important;color:#fff !important;font:600 1.32rem/1 "Noto Sans TC",sans-serif !important;text-decoration:none !important;border:0 !important;box-shadow:0 8px 20px -7px var(--iv2u-navy) !important;transition:filter .15s,transform .15s;}
.iv2u-notif .notification-link:hover{filter:brightness(1.1);transform:translateY(-1px);}

/* 底部控制列：圓點翻頁 + 一週內不再顯示 */
.iv2u-notif #notificationButtons{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:10px;padding:16px 34px 24px !important;background:transparent !important;border-top:1px solid var(--iv2u-line);}
.iv2u-notif-dots{display:flex;align-items:center;gap:9px;}
.iv2u-notif-dot{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:var(--iv2u-line);cursor:pointer;transition:background .2s,transform .2s,width .2s;}
.iv2u-notif-dot:hover{background:#c2c9d8;transform:scale(1.15);}
.iv2u-notif-dot.is-active{width:24px;border-radius:999px;background:linear-gradient(90deg,var(--iv2u-navy-2),var(--iv2u-navy));}
.iv2u-notif-dot:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(37,99,201,.3);}
.iv2u-notif-check{display:flex;align-items:center;gap:10px;font:500 1.25rem/1.2 "Noto Sans TC",sans-serif;color:var(--iv2u-text);cursor:pointer;user-select:none;background:transparent !important;padding:0 !important;box-shadow:none !important;border:0 !important;}
.iv2u-notif-check input,.iv2u-notif #noShowOneWeek{width:20px !important;height:20px !important;transform:none !important;margin:0 !important;accent-color:var(--iv2u-navy);cursor:pointer;opacity:1;}

@media (max-width:480px){
  .iv2u-notif-body{padding:20px 22px 2px;}
  .iv2u-notif #notificationContent .notification-title{font-size:1.4rem !important;}
  .iv2u-notif #notificationButtons{padding:14px 22px 20px !important;}
}

/* ---------- Cookie 同意橫幅（cookieconsent@3 → iv2 化：全寬精緻橫幅 + 餅乾圖示 + 品牌色按鈕；字級放大） ---------- */
.cc-window.cc-banner{font-family:"Noto Sans TC",sans-serif !important;display:flex !important;align-items:center;gap:24px;padding:14px clamp(16px,4vw,52px) !important;background:#fff !important;color:var(--iv2u-text) !important;box-shadow:0 -4px 22px rgba(20,28,50,.10) !important;border-top:1px solid var(--iv2u-line);}
.cc-window .cc-message{flex:1 1 auto !important;display:flex;align-items:center;gap:16px;font:600 1.6rem/1.45 "Noto Sans TC",sans-serif !important;color:var(--iv2u-text) !important;margin:0 !important;}
.cc-window .cc-message::before{content:"";flex-shrink:0;width:46px;height:46px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='%23e6b35c'/%3E%3Ccircle cx='9' cy='9' r='1.5' fill='%237a4a12'/%3E%3Ccircle cx='15' cy='10' r='1.5' fill='%237a4a12'/%3E%3Ccircle cx='11' cy='15' r='1.5' fill='%237a4a12'/%3E%3Ccircle cx='16' cy='15' r='1.2' fill='%237a4a12'/%3E%3Ccircle cx='8' cy='14.5' r='1.2' fill='%237a4a12'/%3E%3C/svg%3E") center/contain no-repeat;}
.cc-window .cc-link{font-size:1.6rem !important;font-weight:700;color:var(--iv2u-navy) !important;opacity:1 !important;text-decoration:underline !important;padding:0 !important;margin-left:8px;}
.cc-window .cc-link:hover{color:var(--iv2u-navy-2) !important;}
.cc-window .cc-compliance{flex:0 0 auto !important;}
.cc-window .cc-btn{border-radius:14px !important;padding:16px 50px !important;font:700 1.6rem/1 "Noto Sans TC",sans-serif !important;border:0 !important;background:linear-gradient(180deg,var(--iv2u-navy-2),var(--iv2u-navy)) !important;color:#fff !important;box-shadow:0 6px 16px -7px var(--iv2u-navy);transition:filter .15s,transform .15s;white-space:nowrap;}
.cc-window .cc-btn:hover{filter:brightness(1.08);transform:translateY(-1px);text-decoration:none !important;}
.cc-window .cc-btn:active{transform:translateY(0) scale(.985);}
@media (max-width:768px){
  .cc-window.cc-banner{flex-direction:column;align-items:stretch;gap:14px;padding:16px 18px !important;}
  .cc-window .cc-message{font-size:1.3rem !important;}
  .cc-window .cc-btn{width:100%;font-size:1.34rem !important;padding:15px 24px !important;}
}

/* ---------- #loader（精緻品牌進場；覆蓋舊 style.css 規則，舊 .dot/.char 標記已移除故失效） ---------- */
/* 註：舊 style.css 的 #loader z-index(99999999999，瀏覽器夾為 2147483647) 刻意高於 IV2UI 各層，使頁面載入遮罩覆蓋一切。 */
#loader{background:radial-gradient(120% 90% at 50% 18%, #ffffff, #f3f5f9);flex-direction:column;gap:18px;}
.iv2u-loader-spin{width:60px;height:60px;}
.iv2u-loader-spin svg{display:block;width:100%;height:100%;overflow:visible;}
.iv2u-loader-brand{font:700 1.08rem/1 "Noto Sans TC",sans-serif;letter-spacing:.42em;text-indent:.42em;color:var(--iv2u-navy);animation:iv2uBrand 1.8s var(--iv2u-spring) infinite;}
@keyframes iv2uBrand{0%,100%{opacity:.5;}50%{opacity:.95;}}

@media (prefers-reduced-motion: reduce){
  .iv2u-toast,#iv2u-loading-root,#iv2u-modal-root,.iv2u-dialog,.iv2u-btn{transition:none;}
  .iv2u-comet{animation-duration:2.6s;}
  .iv2u-tbar{display:none;}
  .iv2u-loader-brand{animation:none;opacity:.9;}
  .iv2u-dlg-ic::after{animation:none;display:none;}
}

/* ============================================================
   共用頁面 HERO（金榜權威：深藍 × 金）
   全站載入,about / exam / news / plan 四頁統一使用 .iv2-hero
   樣式全部 scope 於 .iv2-root .iv2-hero,自足不依賴各頁 -v2.css
   ============================================================ */
:root{ --iv2-gold:#f5d75e; --iv2-gold-deep:#d9b84a; }

/* 改用 feature.aspx 華麗版 hero:深 navy 多層極光 + 漂浮光球(紫/金) + 星點微光
   (2026-06-27 統一,about/exam/news/plan 四頁同步;光球/星點皆 transform/opacity 動畫,效能安全) */
.iv2-root .iv2-hero{
  position:relative; overflow:hidden; isolation:isolate; color:#fff;
  background:
    radial-gradient(60% 80% at 86% 0%, rgba(133,116,245,.40) 0%, transparent 60%),
    radial-gradient(55% 78% at 10% 106%, rgba(86,69,212,.36) 0%, transparent 58%),
    radial-gradient(46% 62% at 62% 118%, rgba(255,56,92,.18) 0%, transparent 60%),
    linear-gradient(135deg, #070f28 0%, #0e1a3a 46%, #1b2c58 100%);
  padding-block:clamp(64px,9vw,132px) clamp(58px,8vw,108px);
}
/* 星點微光層(緩慢明滅) */
.iv2-root .iv2-hero::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:
    radial-gradient(2px 2px at 18% 32%, rgba(255,255,255,.85), transparent 60%),
    radial-gradient(2px 2px at 73% 22%, rgba(245,215,94,.85), transparent 60%),
    radial-gradient(1.5px 1.5px at 42% 68%, rgba(255,255,255,.70), transparent 60%),
    radial-gradient(1.5px 1.5px at 88% 58%, rgba(170,150,255,.85), transparent 60%),
    radial-gradient(2px 2px at 58% 44%, rgba(255,255,255,.60), transparent 60%),
    radial-gradient(1.5px 1.5px at 30% 80%, rgba(245,215,94,.60), transparent 60%);
  background-repeat:no-repeat; opacity:.7;
  animation:iv2HeroTwinkle 4.5s ease-in-out infinite alternate;
}
/* 右上漂浮光球(紫) */
.iv2-root .iv2-hero::before{
  content:""; position:absolute; z-index:0; top:-100px; right:-70px;
  width:320px; height:320px; border-radius:50%;
  background:radial-gradient(circle at center, rgba(133,116,245,.40) 0%, rgba(133,116,245,0) 70%);
  pointer-events:none; animation:iv2HeroFloatA 9s ease-in-out infinite alternate;
}
/* 左下漂浮光球(深紫) */
.iv2-root .iv2-hero-inner::before{
  content:""; position:absolute; z-index:-1; left:-140px; bottom:-140px;
  width:360px; height:360px; border-radius:50%;
  background:radial-gradient(circle at center, rgba(86,69,212,.34) 0%, rgba(86,69,212,0) 70%);
  pointer-events:none; animation:iv2HeroFloatB 11s ease-in-out infinite alternate;
}
/* 右側小型金色點綴光暈 */
.iv2-root .iv2-hero-inner::after{
  content:""; position:absolute; z-index:-1; top:0; right:-4%;
  width:150px; height:150px; border-radius:50%;
  background:radial-gradient(circle at center, rgba(245,215,94,.20) 0%, rgba(245,215,94,0) 70%);
  pointer-events:none; animation:iv2HeroFloatA 13s ease-in-out infinite alternate-reverse;
}
@keyframes iv2HeroTwinkle{ from{opacity:.35;} to{opacity:.85;} }
@keyframes iv2HeroFloatA{ from{transform:translate(0,0);} to{transform:translate(20px,14px);} }
@keyframes iv2HeroFloatB{ from{transform:translate(0,0);} to{transform:translate(-18px,-14px);} }
@media (prefers-reduced-motion: reduce){
  .iv2-root .iv2-hero::after,
  .iv2-root .iv2-hero::before,
  .iv2-root .iv2-hero-inner::before,
  .iv2-root .iv2-hero-inner::after{ animation:none; }
}
.iv2-root .iv2-hero-inner{ position:relative; z-index:1; max-width:920px; }

/* 麵包屑(深底) */
.iv2-root .iv2-hero .iv2-crumb{ color:rgba(255,255,255,.66); padding-bottom:18px; }
.iv2-root .iv2-hero .iv2-crumb a{ color:rgba(255,255,255,.66); }
.iv2-root .iv2-hero .iv2-crumb a:hover{ color:#fff; }
.iv2-root .iv2-hero .iv2-crumb .iv2-sep,
.iv2-root .iv2-hero .iv2-crumb .sep{ color:rgba(255,255,255,.34); }

/* eyebrow(燙金漸層文字 + 前置漸隱短線) */
.iv2-root .iv2-hero-eyebrow{
  display:inline-flex; align-items:center; gap:.7em;
  font-size:.8rem; font-weight:700; letter-spacing:.26em; text-transform:uppercase;
  color:var(--iv2-gold,#f5d75e); /* 不支援 background-clip:text 的瀏覽器顯示實金色 */
  background:linear-gradient(180deg,#fbe9a0 0%,#f5d75e 50%,#d4af43 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.iv2-root .iv2-hero-eyebrow::before{
  content:""; width:30px; height:1px; flex:none;
  background:linear-gradient(90deg, transparent, var(--iv2-gold,#f5d75e));
}
/* H1(重粗體權威;關鍵詞燙金漸層) */
.iv2-root .iv2-hero h1{
  margin-top:20px; color:#fff; font-weight:800; letter-spacing:-.018em; line-height:1.16;
  font-size:clamp(38px, 22px + 3.4vw, 74px);
  text-shadow:0 1px 30px rgba(0,0,0,.25);
}
.iv2-root .iv2-hero h1 .iv2-em,
.iv2-root .iv2-hero h1 strong{
  font-weight:800;
  color:var(--iv2-gold,#f5d75e); /* 不支援 background-clip:text 的瀏覽器顯示實金色 */
  background:linear-gradient(180deg,#fbe9a0 0%,#f5d75e 48%,#d4af43 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
/* lead */
.iv2-root .iv2-hero .iv2-lead{
  color:rgba(255,255,255,.8); font-size:1.18em; line-height:1.75; margin-top:24px; max-width:680px;
}
/* 信任條(細緻發光金點分隔) */
.iv2-root .iv2-hero-trust{
  list-style:none; margin:34px 0 0; padding:0;
  display:flex; flex-wrap:wrap; align-items:center; gap:10px 22px;
}
.iv2-root .iv2-hero-trust li{
  display:inline-flex; align-items:center; gap:.6em;
  color:rgba(255,255,255,.84); font-size:1em; font-weight:500; letter-spacing:.01em;
}
.iv2-root .iv2-hero-trust li::before{
  content:""; flex:none; width:5px; height:5px; border-radius:50%;
  background:var(--iv2-gold,#f5d75e); box-shadow:0 0 9px rgba(245,215,94,.65);
}
.iv2-root .iv2-hero-trust b{ color:#fff; font-weight:700; }
/* CTA */
.iv2-root .iv2-hero-cta{ display:flex; gap:14px; margin-top:34px; flex-wrap:wrap; }

/* hero 下方搜尋列(plan 商品總覽用) */
.iv2-root .iv2-hero-searchrow{
  background:var(--iv2-canvas,#fff);
  border-bottom:1px solid var(--iv2-hairline,#e7eaf1);
  padding-block:18px;
}
.iv2-root .iv2-hero-searchrow .iv2-hero-searchrow-inner{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap; justify-content:space-between;
}
