/* Luxe layer (2026-11-06): image-led, confident type, prices up front.
   Reference feel: huayunluxurytrains.com. Palette stays ours: deep forest, ivory, champagne gold. */
:root{--ink:#1b2723;--forest:#163a31;--forest-2:#1f463c;--gold:#c9b17e;--champagne:#e8dcbc;--ivory:#faf8f3;--sand:#f2eee4;--muted:#4c5b54;--line:#e1ddd2;--num:"PingFang SC","Microsoft YaHei","Segoe UI","Helvetica Neue",Arial,sans-serif}
/* Numbers: same-height, same-width digits everywhere (easier to read for older guests). */
.card-price,.facts-bar .train-facts dd,.step-no,.destination-tile p,.footer-phone,.dot-no,.compare-table,.steps-cta .plain-link,.facts-bar .plain-link{font-variant-numeric:lining-nums tabular-nums}
.facts-bar .train-facts dd,.card-price{font-weight:600;letter-spacing:.3px}
body{background:var(--ivory);color:var(--ink);font-size:17px;font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC","Helvetica Neue",Arial,sans-serif}
h1,h2,h3{font-weight:700;letter-spacing:.5px;color:inherit}
.section{padding-block:88px}
.section-heading{margin-bottom:34px;align-items:flex-end}.section-heading h2,.brand-intro h2{font-size:36px;letter-spacing:1px}
.section-heading>div>p{display:none}
.display-title{font-size:38px;text-align:center;letter-spacing:2px}
.display-sub{text-align:center;font-size:18px;color:var(--muted);margin:14px auto 40px;max-width:640px}
.eyebrow-cn{text-align:center;font-size:14px;letter-spacing:4px;color:#8a7447;margin-bottom:10px}

/* header */
.site-header{background:#faf8f3f2}.site-header.over-hero{background:linear-gradient(180deg,#0b1c18b3,#0b1c1800);border-bottom:0;backdrop-filter:none;-webkit-backdrop-filter:none}
.nav-title{font-weight:500}.header-book{background:var(--gold);border-color:var(--gold);color:#12302a;font-weight:600;border-radius:3px}.header-book:hover{background:var(--champagne)}
.button{border-radius:3px;font-weight:600;letter-spacing:1px;min-height:52px;padding-inline:28px}
.button.bronze{background:var(--gold);border-color:var(--gold);color:#12302a}.button.bronze:hover{background:var(--champagne);border-color:var(--champagne)}

/* hero */
.hero{min-height:min(92vh,860px)}
.hero-mask{background:linear-gradient(90deg,#08171499 0%,#0817144d 45%,#08171400 75%),linear-gradient(0deg,#08171480,#0000 40%)}
.hero-content{padding-top:40px}
.hero h1{font-size:68px;font-weight:800;letter-spacing:6px;line-height:1.3;text-shadow:0 4px 30px #0005}
.hero-content>p{font-size:21px;margin-top:22px;color:#f3efe6;letter-spacing:1px;max-width:620px}
.hero .button{margin-top:40px;font-size:17px;min-height:56px;padding-inline:34px}
.hero-caption{font-size:13px;opacity:.85}

/* hero carousel */
.hero-slides{position:absolute;inset:0;z-index:-3}
.hero-slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.2s ease}
.hero-slide.is-active{opacity:1;z-index:1}
.hero-slide .hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transform:scale(1.04);transition:transform 7s ease-out}
.hero-slide.is-active .hero-photo{transform:scale(1)}
.hero-slide .hero-caption{position:absolute;right:max(60px,calc((100vw - 1160px)/2));bottom:34px;z-index:3;font-size:13px}
.hero-slide .hero-caption a{color:#fff;opacity:.85}.hero-slide .hero-caption a:hover{opacity:1;text-decoration:underline;text-underline-offset:4px}
.hero-carousel .hero-mask{z-index:-2;pointer-events:none;background:linear-gradient(90deg,#071512c7 0%,#0715128c 38%,#07151226 68%,#07151200 85%),linear-gradient(0deg,#071512a6,#0000 38%)}
.hero-carousel .hero-content>p{text-shadow:0 2px 14px #000a}
.hero-dots{position:absolute;left:0;right:0;bottom:34px;display:flex;gap:28px;z-index:2;pointer-events:none}
.hero-dots button{pointer-events:auto;background:none;border:0;color:#fff;padding:0;text-align:left;display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:8px;min-width:150px;cursor:pointer;opacity:.6;transition:opacity .3s}
.hero-dots button[aria-selected=true],.hero-dots button:hover{opacity:1}
.dot-no{font-family:var(--num);font-size:15px;color:var(--champagne)}
.dot-label{font-size:15px;letter-spacing:1px}
.dot-bar{grid-column:1/-1;height:2px;background:#ffffff40;overflow:hidden}
.dot-bar i{display:block;height:100%;width:0;background:var(--gold)}
.hero-dots button[aria-selected=true] .dot-bar i{width:100%}
.hero-dots button.run .dot-bar i{width:0;animation:heroBar 6s linear forwards}
@keyframes heroBar{to{width:100%}}
@media(max-width:760px){.hero-dots{bottom:22px;gap:14px}.hero-dots button{min-width:0;flex:1}.dot-label{font-size:13px}.hero-slide .hero-caption{display:none}}
@media(prefers-reduced-motion:reduce){.hero-slide,.hero-slide .hero-photo{transition:none}.hero-slide .hero-photo{transform:none}}

/* featured cards */
.featured{padding-top:96px}
.journey-rail{gap:22px}.journey-rail .journey-card{flex-basis:calc((100% - 66px)/4)}
.journey-card{border-radius:6px;background:var(--forest);box-shadow:0 18px 40px -28px #0d241e}
.journey-photo{aspect-ratio:1.3}.catalog-grid .journey-photo{aspect-ratio:1.3}
.journey-copy{padding:22px 22px 20px}
.journey-copy .card-label{font-size:13px;color:var(--gold);letter-spacing:1px;display:flex;align-items:center;gap:10px;min-height:22px}
.card-tag{font-size:11px;letter-spacing:1px;color:#12302a;background:var(--champagne);padding:3px 7px 2px;border-radius:2px}
.journey-copy h3,.catalog-grid .journey-copy h3{font-size:22px;margin-top:8px;line-height:1.45;color:#fff}
.card-points{list-style:none;margin:14px 0 0;padding:0;flex:1}
.card-points li{position:relative;padding-left:16px;font-size:15px;line-height:1.75;color:#dfe6e0;margin-top:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-points li::before{content:"";position:absolute;left:0;top:.78em;width:5px;height:5px;border-radius:50%;background:var(--gold)}
.card-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;border-top:1px solid #ffffff2b;margin-top:20px;padding-top:16px}
.card-price{font-family:var(--num);font-size:26px;line-height:1.2;color:var(--champagne);margin:0}
.card-price small{display:block;font-family:"PingFang SC","Microsoft YaHei",sans-serif;font-size:12px;letter-spacing:1px;color:#b9c6bf;margin-bottom:4px}
.card-price span{font-family:"PingFang SC","Microsoft YaHei",sans-serif;font-size:13px;margin-left:4px;color:#cfd8d2}
.card-go{flex:0 0 46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#f6f1e4;color:var(--forest);transition:transform .2s,background .2s}
.card-go:hover{transform:translateX(3px);background:#fff}.card-go .icon{width:18px;height:18px;flex-basis:18px}
.journey-copy>p.journey-meta{display:none}
.carousel-controls button{border-radius:50%}

/* suite showcase */
.showcase{padding-top:40px}
.space-panels{border-radius:6px}.space-panels figure{aspect-ratio:2.05}
.space-panels figcaption{display:block;text-align:center;padding:90px 30px 34px;background:linear-gradient(transparent,#0b1d19d9)}
.space-panels h3{font-size:30px;letter-spacing:2px}.space-panels figcaption p{font-size:16px;color:#e6e1d4;margin-top:6px}
.space-panels figcaption a{justify-content:center;margin-top:12px;font-size:15px;color:var(--champagne)}
.space-tabs{gap:10px;margin-top:14px}.space-tabs button{flex:0 0 calc((100% - 70px)/8);background:none}.space-tabs img{border-radius:3px;opacity:.55}
.space-tabs button[aria-selected=true] img{outline:2px solid var(--gold)}.space-tabs span{font-size:12px}

/* dining mosaic */
.dining-band{padding-block:20px 88px}
.dining-mosaic{display:grid;grid-template-columns:2.1fr 1fr 1fr;grid-template-rows:280px 280px;gap:10px}
.dining-lead{grid-row:1/3;position:relative;border-radius:6px;overflow:hidden;color:#fff}
.dining-lead img,.dining-strip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}
.dining-lead:hover img,.dining-strip:hover img{transform:scale(1.03)}
.dining-lead>div{position:absolute;left:0;right:0;bottom:0;padding:120px 40px 38px;background:linear-gradient(transparent,#0a1b17e6)}
.dining-lead h2{font-size:34px;letter-spacing:2px}.dining-lead p{font-size:17px;color:#ebe6da;margin-top:12px;max-width:460px}
.dining-strip{position:relative;border-radius:6px;overflow:hidden;color:#fff}
.dining-strip span{position:absolute;left:0;right:0;bottom:0;padding:50px 18px 16px;background:linear-gradient(transparent,#0a1b17cc);font-size:16px;font-weight:600}
.dining-strip small{display:block;font-size:12px;font-weight:400;color:#d7d3c7;margin-top:2px}

/* destinations */
.destinations{padding-top:40px}
.destination-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:300px;gap:12px;margin-top:34px}
.destination-tile{position:relative;border-radius:6px;overflow:hidden;color:#fff}
.destination-tile.tile-0{grid-column:span 2}.destination-tile.tile-3{grid-column:span 2}
.destination-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}.destination-tile:hover img{transform:scale(1.04)}
.destination-tile>div{position:absolute;left:0;right:0;bottom:0;padding:70px 26px 22px;background:linear-gradient(transparent,#0a1b17c7)}
.destination-tile h3{font-size:30px;letter-spacing:3px}.destination-tile p{font-size:15px;color:#ece7da;margin-top:4px;font-family:var(--num)}

/* booking steps */
.steps-band{background:var(--sand);padding-block:84px}
.steps{list-style:none;padding:0;margin:44px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:34px;counter-reset:none}
.steps li{border-top:1px solid #cbbf9f;padding-top:22px}
.step-no{font-family:var(--num);font-size:46px;line-height:1;color:#a88d55}
.steps h3{font-size:21px;margin-top:16px}.steps p{font-size:16px;line-height:1.9;color:var(--muted);margin-top:10px}
.steps-cta{display:flex;justify-content:center;align-items:center;gap:30px;margin-top:46px}
.steps-cta .plain-link{font-size:18px;font-family:var(--num);color:var(--forest);gap:8px}.steps-cta .icon{width:18px;height:18px;flex-basis:18px}

/* faq, news, about, closing */
.faq-grid summary{font-size:18px;font-weight:600;color:var(--ink)}.faq-grid p{font-size:16px;color:var(--muted)}
.news-card h3{font-weight:700;font-size:22px}
.brand-intro p{color:var(--muted)}
.closing-banner{position:relative;isolation:isolate;padding-block:110px;background:var(--forest);color:#fff;overflow:hidden}
.closing-banner .closing-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.closing-banner::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0b1d19e6,#0b1d1980);z-index:-1}
.closing-banner h2{font-size:36px;letter-spacing:2px;color:#fff}.closing-banner p{font-size:17px;color:#e7e3d8;margin-top:14px}

.site-footer{background:#10302a;color:#e8ece5}.site-footer p,.site-footer a,.footer-grid>div>p,.footer-grid a{color:#dfe5de!important;opacity:1}.site-footer a:hover{color:#fff!important}
.footer-grid h3{color:var(--gold)!important;font-size:15px!important;letter-spacing:1px;margin-bottom:8px}
.footer-grid a.footer-phone{font-family:var(--num);font-size:24px!important;color:#fff!important;margin-top:10px}
.footer-bottom{color:#b9c4bd!important;border-color:#ffffff22}
.footer-bottom{flex-wrap:wrap;row-gap:14px}
.footer-registration{display:flex;flex:0 0 100%;flex-wrap:wrap;gap:10px 24px;font-size:13px;line-height:1.9}
.footer-registration a{text-decoration:none;letter-spacing:.2px}
.footer-registration a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-registration a:focus-visible{outline:2px solid #d6c38d;outline-offset:4px}

/* train page */
.breadcrumbs{padding-block:20px 14px}
.train-hero{position:relative;isolation:isolate;min-height:min(70vh,620px);display:flex;align-items:flex-end;color:#fff;background:var(--forest)}
.train-hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.train-hero-mask{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#0a1a16e6 0%,#0a1a1666 40%,#0a1a1600 70%)}
.train-hero-copy{padding-bottom:46px}
.train-hero .card-label{color:var(--champagne);font-size:15px;letter-spacing:2px}
.train-hero h1{font-size:58px;letter-spacing:4px;margin-top:10px;line-height:1.3}
.train-hero .agency-line{color:#eee8da;font-size:15px;margin-top:14px}.train-hero .agency-line a{color:var(--champagne)}
.agency-mark{background:var(--champagne);border:0;color:#12302a;border-radius:2px}
.facts-bar{background:var(--forest);color:#fff}
.facts-bar>.container{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-block:26px;flex-wrap:wrap}
.facts-bar .train-facts{margin:0;gap:14px 46px}
.facts-bar .train-facts dt{font-size:13px;color:var(--gold);letter-spacing:1px}
.facts-bar .train-facts dd{font-family:var(--num);font-size:26px;color:#fff;margin-top:4px}
.facts-bar .train-actions{gap:26px}.facts-bar .plain-link{color:#fff;font-family:var(--num);font-size:18px}
.train-brief{border-top:0;padding:64px 0 24px;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.train-lede{font-size:20px!important;line-height:2!important;color:var(--ink)!important}
.train-origin-intro{margin:0;font-family:"Songti SC","Noto Serif SC",SimSun,serif;font-size:17px;line-height:2.1;color:#55615a;padding-left:26px;border-left:2px solid var(--gold)}
.train-section-nav{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:4px;gap:36px;font-size:17px}
.train-section-nav a{padding-block:14px}
.route-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.route-card{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column}
.route-photo{display:block;aspect-ratio:2;overflow:hidden;background:var(--sand)}.route-photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.route-card:hover .route-photo img{transform:scale(1.03)}
.route-body{padding:24px 26px 22px;display:flex;flex-direction:column;flex:1}
.route-body h3{font-size:21px;line-height:1.6}
.card-points.dark li{color:var(--muted);font-size:15px;-webkit-line-clamp:3}
.route-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.card-price.dark{color:var(--forest)}.card-price.dark small{color:#7a857f}.card-price.dark span{color:var(--muted)}
.route-foot .button{min-height:48px;padding-inline:22px}
.spaces-grid img,.facilities-grid img{border-radius:6px}.spaces-grid h3{font-size:22px}.facilities-grid h3{font-size:17px;font-weight:600}
.source-footnote{font-size:13px;color:#7b847f}

/* inner pages */
.editorial-opening h1{font-family:inherit;font-weight:700;font-size:44px}
.page-heading h1{font-size:44px}
.compare-table thead th{font-weight:600}.compare-table td:nth-child(5){font-family:var(--num);font-size:16px}

@media(max-width:1050px){.journey-rail .journey-card{flex-basis:calc((100% - 22px)/2)}.dining-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:320px 200px 200px}.dining-lead{grid-row:auto;grid-column:1/3}.destination-grid{grid-template-columns:1fr 1fr}.destination-tile.tile-0,.destination-tile.tile-3{grid-column:span 2}.steps{grid-template-columns:1fr 1fr}.train-brief{grid-template-columns:1fr;gap:30px}.route-grid{grid-template-columns:1fr}.space-tabs button{flex-basis:calc((100% - 30px)/4)}}
@media(max-width:760px){.section{padding-block:56px}.hero h1{font-size:42px;letter-spacing:3px}.hero-content>p{font-size:17px}.section-heading h2,.brand-intro h2,.display-title{font-size:28px}.journey-rail .journey-card{flex-basis:84%}.card-price{font-size:24px}.space-panels figure{aspect-ratio:1.25}.space-panels h3{font-size:24px}.dining-mosaic{grid-template-rows:300px 170px 170px}.dining-lead>div{padding:80px 22px 22px}.dining-lead h2{font-size:26px}.destination-grid{grid-template-columns:1fr;grid-auto-rows:220px}.destination-tile.tile-0,.destination-tile.tile-3{grid-column:auto}.steps{grid-template-columns:1fr;gap:22px}.steps-cta{flex-direction:column;gap:14px}.closing-banner{padding-block:70px}.closing-banner h2{font-size:27px}.train-hero{min-height:420px}.train-hero h1{font-size:36px;letter-spacing:2px}.facts-bar .train-facts{gap:14px 28px}.facts-bar .train-facts dd{font-size:22px}.train-lede{font-size:18px!important}.route-body{padding:20px}.route-foot .button{padding-inline:18px}.editorial-opening h1,.page-heading h1{font-size:32px}}
/* Expanding photo panels: hover or keyboard focus reveals one space at a time. */
.dining-accordion{display:flex;gap:6px;height:clamp(420px,45vw,590px);user-select:none}
.dining-panel{--panel-grow:1;--panel-reveal:0;--peek-opacity:1;position:relative;display:block;flex:var(--panel-grow) 1 0;min-width:0;overflow:hidden;border-radius:6px;background:#254135;color:#fff;transition:flex-grow .65s cubic-bezier(.22,.61,.36,1);isolation:isolate}
.dining-panel:first-child{--panel-grow:4;--panel-reveal:1;--peek-opacity:0}
.dining-panel>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .7s ease;z-index:-2}
.dining-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#0e231b03 18%,#0e231b32 48%,#081c16de 100%)}
.dining-caption{position:absolute;left:clamp(25px,3.2vw,48px);bottom:46px;width:calc(100% - clamp(50px,6.4vw,96px));min-width:0;opacity:var(--panel-reveal);transition:opacity .28s .12s;pointer-events:none}
.dining-caption>small{display:block;font-size:14px;line-height:1.8;letter-spacing:.5px;color:#e9e1cc;margin-bottom:9px}
.dining-caption h2,.dining-caption h3{font-size:30px;font-weight:500;line-height:1.6;letter-spacing:1px;color:#fff;white-space:nowrap}
.dining-caption p{font-size:16px;line-height:1.95;color:#f0eee5;margin-top:12px;max-width:440px}
.dining-discover{display:inline-flex;align-items:center;gap:18px;min-height:44px;border-bottom:1px solid #dfd5b98c;margin-top:17px;font-size:14px;color:#f1e6c9}
.dining-discover .icon{width:15px;height:15px;flex-basis:15px}
.dining-peek{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);writing-mode:vertical-rl;font-size:16px;line-height:1.6;letter-spacing:2px;color:#fff;opacity:var(--peek-opacity);transition:opacity .2s;text-shadow:0 2px 10px #0008}
.dining-panel:focus-visible{outline:2px solid #d6c38d;outline-offset:3px;z-index:1}
@media(min-width:761px){
 .dining-accordion.is-controlled .dining-panel{--panel-grow:1;--panel-reveal:0;--peek-opacity:1}
 .dining-accordion.is-controlled .dining-panel.is-active{--panel-grow:4;--panel-reveal:1;--peek-opacity:0}
 .dining-panel.is-active>img{transform:scale(1.025)}
}
@media(min-width:761px) and (max-width:1000px){.dining-caption{left:26px;bottom:30px;width:calc(100% - 52px)}.dining-caption h2,.dining-caption h3{font-size:26px}.dining-caption p{font-size:15px}.dining-caption>small{font-size:13px}.dining-peek{font-size:15px;letter-spacing:1px}}
@media(max-width:760px){
 .dining-band{padding-block:10px 45px}.dining-accordion{display:grid;grid-template-columns:1fr 1fr;gap:12px;height:auto}
 .dining-panel{height:230px;--panel-reveal:1;--peek-opacity:0;transition:none}.dining-panel:first-child{grid-column:1/-1;height:290px}
 .dining-caption{left:17px;bottom:18px;width:calc(100% - 34px);opacity:1;transition:none}.dining-caption>small{font-size:12px;line-height:1.8;margin-bottom:7px}.dining-caption h2,.dining-caption h3{font-size:19px;line-height:1.6;letter-spacing:0;white-space:normal}.dining-panel:first-child .dining-caption h2{font-size:25px}.dining-panel:first-child .dining-caption p{font-size:15px;line-height:1.9;margin-top:10px}.dining-panel:not(:first-child) .dining-caption p{display:none}.dining-discover{font-size:13px;min-height:36px;gap:8px;margin-top:12px}.dining-peek{display:none}
}
@media(prefers-reduced-motion:reduce){.dining-panel,.dining-panel>img,.dining-caption,.dining-peek{transition:none}}
