:root{
  --bg:#030715;
  --panel:rgba(8,18,53,.72);
  --panel2:rgba(10,22,66,.88);
  --line:rgba(154,167,255,.25);
  --text:#f5f7ff;
  --muted:#b8c2ff;
  --accent:#8f74ff;
  --accent2:#43b7ff;
  --warning:#ffd56b;
  --safe-x:clamp(14px,4.2vw,56px);
  --shell:min(1180px,calc(100vw - (var(--safe-x) * 2)));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Noto Sans TC","Microsoft JhengHei",Arial,sans-serif;
  background:
    radial-gradient(circle at 76% 4%,rgba(87,102,255,.44),transparent 24%),
    radial-gradient(circle at 18% 11%,rgba(122,46,255,.23),transparent 30%),
    linear-gradient(180deg,#040716 0%,#071135 55%,#020414 100%);
  color:var(--text);
  line-height:1.65;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
.noise{position:fixed;inset:0;pointer-events:none;opacity:.07;background-image:radial-gradient(#fff 1px,transparent 1px);background-size:18px 18px;z-index:-1}
.site-header{
  position:sticky;top:0;z-index:10;
  display:flex;align-items:center;gap:clamp(12px,2vw,28px);
  padding:12px var(--safe-x);
  background:rgba(2,5,18,.72);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
}
.brand{display:grid;line-height:1;min-width:max-content}
.brand-main{font-size:clamp(18px,2vw,25px);font-weight:900;letter-spacing:.08em}
.brand-sub{font-size:12px;font-weight:700;color:#dfe5ff}
.nav-links{display:flex;gap:clamp(14px,2.4vw,28px);margin-left:auto;align-items:center}
.nav-links a{color:#dfe5ff;font-weight:700;font-size:15px;opacity:.92;white-space:nowrap}
.nav-cta{padding:9px 22px;border:1px solid rgba(176,160,255,.7);border-radius:999px;box-shadow:0 0 20px rgba(112,96,255,.45);font-weight:800;white-space:nowrap}
.section-shell{width:var(--shell);margin:0 auto}
.hero{
  position:relative;
  padding:clamp(18px,3vw,36px) 0 28px;
}
.hero-banner{
  position:relative;
  overflow:hidden;
  border-radius:clamp(14px,2vw,24px);
  border:1px solid rgba(190,201,255,.22);
  box-shadow:0 24px 70px rgba(0,0,0,.38),0 0 46px rgba(93,87,255,.18);
  background:#030713;
  aspect-ratio:4.25/1;
}
.hero-banner img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.hero-content{
  position:relative;
  z-index:1;
  max-width:860px;
  margin:clamp(20px,3vw,34px) auto 0;
  text-align:center;
  padding:0 clamp(2px,2vw,24px);
}
.eyebrow{font-size:clamp(16px,2.2vw,24px);letter-spacing:.12em;font-family:Georgia,serif;margin:0 0 8px;color:#ecedff}
.hero h1{font-size:clamp(34px,6.4vw,76px);line-height:1.14;margin:0;text-shadow:0 0 28px rgba(98,156,255,.45)}
.hero h1 span{font-weight:900}.hero-en{letter-spacing:clamp(.18em,1vw,.55em);font-size:clamp(13px,1.9vw,18px);color:#dfe7ff;margin:14px 0 0}.hero-copy{font-size:clamp(16px,2vw,21px);color:#e4e8ff;margin:18px 0}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:14px;padding:13px 34px;font-weight:900;letter-spacing:.08em;border:1px solid rgba(192,201,255,.34);cursor:pointer;min-height:48px}.primary{background:linear-gradient(135deg,#5d80ff,#9a55ff);box-shadow:0 0 26px rgba(113,108,255,.65)}.secondary{background:rgba(8,17,48,.72)}
.info-strip{position:relative;z-index:2;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-top:clamp(24px,4vw,48px)}
.info-strip article,.glass{background:linear-gradient(180deg,var(--panel),rgba(6,14,46,.78));border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 40px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.07)}
.info-strip article{padding:clamp(14px,1.8vw,18px)}.info-strip b{display:block;color:#9eb0ff}.info-strip span{font-size:14px}.section-title{display:flex;align-items:center;justify-content:center;gap:18px;margin:18px 0 26px;text-align:center}.section-title h2{font-size:clamp(28px,4vw,36px);margin:0;letter-spacing:.12em}.section-title span{width:120px;height:1px;background:linear-gradient(90deg,transparent,#8d9fff,transparent)}.grid-section,.media-section,.form-section{padding:clamp(28px,4vw,44px) 0}.info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.glass{padding:clamp(18px,2.2vw,24px)}.glass h3{margin:0 0 12px;font-size:clamp(20px,2.2vw,22px)}.glass p{margin:8px 0;color:#d6dcff}.card-wide{grid-column:span 2}.price-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.price-list li{display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:8px}.price-list b{font-size:22px;margin-left:auto}.price-list em{font-style:normal;color:#aebcff;white-space:nowrap}.warning,.mini-note{border:1px solid rgba(255,213,107,.35);background:rgba(255,213,107,.1);border-radius:12px;padding:12px;color:var(--warning)!important}.phone{font-size:24px;font-weight:900}.media-section{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:18px;align-items:start}.media-card img{width:100%;border-radius:14px;border:1px solid var(--line);display:block}.schedule-table{display:grid;gap:0;border:1px solid rgba(194,178,255,.35);border-radius:14px;overflow:hidden;background:rgba(222,188,255,.14)}.schedule-table .thead,.schedule-table div{display:grid;grid-template-columns:repeat(3,1fr)}.schedule-table b,.schedule-table span{padding:clamp(9px,1.5vw,12px);border-right:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.12);font-size:clamp(12px,1.4vw,14px)}.schedule-table b{background:rgba(156,105,255,.32);color:#fff}.form-intro{text-align:center;color:#c8d2ff}.form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.step-progress{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:6px 0 6px}.step-progress span{text-align:center;padding:12px;border-radius:999px;border:1px solid var(--line);background:rgba(9,20,58,.65);color:#c4ccff;font-weight:800;font-size:14px}.step-progress .active{background:linear-gradient(135deg,#5c7dff,#945eff);color:#fff}.form-card{grid-column:span 6;border:0;min-width:0}.payment-card{grid-column:span 6}.submit-card{grid-column:span 6}.form-card legend,.submit-card h3{font-size:22px;font-weight:900;margin-bottom:16px}.form-card legend{padding:0}.form-card label,.field-label{display:block;color:#f4f6ff;font-weight:800;margin:15px 0 7px}.form-card em{color:#ffb4b4;font-style:normal}.form-card small{display:block;color:#aab6f9;font-weight:500;margin:2px 0 8px}input,textarea{width:100%;padding:13px 14px;border-radius:10px;border:1px solid rgba(176,190,255,.24);background:rgba(1,7,25,.55);color:#fff;outline:none;font:inherit}textarea{min-height:104px;resize:vertical}input:focus,textarea:focus{border-color:#8aa2ff;box-shadow:0 0 0 3px rgba(94,123,255,.18)}.radio-row,.radio-column,.size-grid{display:grid;gap:10px}.radio-row{grid-template-columns:repeat(2,minmax(0,1fr))}.size-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.radio-row label,.radio-column label,.size-grid label,.agree{display:flex;align-items:center;gap:9px;font-weight:700;color:#dde5ff}.radio-row input,.radio-column input,.size-grid input,.agree input{width:auto}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.upload-label input{padding:18px;border-style:dashed}.submit-card{display:flex;flex-direction:column;justify-content:center}.submit-btn{width:100%;font-size:20px;margin:20px 0 8px}.form-message{min-height:24px;color:#bdcaff}.form-message.ok{color:#9fffc5}.form-message.error{color:#ffb7b7}.site-footer{text-align:center;padding:32px var(--safe-x);color:#bbc5ff;border-top:1px solid rgba(255,255,255,.08)}
@media (max-width:1100px){
  :root{--safe-x:clamp(18px,4vw,42px)}
  .info-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .info-strip article:last-child{grid-column:1/-1}
  .info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .media-section{grid-template-columns:1fr}
  .form-card,.payment-card,.submit-card{grid-column:span 6}
}
@media (max-width:820px){
  :root{--safe-x:clamp(14px,4vw,28px)}
  .site-header{align-items:center;gap:10px}
  .nav-links{display:none}
  .nav-cta{margin-left:auto;padding:8px 16px}
  .hero-banner{aspect-ratio:3.35/1;border-radius:16px}
  .hero-content{text-align:left;margin-top:24px;padding:0}
  .hero-actions{justify-content:flex-start}
  .info-strip,.info-grid{grid-template-columns:1fr}
  .card-wide,.form-card,.payment-card,.submit-card{grid-column:1/-1}
  .step-progress{grid-template-columns:1fr;position:relative}
  .step-progress span{text-align:left;border-radius:14px;padding:10px 14px}
  .section-title h2{font-size:28px}.section-title span{width:56px}
  .schedule-table{overflow-x:auto;display:block}.schedule-table .thead,.schedule-table div{min-width:680px}
}
@media (max-width:560px){
  :root{--safe-x:12px}
  body{line-height:1.58}
  .site-header{padding:10px 12px}.brand-main{font-size:17px}.brand-sub{font-size:11px}.nav-cta{font-size:13px;padding:7px 12px}
  .hero{padding-top:14px}.hero-banner{aspect-ratio:2.35/1}.hero-banner img{object-position:center center}
  .hero h1{font-size:34px}.hero-en{letter-spacing:.16em}.hero-actions .btn{width:100%}.btn{padding:12px 18px}
  .glass{padding:16px}.info-strip{gap:10px}.price-list li{display:grid;grid-template-columns:1fr auto;gap:6px}.price-list em{grid-column:1/-1}.section-title span{display:none}.two-col,.radio-row,.size-grid{grid-template-columns:1fr}.schedule-table .thead,.schedule-table div{min-width:620px}.schedule-table b,.schedule-table span{font-size:12px;padding:8px}
}

/* v5：行程表改成三欄平均卡片，不再使用空白列撐高度 */
.schedule-columns{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  border:1px solid rgba(194,178,255,.35);
  border-radius:18px;
  overflow:hidden;
  background:rgba(222,188,255,.11);
}
.schedule-day{
  min-width:0;
  border-right:1px solid rgba(255,255,255,.16);
}
.schedule-day:last-child{border-right:0}
.schedule-day h3{
  margin:0;
  padding:16px 18px;
  background:rgba(156,105,255,.34);
  color:#fff;
  font-size:clamp(18px,2.2vw,24px);
  letter-spacing:.04em;
}
.schedule-day p{
  display:grid;
  grid-template-columns:minmax(98px,.9fr) minmax(0,1.1fr);
  gap:10px;
  align-items:start;
  margin:0;
  padding:14px 18px;
  min-height:58px;
  border-top:1px solid rgba(255,255,255,.11);
  color:#f5f7ff;
}
.schedule-day p b{
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:#fff;
  font-size:clamp(13px,1.4vw,16px);
  line-height:1.45;
}
.schedule-day p span{
  padding:0 !important;
  border:0 !important;
  font-size:clamp(13px,1.4vw,16px);
  line-height:1.45;
}
@media (max-width:820px){
  .schedule-columns{display:grid!important;grid-template-columns:1fr;overflow:visible}
  .schedule-day{border-right:0;border-bottom:1px solid rgba(255,255,255,.16)}
  .schedule-day:last-child{border-bottom:0}
  .schedule-day p{grid-template-columns:120px 1fr;min-height:auto}
}
@media (max-width:560px){
  .schedule-day h3{font-size:18px;padding:14px}
  .schedule-day p{grid-template-columns:1fr;gap:4px;padding:12px 14px}
}

/* v6：行程表視覺平均化。第二天改用合併時段，三天高度更接近。 */
.schedule-card .schedule-day p{
  min-height:64px;
}
.schedule-card .compact-day p{
  min-height:64px;
}
@media (max-width:980px){
  .schedule-card .schedule-day p,
  .schedule-card .compact-day p{
    min-height:58px;
    padding:12px 14px;
  }
}
@media (max-width:560px){
  .schedule-card .schedule-day p,
  .schedule-card .compact-day p{
    min-height:auto;
  }
}

/* v7：簡易流程表重排。改成全寬三日卡片，避免欄位太窄造成文字直排斷行。 */
#schedule.media-section{
  grid-template-columns: minmax(0, 1fr);
  gap:22px;
}
#schedule .media-card:not(.schedule-card){
  max-width:720px;
  width:100%;
  margin:0 auto;
}
#schedule .schedule-card{
  width:100%;
  max-width:1180px;
  margin:0 auto;
}
#schedule .schedule-columns{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  border:0;
  background:transparent;
  overflow:visible;
}
#schedule .schedule-day{
  border:1px solid rgba(188,178,255,.28);
  border-radius:20px;
  overflow:hidden;
  background:linear-gradient(180deg,rgba(36,43,99,.86),rgba(10,18,54,.78));
  box-shadow:0 16px 36px rgba(0,0,0,.22);
}
#schedule .schedule-day h3{
  padding:14px 16px;
  text-align:center;
  font-size:clamp(18px,1.8vw,22px);
  line-height:1.25;
  background:linear-gradient(135deg,rgba(120,87,255,.56),rgba(78,61,154,.58));
  white-space:nowrap;
}
#schedule .schedule-day p{
  grid-template-columns:112px minmax(0,1fr);
  gap:12px;
  align-items:center;
  min-height:0;
  padding:11px 14px;
  border-top:1px solid rgba(255,255,255,.09);
}
#schedule .schedule-day p b{
  font-size:14px;
  line-height:1.25;
  white-space:nowrap;
  letter-spacing:.01em;
}
#schedule .schedule-day p span{
  font-size:14px;
  line-height:1.35;
  word-break:keep-all;
  overflow-wrap:break-word;
}
#schedule .compact-day p{
  min-height:0;
}
@media (max-width:980px){
  #schedule .schedule-columns{
    grid-template-columns:1fr;
    gap:14px;
  }
  #schedule .schedule-day h3{
    text-align:left;
    white-space:normal;
  }
  #schedule .schedule-day p{
    grid-template-columns:126px minmax(0,1fr);
    padding:12px 16px;
  }
}
@media (max-width:560px){
  #schedule.media-section{gap:16px;}
  #schedule .schedule-card{padding:14px;}
  #schedule .schedule-columns{gap:12px;}
  #schedule .schedule-day h3{
    font-size:18px;
    padding:13px 14px;
  }
  #schedule .schedule-day p{
    grid-template-columns:104px minmax(0,1fr);
    gap:10px;
    padding:10px 12px;
  }
  #schedule .schedule-day p b,
  #schedule .schedule-day p span{
    font-size:13px;
  }
}

/* v9：行程只保留內容，報名表改成分頁式填寫 */
#schedule .schedule-day p{
  display:flex !important;
  align-items:center;
  gap:10px;
  grid-template-columns:none !important;
  min-height:auto !important;
  padding:12px 16px !important;
}
#schedule .schedule-day p::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:999px;
  flex:0 0 auto;
  background:linear-gradient(135deg,#b9c8ff,#8d6bff);
  box-shadow:0 0 12px rgba(150,180,255,.72);
}
#schedule .schedule-day p span{
  font-size:clamp(15px,1.5vw,17px) !important;
  line-height:1.45 !important;
  font-weight:800;
}

.form-grid{
  max-width:920px;
  margin:0 auto;
}
.step-progress button{
  text-align:center;
  padding:12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(9,20,58,.65);
  color:#c4ccff;
  font-weight:800;
  font-size:14px;
  cursor:pointer;
  transition:.18s ease;
}
.step-progress button:hover{border-color:rgba(180,195,255,.55);transform:translateY(-1px)}
.step-progress button.active{background:linear-gradient(135deg,#5c7dff,#945eff);color:#fff;box-shadow:0 0 22px rgba(116,122,255,.22)}
.step-progress span{display:none!important;}
.form-page[hidden]{display:none!important;}
.form-page{grid-column:1/-1;animation:fadeInStep .22s ease;}
.form-card,.payment-card,.submit-card{grid-column:1/-1;}
.form-card legend,.submit-card h3{font-size:clamp(23px,3vw,28px)}
.form-nav-controls{
  grid-column:1/-1;
  display:flex;
  justify-content:space-between;
  gap:14px;
  margin-top:2px;
}
.form-nav-controls .btn{min-width:160px;text-align:center;border:0;cursor:pointer;}
.form-nav-controls .btn[hidden]{display:none!important;}
.submit-card{min-height:360px;text-align:center;align-items:center;}
.submit-card p{max-width:620px;}
.submit-card .agree{text-align:left;max-width:720px;line-height:1.6;margin:16px auto;}
@keyframes fadeInStep{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media (max-width:760px){
  .form-grid{max-width:100%;}
  .step-progress{grid-template-columns:1fr!important;}
  .step-progress button{text-align:left;border-radius:14px;padding:10px 14px;}
  .form-nav-controls{position:sticky;bottom:10px;z-index:20;background:rgba(6,12,38,.82);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:10px;}
  .form-nav-controls .btn{min-width:0;flex:1;padding:12px 14px;}
}


/* Success notice modal */
.success-notice[hidden]{display:none!important;}
.success-notice{
  position:fixed;
  inset:0;
  z-index:999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(2,6,22,.82);
  backdrop-filter:blur(16px);
}
.notice-dialog{
  position:relative;
  width:min(1120px,100%);
  max-height:92vh;
  overflow:auto;
  display:grid;
  grid-template-columns:minmax(260px,.72fr) minmax(320px,1fr);
  gap:22px;
  padding:22px;
  border-radius:28px;
  box-shadow:0 24px 80px rgba(0,0,0,.42);
}
.notice-close{
  position:absolute;
  top:12px;
  right:14px;
  width:38px;
  height:38px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.09);
  color:#fff;
  font-size:26px;
  line-height:1;
  cursor:pointer;
}
.notice-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:12px;
  padding:18px 10px 18px 8px;
}
.notice-copy h2{
  margin:0;
  font-size:clamp(28px,4vw,46px);
  line-height:1.08;
}
.notice-copy p{
  color:#cfd6ff;
  line-height:1.7;
}
.notice-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:8px;
}
.notice-actions .btn{
  text-align:center;
  border:0;
}
.notice-hint{
  font-size:14px;
  color:#aeb8ee!important;
}
.notice-image-wrap{
  border-radius:22px;
  overflow:hidden;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
}
.notice-image-wrap img{
  display:block;
  width:100%;
  height:auto;
}
@media (max-width:860px){
  .success-notice{padding:12px;}
  .notice-dialog{grid-template-columns:1fr;padding:16px;border-radius:22px;max-height:94vh;}
  .notice-copy{padding:26px 4px 4px;}
  .notice-actions{display:grid;grid-template-columns:1fr;}
}

/* V14：入口改成「我有興趣 / 正式報名」，讓使用者一進來就能快速選擇 */
.choice-section{padding:clamp(24px,4vw,42px) 0 18px;scroll-margin-top:90px}.compact-title{margin-bottom:14px}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0}.option-card{display:flex;flex-direction:column;align-items:flex-start;min-height:260px;border:1px solid rgba(164,183,255,.28);background:linear-gradient(180deg,rgba(28,38,92,.78),rgba(8,16,45,.78))}.option-card h3{font-size:clamp(28px,3.6vw,42px);margin:4px 0 12px}.option-card p:not(.eyebrow){line-height:1.7;flex:1}.option-card .btn{width:100%;margin-top:16px}.interest-option{box-shadow:0 0 34px rgba(98,123,255,.18)}.signup-option{background:linear-gradient(180deg,rgba(48,29,85,.78),rgba(8,16,45,.78))}.interest-form{margin-top:18px;border:1px solid rgba(164,183,255,.28)}.interest-form h3{font-size:clamp(24px,3vw,32px)}.interest-form em{color:#ffb4b4;font-style:normal}.interest-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.interest-fields label{display:block;color:#f4f6ff;font-weight:800}.interest-fields .full-field{grid-column:1/-1}.interest-form .submit-btn{max-width:360px;margin-top:18px}.nav-links a[href="#schedule"]{display:none}

@media (max-width: 760px){.choice-grid{grid-template-columns:1fr}.option-card{min-height:auto}.interest-fields{grid-template-columns:1fr}.interest-form .submit-btn{max-width:none;width:100%}.hero-content{padding-top:8px}.info-strip{margin-top:18px}.section-title h2{letter-spacing:.04em}}
