/* ABE 生活：白底、深藍灰明體標題、「——」副標、細線分隔、灰褐頁尾（沿用提案「未來的網站」示意） */
:root{--nv:#2B3445;--tx:#6B6B6B;--ln:#E3E0DC;--lk:#8A7FA6;--ft:#7A6B63;--bg:#fff;--soft:#F6F3EF;--warn:#A2562C;
--serif:"Noto Serif TC","Songti TC",serif;--sans:"Noto Sans TC","Microsoft JhengHei","PingFang TC",sans-serif}
*{box-sizing:border-box}
html{color-scheme:light}
body{margin:0;background:var(--bg);color:var(--nv);font-family:var(--sans);font-size:15px;line-height:1.8}
a{color:inherit}
.serif{font-family:var(--serif)}
main{max-width:1080px;margin:0 auto;padding-inline:16px}
.top{max-width:1080px;margin:0 auto;display:flex;align-items:flex-end;gap:24px;padding:18px 16px 0;flex-wrap:wrap}
.logo{display:grid;justify-items:center;line-height:1.1;padding-bottom:12px;text-decoration:none}
.logo i{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--nv);display:grid;place-items:center;font-style:normal;font-size:16px;margin-bottom:5px}
.logo b{font-size:18px;font-weight:600;letter-spacing:.2em}
.logo small{font-size:9px;letter-spacing:.3em;color:var(--tx)}
.nav{display:flex;gap:28px;margin-left:auto;padding-bottom:12px;flex-wrap:wrap}
.nav a{font-size:15px;color:#3A3A3A;text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent}
.nav a[aria-current],.nav a:hover{border-color:var(--nv)}
.shadow{height:8px;background:linear-gradient(#E8E4DF,#fff)}
.dash{display:flex;gap:10px;align-items:baseline;font-size:16px}
.dash::before{content:"";flex:none;width:34px;height:1px;background:var(--nv);transform:translateY(-5px)}
.dash.sm{font-size:13px}
.more{font-size:13px;color:var(--lk);display:inline-flex;gap:10px;align-items:center;text-decoration:none}
.more::before{content:"";width:26px;height:1px;background:var(--lk)}
.cat{font-size:12px;letter-spacing:.2em;color:var(--lk)}
.feat{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:32px;align-items:center;padding-block:36px}
.feat .tx{display:grid;gap:12px;min-width:0}
.feat h1{margin:0;font-size:clamp(24px,3vw,32px);font-weight:600;line-height:1.4;text-wrap:balance}
.feat p{color:var(--tx);margin:0}
.img{aspect-ratio:4/3;background-size:cover;background-position:center;background-color:var(--soft);max-width:100%}
.ph{display:grid;place-content:center;justify-items:center;gap:6px;background:linear-gradient(160deg,#2B3445,#4A3F5C);color:#EFE9E4;text-align:center}
.ph span{font-size:clamp(18px,2.4vw,26px);letter-spacing:.2em}
.ph b{font-weight:500;letter-spacing:.2em;font-size:14px}
.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ln);padding-block:8px 48px}
.cols.list{padding-top:24px;border-top:0}
.cols.list>h1{grid-column:1/-1;font-weight:600;margin:0 0 8px}
.col{display:grid;gap:8px;align-content:start;padding:24px 20px;border-right:1px solid var(--ln);text-decoration:none;min-width:0}
.col:nth-child(3n){border-right:0}
.col .img{aspect-ratio:16/10}
.col h3{margin:0;font-size:18px;font-weight:600;line-height:1.45}
.art{max-width:760px;margin:0 auto;padding-block:36px 64px;display:grid;gap:14px}
.art h1{margin:0;font-size:clamp(26px,3.6vw,36px);font-weight:600;line-height:1.4;text-wrap:balance}
.lead{font-size:17px;color:#3A3A3A;margin:6px 0 0}
.src{background:var(--soft);padding:12px 16px;font-size:14px;color:var(--tx)}
.stop{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:28px;padding-block:28px;border-top:1px solid var(--ln);align-items:start}
.stop:nth-of-type(even) .img{order:2}
.stop .tx{display:grid;gap:8px;min-width:0}
.stop h3{margin:0;font-size:22px;font-weight:600}
.stop p{margin:0}
.quote{color:var(--tx);font-size:14px}
.when{font-size:13px;letter-spacing:.15em;color:var(--lk);display:flex;gap:10px;align-items:center}
.no{width:24px;height:24px;border:1px solid var(--lk);border-radius:50%;display:grid;place-items:center;font-size:12px;letter-spacing:0}
dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:4px 0;font-size:14px}
dt{color:var(--tx)}dd{margin:0}
.warn{font-style:normal;color:var(--warn);margin-left:8px;font-size:12px;border:1px solid currentColor;padding:0 6px}
.tips,.blk{border-top:1px solid var(--ln);padding-top:20px}
.tips h2,.blk h2{font-size:20px;font-weight:600;margin:0 0 6px}
ul{padding-left:1.2em;margin:0}
.check{font-size:12px;color:var(--tx);border-top:1px solid var(--ln);padding-top:14px;margin:12px 0 0}
.timeline{list-style:none;padding:0;margin:8px 0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ln);border-bottom:1px solid var(--ln)}
.timeline li{padding:12px;display:grid;gap:2px;text-align:center;color:#A9A39C;border-right:1px solid var(--ln)}
.timeline li:last-child{border-right:0}
.timeline li.on{color:var(--nv)}
.timeline li.now{background:var(--soft)}
.timeline b{font-family:var(--serif);font-size:18px}
.timeline span{font-size:12px;letter-spacing:.1em}
.facts{background:var(--soft);padding:14px 18px}
.narrow{max-width:520px;margin:0 auto;padding-block:56px 80px;display:grid;gap:14px}
.narrow h1{margin:0;font-weight:600}
.btns{display:grid;gap:12px;margin-top:12px}
.btn{display:block;text-align:center;padding:12px;border:1px solid var(--nv);text-decoration:none;font-size:15px;cursor:pointer;background:#fff;font-family:inherit;color:var(--nv)}
.btn.line{background:#06C755;border-color:#06C755;color:#fff}
.btn.danger{border-color:var(--warn);color:var(--warn)}
.btn:focus-visible,a:focus-visible{outline:2px solid var(--lk);outline-offset:2px}
.fine{font-size:13px;color:var(--tx);margin:0}
.prose h2{font-size:18px;margin:16px 0 0}
.foot{background:var(--ft);color:#EFE9E4;font-size:12px;padding:16px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
@media (max-width:760px){
  .nav{margin-left:0;gap:16px}
  .feat,.stop{grid-template-columns:minmax(0,1fr)}
  .feat .img,.stop .img,.stop:nth-of-type(even) .img{order:-1}
  .cols{grid-template-columns:minmax(0,1fr)}
  .col{border-right:0;border-bottom:1px solid var(--ln);padding-inline:0}
  .timeline b{font-size:15px}
}
/* 演唱會一日攻略 */
.day{list-style:none;padding:0;margin:8px 0;display:grid;gap:0;border-top:1px solid var(--ln)}
.day li{display:grid;grid-template-columns:92px minmax(0,1fr);gap:18px;padding:18px 0;border-bottom:1px solid var(--ln)}
.day li>b{font-size:22px;font-weight:600;color:var(--lk);font-variant-numeric:tabular-nums}
.day h3{margin:0 0 4px;font-size:19px;font-weight:600}
.day p{margin:0}
.eats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.eat{display:grid;gap:4px;align-content:start;padding:16px;background:var(--soft);text-decoration:none;min-width:0}
.eat h3{margin:0;font-size:18px;font-weight:600}.eat p{margin:0;color:var(--tx);font-size:14px}
.eat dl{font-size:13px}
.reel{width:100%;max-width:360px;aspect-ratio:9/16;background:#000;display:block}
@media (max-width:760px){.eats{grid-template-columns:minmax(0,1fr)}.day li{grid-template-columns:64px minmax(0,1fr);gap:12px}.day li>b{font-size:17px}}
/* 演唱會主視覺與購票 */
.kv{margin:8px 0;background:#000}
.kv img{display:block;width:100%;max-height:78vh;object-fit:contain}
.kv figcaption,.seat figcaption{font-size:12px;color:var(--tx);padding:6px 0;background:var(--bg)}
.ticket{border-top:1px solid var(--ln);padding-top:20px;display:grid;gap:10px}
.ticket h2{font-size:20px;font-weight:600;margin:0}
.buy{display:block;text-align:center;padding:14px;background:var(--nv);color:#fff;text-decoration:none;font-size:16px;letter-spacing:.05em}
.buy:hover{background:#3A4660}
.seat{margin:4px 0}.seat img{display:block;width:100%;background:#000}
