/* All production styles are confined to the new city navigation section. */
.spf-module{--spf-ink:#18382e;--spf-muted:#66746c;--spf-accent:#235e49;--spf-line:#d6ddd3;position:relative;isolation:isolate;margin:0;padding:58px 0 48px;color:var(--spf-ink);font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-size:14px;line-height:1.6;text-align:left;overflow:hidden;scroll-margin-top:100px}
.spf-module *{box-sizing:border-box}.spf-module .spf-shell{width:calc(100% - 80px);max-width:1200px;margin:0 auto;position:relative}.spf-module a{color:inherit;text-decoration:none;background:none;box-shadow:none;border-radius:0}.spf-module p,.spf-module h2{margin:0}.spf-module h2{font-family:inherit;font-size:32px;font-weight:500;line-height:1.35;letter-spacing:-1px;color:inherit}.spf-module h2 br{display:none}.spf-module .spf-eyebrow{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:2px;margin-bottom:12px;color:var(--spf-accent)}.spf-module .spf-eyebrow>span{display:block;width:20px;height:2px;background:currentColor}.spf-module .spf-description{font-size:13px;color:var(--spf-muted);margin-top:12px;line-height:1.8;max-width:460px}.spf-module .spf-top{position:relative;display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:28px}.spf-module .spf-all{position:relative;display:inline-flex;align-items:center;gap:25px;white-space:nowrap;font-size:12px;padding:11px 0;border-bottom:1px solid currentColor;z-index:1;min-height:44px}.spf-module .spf-all span{font-size:18px}.spf-module .spf-link{position:relative;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px 0;font-size:14px;line-height:1.55;min-height:48px;transition:color .2s,background-color .2s}.spf-module .spf-place{white-space:nowrap}.spf-module .spf-arrow{font-size:15px;opacity:.5;transition:transform .2s,opacity .2s}.spf-module .spf-link:hover{color:var(--spf-accent)}.spf-module .spf-link:hover .spf-arrow{transform:translate(2px,-2px);opacity:1}.spf-module a:focus-visible{outline:2px solid var(--spf-accent);outline-offset:3px}.spf-module .spf-number{font-size:10px;opacity:.55;font-family:Arial,sans-serif}.spf-module nav{display:block}
/* Home: warm paper, a large botanical imprint, four featured destinations. */
.spf-garden{background:#f2f4ea;border-top:1px solid #dce4d5}.spf-garden .spf-top{padding-right:180px}.spf-garden .spf-orbit{position:absolute;right:3px;top:-25px;width:135px;height:135px;display:grid;place-items:center;opacity:.62;pointer-events:none}.spf-garden .spf-orbit i{position:absolute;border:1px solid #789a65;width:122px;height:75px;border-radius:50%;transform:rotate(30deg)}.spf-garden .spf-orbit i:nth-child(2){transform:rotate(90deg)}.spf-garden .spf-orbit i:nth-child(3){transform:rotate(150deg)}.spf-garden .spf-orbit b{font-family:serif;font-size:24px;font-weight:400;color:#356040}.spf-garden .spf-features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#ced8c5;border:1px solid #ced8c5;margin-top:32px}.spf-garden .spf-feature{background:#e6eddb;padding:20px 21px;gap:18px;min-height:82px}.spf-garden .spf-feature .spf-place{font-size:20px;font-weight:500}.spf-garden .spf-feature .spf-arrow{margin-left:auto;font-size:23px}.spf-garden .spf-feature:hover{background:#dce9ca}.spf-garden .spf-rest{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));column-gap:24px;margin-top:18px}.spf-garden .spf-rest .spf-link{border-bottom:1px solid #d9dfd1}.spf-garden .spf-rest .spf-arrow{display:none}
/* Shanghai: midnight blue city route board with a continuous running line. */
.spf-route{--spf-ink:#ecf2fa;--spf-muted:#9cb0c9;--spf-accent:#91caff;--spf-line:#304057;background:#101f33;padding-top:54px}.spf-route .spf-top{padding-right:160px}.spf-route .spf-city-code{position:absolute;right:0;top:-20px;font:300 100px/1 Arial,sans-serif;letter-spacing:-7px;color:#29435f;pointer-events:none}.spf-route .spf-route-label{display:flex;justify-content:space-between;padding:16px 0 12px;border-top:1px solid #48627c;color:#98b2cc;font-size:11px;letter-spacing:1px}.spf-route .spf-route-label i{font-style:normal;margin-left:15px}.spf-route .spf-route-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));border-top:1px solid #34485e}.spf-route .spf-link{display:grid;grid-template-columns:1fr auto;min-height:84px;border-right:1px solid #34485e;border-bottom:1px solid #34485e;padding:12px 10px}.spf-route .spf-link:nth-child(8n+1){border-left:1px solid #34485e}.spf-route .spf-link:nth-child(16n+9),.spf-route .spf-link:nth-child(16n+10),.spf-route .spf-link:nth-child(16n+11),.spf-route .spf-link:nth-child(16n+12),.spf-route .spf-link:nth-child(16n+13),.spf-route .spf-link:nth-child(16n+14),.spf-route .spf-link:nth-child(16n+15),.spf-route .spf-link:nth-child(16n+16){background:#15263c}.spf-route .spf-number{grid-column:1/3;color:#b6cbdd}.spf-route .spf-place{font-size:14px}.spf-route .spf-link:after{content:"";position:absolute;bottom:-1px;left:14px;right:14px;height:2px;background:#91caff;transform:scaleX(0);transform-origin:left;transition:transform .25s}.spf-route .spf-link:hover:after{transform:scaleX(1)}
/* Beijing: two page editorial index, with a large quiet city character. */
.spf-folio{--spf-ink:#14283f;--spf-muted:#66717f;--spf-accent:#1462b5;--spf-line:#cad3de;background:#f3f5f6}.spf-folio .spf-top{padding-right:110px}.spf-folio .spf-watermark{position:absolute;right:0;top:-23px;font-family:serif;font-size:112px;font-weight:400;line-height:1;color:#dfe5ea;pointer-events:none}.spf-folio .spf-spreads{display:grid;grid-template-columns:1fr 1fr;gap:36px}.spf-folio .spf-sheet{border-top:3px solid #1c4369;padding-top:11px}.spf-folio .spf-sheet-head{display:flex;align-items:center;justify-content:space-between;color:#647384;font-size:11px;letter-spacing:2px;border-bottom:1px solid #ced7e1;padding-bottom:10px}.spf-folio .spf-sheet-head b{font:400 26px/1 Georgia,serif;color:#184a7d}.spf-folio .spf-sheet-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:16px}.spf-folio .spf-link{border-bottom:1px solid #d9dfe6;padding:19px 0;min-height:62px}.spf-folio .spf-place{font-size:15px}.spf-folio .spf-arrow{font-size:14px}
/* Service page: calm ledger layout, introductory column beside a light index. */
.spf-ledger{--spf-ink:#142d41;--spf-muted:#6a7b86;--spf-accent:#147582;background:#eaf0ef}.spf-ledger .spf-ledger-layout{display:grid;grid-template-columns:260px 1fr;gap:52px}.spf-ledger h2{font-size:29px}.spf-ledger h2 br{display:block}.spf-ledger .spf-description{margin-top:18px}.spf-ledger .spf-all{margin-top:24px}.spf-ledger .spf-ledger-lines{display:flex;gap:10px;align-items:end;height:70px;width:120px;margin-top:24px}.spf-ledger .spf-ledger-lines span{display:block;width:24px;height:30px;background:#b5d0cc;border-top:2px solid #5a9b98}.spf-ledger .spf-ledger-lines span:nth-child(2){height:50px}.spf-ledger .spf-ledger-lines span:nth-child(3){height:70px}.spf-ledger .spf-ledger-head{display:flex;justify-content:space-between;background:#dce8e6;color:#466c70;font-size:11px;padding:13px 18px;letter-spacing:1px;border-top:2px solid #477e82}.spf-ledger .spf-ledger-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#f6f8f6;padding:0 18px 4px;column-gap:22px}.spf-ledger .spf-link{border-bottom:1px solid #dce4e1;padding:13px 0}.spf-ledger .spf-arrow{font-size:13px}
/* District page: warm urban gateway, side illustration and a spacious index. */
.spf-gateway{--spf-ink:#302c25;--spf-muted:#817567;--spf-accent:#9d552d;background:#f5f0e7}.spf-gateway .spf-gateway-layout{display:grid;grid-template-columns:300px 1fr;gap:50px}.spf-gateway h2 br{display:block}.spf-gateway .spf-all{margin-top:20px}.spf-gateway .spf-gates{height:125px;position:relative;overflow:hidden;margin-top:22px}.spf-gateway .spf-gates i{position:absolute;left:10px;bottom:-18px;width:180px;height:140px;border:1px solid #c6ad91;border-radius:90px 90px 0 0;transform:rotate(-9deg)}.spf-gateway .spf-gates i:nth-child(2){left:39px;bottom:-29px}.spf-gateway .spf-gates i:nth-child(3){left:68px;bottom:-40px}.spf-gateway .spf-gateway-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:22px;border-top:1px solid #b9a88e}.spf-gateway .spf-link{border-bottom:1px solid #d9cebd;padding:12px 0;gap:9px}.spf-gateway .spf-number{font-size:9px;color:#917b60}.spf-gateway .spf-arrow{display:none}.spf-gateway .spf-place{flex:1}
@media(max-width:1100px){.spf-module .spf-shell{width:calc(100% - 48px)}.spf-garden .spf-top{padding-right:140px}.spf-garden .spf-rest{grid-template-columns:repeat(4,minmax(0,1fr))}.spf-route .spf-top{padding-right:110px}.spf-route .spf-city-code{font-size:78px}.spf-route .spf-route-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.spf-route .spf-link:nth-child(4n+1){border-left:1px solid #34485e}.spf-ledger .spf-ledger-layout{grid-template-columns:220px 1fr;gap:30px}.spf-ledger .spf-ledger-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.spf-gateway .spf-gateway-layout{grid-template-columns:250px 1fr;gap:30px}.spf-gateway .spf-gateway-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.spf-folio .spf-sheet-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.spf-folio .spf-arrow{display:none}}
@media(max-width:760px){.spf-module{padding:36px 0 32px;scroll-margin-top:76px}.spf-module .spf-shell{width:calc(100% - 36px)}.spf-module h2{font-size:26px;letter-spacing:-.5px}.spf-module h2 br{display:block}.spf-module .spf-top{display:block;padding-right:0;margin-bottom:24px}.spf-module .spf-description{font-size:12px;max-width:285px}.spf-module .spf-all{font-size:12px;margin-top:15px;gap:18px}.spf-module .spf-eyebrow{font-size:10px;letter-spacing:1px}.spf-module .spf-link{font-size:14px}.spf-garden .spf-orbit{width:83px;height:83px;top:10px;right:-15px;opacity:.35}.spf-garden .spf-orbit i{width:80px;height:48px}.spf-garden .spf-orbit b{font-size:18px}.spf-garden .spf-features{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:22px}.spf-garden .spf-feature{display:grid;grid-template-columns:1fr auto;padding:13px;gap:4px;min-height:84px}.spf-garden .spf-feature .spf-number{grid-column:1;grid-row:1}.spf-garden .spf-feature .spf-arrow{grid-column:2;grid-row:1}.spf-garden .spf-feature .spf-place{font-size:16px;grid-column:1/3}.spf-garden .spf-feature .spf-arrow{font-size:20px}.spf-garden .spf-rest{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin-top:12px}.spf-garden .spf-rest .spf-link{min-height:44px;padding:10px 0}.spf-route .spf-city-code{font-size:68px;top:15px;opacity:.7}.spf-route .spf-description{max-width:245px}.spf-route .spf-route-label{font-size:10px;letter-spacing:0;gap:10px}.spf-route .spf-route-label>span:last-child{display:none}.spf-route .spf-route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.spf-route .spf-link{min-height:70px;grid-template-columns:1fr auto;gap:5px;padding:12px}.spf-route .spf-number{grid-column:1/3}.spf-route .spf-place{font-size:14px}.spf-route .spf-link:nth-child(2n+1){border-left:1px solid #34485e}.spf-folio .spf-spreads{grid-template-columns:1fr;gap:26px}.spf-folio .spf-watermark{font-size:86px;top:5px;right:0}.spf-folio .spf-sheet-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}.spf-folio .spf-link{padding:12px 0;min-height:58px}.spf-folio .spf-arrow{display:block}.spf-folio .spf-place{font-size:15px}.spf-ledger .spf-ledger-layout,.spf-gateway .spf-gateway-layout{grid-template-columns:1fr;gap:25px}.spf-ledger .spf-intro{position:relative;padding-right:55px}.spf-ledger .spf-ledger-lines{position:absolute;right:0;top:20px;opacity:.7;transform:scale(.6);transform-origin:right top;margin:0}.spf-ledger .spf-ledger-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;padding:0 12px 5px}.spf-ledger .spf-ledger-head{font-size:10px;padding:12px}.spf-ledger .spf-link{min-height:48px}.spf-ledger .spf-arrow{display:none}.spf-gateway .spf-gateway-intro{position:relative}.spf-gateway .spf-gates{position:absolute;right:-15px;top:20px;width:130px;height:115px;opacity:.35;transform:scale(.7);transform-origin:right top;margin:0;pointer-events:none}.spf-gateway .spf-description{max-width:265px}.spf-gateway .spf-gateway-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.spf-gateway .spf-link{min-height:48px}}
@media(prefers-reduced-motion:reduce){.spf-module *{transition:none!important;scroll-behavior:auto!important}}
@media(max-width:360px){.spf-folio .spf-arrow{display:none}}
