/* roulang page: index */
:root{
  --paper:#F7F3EC;
  --paper-2:#EFEAE0;
  --paper-3:#FBF8F3;
  --line:#DCD4C6;
  --line-soft:#E6DFD2;
  --night:#101A16;
  --night-2:#18241E;
  --night-3:#22322A;
  --amber:#B87A2E;
  --amber-dark:#9C6624;
  --amber-soft:rgba(184,122,46,.10);
  --celadon:#6F9382;
  --celadon-soft:rgba(111,147,130,.12);
  --neon:#D2677C;
  --ink:#1C1B19;
  --ink-2:#6A6459;
  --ink-3:#8C8578;
  --white-ink:#F2EDE4;
  --ok:#4F8A5B;
  --warn:#C08A3E;
  --danger:#B4543F;
  --r-card:14px;
  --r-img:12px;
  --r-tag:6px;
  --r-pill:999px;
  --sh-1:0 1px 0 rgba(28,27,25,.06);
  --sh-2:0 12px 28px rgba(16,26,22,.12);
  --max:1200px;
  --serif:"Source Han Serif SC","Noto Serif SC","Songti SC",STSong,SimSun,serif;
  --sans:"Source Han Sans SC","Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;letter-spacing:.02em;line-height:1.35;margin:0}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
table{border-collapse:collapse;width:100%}
:focus-visible{outline:2px solid var(--amber);outline-offset:2px;border-radius:4px}
.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 24px}
.section{padding:96px 0}
.section--alt{background:var(--paper-2)}
.section--paper3{background:var(--paper-3)}
.section--night{background:var(--night);color:var(--white-ink)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:44px}
.sec-head__main{max-width:760px}
.eyebrow-vert{writing-mode:vertical-rl;font-size:12px;letter-spacing:.28em;color:var(--celadon);border-left:1px solid var(--line);padding-left:6px;height:56px;display:inline-flex;align-items:flex-start;margin-bottom:14px}
.sec-title{position:relative;padding-left:14px;font-size:28px;color:var(--ink)}
.sec-title::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;background:var(--amber);border-radius:2px}
.section--night .sec-title{color:var(--white-ink)}
.sec-desc{margin-top:14px;color:var(--ink-2);font-size:15px;max-width:820px}
.section--night .sec-desc{color:#BFB9AC}
.sec-more{font-size:14px;color:var(--celadon);white-space:nowrap;position:relative}
.sec-more::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.sec-more:hover::after{transform:scaleX(1)}
.sec-more:hover{color:var(--neon)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 24px;border-radius:var(--r-pill);font-size:15px;font-weight:600;letter-spacing:.02em;transition:transform .18s ease-out,background-color .18s ease-out,color .18s ease-out,border-color .18s ease-out,box-shadow .18s ease-out;border:1px solid transparent;cursor:pointer}
.btn::after{content:"→";font-size:14px;transition:transform .18s ease-out}
.btn-primary{background:var(--amber);color:#14201A;border-color:var(--amber)}
.btn-primary:hover{background:var(--amber-dark);border-color:var(--amber-dark);color:#0E1713}
.btn-primary:hover::after{transform:translateX(4px)}
.btn-ghost{background:transparent;color:var(--white-ink);border-color:var(--celadon)}
.btn-ghost:hover{background:var(--celadon-soft);color:#fff}
.btn-ghost::after{color:var(--celadon)}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--celadon)}
.btn-outline:hover{background:var(--celadon-soft)}
.btn-sm{min-height:38px;padding:0 18px;font-size:14px}
.btn-sm::after{display:none}
.tag{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:var(--r-tag);font-size:12px;line-height:1;background:var(--celadon-soft);color:#4E6F60;letter-spacing:.02em}
.tag--amber{background:var(--amber-soft);color:var(--amber-dark)}
.tag--neon{background:rgba(210,103,124,.14);color:#A94A5E}
.tag--ok{background:rgba(79,138,91,.14);color:var(--ok)}
.tag--ink{background:rgba(28,27,25,.08);color:var(--ink-2)}
/* Header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:120;height:72px;display:flex;align-items:center;background:transparent;transition:height .25s ease,background-color .25s ease,box-shadow .25s ease}
.site-header.is-stuck{height:60px;background:rgba(16,26,22,.97);box-shadow:0 10px 30px rgba(16,26,22,.28)}
.header-inner{display:flex;align-items:center;gap:28px;width:100%;max-width:var(--max);margin:0 auto;padding:0 24px}
.logo{display:flex;align-items:center;gap:10px;flex-shrink:0}
.logo-mark{width:36px;height:36px;border-radius:10px;background:var(--amber);color:#14201A;font-family:var(--serif);font-weight:700;font-size:19px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.logo-text{display:flex;flex-direction:column;line-height:1.15}
.logo-text strong{font-family:var(--serif);font-size:18px;font-weight:700;letter-spacing:.06em;color:var(--white-ink)}
.logo-text em{font-style:normal;font-size:11px;letter-spacing:.16em;color:#9AA79E;margin-top:2px}
.main-nav{display:flex;align-items:center;gap:24px;margin-left:auto}
.main-nav a{position:relative;font-size:14.5px;color:#D7D1C6;padding:8px 2px;transition:color .18s ease}
.main-nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--amber);transform:scaleX(0);transform-origin:center;transition:transform .22s ease}
.main-nav a:hover{color:#fff}
.main-nav a:hover::after{transform:scaleX(1)}
.main-nav a.is-active{color:#fff}
.main-nav a.is-active::after{transform:scaleX(1)}
.header-actions{display:flex;align-items:center;gap:16px;margin-left:auto}
.header-tel{font-size:14px;color:#C9C3B8;font-variant-numeric:tabular-nums;white-space:nowrap}
.nav-toggle{display:none;width:44px;height:44px;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:10px}
.nav-toggle span{display:block;width:20px;height:2px;background:var(--white-ink);border-radius:2px;transition:transform .2s ease,opacity .2s ease}
/* Drawer */
.drawer{position:fixed;top:0;left:0;bottom:0;width:296px;max-width:86vw;background:var(--night);z-index:200;transform:translateX(-102%);transition:transform .28s ease-out;display:flex;flex-direction:column;padding:20px 22px 28px;overflow-y:auto}
.drawer.is-open{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}
.drawer-brand{font-family:var(--serif);font-size:17px;color:var(--white-ink);letter-spacing:.06em}
.drawer-close{width:44px;height:44px;font-size:26px;line-height:1;color:var(--white-ink);border-radius:10px}
.drawer-close:hover{background:rgba(255,255,255,.08)}
.drawer-nav{display:flex;flex-direction:column}
.drawer-nav a{min-height:48px;display:flex;align-items:center;color:#D7D1C6;font-size:16px;border-bottom:1px solid rgba(255,255,255,.08)}
.drawer-nav a.is-active{color:var(--amber)}
.drawer-foot{margin-top:auto;padding-top:24px;display:flex;flex-direction:column;gap:10px}
.drawer-foot p{font-size:14px;color:#A9B3AC}
.drawer-mask{position:fixed;inset:0;background:rgba(10,16,13,.55);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;z-index:190}
.drawer-mask.is-open{opacity:1;visibility:visible}
/* Hero */
.hero{position:relative;background:var(--night);color:var(--white-ink);overflow:hidden;padding:150px 0 76px;min-height:600px;display:flex;align-items:center}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center right;opacity:.36}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(16,26,22,.96) 0%,rgba(16,26,22,.86) 42%,rgba(16,26,22,.55) 100%)}
.hero-glow{position:absolute;border-radius:50%;filter:blur(70px);pointer-events:none}
.hero-glow--1{width:340px;height:340px;background:rgba(184,122,46,.15);top:-60px;right:12%}
.hero-glow--2{width:260px;height:260px;background:rgba(111,147,130,.15);bottom:-40px;left:6%}
.hero-inner{position:relative;z-index:2;width:100%;max-width:var(--max);margin:0 auto;padding:0 24px}
.hero-copy{max-width:660px}
.hero-kicker{display:inline-flex;align-items:center;gap:8px;font-size:13px;letter-spacing:.2em;color:#C9B78F;margin-bottom:20px}
.hero-kicker::before{content:"";width:26px;height:1px;background:var(--amber)}
.hero h1{font-size:40px;font-weight:700;letter-spacing:.03em;color:#FFFDF8}
.hero-sub{margin-top:20px;font-size:17px;line-height:1.85;color:#C7C1B5;max-width:620px}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}
.hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:44px;max-width:640px}
.hero-stat{border:1px solid rgba(242,237,228,.18);border-radius:var(--r-card);padding:16px 18px;background:rgba(255,255,255,.03)}
.hero-stat b{display:block;font-family:var(--serif);font-size:26px;color:var(--amber);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.hero-stat span{display:block;font-size:13px;color:#AEB8B1;margin-top:4px}
/* Ticker */
.ticker{background:var(--night-2);color:var(--white-ink);padding:26px 0}
.ticker-inner{display:grid;grid-template-columns:1fr 340px;gap:28px;align-items:center}
.ticker-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.ticker-badge{font-size:12px;padding:3px 9px;border-radius:var(--r-tag);background:rgba(210,103,124,.18);color:#F0A7B6;letter-spacing:.08em}
.ticker-head h2{font-size:17px;color:#FFFDF8}
.ticker-rail{display:flex;gap:14px;overflow-x:auto;padding-bottom:8px;scrollbar-width:thin}
.ticker-rail li{flex:0 0 auto;max-width:300px;font-size:14px;color:#C7C1B5;border-left:2px solid var(--amber);padding-left:12px;line-height:1.6}
.ticker-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.metric{border:1px solid rgba(242,237,228,.16);border-radius:var(--r-card);padding:14px 12px;text-align:center;background:rgba(255,255,255,.03)}
.metric b{display:block;font-family:var(--serif);font-size:22px;color:#F2EDE4;font-variant-numeric:tabular-nums}
.metric span{font-size:12px;color:#9EA8A1}
/* Grids */
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
/* Cards */
.card{background:#FFFDF8;border:1px solid var(--line-soft);border-radius:var(--r-card);box-shadow:var(--sh-1);overflow:hidden;transition:transform .18s ease-out,box-shadow .18s ease-out,border-color .18s ease-out;display:flex;flex-direction:column}
.card:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:var(--line)}
.card__media{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--paper-2)}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease-out}
.card:hover .card__media img{transform:scale(1.04)}
.card__body{padding:20px 20px 22px;display:flex;flex-direction:column;gap:12px;flex:1}
.card__tags{display:flex;flex-wrap:wrap;gap:8px}
.card__title{font-size:19px;color:var(--ink)}
.card__text{font-size:14.5px;color:var(--ink-2);line-height:1.8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid var(--line-soft)}
.score{font-family:var(--serif);font-size:18px;color:var(--amber);font-variant-numeric:tabular-nums}
.score small{font-size:12px;color:var(--ink-3);font-family:var(--sans);margin-left:4px}
.link-arrow{font-size:14px;color:var(--celadon);position:relative;display:inline-flex;align-items:center;gap:4px}
.link-arrow::after{content:"→";transition:transform .18s ease-out}
.link-arrow:hover{color:var(--neon)}
.link-arrow:hover::after{transform:translateX(4px)}
/* Forum block cards */
.forum-card{background:#FFFDF8;border:1px solid var(--line-soft);border-radius:var(--r-card);padding:22px;box-shadow:var(--sh-1);display:flex;flex-direction:column;gap:12px;transition:transform .18s ease-out,box-shadow .18s ease-out,border-color .18s ease-out;position:relative}
.forum-card:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:var(--amber)}
.forum-card h3{font-size:19px}
.forum-card p{font-size:14.5px;color:var(--ink-2);line-height:1.8}
.forum-card .count{font-size:13px;color:var(--celadon);font-variant-numeric:tabular-nums;letter-spacing:.04em}
/* Rail */
.rail{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:14px;scrollbar-width:thin}
.rail > *{flex:0 0 302px;scroll-snap-align:start}
.env-card{position:relative;border-radius:var(--r-img);overflow:hidden;aspect-ratio:4/3;background:var(--paper-2);border:1px solid var(--line-soft)}
.env-card img{width:100%;height:100%;object-fit:cover}
.env-cap{position:absolute;left:0;right:0;bottom:0;padding:12px 14px;background:linear-gradient(180deg,rgba(16,26,22,0),rgba(16,26,22,.82));color:#F4F0E8;font-size:13.5px;letter-spacing:.02em}
/* Tea master */
.master{background:#FFFDF8;border:1px solid var(--line-soft);border-radius:var(--r-card);padding:20px;box-shadow:var(--sh-1);text-align:left;transition:transform .18s ease-out,box-shadow .18s ease-out}
.master:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.master__avatar{width:88px;height:88px;border-radius:50%;overflow:hidden;background:var(--paper-2);margin-bottom:14px;border:1px solid var(--line-soft)}
.master__avatar img{width:100%;height:100%;object-fit:cover}
.master h3{font-size:18px}
.master .meta{font-size:13px;color:var(--celadon);margin-top:6px;letter-spacing:.02em}
.master p{font-size:14px;color:var(--ink-2);margin-top:10px;line-height:1.8}
/* Map */
.map-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.map-tab{min-height:44px;padding:0 20px;border-radius:var(--r-pill);border:1px solid var(--line);background:#FFFDF8;font-size:14.5px;color:var(--ink-2);transition:all .18s ease-out}
.map-tab:hover{border-color:var(--celadon);color:var(--ink)}
.map-tab.is-active{background:var(--night);border-color:var(--night);color:var(--white-ink)}
.map-panels{display:grid;gap:24px}
.map-panel{display:none;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:34px;align-items:center;background:#FFFDF8;border:1px solid var(--line-soft);border-radius:var(--r-card);padding:24px;box-shadow:var(--sh-1)}
.map-panel.is-active{display:grid}
.map-panel figure{margin:0;border-radius:var(--r-img);overflow:hidden;aspect-ratio:4/3;background:var(--paper-2)}
.map-panel figure img{width:100%;height:100%;object-fit:cover}
.map-panel h3{font-size:21px;margin-bottom:12px}
.map-panel p{font-size:15px;color:var(--ink-2)}
.map-list{margin-top:16px;display:grid;gap:10px}
.map-list li{font-size:14px;color:var(--ink-2);padding-left:16px;position:relative}
.map-list li::before{content:"";position:absolute;left:0;top:11px;width:6px;height:6px;border-radius:50%;background:var(--celadon)}
/* Feature + list */
.feature-split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;align-items:start}
.post-lg{background:#FFFDF8;border:1px solid var(--line-soft);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sh-1);transition:transform .18s ease-out,box-shadow .18s ease-out}
.post-lg:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.post-lg .card__media{aspect-ratio:16/9}
.post-lg__body{padding:22px 24px 24px}
.post-lg h3{font-size:22px;line-height:1.5;margin-bottom:12px}
.post-lg p{font-size:15px;color:var(--ink-2)}
.post-meta{font-size:13px;color:var(--ink-3);margin-top:14px;display:flex;flex-wrap:wrap;gap:14px}
.post-list{display:grid;gap:18px}
.post-item{display:grid;grid-template-columns:130px minmax(0,1fr);gap:16px;background:#FFFDF8;border:1px solid var(--line-soft);border-radius:var(--r-card);padding:14px;box-shadow:var(--sh-1);transition:transform .18s ease-out,box-shadow .18s ease-out}
.post-item:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.post-item__thumb{aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--paper-2)}
.post-item__thumb img{width:100%;height:100%;object-fit:cover}
.post-item h3{font-size:16.5px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.post-item p{font-size:13.5px;color:var(--ink-2);margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* Reviews */
.review{background:#FFFDF8;border:1px solid var(--line-soft);border-radius:var(--r-card);padding:22px;box-shadow:var(--sh-1);display:flex;flex-direction:column;gap:14px;height:100%}
.stars{color:var(--amber);letter-spacing:.16em;font-size:14px}
.review p{font-size:14.5px;color:var(--ink-2);line-height:1.85}
.review__foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line-soft);display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:13px;color:var(--ink-3)}
/* Calendar */
.cal-list{display:grid;gap:14px}
.cal-item{display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:20px;align-items:center;background:#FFFDF8;border:1px solid var(--line-soft);border-radius:var(--r-card);padding:16px 20px;box-shadow:var(--sh-1);transition:transform .18s ease-out,box-shadow .18s ease-out,border-color .18s ease-out}
.cal-item:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:var(--celadon)}
.cal-date{border-right:1px solid var(--line-soft);padding-right:16px;text-align:center}
.cal-date b{display:block;font-family:var(--serif);font-size:24px;color:var(--amber);font-variant-numeric:tabular-nums;line-height:1.1}
.cal-date span{font-size:12px;color:var(--ink-3);letter-spacing:.1em}
.cal-item h3{font-size:17px}
.cal-item p{font-size:13.5px;color:var(--ink-2);margin-top:4px}
/* Table */
.table-wrap{overflow-x:auto;border:1px solid var(--line-soft);border-radius:var(--r-card);background:#FFFDF8}
.tea-table th,.tea-table td{padding:16px 20px;text-align:left;font-size:14.5px;white-space:nowrap}
.tea-table thead th{background:var(--paper-2);color:var(--ink-2);font-weight:600;font-size:14px;letter-spacing:.06em;border-bottom:1px solid var(--line)}
.tea-table tbody tr{border-bottom:1px solid var(--line-soft)}
.tea-table tbody tr:last-child{border-bottom:0}
.tea-table tbody tr:hover{background:var(--paper-3)}
.tea-table td:first-child{font-family:var(--serif);font-size:16px;color:var(--ink)}
.price{color:var(--amber-dark);font-variant-numeric:tabular-nums}
/* Gallery vertical */
.gal-card{border-radius:var(--r-card);overflow:hidden;border:1px solid var(--line-soft);background:#FFFDF8;box-shadow:var(--sh-1);transition:transform .18s ease-out,box-shadow .18s ease-out}
.gal-card:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.gal-card__media{aspect-ratio:3/4;overflow:hidden;background:var(--paper-2)}
.gal-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease-out}
.gal-card:hover .gal-card__media img{transform:scale(1.04)}
.gal-card figcaption{padding:14px 16px;font-size:14px;color:var(--ink-2)}
.gal-card figcaption b{display:block;color:var(--ink);font-family:var(--serif);font-size:16px;font-weight:600;margin-bottom:4px}
/* Steps */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.step{background:rgba(255,255,255,.04);border:1px solid rgba(242,237,228,.16);border-radius:var(--r-card);padding:26px 24px}
.step-num{font-family:var(--serif);font-size:46px;line-height:1;color:var(--amber);font-variant-numeric:tabular-nums}
.step h3{font-size:19px;color:#FFFDF8;margin-top:14px}
.step p{font-size:14.5px;color:#BEC7C1;margin-top:10px;line-height:1.85}
.rule-note{margin-top:26px;border-left:3px solid var(--neon);padding:14px 0 14px 18px;font-size:14.5px;color:#C4CDC7;background:rgba(210,103,124,.06);border-radius:0 10px 10px 0}
/* FAQ */
.faq{display:grid;gap:12px;max-width:900px}
.faq-item{background:#FFFDF8;border:1px solid var(--line-soft);border-radius:var(--r-card);box-shadow:var(--sh-1);overflow:hidden}
.faq-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px;min-height:56px;text-align:left;font-size:16px;font-weight:600;color:var(--ink);font-family:var(--sans);transition:background-color .18s ease}
.faq-btn:hover{background:var(--paper-3)}
.faq-icon{position:relative;width:16px;height:16px;flex-shrink:0;transition:transform .25s ease-out}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;background:var(--amber);border-radius:2px}
.faq-icon::before{left:0;right:0;top:7px;height:2px}
.faq-icon::after{top:0;bottom:0;left:7px;width:2px;transition:transform .25s ease-out}
.faq-item.is-open .faq-icon{transform:rotate(180deg)}
.faq-item.is-open .faq-icon::after{transform:scaleY(0)}
.faq-a{padding:0 22px 20px;font-size:15px;color:var(--ink-2);line-height:1.85;display:none}
.faq-item.is-open .faq-a{display:block;animation:fadeIn .22s ease-out}
@keyframes fadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
/* Video */
.video-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px}
.video-card{position:relative;border-radius:var(--r-card);overflow:hidden;border:1px solid var(--line-soft);background:var(--paper-2);box-shadow:var(--sh-1)}
.video-card img{width:100%;height:100%;object-fit:cover}
.video-card--lg{aspect-ratio:16/9}
.video-card--sm{aspect-ratio:16/9}
.video-side{display:grid;gap:18px}
.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:rgba(184,122,46,.94);display:flex;align-items:center;justify-content:center;transition:transform .18s ease-out,background-color .18s ease-out}
.play::after{content:"";width:0;height:0;border-left:16px solid #14201A;border-top:10px solid transparent;border-bottom:10px solid transparent;margin-left:4px}
.video-card:hover .play{transform:translate(-50%,-50%) scale(1.06);background:var(--amber)}
.video-cap{position:absolute;left:0;right:0;bottom:0;padding:14px 18px;background:linear-gradient(180deg,rgba(16,26,22,0),rgba(16,26,22,.86));color:#F2EDE4;font-size:14.5px}
.video-cap span{display:block;font-size:12.5px;color:#B9C2BC;margin-top:4px}
/* About */
.about-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:34px;align-items:start}
.info-card{background:#101A16;color:#D9D3C8;border-radius:var(--r-card);padding:26px;border:1px solid rgba(242,237,228,.14)}
.info-card h3{color:#FFFDF8;font-size:19px;margin-bottom:18px}
.info-row{display:flex;gap:14px;padding:13px 0;border-bottom:1px solid rgba(242,237,228,.12);font-size:14.5px}
.info-row:last-child{border-bottom:0}
.info-row b{flex:0 0 76px;color:var(--amber);font-weight:600}
/* Subscribe */
.subscribe{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;align-items:center}
.sub-form{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.sub-form input{flex:1 1 260px;min-height:48px;padding:0 18px;border:1px solid rgba(242,237,228,.22);background:rgba(255,255,255,.06);border-radius:var(--r-pill);color:var(--white-ink);font-size:15px;transition:border-color .18s ease,background-color .18s ease}
.sub-form input::placeholder{color:#8F9A93}
.sub-form input:focus{border-color:var(--amber);background:rgba(255,255,255,.1);outline:none}
.interests{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.interest{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid rgba(242,237,228,.2);border-radius:var(--r-pill);font-size:14px;color:#CFD6D1;cursor:pointer;transition:border-color .18s ease,background-color .18s ease}
.interest:hover{border-color:var(--celadon)}
.interest input{width:16px;height:16px;accent-color:var(--amber)}
.partner-box{border:1px solid rgba(242,237,228,.16);border-radius:var(--r-card);padding:24px;background:rgba(255,255,255,.04)}
.partner-box h3{font-size:19px;color:#FFFDF8}
.partner-box p{font-size:14.5px;color:#BEC7C1;margin-top:12px;line-height:1.85}
/* Footer */
.site-footer{background:var(--night);color:#BEC7C1;padding:72px 0 0;font-size:14.5px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.4fr;gap:36px;padding-bottom:48px}
.site-footer h4{color:#FFFDF8;font-size:16px;margin-bottom:18px;position:relative;padding-left:12px}
.site-footer h4::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;background:var(--amber);border-radius:2px}
.footer-brand p{margin-top:16px;line-height:1.9;color:#A9B3AC}
.footer-brand .line{margin-top:10px;font-variant-numeric:tabular-nums}
.footer-brand strong{color:#FFFDF8;font-family:var(--serif);font-size:17px;letter-spacing:.05em;display:block;margin-bottom:6px}
.footer-links{display:grid;gap:12px}
.footer-links a{color:#BEC7C1;transition:color .18s ease,padding-left .18s ease}
.footer-links a:hover{color:var(--amber);padding-left:4px}
.footer-info{display:grid;gap:12px}
.footer-info li{line-height:1.7}
.footer-info b{color:#E5DFD3;font-weight:600}
.footer-form{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.footer-form input{flex:1 1 160px;min-height:44px;padding:0 16px;border-radius:var(--r-pill);border:1px solid rgba(242,237,228,.2);background:rgba(255,255,255,.06);color:var(--white-ink);font-size:14px}
.footer-form input::placeholder{color:#8F9A93}
.footer-form input:focus{border-color:var(--amber);outline:none}
.footer-bottom{border-top:1px solid rgba(242,237,228,.12);padding:20px 0 28px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:13.5px;color:#8F9A93}
/* Reveal */
.reveal{opacity:0;transform:translateY(8px)}
.reveal.is-in{opacity:1;transform:none;transition:opacity .3s ease-out,transform .3s ease-out}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
  .reveal{opacity:1;transform:none}
  html{scroll-behavior:auto}
}
/* Responsive */
@media (max-width:1199px){
  .section{padding:72px 0}
  .grid-4{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hero h1{font-size:32px}
  .sec-title{font-size:24px}
  .footer-grid{grid-template-columns:1.4fr 1fr 1fr;gap:28px}
  .footer-grid > div:last-child{grid-column:1 / -1}
}
@media (max-width:991px){
  .main-nav{display:none}
  .header-tel{display:none}
  .nav-toggle{display:flex}
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ticker-inner{grid-template-columns:1fr}
  .ticker-metrics{grid-template-columns:repeat(3,1fr)}
  .map-panel{grid-template-columns:1fr}
  .feature-split{grid-template-columns:1fr}
  .video-grid{grid-template-columns:1fr}
  .about-split{grid-template-columns:1fr}
  .subscribe{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .hero{padding:132px 0 64px;min-height:auto}
  .hero h1{font-size:30px}
}
@media (max-width:767px){
  .container{padding:0 16px}
  .section{padding:56px 0}
  .hero h1{font-size:26px}
  .hero-sub{font-size:15.5px}
  .sec-title{font-size:20px}
  .sec-head{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:30px}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .hero-stats{grid-template-columns:1fr;gap:10px}
  .ticker-metrics{grid-template-columns:1fr;gap:10px}
  .cal-item{grid-template-columns:64px minmax(0,1fr);gap:14px}
  .cal-item .tag{grid-column:2}
  .post-item{grid-template-columns:1fr}
  .post-item__thumb{aspect-ratio:16/9}
  .rail > *{flex:0 0 250px}
  .footer-grid{grid-template-columns:1fr;gap:30px;padding-bottom:34px}
  .faq-btn{font-size:15.5px;padding:16px 18px}
  .faq-a{padding:0 18px 18px}
  .tea-table th,.tea-table td{padding:13px 14px;font-size:14px}
  .hero-cta .btn{flex:1 1 100%}
}
@media (max-width:479px){
  .hero{padding:120px 0 52px}
  .logo-text strong{font-size:16px}
  .logo-text em{font-size:10px;letter-spacing:.1em}
  .map-tab{padding:0 15px;font-size:14px}
}

/* roulang page: category1 */
:root{
 --paper:#F7F3EC;
 --paper-2:#EFEAE0;
 --paper-3:#FBF8F3;
 --line:#DCD4C6;
 --line-soft:#E6DFD2;
 --night:#101A16;
 --night-2:#18241E;
 --night-3:#22322A;
 --amber:#B87A2E;
 --amber-dark:#9C6624;
 --amber-soft:rgba(184,122,46,.10);
 --celadon:#6F9382;
 --celadon-soft:rgba(111,147,130,.12);
 --neon:#D2677C;
 --ink:#1C1B19;
 --ink-2:#6A6459;
 --ink-3:#8C8578;
 --white-ink:#F2EDE4;
 --ok:#4F8A5B;
 --warn:#C08A3E;
 --danger:#B4543F;
 --r-card:14px;
 --r-img:12px;
 --r-tag:6px;
 --r-pill:999px;
 --sh-1:0 1px 0 rgba(28,27,25,.06);
 --sh-2:0 12px 28px rgba(16,26,22,.12);
 --max:1200px;
 --serif:"Source Han Serif SC","Noto Serif SC","Songti SC",STSong,SimSun,serif;
 --sans:"Source Han Sans SC","Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;letter-spacing:.02em;margin:0;line-height:1.35}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
button,input,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--amber);outline-offset:2px;border-radius:4px}
.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 24px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.section{padding:96px 0}
.section--alt{background:var(--paper-2)}
.section--paper3{background:var(--paper-3)}
.sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:36px}
.sec-head__main{max-width:720px}
.sec-title{position:relative;padding-left:14px;font-size:28px;color:var(--ink)}
.sec-title::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;background:var(--amber);border-radius:2px}
.sec-desc{margin-top:12px;font-size:15px;color:var(--ink-2);line-height:1.8}
.eyebrow-vert{writing-mode:vertical-rl;font-size:12px;letter-spacing:.28em;color:var(--celadon);border-left:1px solid var(--line);padding-left:6px;height:56px;display:inline-flex;align-items:flex-start;margin-bottom:14px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 24px;border-radius:var(--r-pill);font-size:15px;font-weight:600;letter-spacing:.02em;border:1px solid transparent;cursor:pointer;transition:transform .18s ease-out,background-color .18s ease-out,color .18s ease-out,border-color .18s ease-out,box-shadow .18s ease-out}
.btn::after{content:"→";font-size:14px;transition:transform .18s ease-out}
.btn-primary{background:var(--amber);color:#14201A;border-color:var(--amber)}
.btn-primary:hover{background:var(--amber-dark);border-color:var(--amber-dark);color:#0E1713}
.btn-primary:hover::after{transform:translateX(4px)}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--celadon)}
.btn-outline:hover{background:var(--celadon-soft)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{background:var(--paper-2)}
.btn-sm{min-height:38px;padding:0 18px;font-size:14px}
.btn-sm::after{display:none}
.tag{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:var(--r-tag);font-size:12px;line-height:1;background:var(--celadon-soft);color:#4E6F60;letter-spacing:.02em;white-space:nowrap}
.tag--amber{background:var(--amber-soft);color:var(--amber-dark)}
.tag--neon{background:rgba(210,103,124,.14);color:#A94A5E}
.tag--ok{background:rgba(79,138,91,.14);color:var(--ok)}
.tag--warn{background:rgba(192,138,62,.16);color:#96682A}
.tag--ink{background:rgba(28,27,25,.08);color:var(--ink-2)}
/* ============ header ============ */
.site-header{position:fixed;top:0;left:0;right:0;z-index:120;height:72px;display:flex;align-items:center;background:rgba(16,26,22,.96);transition:height .25s ease,background-color .25s ease,box-shadow .25s ease}
.site-header.is-stuck{height:60px;background:rgba(16,26,22,.99);box-shadow:0 10px 30px rgba(16,26,22,.28)}
.header-inner{display:flex;align-items:center;gap:26px;width:100%;max-width:var(--max);margin:0 auto;padding:0 24px}
.logo{display:flex;align-items:center;gap:10px;flex-shrink:0}
.logo-mark{width:36px;height:36px;border-radius:10px;background:var(--amber);color:#14201A;font-family:var(--serif);font-weight:700;font-size:19px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.logo-text{display:flex;flex-direction:column;line-height:1.15}
.logo-text strong{font-family:var(--serif);font-size:18px;font-weight:700;letter-spacing:.06em;color:var(--white-ink)}
.logo-text em{font-style:normal;font-size:11px;letter-spacing:.16em;color:#9AA79E;margin-top:2px}
.main-nav{display:flex;align-items:center;gap:22px;margin-left:auto}
.main-nav a{position:relative;font-size:14.5px;color:#D7D1C6;padding:8px 2px;transition:color .18s ease;white-space:nowrap}
.main-nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--amber);transform:scaleX(0);transform-origin:center;transition:transform .22s ease}
.main-nav a:hover{color:#fff}
.main-nav a:hover::after{transform:scaleX(1)}
.main-nav a.is-active{color:#fff}
.main-nav a.is-active::after{transform:scaleX(1)}
.header-actions{display:flex;align-items:center;gap:14px;margin-left:auto}
.header-tel{font-size:14px;color:#C9C3B8;font-variant-numeric:tabular-nums;white-space:nowrap}
.nav-toggle{display:none;width:44px;height:44px;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:10px}
.nav-toggle span{display:block;width:20px;height:2px;background:var(--white-ink);border-radius:2px}
.nav-toggle:hover{background:rgba(255,255,255,.08)}
/* ============ drawer ============ */
.drawer{position:fixed;top:0;left:0;bottom:0;width:296px;max-width:86vw;background:var(--night);z-index:200;transform:translateX(-102%);transition:transform .28s ease-out;display:flex;flex-direction:column;padding:20px 22px 28px;overflow-y:auto}
.drawer.is-open{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.drawer-brand{font-family:var(--serif);font-size:17px;color:var(--white-ink);letter-spacing:.06em}
.drawer-close{width:44px;height:44px;font-size:26px;line-height:1;color:var(--white-ink);border-radius:10px}
.drawer-close:hover{background:rgba(255,255,255,.08)}
.drawer-nav{display:flex;flex-direction:column;gap:4px}
.drawer-nav a{padding:13px 10px;border-radius:10px;color:#DDD7CC;font-size:15px;border-bottom:1px solid rgba(255,255,255,.06)}
.drawer-nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.drawer-nav a.is-active{color:var(--amber)}
.drawer-foot{margin-top:auto;padding-top:24px;color:#A9B3AC;font-size:13px;line-height:1.9}
.drawer-foot .btn{margin-top:14px;width:100%}
.drawer-mask{position:fixed;inset:0;background:rgba(16,26,22,.55);z-index:190;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}
.drawer-mask.is-open{opacity:1;visibility:visible}
/* ============ page head band ============ */
.page-band{background:var(--paper-3);border-bottom:1px solid var(--line-soft);padding:104px 0 36px}
.crumb{font-size:13px;color:var(--ink-3);margin-bottom:14px}
.crumb a{color:var(--ink-3);transition:color .18s ease}
.crumb a:hover{color:var(--amber)}
.crumb span{margin:0 8px;color:var(--line)}
.page-band__row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px}
.page-band h1{font-size:40px;color:var(--ink);letter-spacing:.02em}
.page-band__desc{margin-top:14px;max-width:760px;font-size:15px;color:var(--ink-2);line-height:1.85}
.page-band__meta{margin-top:16px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:13px;color:var(--ink-3)}
.page-band__meta b{font-family:var(--serif);font-size:16px;color:var(--amber-dark);font-variant-numeric:tabular-nums}
.sortbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sortbar__label{font-size:13px;color:var(--ink-3);margin-right:2px}
.sort-chip{display:inline-flex;align-items:center;height:34px;padding:0 16px;border-radius:var(--r-pill);border:1px solid var(--line);background:#fff;font-size:13.5px;color:var(--ink-2);cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease}
.sort-chip:hover{border-color:var(--celadon);color:var(--ink)}
.sort-chip.is-on{background:var(--night);border-color:var(--night);color:var(--white-ink)}
/* ============ filter bar ============ */
.filterbar{background:var(--paper);border-bottom:1px solid var(--line-soft);padding:22px 0}
.filterbar__inner{display:flex;flex-direction:column;gap:16px}
.filter-row{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}
.filter-row__key{font-size:13px;color:var(--ink-3);min-width:48px;padding-top:6px;letter-spacing:.06em}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;height:32px;padding:0 14px;border-radius:var(--r-pill);border:1px solid var(--line);background:#fff;font-size:13px;color:var(--ink-2);cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}
.chip:hover{border-color:var(--celadon);color:var(--ink)}
.chip.is-on{background:var(--celadon-soft);border-color:var(--celadon);color:#3E5D4F;font-weight:600}
.searchbox{display:flex;gap:10px;flex-wrap:wrap;align-items:center;width:100%}
.searchbox input{flex:1 1 260px;height:44px;padding:0 16px;border-radius:var(--r-pill);border:1px solid var(--line);background:#fff;font-size:14px;transition:border-color .18s ease,box-shadow .18s ease}
.searchbox input::placeholder{color:var(--ink-3)}
.searchbox input:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 3px var(--amber-soft)}
.filter-note{font-size:13px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.filter-note b{color:var(--amber-dark);font-family:var(--serif);font-size:15px}
/* ============ list cards ============ */
.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.studio-card{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sh-1);display:flex;flex-direction:column;transition:transform .18s ease-out,box-shadow .18s ease-out,border-color .18s ease-out}
.studio-card:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:var(--line)}
.studio-card__media{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--paper-2)}
.studio-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease-out}
.studio-card:hover .studio-card__media img{transform:scale(1.04)}
.studio-card__region{position:absolute;left:12px;top:12px;background:rgba(16,26,22,.82);color:var(--white-ink);font-size:12px;height:24px;display:inline-flex;align-items:center;padding:0 10px;border-radius:var(--r-tag)}
.studio-card__body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.studio-card__title{font-size:20px;color:var(--ink);line-height:1.4}
.studio-card__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.studio-card__text{margin-top:12px;font-size:14.5px;color:var(--ink-2);line-height:1.8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.studio-card__foot{margin-top:auto;padding-top:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px dashed var(--line-soft)}
.score{display:inline-flex;align-items:baseline;gap:4px;font-family:var(--serif);color:var(--amber-dark);font-size:19px;font-variant-numeric:tabular-nums}
.score small{font-family:var(--sans);font-size:12px;color:var(--ink-3);letter-spacing:.04em}
.link-arrow{font-size:14px;color:var(--ink-2);position:relative;padding-bottom:2px}
.link-arrow::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s ease,color .25s ease}
.link-arrow:hover{color:var(--neon)}
.link-arrow:hover::after{transform:scaleX(1)}
.empty-tip{display:none;padding:48px 0;text-align:center;color:var(--ink-3);font-size:15px}
.empty-tip.is-show{display:block}
/* ============ pager ============ */
.pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--line-soft);padding-top:28px}
.pager__nums{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pager__nums a,.pager__nums span{min-width:40px;height:40px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:14px;color:var(--ink-2);font-variant-numeric:tabular-nums;transition:border-color .18s ease,color .18s ease,background-color .18s ease}
.pager__nums a:hover{border-color:var(--celadon);color:var(--ink)}
.pager__nums .is-current{background:var(--night);border-color:var(--night);color:var(--white-ink)}
.pager__nums .is-disabled{color:var(--ink-3);background:var(--paper-2);cursor:default}
/* ============ editor picks ============ */
.pick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pick-card{position:relative;background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sh-1);transition:transform .18s ease-out,box-shadow .18s ease-out}
.pick-card:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.pick-card__badge{position:absolute;left:12px;top:12px;z-index:2;height:26px;display:inline-flex;align-items:center;padding:0 12px;border-radius:var(--r-pill);background:var(--neon);color:#fff;font-size:12px;letter-spacing:.04em}
.pick-card__media{aspect-ratio:16/9;overflow:hidden;background:var(--paper-2)}
.pick-card__media img{width:100%;height:100%;object-fit:cover}
.pick-card__body{padding:18px 20px 22px}
.pick-card__body h3{font-size:19px;color:var(--ink)}
.pick-card__body p{margin-top:10px;font-size:14px;color:var(--ink-2);line-height:1.8}
.pick-card__row{margin-top:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}
/* ============ district index ============ */
.dist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.dist-card{display:block;background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-card);padding:22px 22px 20px;box-shadow:var(--sh-1);transition:transform .18s ease-out,box-shadow .18s ease-out,border-color .18s ease-out}
.dist-card:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:var(--celadon)}
.dist-card h3{font-size:19px;color:var(--ink);display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.dist-card h3 em{font-style:normal;font-family:var(--serif);font-size:15px;color:var(--amber-dark);font-variant-numeric:tabular-nums}
.dist-card p{margin-top:10px;font-size:14px;color:var(--ink-2);line-height:1.8}
.dist-card__tags{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px}
/* ============ guide ============ */
.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.guide-item{display:flex;gap:16px;background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-card);padding:22px;box-shadow:var(--sh-1);transition:transform .18s ease-out,box-shadow .18s ease-out}
.guide-item:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.guide-item__icon{flex:0 0 44px;width:44px;height:44px;border-radius:12px;background:var(--celadon-soft);color:#3E5D4F;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:19px}
.guide-item h3{font-size:18px;color:var(--ink)}
.guide-item p{margin-top:8px;font-size:14.5px;color:var(--ink-2);line-height:1.85}
/* ============ reviews ============ */
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.review-card{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-card);padding:24px;box-shadow:var(--sh-1);display:flex;flex-direction:column;transition:transform .18s ease-out,box-shadow .18s ease-out}
.review-card:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.review-card__stars{color:var(--amber);font-size:14px;letter-spacing:.18em}
.review-card__text{margin-top:14px;font-size:14.5px;color:var(--ink-2);line-height:1.9;flex:1}
.review-card__who{margin-top:18px;padding-top:16px;border-top:1px dashed var(--line-soft);display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;color:var(--ink-3)}
.review-card__who b{color:var(--ink);font-weight:600}
/* ============ faq ============ */
.faq-wrap{max-width:880px;margin:0 auto}
.faq-item{border:1px solid var(--line-soft);border-radius:var(--r-card);background:#fff;box-shadow:var(--sh-1);margin-bottom:14px;overflow:hidden}
.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;text-align:left;padding:20px 22px;font-size:16px;color:var(--ink);line-height:1.6;font-weight:600}
.faq-q:hover{background:var(--paper-3)}
.faq-q__icon{flex:0 0 24px;width:24px;height:24px;position:relative}
.faq-q__icon::before,.faq-q__icon::after{content:"";position:absolute;left:50%;top:50%;background:var(--amber);border-radius:2px;transform:translate(-50%,-50%)}
.faq-q__icon::before{width:14px;height:2px}
.faq-q__icon::after{width:2px;height:14px;transition:transform .22s ease,opacity .22s ease}
.faq-item.is-open .faq-q__icon::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0}
.faq-a{max-height:0;overflow:hidden;transition:max-height .28s ease}
.faq-a__inner{padding:0 22px 22px;font-size:15px;color:var(--ink-2);line-height:1.85}
/* ============ reading list ============ */
.read-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.read-item{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-card);padding:22px;box-shadow:var(--sh-1);transition:transform .18s ease-out,box-shadow .18s ease-out,border-color .18s ease-out}
.read-item:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:var(--celadon)}
.read-item h3{font-size:18px;color:var(--ink);line-height:1.5}
.read-item p{font-size:14px;color:var(--ink-2);line-height:1.8}
.read-item__meta{font-size:13px;color:var(--ink-3);display:flex;gap:10px;flex-wrap:wrap;align-items:center}
/* ============ footer ============ */
.site-footer{background:var(--night);color:#C9C3B8;padding:72px 0 28px;margin-top:0}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1.2fr 1.4fr;gap:36px}
.site-footer h4{font-size:15px;color:var(--white-ink);margin-bottom:16px;letter-spacing:.06em}
.footer-brand strong{display:block;font-family:var(--serif);font-size:20px;color:var(--white-ink);letter-spacing:.06em;margin-bottom:14px}
.footer-brand p{font-size:14px;line-height:1.85;color:#A9B3AC}
.footer-brand p.line{margin-top:8px;font-variant-numeric:tabular-nums}
.footer-links{display:flex;flex-direction:column;gap:10px}
.footer-links a{font-size:14px;color:#C9C3B8;transition:color .18s ease}
.footer-links a:hover{color:var(--amber)}
.footer-info{display:flex;flex-direction:column;gap:12px;font-size:14px;line-height:1.8;color:#A9B3AC}
.footer-info b{color:var(--white-ink);font-weight:600;margin-right:6px}
.footer-form{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.footer-form input{flex:1 1 150px;height:44px;padding:0 16px;border-radius:var(--r-pill);border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:var(--white-ink);font-size:14px}
.footer-form input::placeholder{color:#8C948E}
.footer-form input:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 3px rgba(184,122,46,.22)}
.footer-bottom{margin-top:44px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:13px;color:#8C948E}
/* ============ reveal ============ */
.reveal{opacity:0;transform:translateY(8px);transition:opacity .3s ease-out,transform .3s ease-out}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .reveal{opacity:1;transform:none;transition:none}
 .studio-card,.pick-card,.dist-card,.guide-item,.review-card,.read-item{transition:none}
}
/* ============ responsive ============ */
@media (max-width:1199px){
 .container{padding:0 22px}
 .page-band h1{font-size:34px}
 .card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:991px){
 .section{padding:72px 0}
 .sec-title{font-size:24px}
 .main-nav,.header-tel{display:none}
 .nav-toggle{display:flex}
 .page-band{padding:96px 0 32px}
 .page-band h1{font-size:32px}
 .pick-grid,.dist-grid,.review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
}
@media (max-width:767px){
 .section{padding:56px 0}
 .container{padding:0 16px}
 .header-inner{padding:0 16px}
 .sec-title{font-size:20px}
 .page-band h1{font-size:26px}
 .page-band{padding:88px 0 28px}
 .card-grid,.pick-grid,.dist-grid,.review-grid,.guide-grid,.read-grid{grid-template-columns:1fr}
 .pager{justify-content:center}
 .pager__nums a,.pager__nums span{min-width:36px;height:36px;font-size:13px}
 .footer-grid{grid-template-columns:1fr;gap:26px}
 .footer-bottom{justify-content:flex-start}
 .sortbar{width:100%}
}
@media (max-width:519px){
 .container{padding:0 14px}
 .page-band h1{font-size:24px}
 .studio-card__body{padding:18px}
 .faq-q{padding:16px 16px;font-size:15px}
 .faq-a__inner{padding:0 16px 18px}
}

/* roulang: framework shim */
/* 覆盖 Bootstrap 等对 a/btn 的全局默认，避免导航出现下划线/蓝链 */
.site-header a,.site-header a:hover,.navbar a,.navbar a:hover,.nav-links a,.nav-links a:hover,header nav a,header nav a:hover{text-decoration:none}
.site-header .btn,.navbar .btn,.nav-cta{text-decoration:none}
