/* roulang page: index */
:root{
  --ink:#1B1520;
  --plum:#3A2144;
  --plum-deep:#24132E;
  --coral:#FF6B57;
  --peach:#FFB4A2;
  --mint:#5BC8B0;
  --sand:#F7F2EC;
  --paper:#FFFDF9;
  --line:#E7DED4;
  --muted:#746A76;
  --radius-lg:22px;
  --radius-md:18px;
  --radius-sm:12px;
  --shadow:0 12px 30px rgba(36,19,46,.08);
  --shadow-lg:0 20px 44px rgba(36,19,46,.14);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:"PingFang SC","HarmonyOS Sans","Microsoft YaHei",Inter,system-ui,-apple-system,sans-serif;
  font-size:16px;
  line-height:1.85;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none;transition:color .22s ease,border-color .22s ease}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
input{font:inherit}
:focus-visible{outline:3px solid var(--mint);outline-offset:3px;border-radius:8px}
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}

/* ============ Header ============ */
.site-header{
  position:sticky;top:0;z-index:80;
  background:rgba(255,253,249,.95);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px}
.logo{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:800;letter-spacing:.02em;color:var(--plum-deep);white-space:nowrap}
.logo .logo-dot{width:10px;height:10px;border-radius:50%;background:var(--coral);flex:0 0 auto}
.logo em{font-style:normal;color:var(--coral)}
.main-nav{display:flex;align-items:center;gap:26px}
.main-nav a{position:relative;padding:4px 0;font-size:15px;color:var(--muted)}
.main-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--coral);transition:width .25s ease}
.main-nav a:hover{color:var(--plum-deep)}
.main-nav a:hover::after,.main-nav a.active::after{width:100%}
.main-nav a.active{color:var(--plum-deep);font-weight:700}
.header-cta{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border:1px solid var(--plum);border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--plum-deep);transition:background .22s,color .22s,transform .22s}
.header-cta:hover{background:#F1E9F3;transform:translateY(-1px)}
.nav-toggle{display:none}
.nav-burger{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:12px;padding:10px 9px;cursor:pointer}
.nav-burger span{display:block;height:2px;background:var(--plum-deep);margin:4px 0;border-radius:2px;transition:transform .2s}
.header-right{display:flex;align-items:center;gap:14px}

/* ============ Buttons / tags ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 26px;border-radius:var(--radius-sm);font-size:15px;font-weight:600;border:1px solid transparent;transition:transform .22s ease,background .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease}
.btn-primary{background:var(--coral);color:#fff;box-shadow:0 10px 24px rgba(255,107,87,.28)}
.btn-primary:hover{background:#EE5340;transform:translateY(-2px);box-shadow:0 14px 30px rgba(255,107,87,.34)}
.btn-ghost{border-color:var(--plum);color:var(--plum-deep);background:transparent}
.btn-ghost:hover{background:#F1E9F3;transform:translateY(-2px)}
.btn-light{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.45);color:#fff}
.btn-light:hover{background:rgba(255,255,255,.22);transform:translateY(-2px)}
.btn-text{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--coral)}
.btn-text:hover{gap:10px;color:#EE5340}
.tag{display:inline-flex;align-items:center;padding:5px 13px;border-radius:999px;font-size:12.5px;font-weight:600;background:#FBEDEA;color:#C1442F;border:1px solid #F6D8D2}
.tag-mint{background:#E7F7F3;color:#1F7A69;border-color:#C8EDE4}
.tag-plum{background:#F1E9F3;color:var(--plum);border-color:#E2D3E6}
.tag-line{background:transparent;color:var(--muted);border-color:var(--line)}

/* ============ Section base ============ */
.section{padding:80px 0}
.section-alt{background:var(--sand)}
.section-paper{background:var(--paper)}
.section-dark{background:var(--plum-deep);color:#F6F1EA}
.section-dark .section-head h2{color:#fff}
.section-dark .section-head p{color:#C7B9CC}
.section-head{max-width:740px;margin-bottom:42px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--coral);text-transform:uppercase;margin-bottom:14px}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--coral);border-radius:2px}
.section-head h2{font-size:clamp(1.5rem,2.6vw,2.15rem);line-height:1.4;font-weight:800;color:var(--plum-deep)}
.section-head p{margin-top:14px;color:var(--muted);font-size:15.5px}

/* ============ Hero ============ */
.hero{
  position:relative;
  color:#fff;
  background:
    linear-gradient(112deg,rgba(36,19,46,.95) 0%,rgba(58,33,68,.88) 48%,rgba(58,33,68,.58) 100%),
    url('/assets/images/ce9f50841eea6652.webp') center/cover no-repeat;
  padding:96px 0 0;
  overflow:hidden;
}
.hero::after{
  content:"";position:absolute;right:-140px;top:-120px;width:420px;height:420px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,107,87,.35),rgba(255,107,87,0) 68%);
  pointer-events:none;
}
.hero-inner{position:relative;z-index:2;max-width:820px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border-radius:999px;background:rgba(91,200,176,.16);border:1px solid rgba(91,200,176,.5);color:#C9F3EA;font-size:13px;font-weight:600}
.hero h1{margin-top:22px;font-size:clamp(2rem,4vw,3.25rem);line-height:1.28;font-weight:800;letter-spacing:-.01em}
.hero h1 span{color:var(--peach)}
.hero-sub{margin-top:20px;max-width:660px;font-size:16.5px;line-height:1.9;color:#DCCFD9}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}
.hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.hero-tags li{padding:7px 15px;border-radius:999px;font-size:13px;color:#E7DEE4;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18)}
.hero-strip{margin-top:64px;border-top:1px solid rgba(255,255,255,.16);background:rgba(36,19,46,.35)}
.hero-strip ul{display:grid;grid-template-columns:repeat(4,1fr);max-width:1200px;margin:0 auto;padding:0 24px}
.hero-strip li{padding:24px 22px;border-right:1px solid rgba(255,255,255,.13)}
.hero-strip li:last-child{border-right:0}
.hero-strip b{display:block;font-size:15px;font-weight:700;color:#fff}
.hero-strip span{font-size:13.5px;color:#BFAFC7;line-height:1.7;display:block;margin-top:4px}

/* ============ Entry cards ============ */
.entry-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:24px}
.entry-card{display:flex;flex-direction:column;gap:12px;padding:32px 28px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.entry-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:#DCCBCB}
.entry-card h3{font-size:1.25rem;font-weight:800;color:var(--plum-deep)}
.entry-card p{font-size:14.5px;color:var(--muted);line-height:1.85}
.entry-card .entry-link{margin-top:auto;font-size:14px;font-weight:700;color:var(--coral)}
.entry-main{background:linear-gradient(160deg,#3A2144 0%,#24132E 100%);color:#fff;border-color:#3A2144}
.entry-main h3{color:#fff}
.entry-main p{color:#CDBFD4}
.entry-main .entry-link{color:var(--peach)}
.entry-main .tag{background:rgba(91,200,176,.16);border-color:rgba(91,200,176,.45);color:#B9EFE3}

/* ============ City scroll ============ */
.city-scroll{display:flex;gap:12px;overflow-x:auto;padding:6px 0 20px;scrollbar-width:thin}
.city-scroll::-webkit-scrollbar{height:6px}
.city-scroll::-webkit-scrollbar-thumb{background:#DCD1C6;border-radius:999px}
.city-chip{flex:0 0 auto;padding:10px 22px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-size:14px;font-weight:600;color:var(--plum);transition:background .2s,border-color .2s,color .2s}
.city-chip:hover{border-color:var(--coral);color:var(--coral);background:#FFF6F4}

/* ============ Post list ============ */
.post-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.post-card{display:grid;grid-template-columns:230px 1fr;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.post-media{position:relative;overflow:hidden;min-height:170px;background:#EFE7DE}
.post-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.post-card:hover .post-media img{transform:scale(1.04)}
.post-body{padding:22px 24px;display:flex;flex-direction:column;gap:10px}
.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:12.5px;color:var(--muted)}
.post-title{font-size:1.05rem;line-height:1.55;font-weight:700;color:var(--plum-deep);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.post-title a:hover{color:var(--coral)}
.post-excerpt{font-size:14px;color:var(--muted);line-height:1.8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.post-link{margin-top:auto;font-size:13.5px;font-weight:700;color:var(--coral)}

/* 简洁文字列表 */
.news-list{display:grid;gap:0;border-top:1px solid var(--line)}
.news-item{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:20px 4px;border-bottom:1px solid var(--line);transition:background .2s}
.news-item:hover{background:#FFF7F5}
.news-item h3{font-size:1.02rem;font-weight:700;color:var(--plum-deep);line-height:1.6}
.news-item h3 a:hover{color:var(--coral)}
.news-item p{margin-top:6px;font-size:13.5px;color:var(--muted);line-height:1.75;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.news-item .news-side{display:flex;align-items:center;gap:14px;font-size:12.5px;color:var(--muted);white-space:nowrap}

/* ============ Steps timeline ============ */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:step}
.step{position:relative;padding:28px 24px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow)}
.step-num{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(140deg,var(--plum),var(--plum-deep));color:#fff;font-weight:800;font-size:15px;margin-bottom:14px}
.step h3{font-size:1.08rem;font-weight:800;color:var(--plum-deep);margin-bottom:8px}
.step p{font-size:14px;color:var(--muted);line-height:1.8}

/* ============ Bento ============ */
.bento{display:grid;grid-template-columns:1.5fr 1fr 1fr;grid-template-rows:auto auto;gap:24px}
.bento-card{padding:28px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease}
.bento-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.bento-card.bento-hero{grid-row:span 2;display:flex;flex-direction:column;gap:14px;background:linear-gradient(155deg,#33203D 0%,#24132E 100%);color:#fff;border-color:#33203D}
.bento-hero h3{font-size:1.35rem;color:#fff;font-weight:800}
.bento-hero p{color:#CBBBD2;font-size:14.5px;line-height:1.9}
.bento-hero .warn-strip{margin-top:auto;padding:12px 16px;border-radius:12px;background:rgba(255,107,87,.16);border-left:4px solid var(--coral);color:#FFD8D0;font-size:13.5px;line-height:1.75}
.bento-card h3{font-size:1.05rem;font-weight:800;color:var(--plum-deep);margin-bottom:8px}
.bento-card p{font-size:14px;color:var(--muted);line-height:1.8}
.bento-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:#E7F7F3;color:#1F7A69;font-weight:800;font-size:15px;margin-bottom:12px}

/* ============ Observ cards ============ */
.observ-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}
.observ-card{padding:30px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease}
.observ-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.observ-card h3{font-size:1.15rem;font-weight:800;color:var(--plum-deep);margin:14px 0 10px}
.observ-card p{font-size:14.5px;color:var(--muted);line-height:1.88}
.observ-side{display:grid;gap:24px}
.observ-side .observ-card{padding:24px}
.observ-side .observ-card h3{font-size:1.02rem;margin:10px 0 6px}

/* ============ City topic grid ============ */
.city-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.city-card{padding:26px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease,border-color .25s}
.city-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:#D9C7D9}
.city-card .city-name{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:1.12rem;font-weight:800;color:var(--plum-deep)}
.city-card .city-name span{font-size:12.5px;font-weight:600;color:var(--muted)}
.city-card p{margin-top:10px;font-size:14px;color:var(--muted);line-height:1.82}
.city-card .city-link{margin-top:14px;display:inline-block;font-size:13.5px;font-weight:700;color:var(--coral)}

/* ============ Pitfall list ============ */
.pit-list{display:grid;gap:16px}
.pit-item{display:grid;grid-template-columns:96px 1fr auto;gap:20px;align-items:center;padding:22px 24px;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--coral);border-radius:var(--radius-md);box-shadow:var(--shadow);transition:transform .22s,box-shadow .22s}
.pit-item:hover{transform:translateX(4px);box-shadow:var(--shadow-lg)}
.pit-item h3{font-size:1.02rem;font-weight:700;color:var(--plum-deep);line-height:1.6}
.pit-item h3 a:hover{color:var(--coral)}
.pit-item p{margin-top:5px;font-size:13.5px;color:var(--muted);line-height:1.75}
.pit-item .pit-arrow{font-size:15px;font-weight:700;color:var(--coral)}

/* ============ Privacy split ============ */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.setting-list{display:grid;gap:18px;margin-top:26px}
.setting-item{display:grid;grid-template-columns:34px 1fr;gap:14px;align-items:start}
.setting-item .dot{width:34px;height:34px;border-radius:10px;background:#E7F7F3;color:#1F7A69;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px}
.setting-item h3{font-size:1rem;font-weight:700;color:var(--plum-deep)}
.setting-item p{font-size:14px;color:var(--muted);line-height:1.8;margin-top:2px}
.phone-frame{position:relative;border-radius:32px;overflow:hidden;box-shadow:0 26px 60px rgba(36,19,46,.22);border:8px solid #24132E;background:#24132E}
.phone-frame img{width:100%;aspect-ratio:4/5;object-fit:cover}
.phone-badge{position:absolute;left:18px;bottom:18px;padding:10px 16px;border-radius:12px;background:rgba(255,253,249,.94);color:var(--plum-deep);font-size:13px;font-weight:700;box-shadow:var(--shadow)}

/* ============ Meet safety ============ */
.meet-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.meet-card{padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md)}
.meet-card h3{font-size:1.02rem;font-weight:800;color:var(--plum-deep);display:flex;align-items:center;gap:8px}
.meet-card h3::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--mint)}
.meet-card p{margin-top:8px;font-size:14px;color:var(--muted);line-height:1.82}
.alert-bar{margin-top:28px;padding:18px 24px;border-left:4px solid var(--coral);background:#FFF1ED;border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:14.5px;color:#8E3626;line-height:1.8}

/* ============ Interest chips ============ */
.chip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.chip-card{display:flex;align-items:center;gap:14px;padding:20px 22px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);transition:transform .22s,border-color .22s,box-shadow .22s}
.chip-card:hover{transform:translateY(-3px);border-color:#D9C7D9;box-shadow:var(--shadow)}
.chip-card .chip-ico{width:40px;height:40px;border-radius:12px;background:#F1E9F3;color:var(--plum);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;flex:0 0 auto}
.chip-card b{display:block;font-size:15px;color:var(--plum-deep)}
.chip-card span{font-size:13px;color:var(--muted)}

/* ============ Feature recommend ============ */
.rec-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:24px}
.rec-main{display:grid;grid-template-columns:1fr;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s}
.rec-main:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.rec-main .rec-media{overflow:hidden;max-height:280px}
.rec-main .rec-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.rec-main:hover .rec-media img{transform:scale(1.03)}
.rec-main .rec-body{padding:28px}
.rec-main h3{font-size:1.25rem;font-weight:800;color:var(--plum-deep);line-height:1.5;margin-top:12px}
.rec-main p{margin-top:10px;font-size:14.5px;color:var(--muted);line-height:1.85}
.rec-side{display:grid;gap:24px}
.rec-small{padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s}
.rec-small:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.rec-small h3{font-size:1rem;font-weight:700;color:var(--plum-deep);line-height:1.6;margin-top:10px}
.rec-small p{margin-top:8px;font-size:13.5px;color:var(--muted);line-height:1.8}

/* ============ FAQ ============ */
.faq{display:grid;gap:0;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 4px;font-size:1.02rem;font-weight:700;color:var(--plum-deep);cursor:pointer;list-style:none;transition:color .2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:22px;font-weight:400;color:var(--coral);line-height:1;flex:0 0 auto}
.faq details[open] summary{color:var(--coral)}
.faq details[open] summary::after{content:"−"}
.faq .faq-body{padding:0 4px 24px 20px;border-left:3px solid var(--coral);margin-left:2px;font-size:14.5px;color:var(--muted);line-height:1.9}

/* ============ CTA subscribe ============ */
.cta-band{position:relative;overflow:hidden;background:linear-gradient(120deg,#33203D 0%,#24132E 100%);color:#fff;border-radius:var(--radius-lg);padding:52px 48px;display:grid;grid-template-columns:1.1fr 1fr;gap:44px;align-items:center;box-shadow:0 26px 60px rgba(36,19,46,.28)}
.cta-band::before{content:"";position:absolute;right:-80px;bottom:-120px;width:320px;height:320px;border-radius:50%;border:1px solid rgba(91,200,176,.35)}
.cta-band h2{font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:800;line-height:1.42}
.cta-band p{margin-top:14px;font-size:14.5px;color:#C9BACF;line-height:1.85}
.subscribe-form{position:relative;z-index:2}
.subscribe-form label{display:block;font-size:13.5px;font-weight:700;color:#DCCFD9;margin-bottom:8px}
.subscribe-row{display:flex;gap:12px}
.subscribe-row input{flex:1;min-width:0;padding:14px 16px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.09);color:#fff;font-size:14.5px;transition:border-color .2s,box-shadow .2s}
.subscribe-row input::placeholder{color:#9E8FA5}
.subscribe-row input:focus{outline:none;border-color:var(--mint);box-shadow:0 0 0 3px rgba(91,200,176,.35)}
.form-note{margin-top:12px;font-size:12.5px;color:#A797AF;min-height:20px}

/* ============ Empty state ============ */
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:56px 24px;background:var(--paper);border:1px dashed var(--line);border-radius:var(--radius-md);text-align:center;color:var(--muted);font-size:14.5px}
.empty-state .empty-ico{width:54px;height:54px;border-radius:50%;background:#F1E9F3;display:flex;align-items:center;justify-content:center;color:var(--plum);font-weight:800;font-size:20px}
.empty-state a{color:var(--coral);font-weight:700}

/* ============ Footer ============ */
.site-footer{background:#1B1520;color:#C6B9CB;padding:64px 0 28px;margin-top:0}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:40px}
.footer-brand .logo{color:#fff;margin-bottom:16px}
.footer-brand .logo em{color:var(--peach)}
.footer-brand p{font-size:13.5px;line-height:1.85;color:#9E8FA5}
.age-badge{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:7px 14px;border-radius:999px;border:1px solid rgba(255,107,87,.5);background:rgba(255,107,87,.12);color:#FFC7BD;font-size:12.5px;font-weight:700}
.footer-col h4{font-size:14px;font-weight:800;color:#fff;margin-bottom:16px}
.footer-col ul{display:grid;gap:10px}
.footer-col a{font-size:13.5px;color:#9E8FA5}
.footer-col a:hover{color:var(--peach)}
.footer-col p{font-size:13.5px;color:#9E8FA5;line-height:1.85}
.footer-bottom{margin-top:44px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:12.5px;color:#7E7186}

/* ============ Responsive ============ */
@media (max-width:1200px){
  .container{padding:0 20px}
  .hero-strip ul{padding:0 20px}
  .city-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:992px){
  .main-nav{
    position:absolute;top:72px;left:0;right:0;
    flex-direction:column;align-items:flex-start;gap:0;
    background:var(--paper);border-bottom:1px solid var(--line);
    padding:8px 24px 20px;box-shadow:var(--shadow);display:none;
  }
  .nav-toggle:checked ~ .main-nav{display:flex}
  .main-nav a{width:100%;padding:13px 0;border-bottom:1px solid var(--line);font-size:15.5px}
  .main-nav a::after{display:none}
  .nav-burger{display:block}
  .header-cta{display:none}
  .header-inner{position:relative}
  .hero{padding-top:72px}
  .hero-strip ul{grid-template-columns:repeat(2,1fr)}
  .hero-strip li:nth-child(2){border-right:0}
  .entry-grid{grid-template-columns:1fr}
  .bento{grid-template-columns:1fr 1fr}
  .bento-card.bento-hero{grid-column:span 2;grid-row:auto}
  .observ-grid{grid-template-columns:1fr}
  .city-grid{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr;gap:36px}
  .rec-grid{grid-template-columns:1fr}
  .cta-band{grid-template-columns:1fr;padding:40px 32px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .steps{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:768px){
  .section{padding:56px 0}
  .post-grid{grid-template-columns:1fr}
  .post-card{grid-template-columns:1fr}
  .post-media{min-height:0;aspect-ratio:16/10}
  .chip-grid{grid-template-columns:repeat(2,1fr)}
  .meet-grid{grid-template-columns:1fr}
  .pit-item{grid-template-columns:76px 1fr;gap:14px}
  .pit-item .pit-arrow{display:none}
  .news-item{grid-template-columns:1fr;gap:8px}
  .news-item .news-side{padding-bottom:4px}
  .hero h1{font-size:clamp(1.7rem,6vw,2.2rem)}
  .hero-sub{font-size:15px}
}
@media (max-width:560px){
  .container{padding:0 16px}
  .section{padding:46px 0}
  .hero{padding:56px 0 0}
  .hero-strip ul{grid-template-columns:1fr}
  .hero-strip li{border-right:0;border-bottom:1px solid rgba(255,255,255,.12);padding:18px 16px}
  .hero-strip li:last-child{border-bottom:0}
  .steps{grid-template-columns:1fr}
  .bento{grid-template-columns:1fr}
  .bento-card.bento-hero{grid-column:auto}
  .city-grid{grid-template-columns:1fr}
  .chip-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:28px}
  .cta-band{padding:32px 22px}
  .subscribe-row{flex-direction:column}
  .hero-actions .btn{width:100%}
  .entry-card{padding:26px 22px}
  .post-body{padding:20px}
  .faq summary{font-size:15px;padding:18px 2px}
  .faq .faq-body{padding:0 2px 20px 16px}
}
@media (max-width:420px){
  .logo{font-size:15px}
  .hero-tags li{font-size:12px}
  .hero-actions{flex-direction:column}
  .hero-actions .btn{width:100%}
  .hero::after{display:none}
}

/* roulang page: article */
:root{
  --ink:#1B1520;
  --plum:#3A2144;
  --plum-deep:#24132E;
  --coral:#FF6B57;
  --peach:#FFB4A2;
  --mint:#5BC8B0;
  --sand:#F7F2EC;
  --paper:#FFFDF9;
  --line:#E7DED4;
  --muted:#746A76;
  --radius-lg:22px;
  --radius-md:18px;
  --radius-sm:12px;
  --shadow:0 12px 30px rgba(36,19,46,.08);
  --shadow-lg:0 20px 44px rgba(36,19,46,.14);
}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:"PingFang SC","HarmonyOS Sans","Microsoft YaHei",Inter,system-ui,-apple-system,sans-serif;
  font-size:16px;
  line-height:1.85;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
*,*::before,*::after{box-sizing:border-box}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none;transition:color .22s ease,border-color .22s ease}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
input{font:inherit}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{margin:0;line-height:1.4}
p{margin:0}
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}
:focus-visible{outline:3px solid var(--mint);outline-offset:3px;border-radius:6px}

/* ============ Header ============ */
.site-header{
  position:sticky;top:0;z-index:80;
  background:rgba(255,253,249,.95);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px}
.logo{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:800;letter-spacing:.02em;color:var(--plum-deep);white-space:nowrap}
.logo .logo-dot{width:10px;height:10px;border-radius:50%;background:var(--coral);flex:0 0 auto}
.logo em{font-style:normal;color:var(--coral)}
.main-nav{display:flex;align-items:center;gap:26px}
.main-nav a{position:relative;padding:4px 0;font-size:15px;color:var(--muted)}
.main-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--coral);transition:width .25s ease}
.main-nav a:hover{color:var(--plum-deep)}
.main-nav a:hover::after,.main-nav a.active::after{width:100%}
.main-nav a.active{color:var(--plum-deep);font-weight:700}
.header-cta{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border:1px solid var(--plum);border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--plum-deep);transition:background .22s,color .22s,transform .22s}
.header-cta:hover{background:#F1E9F3;transform:translateY(-1px)}
.nav-toggle{display:none}
.nav-burger{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:12px;padding:10px 9px;cursor:pointer}
.nav-burger span{display:block;height:2px;background:var(--plum-deep);margin:4px 0;border-radius:2px;transition:transform .2s}
.header-right{display:flex;align-items:center;gap:14px}

/* ============ Buttons / tags ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 26px;border-radius:var(--radius-sm);font-size:15px;font-weight:600;border:1px solid transparent;transition:transform .22s ease,background .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease}
.btn-primary{background:var(--coral);color:#fff;box-shadow:0 10px 24px rgba(255,107,87,.28)}
.btn-primary:hover{background:#EE5340;transform:translateY(-2px);box-shadow:0 14px 30px rgba(255,107,87,.34)}
.btn-ghost{border-color:var(--plum);color:var(--plum-deep);background:transparent}
.btn-ghost:hover{background:#F1E9F3;transform:translateY(-2px)}
.btn-text{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--coral)}
.btn-text:hover{gap:10px;color:#EE5340}
.tag{display:inline-flex;align-items:center;padding:5px 13px;border-radius:999px;font-size:12.5px;font-weight:600;background:#FBEDEA;color:#C1442F;border:1px solid #F6D8D2}
.tag-mint{background:#E7F7F3;color:#1F7A69;border-color:#C8EDE4}
.tag-plum{background:#F1E9F3;color:var(--plum);border-color:#E2D3E6}
.tag-line{background:transparent;color:var(--muted);border-color:var(--line)}

/* ============ Section base ============ */
.section{padding:80px 0}
.section-alt{background:var(--sand)}
.section-paper{background:var(--paper)}
.section-head{max-width:760px;margin-bottom:42px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--coral);margin-bottom:14px}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--coral);border-radius:2px}
.section-head h2{font-size:clamp(1.5rem,2.6vw,2.15rem);font-weight:800;color:var(--plum-deep)}
.section-head p{margin-top:14px;color:var(--muted);font-size:15.5px}

/* ============ Breadcrumb ============ */
.crumb-bar{border-bottom:1px solid var(--line);background:var(--paper)}
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:16px 0;font-size:13.5px;color:var(--muted)}
.crumb a{color:var(--plum)}
.crumb a:hover{color:var(--coral)}
.crumb .sep{color:#C9BFCE}
.crumb .current{color:var(--muted);max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ============ Article hero ============ */
.article-hero{position:relative;background:var(--sand);border-bottom:1px solid var(--line);padding:52px 0 56px;overflow:hidden}
.article-hero::before{content:"";position:absolute;right:-120px;top:-140px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(255,107,87,.16),rgba(255,107,87,0) 70%)}
.article-hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:48px;align-items:center}
.article-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.article-title{font-size:clamp(1.75rem,3.4vw,2.7rem);font-weight:800;color:var(--plum-deep);letter-spacing:-.01em;line-height:1.34}
.article-lead{margin-top:18px;font-size:16px;line-height:1.9;color:#5C4F60;max-width:680px}
.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:24px;font-size:13.5px;color:var(--muted)}
.article-meta .dot{width:4px;height:4px;border-radius:50%;background:#C9BFCE;display:inline-block}
.article-cover{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}
.article-cover img{width:100%;aspect-ratio:4/3;object-fit:cover}
.article-cover figcaption{position:absolute;left:14px;bottom:14px;padding:6px 12px;border-radius:999px;background:rgba(36,19,46,.72);color:#fff;font-size:12px;letter-spacing:.02em}

/* ============ Key points ============ */
.point-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.point-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);padding:24px 22px;box-shadow:var(--shadow);transition:transform .22s ease,box-shadow .22s ease}
.point-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.point-idx{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:#F1E9F3;color:var(--plum);font-size:13px;font-weight:700;margin-bottom:14px}
.point-card h3{font-size:16px;font-weight:700;color:var(--plum-deep);margin-bottom:8px}
.point-card p{font-size:14px;line-height:1.8;color:var(--muted)}

/* ============ Article layout ============ */
.article-wrap{display:grid;grid-template-columns:minmax(0,760px) 300px;gap:56px;justify-content:center;align-items:start}
.article-wrap.no-toc{grid-template-columns:minmax(0,760px)}
.article-body{font-size:16.5px;line-height:1.95;color:#2C2430;min-width:0}
.article-body > *:first-child{margin-top:0}
.article-body p{margin:0 0 18px}
.article-body h2{position:relative;margin:44px 0 18px;padding-left:16px;font-size:1.5rem;font-weight:800;color:var(--plum-deep);line-height:1.5}
.article-body h2::before{content:"";position:absolute;left:0;top:.3em;width:4px;height:1.05em;border-radius:3px;background:var(--coral)}
.article-body h3{margin:30px 0 12px;font-size:1.2rem;font-weight:700;color:var(--plum)}
.article-body ul,.article-body ol{margin:0 0 20px;padding-left:22px}
.article-body ul{list-style:disc}
.article-body ol{list-style:decimal}
.article-body li{margin:8px 0}
.article-body blockquote{margin:24px 0;padding:18px 22px;background:var(--sand);border-left:4px solid var(--mint);border-radius:0 14px 14px 0;color:#4A3F4E;font-size:15.5px}
.article-body img{border-radius:var(--radius-md);margin:24px 0;box-shadow:var(--shadow)}
.article-body a{color:#D24A34;border-bottom:1px solid rgba(255,107,87,.4)}
.article-body a:hover{color:var(--coral)}
.article-body strong{color:var(--plum-deep)}
.article-body hr{border:0;height:1px;background:var(--line);margin:36px 0}

/* ============ TOC ============ */
.toc{position:sticky;top:96px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);padding:22px 22px 18px;box-shadow:var(--shadow)}
.toc-details > summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-size:15px;font-weight:800;color:var(--plum-deep);padding-bottom:12px;border-bottom:1px solid var(--line)}
.toc-details > summary::-webkit-details-marker{display:none}
.toc-details > summary::after{content:"＋";font-size:14px;color:var(--coral);font-weight:700}
.toc-details[open] > summary::after{content:"－"}
.toc-list{counter-reset:toc;margin-top:14px}
.toc-list li a{position:relative;display:block;padding:7px 0 7px 28px;font-size:14px;line-height:1.6;color:var(--muted)}
.toc-list li a::before{counter-increment:toc;content:counter(toc);position:absolute;left:0;top:8px;width:19px;height:19px;line-height:19px;text-align:center;border-radius:6px;background:#F3EBF5;color:var(--plum);font-size:11px;font-weight:700}
.toc-list li a:hover{color:var(--coral)}
.toc-note{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);font-size:12.5px;line-height:1.75;color:var(--muted)}

/* ============ Empty state ============ */
.empty-state{text-align:center;padding:64px 24px;background:var(--sand);border:1px solid var(--line);border-radius:var(--radius-lg)}
.empty-state .empty-mark{width:64px;height:64px;margin:0 auto 18px;border-radius:50%;background:#FBEDEA;display:flex;align-items:center;justify-content:center;color:var(--coral);font-size:24px;font-weight:700}
.empty-state h2{font-size:1.25rem;color:var(--plum-deep);margin-bottom:10px}
.empty-state p{color:var(--muted);font-size:14.5px;margin-bottom:22px}

/* ============ Safety notice ============ */
.safety-box{display:grid;grid-template-columns:56px minmax(0,1fr);gap:20px;background:#FFF3F0;border:1px solid #F6D2CA;border-left:6px solid var(--coral);border-radius:var(--radius-md);padding:28px 30px}
.safety-box .safety-icon{width:52px;height:52px;border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:center;color:var(--coral);font-size:20px;font-weight:800;box-shadow:var(--shadow)}
.safety-box h2{font-size:1.15rem;color:#8E2C1C;margin-bottom:10px}
.safety-box p{font-size:14.5px;line-height:1.9;color:#6E4238;margin-bottom:8px}
.safety-box ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;margin-top:12px}
.safety-box li{position:relative;padding-left:18px;font-size:14px;color:#6E4238}
.safety-box li::before{content:"·";position:absolute;left:4px;top:-2px;color:var(--coral);font-weight:800;font-size:20px}

/* ============ Related ============ */
.rel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.rel-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow);transition:transform .22s ease,box-shadow .22s ease}
a.rel-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.rel-thumb{aspect-ratio:16/10;overflow:hidden}
.rel-thumb img{width:100%;height:100%;object-fit:cover}
.rel-body{padding:20px 20px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.rel-body h3{font-size:16px;font-weight:700;color:var(--plum-deep);line-height:1.55}
.rel-body p{font-size:13.5px;line-height:1.8;color:var(--muted)}
.rel-more{margin-top:auto;font-size:13.5px;font-weight:600;color:var(--coral)}
.rel-card.is-static{cursor:default}

/* ============ FAQ ============ */
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 0 20px 0;font-size:16px;font-weight:700;color:var(--plum-deep)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"＋";flex:0 0 auto;color:var(--coral);font-size:17px;font-weight:700;line-height:1.4}
.faq-item[open] summary::after{content:"－"}
.faq-item[open] summary{color:var(--plum)}
.faq-answer{padding:0 0 22px 18px;border-left:3px solid var(--coral);margin-bottom:2px}
.faq-answer p{font-size:14.5px;line-height:1.9;color:var(--muted)}

/* ============ Closing ============ */
.closing{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:22px;background:var(--sand);border:1px solid var(--line);border-radius:var(--radius-lg);padding:32px 34px}
.closing h2{font-size:1.25rem;color:var(--plum-deep);margin-bottom:8px}
.closing p{font-size:14.5px;color:var(--muted);max-width:600px}
.closing-actions{display:flex;flex-wrap:wrap;gap:12px}

/* ============ Footer ============ */
.site-footer{background:var(--plum-deep);color:#D9CEDD;padding:64px 0 0;margin-top:0}
.footer-grid{display:grid;grid-template-columns:1.4fr .8fr .9fr 1.2fr;gap:36px;padding-bottom:44px}
.footer-brand .logo{color:#fff;margin-bottom:16px}
.footer-brand .logo em{color:var(--peach)}
.footer-brand p{font-size:13.5px;line-height:1.9;color:#B9A9C1;max-width:340px}
.age-badge{display:inline-flex;align-items:center;gap:6px;margin-top:16px;padding:6px 14px;border-radius:999px;border:1px solid rgba(255,180,162,.5);background:rgba(255,180,162,.12);color:#FFD6CA;font-size:12.5px;font-weight:600}
.footer-col h4{font-size:14px;font-weight:700;color:#fff;margin-bottom:16px;letter-spacing:.04em}
.footer-col ul li{margin-bottom:10px}
.footer-col ul a{font-size:13.5px;color:#B9A9C1}
.footer-col ul a:hover{color:var(--peach)}
.footer-col p{font-size:13px;line-height:1.9;color:#A797AF}
.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:20px 0;border-top:1px solid rgba(255,255,255,.12);font-size:12.5px;color:#9E8EA8}

/* ============ Responsive ============ */
@media (max-width:1200px){
  .container{padding:0 20px}
  .article-wrap{grid-template-columns:minmax(0,1fr) 280px;gap:38px}
  .point-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:992px){
  .main-nav{
    position:fixed;left:0;right:0;top:72px;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--paper);border-bottom:1px solid var(--line);
    padding:8px 20px 22px;box-shadow:var(--shadow-lg);
    max-height:calc(100vh - 72px);overflow:auto;
    transform:translateY(-10px);opacity:0;pointer-events:none;
    transition:opacity .22s ease,transform .22s ease;
  }
  .nav-toggle:checked ~ .main-nav{opacity:1;transform:translateY(0);pointer-events:auto}
  .main-nav a{padding:14px 2px;border-bottom:1px solid var(--line);font-size:15px}
  .main-nav a::after{display:none}
  .nav-burger{display:block}
  .header-cta{display:none}
  .header-inner{gap:12px}
  .article-hero-grid{grid-template-columns:1fr;gap:28px}
  .article-cover{order:-1}
  .article-cover img{aspect-ratio:16/9}
  .article-wrap,.article-wrap.no-toc{grid-template-columns:minmax(0,1fr);gap:28px}
  .toc{position:static;top:auto;order:-1}
  .rel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-grid{grid-template-columns:1fr 1fr;gap:30px}
  .section{padding:56px 0}
}
@media (max-width:768px){
  .point-grid{grid-template-columns:1fr}
  .rel-grid{grid-template-columns:1fr}
  .safety-box{grid-template-columns:1fr;padding:24px 22px}
  .safety-box ul{grid-template-columns:1fr}
  .closing{padding:26px 22px}
  .article-meta{font-size:13px;gap:8px 12px}
}
@media (max-width:560px){
  .container{padding:0 16px}
  .article-hero{padding:36px 0 40px}
  .article-title{font-size:1.6rem}
  .article-lead{font-size:15px}
  .article-body{font-size:16px}
  .article-body h2{font-size:1.28rem;margin-top:34px}
  .footer-grid{grid-template-columns:1fr}
  .crumb .current{max-width:50vw}
  .section-head h2{font-size:1.35rem}
}
@media (max-width:420px){
  .logo{font-size:15px}
  .btn{width:100%}
  .closing-actions{width:100%}
  .closing-actions .btn{width:100%}
  .article-cover figcaption{left:10px;bottom:10px;font-size:11px}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;scroll-behavior:auto!important}
}

/* roulang page: category1 */
:root{
  --ink:#1B1520;
  --plum:#3A2144;
  --plum-deep:#24132E;
  --coral:#FF6B57;
  --peach:#FFB4A2;
  --mint:#5BC8B0;
  --sand:#F7F2EC;
  --paper:#FFFDF9;
  --line:#E7DED4;
  --muted:#746A76;
  --radius-lg:22px;
  --radius-md:18px;
  --radius-sm:12px;
  --shadow:0 12px 30px rgba(36,19,46,.08);
  --shadow-lg:0 20px 44px rgba(36,19,46,.14);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:"PingFang SC","HarmonyOS Sans","Microsoft YaHei",Inter,system-ui,-apple-system,sans-serif;
  font-size:16px;
  line-height:1.85;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none;transition:color .22s ease,border-color .22s ease,background .22s ease}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p{margin:0}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
input{font:inherit}
:focus-visible{outline:3px solid var(--mint);outline-offset:2px;border-radius:6px}
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}

/* ============ Header ============ */
.site-header{
  position:sticky;top:0;z-index:80;
  background:rgba(255,253,249,.95);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px}
.logo{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:800;letter-spacing:.02em;color:var(--plum-deep);white-space:nowrap}
.logo .logo-dot{width:10px;height:10px;border-radius:50%;background:var(--coral);flex:0 0 auto}
.logo em{font-style:normal;color:var(--coral)}
.main-nav{display:flex;align-items:center;gap:26px}
.main-nav a{position:relative;padding:4px 0;font-size:15px;color:var(--muted)}
.main-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--coral);transition:width .25s ease}
.main-nav a:hover{color:var(--plum-deep)}
.main-nav a:hover::after,.main-nav a.active::after{width:100%}
.main-nav a.active{color:var(--plum-deep);font-weight:700}
.header-cta{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border:1px solid var(--plum);border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--plum-deep);transition:background .22s,color .22s,transform .22s}
.header-cta:hover{background:#F1E9F3;transform:translateY(-1px)}
.nav-toggle{display:none}
.nav-burger{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:12px;padding:10px 9px;cursor:pointer}
.nav-burger span{display:block;height:2px;background:var(--plum-deep);margin:4px 0;border-radius:2px;transition:transform .2s}
.header-right{display:flex;align-items:center;gap:14px}

/* ============ Buttons / tags ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 26px;border-radius:var(--radius-sm);font-size:15px;font-weight:600;border:1px solid transparent;transition:transform .22s ease,background .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease}
.btn-primary{background:var(--coral);color:#fff;box-shadow:0 10px 24px rgba(255,107,87,.28)}
.btn-primary:hover{background:#EE5340;transform:translateY(-2px);box-shadow:0 14px 30px rgba(255,107,87,.34)}
.btn-ghost{border-color:var(--plum);color:var(--plum-deep);background:transparent}
.btn-ghost:hover{background:#F1E9F3;transform:translateY(-2px)}
.btn-text{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--coral)}
.btn-text:hover{gap:10px;color:#EE5340}
.tag{display:inline-flex;align-items:center;padding:5px 13px;border-radius:999px;font-size:12.5px;font-weight:600;background:#FBEDEA;color:#C1442F;border:1px solid #F6D8D2}
.tag-mint{background:#E7F7F3;color:#1F7A69;border-color:#C8EDE4}
.tag-plum{background:#F1E9F3;color:var(--plum);border-color:#E2D3E6}
.tag-line{background:transparent;color:var(--muted);border-color:var(--line)}

/* ============ Section base ============ */
.section{padding:80px 0}
.section-alt{background:var(--sand)}
.section-paper{background:var(--paper)}
.section-head{max-width:740px;margin-bottom:38px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--coral);text-transform:uppercase;margin-bottom:14px}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--coral);border-radius:2px}
.section-head h2{font-size:clamp(1.5rem,2.6vw,2.15rem);line-height:1.42;font-weight:800;color:var(--plum-deep)}
.section-head p{margin-top:14px;color:var(--muted);font-size:15.5px}

/* ============ Category head ============ */
.cat-head{position:relative;overflow:hidden;padding:32px 0 60px;background:linear-gradient(180deg,#FFFDF9 0%,#F7F2EC 100%);border-bottom:1px solid var(--line)}
.cat-head::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(58,33,68,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(58,33,68,.055) 1px,transparent 1px);
  background-size:52px 52px;
  -webkit-mask-image:radial-gradient(circle at 70% 30%,#000 0%,transparent 72%);
  mask-image:radial-gradient(circle at 70% 30%,#000 0%,transparent 72%);
}
.cat-head::after{
  content:"";position:absolute;right:-120px;top:-100px;width:360px;height:360px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,107,87,.22),rgba(255,107,87,0) 68%);pointer-events:none;
}
.breadcrumb{position:relative;z-index:2;display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--muted);margin-bottom:30px;flex-wrap:wrap}
.breadcrumb a{color:var(--muted)}
.breadcrumb a:hover{color:var(--coral)}
.breadcrumb span{color:#BCAEB6}
.breadcrumb em{font-style:normal;color:var(--plum-deep);font-weight:600}
.cat-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.55fr .85fr;gap:44px;align-items:start}
.cat-copy h1{font-size:clamp(2rem,3.6vw,2.9rem);line-height:1.28;font-weight:800;letter-spacing:-.01em;color:var(--plum-deep)}
.cat-copy h1 span{color:var(--coral)}
.cat-lead{margin-top:18px;max-width:620px;font-size:16px;line-height:1.9;color:#5D5162}
.cat-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.cat-meta{display:flex;flex-wrap:wrap;gap:20px;margin-top:26px;font-size:13.5px;color:var(--muted)}
.cat-meta b{color:var(--plum-deep);font-weight:700}
.data-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:26px 26px 20px}
.data-card h2{font-size:15px;font-weight:800;color:var(--plum-deep);letter-spacing:.02em}
.data-card .data-sub{font-size:13px;color:var(--muted);margin-top:6px}
.data-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:15px 0;border-bottom:1px dashed var(--line)}
.data-row:last-child{border-bottom:0;padding-bottom:4px}
.data-row strong{font-size:26px;font-weight:800;color:var(--plum);line-height:1.2;font-variant-numeric:tabular-nums}
.data-row strong i{font-style:normal;font-size:13px;font-weight:600;color:var(--muted);margin-left:4px}
.data-row span{font-size:13.5px;color:var(--muted);text-align:right}
.data-note{margin-top:16px;font-size:12.5px;color:#8B7F8F;line-height:1.7}

/* ============ Filter bar ============ */
.filter-wrap{background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:3}
.filter-bar{display:flex;align-items:center;gap:10px;overflow-x:auto;padding:18px 0;scrollbar-width:none}
.filter-bar::-webkit-scrollbar{display:none}
.filter-label{flex:0 0 auto;font-size:13px;font-weight:700;color:var(--plum-deep);letter-spacing:.06em;margin-right:6px}
.chip{flex:0 0 auto;padding:8px 18px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-size:14px;color:var(--muted);transition:.22s ease;white-space:nowrap}
.chip:hover{border-color:var(--plum);color:var(--plum-deep);transform:translateY(-1px)}
.chip.is-active{background:var(--plum);border-color:var(--plum);color:#fff;font-weight:600}

/* ============ Post cards ============ */
.post-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.post-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:#DCCFD7}
.post-thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--sand)}
.post-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.post-card:hover .post-thumb img{transform:scale(1.04)}
.post-thumb .thumb-tag{position:absolute;left:14px;top:14px;background:rgba(255,253,249,.94);border:1px solid var(--line);color:var(--plum-deep);font-size:12px;font-weight:700;padding:4px 12px;border-radius:999px}
.post-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.post-meta{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted);margin-bottom:12px}
.post-body h3{font-size:18px;line-height:1.55;font-weight:700;color:var(--plum-deep);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.post-body p{margin-top:10px;font-size:14.5px;line-height:1.8;color:#655A68;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.post-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:16px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--muted)}
.post-foot .read-time{color:#8B7F8F}
.list-cta{display:flex;justify-content:center;margin-top:38px}

/* ============ Top3 ============ */
.top3{display:grid;grid-template-columns:1.45fr 1fr;gap:26px}
.top3-main{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease}
.top3-main:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.top3-main .post-thumb{aspect-ratio:16/9}
.top3-main .post-body h3{font-size:21px;-webkit-line-clamp:3}
.top3-side{display:grid;gap:26px}
.mini-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:22px 24px;display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.mini-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:#DCCFD7}
.mini-card h3{font-size:16.5px;line-height:1.55;font-weight:700;color:var(--plum-deep);margin-top:12px}
.mini-card p{font-size:14px;color:#655A68;line-height:1.8;margin-top:8px}
.mini-card .mini-foot{margin-top:auto;padding-top:14px;font-size:12.5px;color:var(--muted)}

/* ============ Steps ============ */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.step-card{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px 28px;box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease}
.step-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.step-num{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:14px;background:#F1E9F3;color:var(--plum);font-weight:800;font-size:17px;font-variant-numeric:tabular-nums}
.step-card h3{margin-top:18px;font-size:17.5px;font-weight:700;color:var(--plum-deep)}
.step-card p{margin-top:10px;font-size:14.5px;line-height:1.85;color:#655A68}
.step-card::after{content:"";position:absolute;left:28px;right:28px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:linear-gradient(90deg,var(--coral),var(--peach));opacity:0;transition:opacity .25s ease}
.step-card:hover::after{opacity:1}

/* ============ Alert band ============ */
.alert-band{background:#FFF3F0;border-left:6px solid var(--coral);border-radius:var(--radius-md);padding:28px 32px;display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:start;border-top:1px solid #F8DCD5;border-right:1px solid #F8DCD5;border-bottom:1px solid #F8DCD5}
.alert-mark{width:46px;height:46px;border-radius:50%;background:#fff;border:1px solid #F6D8D2;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--coral);font-weight:800}
.alert-band h2{font-size:19px;font-weight:800;color:#8F2E1E}
.alert-band p{margin-top:8px;font-size:14.5px;line-height:1.85;color:#7A463C}
.alert-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 26px;margin-top:16px}
.alert-list li{position:relative;padding-left:18px;font-size:14px;line-height:1.8;color:#7A463C}
.alert-list li::before{content:"";position:absolute;left:0;top:10px;width:7px;height:7px;border-radius:50%;background:var(--coral)}

/* ============ FAQ ============ */
.faq-list{max-width:920px}
.faq-item{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper);padding:0 24px;margin-bottom:14px;transition:box-shadow .25s ease,border-color .25s ease}
.faq-item[open]{border-left:4px solid var(--coral);box-shadow:var(--shadow)}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;cursor:pointer;padding:20px 0;font-size:16.5px;font-weight:700;color:var(--plum-deep)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";flex:0 0 auto;font-size:20px;font-weight:700;color:var(--coral);line-height:1;transition:transform .2s ease}
.faq-item[open] summary::after{content:"−"}
.faq-item summary:hover{color:var(--coral)}
.faq-body{padding:0 0 22px;font-size:15px;line-height:1.9;color:#655A68}

/* ============ Editor note ============ */
.editor-grid{display:grid;grid-template-columns:1.5fr .9fr;gap:30px;align-items:start}
.log-list{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:8px 26px}
.log-item{display:flex;gap:18px;padding:20px 0;border-bottom:1px dashed var(--line)}
.log-item:last-child{border-bottom:0}
.log-date{flex:0 0 84px;font-size:13px;font-weight:700;color:var(--coral);letter-spacing:.02em;font-variant-numeric:tabular-nums}
.log-item h3{font-size:15.5px;font-weight:700;color:var(--plum-deep)}
.log-item p{margin-top:6px;font-size:14px;line-height:1.8;color:#655A68}
.side-cta{background:var(--plum-deep);color:#EFE7F1;border-radius:var(--radius-lg);padding:32px 30px;box-shadow:var(--shadow-lg)}
.side-cta h2{font-size:19px;font-weight:800;color:#fff}
.side-cta p{margin-top:12px;font-size:14px;line-height:1.85;color:#C7B9CC}
.side-cta .btn{margin-top:22px;width:100%}
.side-cta .side-links{margin-top:22px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);display:grid;gap:10px}
.side-cta .side-links a{font-size:14px;color:#D6C7DC}
.side-cta .side-links a:hover{color:var(--peach)}

/* ============ Footer ============ */
.site-footer{background:var(--plum-deep);color:#D9CBDD;padding:64px 0 0}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.4fr;gap:40px;padding-bottom:44px}
.footer-brand .logo{color:#fff}
.footer-brand p{margin-top:16px;font-size:14px;line-height:1.85;color:#B9A9C0}
.age-badge{display:inline-block;margin-top:18px;padding:6px 14px;border-radius:999px;font-size:12.5px;background:rgba(255,107,87,.16);border:1px solid rgba(255,107,87,.45);color:#FFC6BC}
.footer-col h4{font-size:15px;color:#fff;margin-bottom:16px;font-weight:700}
.footer-col li{margin-bottom:10px;font-size:14px}
.footer-col a{color:#BFAFC7}
.footer-col a:hover{color:var(--peach)}
.footer-col p{font-size:13.5px;line-height:1.85;color:#B0A0B8}
.footer-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 0 28px;border-top:1px solid rgba(255,255,255,.12);font-size:13px;color:#9C8CA5}

/* ============ Responsive ============ */
@media (max-width:1200px){
  .container{padding:0 22px}
  .main-nav{gap:20px}
}
@media (max-width:992px){
  .section{padding:60px 0}
  .nav-burger{display:block}
  .header-cta{display:none}
  .main-nav{
    position:absolute;left:0;right:0;top:72px;display:none;
    flex-direction:column;align-items:flex-start;gap:0;
    background:var(--paper);border-bottom:1px solid var(--line);
    box-shadow:var(--shadow);padding:8px 24px 18px;
  }
  .nav-toggle:checked ~ .main-nav{display:flex}
  .main-nav a{width:100%;padding:13px 0;border-bottom:1px dashed var(--line);font-size:15.5px}
  .main-nav a:last-child{border-bottom:0}
  .main-nav a::after{display:none}
  .cat-grid{grid-template-columns:1fr;gap:30px}
  .data-card{max-width:520px}
  .post-grid{grid-template-columns:1fr}
  .top3{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .editor-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
}
@media (max-width:768px){
  .section{padding:52px 0}
  .section-head{margin-bottom:28px}
  .cat-head{padding:24px 0 44px}
  .breadcrumb{margin-bottom:22px}
  .alert-band{grid-template-columns:1fr;padding:24px}
  .alert-list{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .log-date{flex:0 0 66px}
}
@media (max-width:560px){
  .container{padding:0 18px}
  .header-inner{height:64px;gap:12px}
  .logo{font-size:15.5px}
  .main-nav{top:64px}
  .cat-copy h1{font-size:1.85rem}
  .cat-lead{font-size:15px}
  .post-body{padding:18px 18px 20px}
  .post-body h3{font-size:16.5px}
  .faq-item{padding:0 18px}
  .faq-item summary{font-size:15.5px}
  .filter-bar{padding:14px 0}
  .data-card{padding:20px}
  .log-list{padding:4px 18px}
  .side-cta{padding:26px 22px}
}
@media (max-width:420px){
  .btn{width:100%}
  .cat-tags .tag{font-size:12px}
  .data-row strong{font-size:22px}
  .foot-bottom{flex-direction:column}
}
