/* 全站样式源文件：保存后刷新浏览器即可，不需要构建。 */
:root {
  color-scheme: dark;
  --ink: #f7f1e8;
  --muted: #aaa9b5;
  --night: #070712;
  --night-2: #101024;
  --panel: rgba(20, 20, 43, 0.86);
  --line: rgba(255, 255, 255, 0.14);
  --pink: #ff4ba4;
  --cyan: #53e6ea;
  --amber: #f6c86b;
  --max: 1180px;
  --home-max: 1400px;
  --reading: 760px;
  --radius: 20px;
  --shadow: 0 24px 80px rgba(0, 0, 0, 0.36);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 8% 4%, rgba(255, 75, 164, 0.12), transparent 27rem),
    radial-gradient(circle at 92% 16%, rgba(83, 230, 234, 0.1), transparent 28rem),
    var(--night);
  color: var(--ink);
  font: 1rem/1.72 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration-color: rgba(83, 230, 234, 0.55); text-underline-offset: 0.22em; }
a:hover { color: var(--cyan); }
img { max-width: 100%; display: block; }
button, input { font: inherit; }

.skip-link {
  position: fixed; left: 1rem; top: -5rem; z-index: 100;
  padding: .75rem 1rem; background: var(--cyan); color: #001315; border-radius: 8px;
}
.skip-link:focus { top: 1rem; }

.site-header {
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: blur(18px);
  background: rgba(7, 7, 18, 0.82);
  border-bottom: 1px solid var(--line);
}
.nav-wrap { max-width: var(--max); margin: auto; min-height: 72px; padding: 0 1.25rem; display: flex; align-items: center; gap: 1.25rem; }
.brand { display: inline-flex; gap: .72rem; align-items: center; text-decoration: none; font-weight: 800; letter-spacing: -.02em; white-space: nowrap; }
.brand-mark { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, var(--pink), #8d50ff 55%, var(--cyan)); box-shadow: 0 0 28px rgba(255, 75, 164, .42); color: white; font-size: .78rem; }
.main-nav { margin-left: auto; display: flex; align-items: center; gap: .25rem; }
.main-nav a { padding: .52rem .76rem; border-radius: 999px; text-decoration: none; color: #d8d5df; font-size: .92rem; }
.main-nav a:hover, .main-nav a[aria-current="page"] { color: white; background: rgba(255,255,255,.08); }
.nav-cta { border: 1px solid rgba(83,230,234,.45); }
.menu-toggle { display: none; margin-left: auto; border: 1px solid var(--line); background: transparent; color: white; padding: .55rem .7rem; border-radius: 10px; }

.hero { position: relative; min-height: 680px; display: grid; align-items: end; overflow: hidden; border-bottom: 1px solid var(--line); }
.hero-media { position: absolute; inset: 0; }
.hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,5,16,.94) 0%, rgba(5,5,16,.78) 39%, rgba(5,5,16,.18) 72%), linear-gradient(0deg, var(--night) 0%, transparent 34%); }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-inner { position: relative; z-index: 1; max-width: var(--home-max); width: 100%; margin: auto; padding: 8rem 1.25rem 5rem; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(270px, .62fr); gap: 4rem; align-items: end; }
.eyebrow { margin: 0 0 1rem; color: var(--cyan); font-size: .78rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
h1, h2, h3 { line-height: 1.08; letter-spacing: -.035em; }
h1, h2 { font-family: Georgia, "Times New Roman", serif; }
h1 { margin: 0; font-size: clamp(3.4rem, 8vw, 7.6rem); font-weight: 600; }
.hero h1 {
  max-width: none;
  white-space: nowrap;
  font-size: clamp(2.2rem, 7vw, 5.4rem);
  letter-spacing: -.06em;
}
.hero h1 em { color: var(--pink); font-style: italic; }
.lede { max-width: 640px; margin: 1.4rem 0 0; font-size: clamp(1.08rem, 2vw, 1.32rem); color: #dedbe3; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .72rem 1.1rem; border-radius: 999px; text-decoration: none; font-weight: 750; border: 1px solid transparent; }
.button-primary { background: var(--pink); color: #18000c; }
.button-primary:hover { color: #18000c; background: #ff79b9; }
.button-secondary { border-color: var(--line); background: rgba(7,7,18,.48); color: white; }
.button-secondary:hover { color: white; border-color: var(--cyan); }
.hero-note { color: var(--muted); font-size: .82rem; margin-top: .75rem; }

.night-picker { padding: 1.35rem; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(9,9,23,.78); box-shadow: var(--shadow); backdrop-filter: blur(12px); }
.night-picker h2 { margin: 0; font: 700 1.15rem/1.25 Inter, ui-sans-serif, system-ui; letter-spacing: -.015em; }
.contact-panel { margin: 0 0 1.25rem; padding: 0 0 1.25rem; border-bottom: 1px solid var(--line); }
.contact-kicker { margin: 0 0 .3rem; color: var(--pink); font-size: .68rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.contact-title { margin-bottom: .8rem; color: white; font-size: 1.05rem; font-weight: 800; line-height: 1.25; }
.contact-platforms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; margin-bottom: .75rem; }
.contact-platforms button { min-width: 0; padding: .42rem .28rem; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.035); color: #d7d3dc; cursor: pointer; font-size: .68rem; line-height: 1.2; overflow-wrap: anywhere; }
.contact-platforms button:hover { border-color: rgba(83,230,234,.58); color: white; }
.contact-platforms button[aria-selected="true"] { border-color: var(--cyan); background: rgba(83,230,234,.14); color: var(--cyan); font-weight: 850; }
.contact-platforms button:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
.contact-qr-frame { width: 220px; margin: 0 auto; border: 1px solid rgba(255,255,255,.18); border-radius: 14px; background: #0b0b18; overflow: hidden; }
.contact-qr { width: 218px; height: 218px; max-width: none; object-fit: cover; object-position: center; border-radius: 13px 13px 0 0; background: #0b0b18; }
.contact-qr-frame figcaption { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; padding: .55rem .55rem .6rem; color: #f7f1e8; line-height: 1.2; }
.contact-qr-frame figcaption span { font-size: .78rem; font-weight: 900; }
.contact-qr-frame figcaption small { color: var(--muted); font-size: .6rem; text-align: right; }
.picker-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .32rem; margin: 1rem 0; }
.picker-tabs button { min-width: 0; border: 1px solid var(--line); background: transparent; color: #d7d3dc; border-radius: 999px; padding: .52rem .25rem; cursor: pointer; font-size: .78rem; line-height: 1; white-space: nowrap; }
.picker-tabs button[aria-selected="true"] { background: var(--cyan); color: #001619; border-color: var(--cyan); font-weight: 800; }
.picker-result { min-height: 108px; padding-top: .9rem; border-top: 1px solid var(--line); }
.picker-result strong { display: block; font-size: 1.08rem; margin-bottom: .3rem; }
.picker-result p { color: var(--muted); margin: 0; font-size: .92rem; }
.picker-result a { display: inline-block; margin-top: .65rem; font-size: .88rem; color: var(--cyan); }

.section { max-width: var(--max); margin: 0 auto; padding: 5.5rem 1.25rem; }
.special-services { scroll-margin-top: 72px; }
.special-services-page .article-hero { padding-bottom: 1.35rem; }
.special-services-page .article-hero h1 { max-width: none; font-size: clamp(3rem, 6vw, 5.6rem); }
.special-services-page .special-services { padding-top: 1rem; }
.special-services-head { align-items: start; }
.special-services-head .eyebrow { margin-bottom: .7rem; }
.special-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.special-service-card { position: relative; min-height: 220px; padding: 1.45rem; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(145deg, rgba(27,27,53,.9), rgba(11,11,25,.82)); }
.special-service-card:nth-child(4n + 2), .special-service-card:nth-child(4n + 3) { background: linear-gradient(145deg, rgba(58,21,51,.76), rgba(12,11,26,.84)); }
.special-service-card::after { content: ""; position: absolute; right: -3rem; bottom: -4rem; width: 11rem; height: 11rem; border: 1px solid rgba(83,230,234,.12); border-radius: 50%; box-shadow: 0 0 0 2rem rgba(255,75,164,.025); pointer-events: none; }
.special-service-card > span { color: var(--cyan); font-size: .7rem; font-weight: 850; letter-spacing: .13em; }
.special-service-card h3 { position: relative; z-index: 1; margin: .85rem 0 .75rem; font-size: clamp(1.35rem, 2.2vw, 1.9rem); }
.special-service-card p { position: relative; z-index: 1; margin: 0; color: var(--muted); }
.contact-reason { position: relative; margin: 0 0 1.25rem; padding: 1.5rem; overflow: hidden; border: 1px solid rgba(83,230,234,.34); border-radius: 20px; background: linear-gradient(135deg, rgba(21,54,61,.68), rgba(18,17,42,.88)); box-shadow: 0 18px 50px rgba(0,0,0,.22); }
.contact-reason::after { content: ""; position: absolute; top: -5rem; right: -4rem; width: 13rem; height: 13rem; border-radius: 50%; background: radial-gradient(circle, rgba(83,230,234,.14), transparent 68%); pointer-events: none; }
.contact-reason-head { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: start; gap: 1rem; }
.contact-reason-kicker { margin: 0 0 .4rem; color: var(--cyan); font-size: .7rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.contact-reason h2 { max-width: 24ch; margin: 0 0 .85rem; font: 780 clamp(1.22rem, 2vw, 1.65rem)/1.28 Inter, ui-sans-serif, system-ui; letter-spacing: -.025em; }
.contact-reason-badge { flex: 0 0 auto; padding: .55rem .72rem; border: 1px solid rgba(83,230,234,.32); border-radius: 12px; background: rgba(7,7,18,.35); color: var(--cyan); font-size: .68rem; font-weight: 850; line-height: 1.45; text-align: center; letter-spacing: .05em; }
.contact-reason > p { position: relative; z-index: 1; margin: 0; max-width: 68ch; color: #c8c8d2; font-size: .83rem; line-height: 1.7; }
.contact-reason ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 1rem 0; padding: 0; list-style: none; }
.contact-reason li { position: relative; z-index: 1; min-height: 126px; padding: .85rem; border: 1px solid rgba(255,255,255,.1); border-radius: 13px; background: rgba(7,7,18,.28); }
.contact-reason li strong, .contact-reason li span { display: block; }
.contact-reason li .contact-reason-number { margin-bottom: .45rem; color: var(--pink); font: italic .82rem Georgia, serif; }
.contact-reason li strong { margin-bottom: .28rem; color: var(--ink); font-size: .82rem; }
.contact-reason li span { color: var(--muted); font-size: .72rem; line-height: 1.55; }
.contact-reason .contact-reason-note { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(150px, .7fr) minmax(0, 1.8fr); gap: .8rem; align-items: start; padding: .9rem 1rem; border: 1px solid rgba(246,200,107,.28); border-radius: 12px; background: rgba(246,200,107,.07); color: #d9d1c2; }
.contact-reason-note strong { color: var(--amber); font-size: .78rem; line-height: 1.5; }
.contact-reason-note span { color: #c8c0b3; font-size: .72rem; line-height: 1.65; }
.special-services-followup { width: calc(100% - 368px); max-width: var(--reading); margin-top: 3rem; }
.safety-page .article-hero { padding-bottom: 2.3rem; }
.safety-page .article-hero h1 { max-width: none; font-size: clamp(3rem, 5.2vw, 4.6rem); }
.safety-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; max-width: 980px; margin-top: 2rem; }
.safety-principles > div { display: grid; grid-template-columns: auto 1fr; gap: .75rem; align-items: start; padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: rgba(7,7,18,.42); }
.safety-principles span { color: var(--pink); font: italic .95rem Georgia, serif; }
.safety-principles p { margin: 0; color: #d5d2db; font-size: .82rem; line-height: 1.55; }
.safety-manual section { scroll-margin-top: 92px; }
.safety-manual .eyebrow { margin: 3.6rem 0 .65rem; }
.safety-manual section:first-child .eyebrow { margin-top: 1rem; }
.safety-signal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1.4rem 0; }
.safety-signal-grid article { padding: 1.15rem; border: 1px solid var(--line); border-radius: 15px; background: linear-gradient(145deg, rgba(27,27,53,.78), rgba(11,11,25,.72)); }
.safety-signal-grid article:last-child { grid-column: 1 / -1; }
.safety-signal-grid span, .safety-trap-grid article > span, .safety-transport-grid article > span { color: var(--pink); font-size: .7rem; font-weight: 850; letter-spacing: .12em; }
.safety-signal-grid h3, .safety-trap-grid h3, .safety-transport-grid h3 { margin: .55rem 0 .45rem; }
.safety-signal-grid p, .safety-trap-grid p, .safety-transport-grid p { margin: 0; color: var(--muted); font-size: .88rem; }
.safety-case-grid { display: grid; gap: 1rem; margin: 1.4rem 0; }
.safety-case { padding: 1.35rem; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(135deg, rgba(48,21,49,.72), rgba(13,13,30,.82)); }
.safety-tag { display: inline-flex; padding: .28rem .55rem; border: 1px solid rgba(255,75,164,.3); border-radius: 999px; color: var(--pink); font-size: .68rem; font-weight: 850; }
.safety-case h3 { margin: .8rem 0 .5rem; font-size: 1.55rem; }
.safety-case > p { margin-top: 0; color: var(--muted); }
.safety-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin-top: 1rem; }
.safety-two-col > div { padding: 1rem; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; background: rgba(5,5,15,.3); }
.safety-two-col strong { color: var(--cyan); font-size: .82rem; }
.safety-two-col ul, .safety-two-col ol { margin-bottom: 0; padding-left: 1.1rem; }
.safety-two-col li { color: var(--muted); font-size: .8rem; }
.safety-trap-grid { display: grid; gap: .85rem; margin: 1.4rem 0; }
.safety-trap-grid article { padding: 1.2rem; border: 1px solid var(--line); border-radius: 16px; background: rgba(17,17,38,.7); }
.safety-trap-grid ul { margin: .85rem 0 0; }
.safety-trap-grid li { color: #d3d0d8; font-size: .84rem; }
.safety-transport-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; margin: 1.4rem 0; }
.safety-transport-grid article { padding: 1.25rem; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(145deg, rgba(21,54,61,.42), rgba(14,14,31,.72)); }
.safety-flow { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .6rem; margin: 1.4rem 0; padding: 0 !important; list-style: none; counter-reset: none; }
.safety-flow li { grid-column: span 2; }
.safety-flow li:nth-child(4) { grid-column: 2 / span 2; }
.safety-flow li:nth-child(5) { grid-column: 4 / span 2; }
.safety-flow li { padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: rgba(18,18,39,.72); }
.safety-flow li::before, .safety-flow li::after { content: none !important; }
.safety-flow strong, .safety-flow span { display: block; }
.safety-flow strong { margin-bottom: .35rem; color: var(--pink); }
.safety-flow span { color: var(--muted); font-size: .76rem; line-height: 1.55; }
.safety-checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin: 1.4rem 0; padding: 0 !important; list-style: none; }
.safety-checklist li { position: relative; padding: .9rem .9rem .9rem 2.4rem; border: 1px solid var(--line); border-radius: 12px; background: rgba(17,17,38,.62); }
.safety-checklist li::before { content: "\2713"; position: absolute; left: .85rem; top: .88rem; color: var(--cyan); font-weight: 900; }
.safety-caption { color: var(--muted); font-size: .82rem; }
.emergency-card { margin-top: 2rem; padding: 1.35rem; border: 1px solid rgba(246,200,107,.3); border-radius: 18px; background: linear-gradient(135deg, rgba(57,42,24,.35), rgba(19,18,35,.75)); }
.emergency-card .eyebrow { margin-top: 0 !important; color: var(--amber); }
.emergency-card h3 { margin: .4rem 0 1rem; font-size: 1.55rem; }
.emergency-card ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; padding: 0; list-style: none; }
.emergency-card li { padding: .85rem; border: 1px solid rgba(255,255,255,.09); border-radius: 12px; background: rgba(5,5,15,.24); }
.emergency-card li strong, .emergency-card li span { display: block; }
.emergency-card li strong { color: var(--ink); }
.emergency-card li span { margin-top: .25rem; color: var(--muted); font-size: .8rem; }
.emergency-priority { margin-bottom: 0; color: var(--amber) !important; font-weight: 800; }
.safety-faq { display: grid; gap: .65rem; margin-top: 1.4rem; }
.safety-faq details { border: 1px solid var(--line); border-radius: 13px; background: rgba(17,17,38,.68); }
.safety-faq summary { position: relative; padding: 1rem 3rem 1rem 1rem; cursor: pointer; color: var(--ink); font-weight: 800; list-style: none; }
.safety-faq summary::-webkit-details-marker { display: none; }
.safety-faq summary::after { content: "+"; position: absolute; right: 1rem; top: .8rem; color: var(--cyan); font-size: 1.25rem; }
.safety-faq details[open] summary::after { content: "−"; }
.safety-faq details[open] summary { border-bottom: 1px solid var(--line); }
.safety-faq details p { margin: 0; padding: 1rem; color: var(--muted); }
.money-page { background: radial-gradient(circle at 10% 7%, rgba(246,200,107,.12), transparent 28rem), radial-gradient(circle at 90% 16%, rgba(83,230,234,.08), transparent 28rem), var(--night); }
.money-hero { padding-bottom: 2.35rem; }
.money-hero h1 { max-width: none; font-size: clamp(3rem, 5.2vw, 4.6rem); }
.money-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; max-width: 980px; margin-top: 2rem; }
.money-facts > div { min-height: 128px; padding: 1rem; border: 1px solid rgba(246,200,107,.25); border-radius: 14px; background: linear-gradient(145deg, rgba(51,39,21,.36), rgba(8,8,21,.62)); }
.money-facts span, .money-facts strong, .money-facts p { display: block; }
.money-facts span { color: var(--amber); font-size: .68rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.money-facts strong { margin: .35rem 0 .25rem; font-size: 1.05rem; }
.money-facts p { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.money-guide section { scroll-margin-top: 92px; }
.money-guide .eyebrow { margin: 3.6rem 0 .65rem; color: var(--amber); }
.money-guide section:first-child .eyebrow { margin-top: 1rem; }
.money-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 1.4rem 0; }
.money-overview-grid article { padding: 1.1rem; border: 1px solid var(--line); border-radius: 15px; background: linear-gradient(145deg, rgba(27,27,53,.78), rgba(11,11,25,.72)); }
.money-overview-grid article:last-child { grid-column: 1 / -1; }
.money-overview-grid span { color: var(--amber); font-size: .7rem; font-weight: 850; letter-spacing: .12em; }
.money-overview-grid h3 { margin: .5rem 0 .4rem; }
.money-overview-grid p { margin: 0; color: var(--muted); font-size: .86rem; }
.money-budget-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; margin: 1.4rem 0; }
.money-budget-grid article { display: flex; min-height: 205px; padding: 1.15rem; flex-direction: column; border: 1px solid rgba(246,200,107,.24); border-radius: 17px; background: linear-gradient(155deg, rgba(58,43,22,.52), rgba(15,15,31,.82)); }
.money-budget-grid span { color: var(--amber); font-size: .7rem; font-weight: 850; letter-spacing: .12em; }
.money-budget-grid strong { margin-top: 1rem; color: var(--ink); font-size: clamp(1.28rem, 2vw, 1.75rem); line-height: 1.1; overflow-wrap: anywhere; }
.money-budget-grid small { margin-top: .25rem; color: var(--cyan); font-weight: 850; }
.money-budget-grid p { margin: auto 0 0; color: var(--muted); font-size: .78rem; }
.money-table td:nth-child(4), .money-table td:nth-child(5) { color: var(--amber); white-space: nowrap; letter-spacing: .04em; }
.money-area-grid { display: grid; gap: .8rem; margin: 1.4rem 0; }
.money-area-grid article { position: relative; padding: 1.25rem 1.25rem 1.25rem 7.6rem; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: rgba(17,17,38,.68); }
.money-area-grid article::before { content: ""; position: absolute; left: -3rem; top: 50%; width: 9rem; height: 9rem; border: 1px solid rgba(83,230,234,.14); border-radius: 50%; transform: translateY(-50%); box-shadow: 0 0 0 1.3rem rgba(246,200,107,.025); }
.money-area-grid span { position: absolute; left: 1rem; top: 1.35rem; width: 5.7rem; color: var(--cyan); font-size: .65rem; font-weight: 850; letter-spacing: .08em; }
.money-area-grid h3 { margin: 0 0 .4rem; }
.money-area-grid p { margin: 0; color: var(--muted); font-size: .86rem; }
.money-number-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 1.4rem 0; }
.money-number-grid > div { padding: 1.15rem; border: 1px solid rgba(83,230,234,.22); border-radius: 16px; background: linear-gradient(145deg, rgba(21,54,61,.36), rgba(14,14,31,.72)); text-align: center; }
.money-number-grid strong, .money-number-grid span, .money-number-grid p { display: block; }
.money-number-grid strong { font: 700 clamp(1.28rem, 2.4vw, 2rem)/1.1 Georgia, serif; letter-spacing: -.02em; }
.money-number-grid span { margin-top: .25rem; color: var(--cyan); font-size: .68rem; font-weight: 850; letter-spacing: .14em; }
.money-number-grid p { margin: .6rem 0 0; color: var(--muted); }
.money-checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin: 1.4rem 0; padding: 0 !important; list-style: none; counter-reset: money-check; }
.money-checklist li { position: relative; min-height: 108px; padding: 1rem 1rem 1rem 3.25rem; border: 1px solid var(--line); border-radius: 14px; background: rgba(17,17,38,.64); counter-increment: money-check; }
.money-checklist li::before { content: counter(money-check, decimal-leading-zero); position: absolute; left: 1rem; top: .95rem; color: var(--amber); font: italic .82rem Georgia, serif; }
.money-final-card { margin-top: 3.5rem; padding: 1.5rem; border: 1px solid rgba(246,200,107,.3); border-radius: 19px; background: linear-gradient(135deg, rgba(57,42,24,.38), rgba(19,18,35,.78)); }
.money-final-card .eyebrow { margin-top: 0 !important; }
.money-final-card h2 { margin-top: .4rem; }
.money-final-card p:last-child { margin-bottom: 0; color: #d2c9ba; }
.money-source-hero { position: relative; display: flex; align-items: end; width: 100%; max-width: none; height: min(70vh, 680px); min-height: 500px; margin: 0; padding: 0; overflow: hidden; border-bottom: 1px solid var(--line); }
.money-cover { position: absolute; inset: 0; }
.money-cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,7,16,.94) 0%, rgba(6,7,16,.68) 52%, rgba(6,7,16,.2) 100%), linear-gradient(0deg, rgba(7,7,18,.96), transparent 58%); }
.money-cover img { width: 100%; height: 100%; object-fit: cover; object-position: center 43%; }
.money-cover-content { position: relative; z-index: 1; width: 100%; max-width: var(--max); margin: 0 auto; padding: 7rem 1.25rem 3.5rem; }
.money-source-hero h1 { max-width: 17ch; font-size: clamp(2.7rem, 5.5vw, 5.3rem); }
.money-byline { margin: 1.2rem 0 0; color: #d2ced7; font-size: .86rem; }
.money-original-copy > p:first-child { font-size: 1.08rem; color: #ebe7ee; }
.money-infographic { display: block; margin: 2rem 0 3.5rem; }
.money-infographic img { width: 100%; height: auto; border: 1px solid rgba(246,200,107,.22); border-radius: 18px; background: #111; box-shadow: var(--shadow); }
.money-area-copy article { padding: 1.25rem; }
.money-area-copy article::before { display: none; }
.money-number-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; padding: 0 !important; list-style: none; }
.money-number-list li { padding: 1rem; border: 1px solid rgba(83,230,234,.22); border-radius: 14px; background: linear-gradient(145deg, rgba(21,54,61,.36), rgba(14,14,31,.72)); color: var(--ink); text-align: center; font-weight: 800; }
.money-question-list { display: grid; gap: .75rem; }
.money-question-list article { padding: 1.15rem; border: 1px solid var(--line); border-radius: 15px; background: rgba(17,17,38,.68); }
.money-question-list h3 { margin-top: 0; }
.money-question-list p { margin-bottom: 0; }
.money-contact-copy { margin: 3rem 0 0; padding: 1.5rem; border: 1px solid rgba(83,230,234,.3); border-radius: 18px; background: linear-gradient(135deg, rgba(21,54,61,.46), rgba(18,17,42,.8)); text-align: center; }
.money-contact-copy h2 { margin: 0 0 .7rem; font: 780 clamp(1.35rem, 2.2vw, 1.8rem)/1.25 Inter, ui-sans-serif, system-ui; }
.money-contact-copy p { margin: 0; }
#guides { max-width: var(--home-max); }
.guides-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 3rem; align-items: start; }
.guides-main { min-width: 0; }
.home-contact-slot { position: sticky; top: 96px; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, rgba(27,27,53,.9), rgba(11,11,25,.88)); box-shadow: var(--shadow); }
.home-contact-slot .contact-panel { margin: 0; padding: 0; border-bottom: 0; }
.home-contact-slot .contact-qr-frame { width: 288px; }
.home-contact-slot .contact-qr { width: 286px; height: 286px; }
.section + .section { padding-top: 1rem; }
.section-head { display: grid; grid-template-columns: 1.25fr .75fr; gap: 3rem; align-items: end; margin-bottom: 2rem; }
.section-head h2 { margin: 0; white-space: nowrap; font-size: clamp(2.3rem, 5vw, 4rem); font-weight: 600; letter-spacing: -.055em; }
.section-head p { margin: 0; max-width: 620px; color: var(--muted); }
.category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 4rem; }
.category-card { scroll-margin-top: 90px; padding: 1.6rem; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, rgba(27,27,53,.9), rgba(11,11,25,.8)); }
.category-card:nth-child(even) { background: linear-gradient(145deg, rgba(58,21,51,.76), rgba(12,11,26,.84)); }
.category-card-head { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.category-number { color: var(--pink); font: italic 1.1rem Georgia, serif; }
.category-card h3 { margin: 1.25rem 0 .2rem; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1; }
.category-card > strong { color: var(--cyan); font-size: .9rem; }
.category-card > p { margin: 1rem 0; color: var(--muted); }
.category-subtypes { margin: 1.25rem 0; padding-top: 1.1rem; border-top: 1px solid var(--line); }
.category-subtypes h4 { margin: 0 0 .8rem; color: #fff; font-size: .88rem; letter-spacing: .06em; }
.category-subtype-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
#category-dragon-palace .category-subtype-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.category-subtype { padding: .8rem; border: 1px solid var(--line); border-radius: 12px; background: rgba(4,4,14,.32); }
.category-subtype strong { display: block; color: var(--pink); font-size: .9rem; }
.category-subtype p { margin: .45rem 0 0; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.category-subtype-link { text-decoration: none; transition: transform .2s ease, border-color .2s ease, background .2s ease; }
.category-subtype-link:hover { transform: translateY(-2px); border-color: rgba(83,230,234,.6); background: rgba(83,230,234,.08); color: inherit; }
.category-subtype-link:focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; }
#category-ktv, #category-dragon-palace { display: flex; flex-direction: column; }
#category-ktv .category-subtypes, #category-dragon-palace .category-subtypes { margin-top: auto; margin-bottom: 0; }
@media (min-width: 901px) {
  #category-ktv .category-subtype, #category-dragon-palace .category-subtype { min-height: 8.6rem; }
}
.category-card ul { margin: 0 0 1.25rem; padding-left: 1.2rem; color: #d7d3dc; }
.category-card li + li { margin-top: .35rem; }
.category-card > a { color: var(--cyan); font-size: .88rem; }
.category-section-head { margin: 0 0 1.4rem; }
.category-section-head h3 { margin: .35rem 0 0; font-size: clamp(1.7rem, 3vw, 2.7rem); }
.category-section-head > p:last-child { margin: .65rem 0 0; color: var(--muted); }
.article-hero { max-width: var(--max); margin: auto; padding: 6.5rem 1.25rem 3rem; }
.breadcrumbs { color: var(--muted); font-size: .82rem; margin-bottom: 1.4rem; }
.breadcrumbs a { text-decoration: none; }
.article-hero h1 { max-width: 15ch; font-size: clamp(3rem, 7vw, 6.4rem); }
.article-deck { max-width: 760px; margin: 1.4rem 0 1.6rem; color: #d1ced8; font-size: 1.2rem; }
.article-meta { display: flex; flex-wrap: wrap; gap: .6rem 1.3rem; color: var(--muted); font-size: .82rem; }
.article-meta span:first-child { color: var(--amber); }
.article-layout { max-width: 1480px; margin: auto; padding: 0 1.25rem 5rem; display: grid; grid-template-columns: 220px minmax(0, var(--reading)) 250px; gap: clamp(1.5rem, 2.5vw, 3.25rem); justify-content: center; align-items: start; }
.article-body { min-width: 0; grid-column: 2; grid-row: 1; }
.article-body h2 { scroll-margin-top: 96px; margin: 4rem 0 1rem; font-size: clamp(2rem, 4vw, 3.1rem); font-weight: 600; }
.article-body h2:first-child { margin-top: 1rem; }
.article-body h3 { margin: 2.2rem 0 .75rem; font-size: 1.35rem; }
.article-body p, .article-body li { color: #d4d1da; }
.article-body ul, .article-body ol { padding-left: 1.2rem; }
.article-body li + li { margin-top: .5rem; }
.article-body strong { color: white; }
.article-media { margin: 1.6rem 0; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.035); box-shadow: 0 18px 50px rgba(0,0,0,.24); }
.article-media img { display: block; width: 100%; height: auto; }
.article-media-portrait { max-width: 620px; }
.article-media-compact { max-width: 360px; }
.article-media-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.6rem 0; }
.article-media-grid .article-media { margin: 0; }
.article-media-grid-compact { max-width: 680px; align-items: center; }
.nightlife-inline-photo { max-width: 520px; margin: 2.25rem auto; }
.nightlife-inline-photo-wide { max-width: none; }
.source-copy img { display: block; max-width: 100%; height: auto; margin: 1.6rem auto; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.035); box-shadow: 0 18px 50px rgba(0,0,0,.24); }
.source-copy a { overflow-wrap: anywhere; }
.source-copy h3 { line-height: 1.35; }
.source-copy > div { margin-block: 1rem; }
.source-copy p:has(> img), .source-copy a:has(> img) { display: block; }
.mode-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.mode-card { padding: 1.3rem; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(145deg, rgba(27,27,53,.82), rgba(11,11,25,.72)); }
.mode-card:nth-child(2) { background: linear-gradient(145deg, rgba(58,21,51,.7), rgba(12,11,26,.78)); }
.mode-card > span { color: var(--cyan); font-size: .76rem; font-weight: 800; letter-spacing: .1em; }
.mode-card h3 { margin: .65rem 0; }
.mode-card p { margin: 0; }
.timeline { list-style: none; padding-left: 0 !important; counter-reset: step; }
.timeline li { position: relative; padding: 0 0 1.5rem 3rem; counter-increment: step; }
.timeline li::before { content: counter(step); position: absolute; left: 0; top: -.1rem; width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; background: var(--pink); color: #19000d; font-weight: 900; }
.timeline li:not(:last-child)::after { content: ""; position: absolute; left: .98rem; top: 2rem; bottom: 0; width: 1px; background: var(--line); }
.venue-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.nightlife-venue-grid { grid-template-columns: 1fr; gap: 1rem; }
.nightlife-venue-grid .venue-card,
.nightlife-venue-grid .venue-card-featured { grid-column: 1; width: 100%; }
.venue-card { padding: 1.4rem; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(145deg, rgba(27,27,53,.82), rgba(11,11,25,.72)); }
.venue-card:nth-child(3n) { background: linear-gradient(145deg, rgba(58,21,51,.7), rgba(12,11,26,.78)); }
.venue-card-featured { grid-column: 1 / -1; border-color: rgba(83,230,234,.38); background: linear-gradient(135deg, rgba(21,54,61,.78), rgba(18,17,42,.82)); }
.venue-rank { color: var(--cyan); font-size: .76rem; font-weight: 850; letter-spacing: .1em; }
.venue-card h3 { margin: .7rem 0; font-size: 1.6rem; }
.venue-card p { margin: .7rem 0; }
.venue-facts { margin: 1rem 0 0 !important; padding-top: 1rem !important; border-top: 1px solid var(--line); }
.venue-facts li { color: var(--muted); font-size: .88rem; }
.dragon-package-grid { gap: 1.15rem; align-items: stretch; }
.dragon-package-card { display: flex; flex-direction: column; min-width: 0; min-height: 100%; padding: 1.5rem; overflow: hidden; }
.dragon-package-card:nth-child(3n) { background: linear-gradient(145deg, rgba(27,27,53,.82), rgba(11,11,25,.72)); }
.dragon-package-card h3 { margin-bottom: .55rem; font-size: clamp(1.35rem, 2.4vw, 1.65rem); line-height: 1.2; }
.dragon-package-card > p { margin-top: 0; min-height: 4.6em; color: #e9e5ee; }
.dragon-package-card .venue-facts { flex: 1; margin-top: .75rem !important; }
.dragon-package-card .venue-facts li { margin-bottom: .55rem; }
.dragon-package-card-highlight { border-color: rgba(83,230,234,.55); background: linear-gradient(145deg, rgba(18,60,66,.8), rgba(18,17,42,.88)); box-shadow: 0 16px 40px rgba(27,213,219,.08); }
.dragon-package-total { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: .15rem .65rem; margin-top: 1rem; padding: .9rem 1rem; border: 1px solid rgba(83,230,234,.25); border-radius: 13px; background: rgba(83,230,234,.07); }
.dragon-package-total span { grid-column: 1; color: var(--muted); font-size: .78rem; font-weight: 750; letter-spacing: .03em; }
.dragon-package-total strong { grid-column: 1; color: #fff; font-size: 1.3rem; line-height: 1.1; }
.dragon-package-total small { grid-column: 2; grid-row: 1 / span 2; align-self: end; padding-bottom: .1rem; color: var(--cyan); font-size: .72rem; font-weight: 800; }
.venue-detail-link { display: inline-flex; align-items: center; gap: .45rem; margin-top: 1.1rem; padding: .7rem 1rem; border: 1px solid rgba(83,230,234,.42); border-radius: 999px; color: var(--cyan); font-size: .86rem; font-weight: 800; text-decoration: none; transition: background .2s ease, border-color .2s ease, transform .2s ease; }
.venue-detail-link::after { content: "→"; }
.venue-detail-link:hover { border-color: var(--cyan); background: rgba(83,230,234,.1); transform: translateY(-1px); }
.venue-detail-link:focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; }
.room-disclosure { margin: 1.25rem 0 2rem; }
.room-disclosure > summary { display: flex; align-items: center; justify-content: center; gap: .75rem; width: fit-content; margin: 0 auto; padding: .85rem 1.15rem; border: 1px solid rgba(83,230,234,.42); border-radius: 999px; color: var(--cyan); background: rgba(83,230,234,.065); cursor: pointer; list-style: none; font-weight: 850; transition: background .2s ease, border-color .2s ease, transform .2s ease; }
.room-disclosure > summary::-webkit-details-marker { display: none; }
.room-disclosure > summary::after { content: "+"; display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: rgba(83,230,234,.14); font-size: 1.15rem; line-height: 1; }
.room-disclosure > summary:hover { border-color: var(--cyan); background: rgba(83,230,234,.11); transform: translateY(-1px); }
.room-disclosure > summary:focus-visible { outline: 2px solid var(--cyan); outline-offset: 4px; }
.room-disclosure > summary small { color: var(--muted); font-size: .76rem; font-weight: 650; }
.room-disclosure-label-expanded { display: none; }
.room-disclosure[open] > summary::after { content: "−"; }
.room-disclosure[open] .room-disclosure-label-collapsed { display: none; }
.room-disclosure[open] .room-disclosure-label-expanded { display: inline; }
.room-disclosure .venue-grid-more { margin-top: 1rem; }
.comparison-table-wrap { width: 100%; overflow-x: auto; margin: 1.5rem 0; border: 1px solid var(--line); border-radius: 14px; }
.comparison-table { min-width: 920px; margin: 0; }
.comparison-table th:first-child, .comparison-table td:first-child { text-align: center; }
.article-body blockquote { margin: 2rem 0; padding: 1.25rem 1.4rem; border-left: 3px solid var(--pink); background: rgba(255,75,164,.08); border-radius: 0 14px 14px 0; }
.article-body blockquote p { margin: 0; color: #f2eaf0; }
.callout { margin: 2rem 0; padding: 1.25rem; border: 1px solid rgba(83,230,234,.3); border-radius: 16px; background: rgba(83,230,234,.065); }
.callout strong { display: block; color: var(--cyan); margin-bottom: .35rem; }
.price-table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: .92rem; }
.price-table th, .price-table td { padding: .8rem .7rem; text-align: left; border-bottom: 1px solid var(--line); }
.price-table th { color: var(--cyan); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.sidebar { position: sticky; top: 98px; grid-column: 1; grid-row: 1; border-right: 1px solid var(--line); padding-right: 1.25rem; }
.sidebar strong { display: block; font-size: .76rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-bottom: .75rem; }
.sidebar a { display: block; padding: .38rem 0; text-decoration: none; color: #cac7d1; font-size: .88rem; }
.sidebar a:hover { color: var(--cyan); }
.contact-sidebar { position: sticky; top: 98px; grid-column: 3; grid-row: 1; min-width: 0; }
.contact-sidebar .contact-panel { margin: 0; padding: 0; border-bottom: 0; }
.related { margin-top: 4rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.related h2 { margin-top: 0; }
.related-links { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; }
.related-links a { padding: 1rem; border: 1px solid var(--line); border-radius: 12px; text-decoration: none; }

.source-list { font-size: .9rem; }
.source-list a { color: var(--cyan); }
.disclosure { max-width: var(--max); margin: 0 auto 5rem; padding: 1.2rem 1.25rem; color: var(--muted); font-size: .82rem; border-top: 1px solid var(--line); }

.site-footer { border-top: 1px solid var(--line); background: #05050d; }
.footer-inner { max-width: var(--max); margin: auto; padding: 3.2rem 1.25rem; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2rem; }
.footer-inner h2 { margin: 0 0 .7rem; font-size: 1.7rem; }
.footer-inner p { color: var(--muted); max-width: 460px; }
.footer-links strong { display: block; margin-bottom: .65rem; color: var(--muted); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.footer-links a { display: block; padding: .28rem 0; color: #d8d5de; text-decoration: none; font-size: .9rem; }
.footer-bottom { max-width: var(--max); margin: auto; padding: 1rem 1.25rem 2rem; color: #7d7a87; font-size: .75rem; }

@media (max-width: 1100px) {
  .article-layout { max-width: 820px; grid-template-columns: 1fr; }
  .article-body, .sidebar, .contact-sidebar { grid-column: 1; grid-row: auto; }
  .contact-sidebar { position: static; order: -2; width: 100%; max-width: 420px; }
  .sidebar { position: static; order: -1; max-width: 420px; border-right: 0; padding-right: 0; }
}

@media (max-width: 900px) {
  .menu-toggle { display: inline-flex; }
  .main-nav { display: none; position: absolute; left: 1rem; right: 1rem; top: 64px; padding: .7rem; flex-direction: column; align-items: stretch; background: #111122; border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); }
  .main-nav[data-open="true"] { display: flex; }
  .hero { min-height: auto; }
  .hero-inner { grid-template-columns: 1fr; gap: 2rem; padding-top: 7rem; }
  .night-picker { max-width: 520px; }
  .section-head { grid-template-columns: 1fr; gap: 1rem; }
  .guides-layout { grid-template-columns: 1fr; }
  .home-contact-slot { position: static; order: -1; width: min(100%, 420px); }
  .special-services-page .home-contact-slot { order: 0; margin-top: 1.5rem; }
  .special-services-followup { width: 100%; }
  .special-service-grid { grid-template-columns: 1fr; }
  .contact-reason ul { grid-template-columns: 1fr; }
  .contact-reason .contact-reason-note { grid-template-columns: 1fr; }
  .safety-principles, .safety-flow { grid-template-columns: 1fr; }
  .safety-flow li, .safety-flow li:nth-child(4), .safety-flow li:nth-child(5) { grid-column: auto; }
  .money-facts, .money-budget-grid { grid-template-columns: 1fr; }
  .money-budget-grid article { min-height: 0; }
  .money-budget-grid p { margin-top: 1rem; }
  .money-source-hero { height: 560px; min-height: 0; }
  .category-grid { grid-template-columns: 1fr; }
  .article-layout { grid-template-columns: 1fr; }
  .sidebar { display: none; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-inner > :first-child { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  html, body { width: 100%; max-width: 100vw; overflow-x: hidden; }
  .nav-wrap, .article-hero, .article-layout, .article-body, .contact-sidebar, .contact-panel, .mode-grid, .mode-card { width: 100%; max-width: 100%; min-width: 0; }
  .section-head h2 { font-size: clamp(1.65rem, 8vw, 2.3rem); }
  .category-subtype-grid, #category-dragon-palace .category-subtype-grid { grid-template-columns: 1fr; }
  .nav-wrap { min-height: 64px; }
  .hero-inner { padding: 6.4rem 1rem 3.5rem; }
  h1 { font-size: clamp(3.1rem, 17vw, 5rem); }
  .hero-media::after { background: linear-gradient(90deg, rgba(5,5,16,.88), rgba(5,5,16,.5)), linear-gradient(0deg, var(--night) 0%, transparent 45%); }
  .section { padding: 4rem 1rem; }
  .related-links { grid-template-columns: 1fr; }
  .article-hero { padding: 4.5rem 1rem 2rem; }
  .article-hero h1 { overflow-wrap: anywhere; font-size: clamp(2.7rem, 14vw, 4.2rem); }
  .article-layout { padding-inline: 1rem; }
  .article-body h2 { margin-top: 3rem; }
  .mode-grid { grid-template-columns: 1fr; }
  .venue-grid { grid-template-columns: 1fr; }
  .dragon-package-card > p { min-height: 0; }
  .article-media-grid { grid-template-columns: 1fr; }
  .venue-card-featured { grid-column: auto; }
  .safety-signal-grid, .safety-two-col, .safety-transport-grid, .safety-checklist, .emergency-card ol { grid-template-columns: 1fr; }
  .safety-signal-grid article:last-child { grid-column: auto; }
  .money-overview-grid, .money-number-grid, .money-checklist { grid-template-columns: 1fr; }
  .money-overview-grid article:last-child { grid-column: auto; }
  .money-area-grid article { padding-left: 1rem; padding-top: 3.2rem; }
  .money-area-grid span { left: 1rem; top: 1rem; width: auto; }
  .money-area-copy article { padding: 1rem; }
  .money-number-list { grid-template-columns: 1fr; }
  .money-source-hero { height: 500px; }
  .money-cover-content { padding: 6rem 1rem 2.2rem; }
  .money-source-hero h1 { font-size: clamp(2.45rem, 12vw, 4rem); }
  .price-table { display: block; overflow-x: auto; white-space: nowrap; }
  .footer-inner { grid-template-columns: 1fr; }
  .footer-inner > :first-child { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* 胡志明夜生活总攻略：杂志式双核心与行程版面 */
.nightlife-hub-page {
  background:
    radial-gradient(circle at 92% 4%, rgba(83,230,234,.12), transparent 32rem),
    radial-gradient(circle at 6% 18%, rgba(255,75,164,.1), transparent 30rem),
    var(--night);
}
.nightlife-hub-hero {
  max-width: 1320px;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: end;
  padding-top: 5.8rem;
  padding-bottom: 3.5rem;
}
.nightlife-hub-hero-copy { min-width: 0; }
.nightlife-hub-hero h1 {
  max-width: 13ch;
  font-size: clamp(3.25rem, 5.2vw, 5.2rem);
  line-height: .98;
}
.nightlife-hub-hero .article-deck { max-width: 690px; }
.nightlife-hub-hero .article-deck strong { color: #fff; }
.nightlife-hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.6rem; }
.nightlife-hero-visual {
  position: relative;
  min-height: 520px;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 28px 28px 28px 92px;
  background: #11111f;
  box-shadow: var(--shadow);
}
.nightlife-hero-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 45%, rgba(5,5,13,.86));
  pointer-events: none;
}
.nightlife-hero-visual img { width: 100%; height: 520px; object-fit: cover; }
.nightlife-hero-visual figcaption {
  position: absolute;
  z-index: 1;
  left: 1.4rem;
  right: 1.4rem;
  bottom: 1.2rem;
  color: #e9e6ed;
  font-size: .84rem;
}
.nightlife-hero-visual figcaption span { display: block; margin-bottom: .25rem; color: var(--cyan); font-size: .67rem; font-weight: 850; letter-spacing: .14em; }
.nightlife-jump-nav {
  position: sticky;
  top: 72px;
  z-index: 35;
  display: flex;
  justify-content: center;
  gap: .45rem;
  padding: .65rem 1rem;
  border-block: 1px solid var(--line);
  background: rgba(7,7,18,.84);
  backdrop-filter: blur(16px);
}
.nightlife-jump-nav a { padding: .45rem .8rem; border-radius: 999px; color: #d6d3dc; font-size: .78rem; font-weight: 750; text-decoration: none; }
.nightlife-jump-nav a:hover { background: rgba(83,230,234,.1); color: var(--cyan); }
.nightlife-hub-layout { max-width: 1320px; grid-template-columns: 210px minmax(0, 960px); gap: clamp(2rem, 4vw, 4.5rem); }
.nightlife-hub { max-width: none; }
.nightlife-hub section { scroll-margin-top: 140px; }
.nightlife-hub > section > .eyebrow { margin-top: 4.5rem; margin-bottom: .7rem; }
.nightlife-hub > section:first-child > .eyebrow { margin-top: 0; }
.nightlife-hub h2 { max-width: 20ch; font-size: clamp(2.45rem, 4.5vw, 4rem); }
.nightlife-hub .nightlife-lead { color: #f1edf4; font-size: clamp(1.1rem, 2vw, 1.35rem); line-height: 1.65; }
.nightlife-editor-note {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 1.2rem;
  align-items: start;
  margin-top: 2rem;
  padding: 1.2rem 1.35rem;
  border: 1px solid rgba(246,200,107,.32);
  border-radius: 16px;
  background: rgba(246,200,107,.07);
}
.nightlife-editor-note span { color: var(--amber); font-size: .72rem; font-weight: 850; letter-spacing: .1em; }
.nightlife-editor-note p { margin: 0; }
.nightlife-priority-grid { display: grid; gap: 1.35rem; margin-top: 1.8rem; }
.nightlife-priority-card {
  display: grid;
  grid-template-columns: minmax(290px, .82fr) minmax(0, 1.18fr);
  min-height: 550px;
  overflow: hidden;
  border: 1px solid rgba(83,230,234,.32);
  border-radius: 26px;
  background: linear-gradient(135deg, rgba(16,50,57,.82), rgba(13,13,31,.92));
  box-shadow: 0 24px 70px rgba(0,0,0,.3);
}
.nightlife-priority-card-matrix {
  grid-template-columns: minmax(0, 1.18fr) minmax(290px, .82fr);
  border-color: rgba(255,75,164,.3);
  background: linear-gradient(135deg, rgba(55,20,48,.78), rgba(13,13,31,.92));
}
.nightlife-priority-card-matrix figure { order: 2; }
.nightlife-priority-card figure { margin: 0; min-height: 100%; overflow: hidden; }
.nightlife-priority-card figure img { width: 100%; height: 100%; min-height: 550px; object-fit: cover; }
.nightlife-priority-card-dragon figure img { object-position: center; }
.nightlife-priority-card-matrix figure img { object-position: 50% 28%; }
.nightlife-priority-copy { align-self: center; padding: clamp(1.5rem, 4vw, 2.7rem); }
.nightlife-card-index { color: var(--cyan); font-size: .72rem; font-weight: 850; letter-spacing: .12em; }
.nightlife-priority-card-matrix .nightlife-card-index { color: #ff8bc3; }
.nightlife-priority-card h3 { margin: .65rem 0 1rem; font: 600 clamp(2.3rem, 4vw, 3.6rem)/1 Georgia, serif; letter-spacing: -.05em; }
.nightlife-priority-card p { margin: .85rem 0; }
.nightlife-fact-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; margin: 1.25rem 0; }
.nightlife-fact-row div { padding: .8rem; border: 1px solid rgba(255,255,255,.11); border-radius: 12px; background: rgba(3,3,12,.25); }
.nightlife-fact-row dt { color: var(--muted); font-size: .68rem; }
.nightlife-fact-row dd { margin: .25rem 0 0; color: #fff; font-size: .8rem; font-weight: 750; line-height: 1.45; }
.nightlife-card-note { color: var(--muted) !important; font-size: .84rem; }
.nightlife-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; margin-top: 1.5rem; }
.nightlife-choice-grid article { min-height: 250px; padding: 1.3rem; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(145deg, rgba(27,27,53,.78), rgba(11,11,25,.74)); }
.nightlife-choice-grid article:nth-child(3n + 2) { background: linear-gradient(145deg, rgba(53,23,49,.68), rgba(11,11,25,.78)); }
.nightlife-choice-grid span { color: var(--cyan); font-size: .7rem; font-weight: 850; letter-spacing: .08em; }
.nightlife-choice-grid h3 { margin: .6rem 0 .7rem; font-size: 1.55rem; }
.nightlife-choice-grid p { margin: 0 0 1rem; color: var(--muted); font-size: .88rem; }
.nightlife-choice-grid a, .nightlife-text-link { color: var(--cyan); font-size: .84rem; font-weight: 800; text-decoration: none; }
.nightlife-wide-photo { margin: 4.5rem 0; overflow: hidden; border: 1px solid var(--line); border-radius: 28px; background: #11111f; box-shadow: var(--shadow); }
.nightlife-wide-photo img { width: 100%; height: min(50vw, 520px); object-fit: cover; }
.nightlife-wide-photo figcaption { padding: 1rem 1.25rem 1.2rem; color: var(--muted); font-size: .84rem; }
.nightlife-wide-photo figcaption strong { color: #fff; }
.nightlife-route-card { margin-top: 1.25rem; overflow: hidden; border: 1px solid rgba(83,230,234,.26); border-radius: 24px; background: linear-gradient(150deg, rgba(17,38,47,.84), rgba(13,13,30,.9)); }
.nightlife-route-card-fast { border-color: rgba(246,200,107,.27); background: linear-gradient(150deg, rgba(56,41,20,.5), rgba(13,13,30,.92)); }
.nightlife-route-card-luxe { border-color: rgba(255,75,164,.28); background: linear-gradient(150deg, rgba(52,20,47,.58), rgba(13,13,30,.92)); }
.nightlife-route-card > header { display: flex; justify-content: space-between; gap: 2rem; align-items: end; padding: 1.5rem 1.6rem 1.25rem; border-bottom: 1px solid var(--line); }
.nightlife-route-card > header span { color: var(--cyan); font-size: .7rem; font-weight: 850; letter-spacing: .11em; }
.nightlife-route-card-fast > header span { color: var(--amber); }
.nightlife-route-card-luxe > header span { color: #ff8bc3; }
.nightlife-route-card > header h3 { margin: .35rem 0 0; font-size: clamp(1.65rem, 3vw, 2.3rem); }
.nightlife-route-card > header p { max-width: 290px; margin: 0; color: var(--muted); font-size: .82rem; text-align: right; }
.nightlife-route-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nightlife-route-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nightlife-route-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nightlife-route-day { min-width: 0; padding: 1.35rem 1.45rem; border-right: 1px solid var(--line); }
.nightlife-route-day:nth-child(2n) { border-right: 0; }
.nightlife-route-grid-3 .nightlife-route-day:nth-child(2) { border-right: 1px solid var(--line); }
.nightlife-route-grid-3 .nightlife-route-day:last-child { border-right: 0; }
.nightlife-route-grid-4 .nightlife-route-day:nth-child(n + 3) { border-top: 1px solid var(--line); }
.nightlife-day-label { display: flex; align-items: baseline; gap: .55rem; margin-bottom: 1rem; }
.nightlife-day-label strong { color: var(--pink); font: italic 1.35rem Georgia, serif; }
.nightlife-day-label span { color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.nightlife-route-day ol { margin: 0; padding: 0; list-style: none; }
.nightlife-route-day li { display: grid; grid-template-columns: 82px 1fr; gap: .75rem; padding: .8rem 0; border-top: 1px solid rgba(255,255,255,.08); }
.nightlife-route-day li:first-child { border-top: 0; }
.nightlife-route-day time { color: var(--cyan); font-size: .7rem; font-weight: 800; }
.nightlife-route-day li strong { display: block; font-size: .85rem; line-height: 1.4; }
.nightlife-route-day li p { margin: .25rem 0 0; color: var(--muted); font-size: .75rem; line-height: 1.55; }
.nightlife-route-day-short { background: rgba(255,255,255,.025); }
.nightlife-route-card > footer { display: grid; grid-template-columns: 190px 1fr; gap: 1rem; padding: 1rem 1.6rem; border-top: 1px solid var(--line); background: rgba(4,4,13,.28); }
.nightlife-route-card > footer strong { color: var(--amber); font-size: .8rem; }
.nightlife-route-card > footer span { color: #c6c3cd; font-size: .78rem; }
.nightlife-photo-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 4.5rem 0; }
.nightlife-photo-pair figure { margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.03); }
.nightlife-photo-pair img { width: 100%; height: 330px; object-fit: cover; }
.nightlife-photo-pair figcaption { padding: .85rem 1rem 1rem; color: var(--muted); font-size: .78rem; }
.nightlife-budget-wrap { width: 100%; margin: 1.5rem 0; overflow-x: auto; border: 1px solid var(--line); border-radius: 16px; }
.nightlife-budget-table { min-width: 850px; margin: 0; }
.nightlife-budget-table td { vertical-align: top; }
.nightlife-budget-formula { margin-top: 1.3rem; padding: 1.4rem; border: 1px solid rgba(246,200,107,.32); border-radius: 18px; background: linear-gradient(135deg, rgba(62,46,23,.4), rgba(17,17,37,.82)); }
.nightlife-budget-formula span, .nightlife-budget-formula strong { display: block; }
.nightlife-budget-formula span { color: var(--amber); font-size: .72rem; font-weight: 850; letter-spacing: .1em; }
.nightlife-budget-formula strong { margin: .35rem 0; font-size: clamp(1.35rem, 3vw, 2rem); }
.nightlife-budget-formula p, .nightlife-fineprint { margin-bottom: 0; color: var(--muted); font-size: .8rem; }
.nightlife-rule-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 1.5rem 0; padding: 0 !important; list-style: none; }
.nightlife-rule-grid li { display: grid; grid-template-columns: 40px 1fr; gap: .75rem; margin: 0 !important; padding: 1rem; border: 1px solid var(--line); border-radius: 15px; background: rgba(17,17,38,.7); }
.nightlife-rule-grid li > span { color: var(--pink); font: italic 1rem Georgia, serif; }
.nightlife-rule-grid strong { display: block; font-size: .88rem; }
.nightlife-rule-grid p { margin: .25rem 0 0; color: var(--muted); font-size: .78rem; }
.nightlife-verdict-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; margin-top: 1.5rem; }
.nightlife-verdict-grid article { padding: 1.2rem; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(145deg, rgba(27,27,53,.75), rgba(11,11,25,.74)); }
.nightlife-verdict-grid span, .nightlife-verdict-grid strong { display: block; }
.nightlife-verdict-grid span { color: var(--cyan); font-size: .7rem; font-weight: 850; }
.nightlife-verdict-grid strong { margin: .25rem 0; font-size: 1.35rem; }
.nightlife-verdict-grid p { margin: .4rem 0 0; color: var(--muted); font-size: .8rem; }
.nightlife-hub > #verdict > .eyebrow { margin-top: 2.25rem; margin-bottom: .45rem; }
.nightlife-hub > #verdict > h2 { margin-top: 0; }
.nightlife-editorial-note { margin-top: 4rem; padding: 1.4rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.nightlife-editorial-note h2 { margin-top: 0; font: 800 1.15rem/1.3 Inter, sans-serif; letter-spacing: -.02em; }
.nightlife-editorial-note p { color: var(--muted); font-size: .82rem; }
.nightlife-guide-cta { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 2rem; align-items: center; margin-top: 4.5rem; padding: 1.6rem; overflow: hidden; border: 1px solid rgba(83,230,234,.28); border-radius: 24px; background: linear-gradient(135deg, rgba(21,54,61,.68), rgba(18,17,42,.88)); }
.nightlife-guide-cta h2 { margin-top: .45rem; }
.nightlife-guide-cta figure { max-height: 360px; margin: 0; overflow: hidden; border-radius: 16px; }
.nightlife-guide-cta img { width: 100%; height: 360px; object-fit: cover; object-position: center 13%; }

@media (max-width: 1100px) {
  .nightlife-hub-hero { grid-template-columns: 1fr; }
  .nightlife-hub-hero h1 { max-width: 13ch; }
  .nightlife-hero-visual { min-height: 420px; }
  .nightlife-hero-visual img { height: 420px; }
  .nightlife-hub-layout { grid-template-columns: 1fr; }
  .nightlife-hub-layout .article-body, .nightlife-hub-layout .sidebar { grid-column: 1; }
  .nightlife-hub-layout .sidebar { display: none; }
}

@media (max-width: 800px) {
  .nightlife-jump-nav { top: 64px; justify-content: flex-start; overflow-x: auto; }
  .nightlife-jump-nav a { flex: 0 0 auto; }
  .nightlife-priority-card, .nightlife-priority-card-matrix { grid-template-columns: 1fr; min-height: 0; }
  .nightlife-priority-card-matrix figure { order: 0; }
  .nightlife-priority-card figure img { height: 430px; min-height: 0; }
  .nightlife-priority-card-matrix figure img { object-position: 50% 22%; }
  .nightlife-route-grid-3, .nightlife-route-grid-4 { grid-template-columns: 1fr; }
  .nightlife-route-day, .nightlife-route-grid-3 .nightlife-route-day:nth-child(2) { border-right: 0; border-top: 1px solid var(--line); }
  .nightlife-route-day:first-child { border-top: 0; }
  .nightlife-photo-pair { grid-template-columns: 1fr; }
  .nightlife-verdict-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .nightlife-hub-hero { padding-top: 4.4rem; gap: 2rem; }
  .nightlife-hub-hero h1 { font-size: clamp(2.75rem, 14vw, 4.1rem); }
  .nightlife-hero-visual { min-height: 320px; border-radius: 22px 22px 22px 54px; }
  .nightlife-hero-visual img { height: 320px; }
  .nightlife-jump-nav { padding-inline: .7rem; }
  .nightlife-hub h2 { font-size: clamp(2.15rem, 11vw, 3.1rem); }
  .nightlife-editor-note { grid-template-columns: 1fr; gap: .45rem; }
  .nightlife-priority-card figure img { height: 360px; }
  .nightlife-priority-copy { padding: 1.25rem; }
  .nightlife-fact-row, .nightlife-choice-grid, .nightlife-route-body, .nightlife-rule-grid { grid-template-columns: 1fr; }
  .nightlife-priority-card h3 { font-size: 2.35rem; }
  .nightlife-choice-grid article { min-height: 0; }
  .nightlife-wide-photo img { height: 300px; }
  .nightlife-route-card > header { display: block; padding: 1.25rem; }
  .nightlife-route-card > header p { margin-top: .6rem; text-align: left; }
  .nightlife-route-day { padding: 1.15rem; }
  .nightlife-route-day li { grid-template-columns: 74px 1fr; }
  .nightlife-route-card > footer { grid-template-columns: 1fr; padding: 1rem 1.2rem; }
  .nightlife-photo-pair img { height: 250px; }
  .nightlife-guide-cta { grid-template-columns: 1fr; }
  .nightlife-guide-cta figure { max-height: 300px; }
  .nightlife-guide-cta img { height: 300px; }
}
