.btn-ghost{border-color:var(--deep-blue);color:var(--deep-blue);}
.btn-ghost:hover{background:rgba(31,78,95,.08);}
.feature{display:flex;gap:16px;align-items:flex-start;padding:22px;background:var(--white);border-radius:var(--radius-md);border:1px solid var(--line);}
/* ---------- 首頁：不對稱 Hero ---------- */
.hero-split{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,var(--deep-blue) 0%,var(--deep-blue-dark) 100%);
  color:var(--cream);padding:72px 0 0;
}
.hero-split .wrap{
  display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:24px;
  position:relative;z-index:2;
}
.hero-split h1{color:var(--white);font-size:clamp(30px,4.4vw,46px);line-height:1.32;margin-bottom:18px;}
.hero-split p.lead{color:rgba(245,240,230,.8);font-size:17px;max-width:480px;margin-bottom:32px;}
.hero-split .actions{display:flex;gap:14px;flex-wrap:wrap;}
.hero-graphic{aspect-ratio:1/1;}
@media(max-width:860px){
  .hero-split .wrap{grid-template-columns:1fr;}
  .hero-graphic{max-width:280px;margin:0 auto;}
}
/* ---------- 導覽卡片矩陣 ---------- */
.hub{position:relative;padding:96px 0;}
.hub-bg{position:absolute;inset:0;z-index:0;opacity:.35;pointer-events:none;}
.hub .wrap{position:relative;z-index:1;}
.hub-card{
  grid-column:span 1;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);
  padding:24px;display:flex;flex-direction:column;justify-content:space-between;
  box-shadow:var(--shadow);transition:transform .15s ease, box-shadow .15s ease;
}
.hub-card:hover{transform:translateY(-4px);box-shadow:0 18px 36px -14px rgba(31,78,95,.32);}
.hub-card .num{font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--terracotta-dark);}
.hub-card h3{font-size:19px;margin:8px 0 6px;}
.hub-card p{font-size:14px;color:var(--ink-soft);margin:0;}
.hub-card .go{margin-top:14px;font-size:13.5px;font-weight:700;color:var(--deep-blue);}
.hub-card.span-2{grid-column:span 2;grid-row:span 2;background:var(--deep-blue);border-color:var(--deep-blue);}
.hub-card.span-2 h3{color:var(--white);font-size:24px;}
.hub-card.span-2 p{color:rgba(245,240,230,.8);}
.hub-card.span-2 .num{color:var(--terracotta);}
.hub-card.span-2 .go{color:var(--white);}
.hub-card.wide{grid-column:span 4;flex-direction:row;align-items:center;gap:20px;background:var(--cream-soft);}
.hub-card.wide .go{margin-top:0;}
@media(max-width:900px){
  .hub-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:auto;}
  .hub-card.span-2{grid-column:span 2;grid-row:span 1;}
  .hub-card.wide{grid-column:span 2;flex-direction:column;align-items:flex-start;}
}
@media(max-width:560px){
  .hub-grid{grid-template-columns:1fr;}
  .hub-card.span-2,.hub-card.wide{grid-column:span 1;}
}
/* ---------- 子頁：頁面標題橫幅 ---------- */
.page-hero{position:relative;overflow:hidden;color:var(--deep-blue);padding:64px 0;}
.page-hero h1{color:var(--deep-blue);font-size:clamp(26px,3.6vw,38px);margin-bottom:12px;}
.page-hero p{color:var(--ink-soft);font-size:16px;margin:0;}
.breadcrumb{font-size:13px;color:var(--ink-soft);margin-bottom:14px;}
.breadcrumb a{color:var(--deep-blue);}
.breadcrumb a:hover{color:var(--terracotta);}
/* ---------- 團隊卡 ---------- */
.team-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow);}
.team-card .photo{aspect-ratio:1/1;overflow:hidden;background:var(--cream-soft);}
.team-card .body{padding:18px 20px 22px;}
.team-card h3{font-size:17px;margin-bottom:6px;}
.team-card .loc{font-size:12.5px;color:var(--terracotta-dark);font-weight:700;margin-bottom:8px;}
.team-card p{font-size:14px;color:var(--ink-soft);margin:0 0 8px;}
.team-card .stars{font-size:13px;letter-spacing:1px;}
/* ---------- 會員方案卡 ---------- */
.plan-card{background:var(--deep-blue);color:var(--cream);border-radius:var(--radius-lg);padding:32px;display:flex;flex-direction:column;}

/* ---------- 檔期文宣 ---------- */
.campaign-section{padding-top:56px;padding-bottom:8px;}
.campaign-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--camp-gap,22px);}
.campaign-section[style*="--camp-cols"] .campaign-grid:not(.single){grid-template-columns:repeat(var(--camp-cols,3),1fr);}
.campaign-grid.single{grid-template-columns:1fr;}
.campaign-card{
  position:relative;display:flex;flex-direction:column;
  background:var(--white);border:1px solid var(--line);
  border-radius:var(--camp-radius,var(--radius-lg));overflow:hidden;
  box-shadow:var(--shadow);
  transition:transform .18s ease, box-shadow .18s ease;
}
.campaign-card:hover{transform:translateY(-4px);box-shadow:0 22px 46px -20px rgba(31,78,95,.36);}
.campaign-media{
  aspect-ratio:16/9;background-size:cover;background-position:center;background-repeat:no-repeat;
  background-color:var(--cream);
}
.campaign-body{padding:calc(var(--camp-pad,26px) - 2px) var(--camp-pad,26px) var(--camp-pad,26px);display:flex;flex-direction:column;flex:1;gap:2px;background:var(--camp-body,transparent);}
.campaign-body.bg-photo.bg-photo{background-color:var(--camp-body,transparent);}
.campaign-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
.campaign-badges .campaign-badge{margin-bottom:0;}
.campaign-body.is-light,.campaign-body.is-light h3,.campaign-body.is-light .campaign-desc,.campaign-body.is-light .fmt strong{color:#fff;}
.campaign-body.is-light .campaign-period{color:#FFE1C2;}
.campaign-badge{
  align-self:flex-start;
  background:var(--campaign-tone,var(--terracotta));color:#fff;
  font-size:12.5px;font-weight:700;letter-spacing:.04em;
  padding:5px 12px;border-radius:999px;margin-bottom:12px;
}
.campaign-card h3{font-size:var(--camp-name,21px);line-height:1.45;margin:0 0 8px;color:var(--deep-blue);}
.campaign-period{
  display:inline-flex;align-items:center;gap:7px;
  font-size:13.5px;font-weight:700;color:var(--campaign-tone,var(--terracotta-dark));
  margin:0 0 12px;
}
.campaign-period::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;}
.campaign-desc{font-size:var(--camp-text,15px);line-height:1.85;color:var(--ink-soft);margin:0 0 20px;white-space:pre-line;}
.campaign-cta{
  margin-top:auto;align-self:flex-start;
  display:inline-flex;align-items:center;gap:8px;
  background:var(--campaign-tone,var(--terracotta));color:#fff;
  border-radius:14px;padding:13px 26px;font-weight:700;font-size:14.5px;
  transition:filter .16s ease, transform .16s ease;
}
.campaign-cta:hover{filter:brightness(.92);transform:translateY(-2px);}

/* 只有一檔時改成左圖右文的橫幅 */
@media(min-width:820px){
  .campaign-grid.single .campaign-card{flex-direction:row;align-items:stretch;}
  .campaign-grid.single .campaign-media{flex:0 0 46%;aspect-ratio:auto;min-height:280px;}
  .campaign-grid.single .campaign-body{justify-content:center;padding:calc(var(--camp-pad,26px) + 8px) calc(var(--camp-pad,26px) + 12px);}
  .campaign-grid.single .campaign-card h3{font-size:var(--camp-name,26px);}
}
.campaign-card.no-media .campaign-media{display:none;}
/* 指定每排張數時，平板退到 2 張、手機 1 張（inline 變數優先權高，所以直接覆蓋 grid 規則） */
@media(max-width:900px){ .campaign-section[style*="--camp-cols"] .campaign-grid:not(.single){grid-template-columns:repeat(2,1fr);} }
@media(max-width:600px){ .campaign-section[style*="--camp-cols"] .campaign-grid:not(.single){grid-template-columns:1fr;} .campaign-grid{gap:min(var(--camp-gap,22px),16px);} }
.campaign-jump{
  align-self:flex-end;margin-top:auto;padding-top:14px;
  display:inline-flex;align-items:center;gap:5px;
  font-size:13px;font-weight:700;color:var(--campaign-tone,var(--terracotta-dark));
  text-decoration:none;border-bottom:1px dashed currentColor;padding-bottom:1px;
}
.campaign-jump:hover{filter:brightness(.85);}
.campaign-cta + .campaign-jump{margin-top:10px;}
.campaign-body.is-light .campaign-jump{color:#FFE1C2;}
