/* roulang page: index */
:root {
  --ink:#2A241F;
  --honey:#D4894A;
  --honey-deep:#A8652E;
  --blush:#E7B7A3;
  --terracotta:#C45C4A;
  --graphite:#3E4644;
  --aluminum:#E8E4DE;
  --paper:#F7F3EE;
  --line:#D9D1C7;
  --muted:#6F675F;
  --shadow:0 8px 24px rgba(42,36,31,.06);
  --shadow-hover:0 12px 28px rgba(42,36,31,.1);
  --radius-card:14px;
  --radius-img:12px;
  --radius-input:10px;
  --honey-hover:#c37b40;
  --cta-hover:#b45544;
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0;
  color:var(--ink);
  background-color:var(--paper);
  background-image:linear-gradient(180deg,#f8efe6 0%,var(--paper) 320px);
  background-repeat:no-repeat;
  font-family:"PingFang SC","Noto Sans SC","Source Han Sans SC","Microsoft YaHei",sans-serif;
  font-size:1rem;
  line-height:1.8;
}
img { max-width:100%; display:block; }
button,input { font-family:inherit; }
p { margin:0 0 .75em; }
h1,h2,h3 { line-height:1.35; color:var(--ink); }
h1 { font-weight:700; font-size:clamp(1.75rem,3vw,2.5rem); margin:0 0 .6em; }
h2 { font-weight:700; font-size:clamp(1.35rem,2vw,1.75rem); margin:0 0 .6em; }
h3 { font-weight:700; font-size:1.125rem; margin:0 0 .4em; }
a { color:var(--honey-deep); text-decoration:none; }
a:hover { text-decoration:underline; }
::selection { background:#f0d2b8; color:var(--ink); }
:focus-visible { outline:2px solid var(--terracotta); outline-offset:2px; }
@media (min-width:1200px) {
  .container { max-width:1140px; }
}
.section { padding:72px 0; border-top:1px solid var(--line); }
.band-paper { background:var(--paper); }
.band-al { background:var(--aluminum); }
.hero.section { border-top:0; background:transparent; }
.section-head { margin-bottom:16px; }
.section-head p { margin:0; max-width:40em; }
.fine { color:var(--muted); font-size:.875rem; line-height:1.7; }
.brand-bar {
  position:sticky;
  top:0;
  z-index:1030;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.brand-bar-inner {
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:8px 0;
}
.brand {
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--ink);
  text-decoration:none;
  min-height:44px;
}
.brand:hover { color:var(--ink); text-decoration:none; }
.brand-mark {
  width:36px;
  height:36px;
  flex:0 0 36px;
  border-radius:50%;
  border:3px solid var(--honey);
  border-right-color:transparent;
  border-bottom-color:var(--blush);
  transform:rotate(-28deg);
  position:relative;
}
.brand-mark::after {
  content:"";
  position:absolute;
  width:9px;
  height:9px;
  right:-3px;
  bottom:4px;
  background:var(--honey);
  clip-path:polygon(0 0,100% 50%,0 100%);
}
.brand-name {
  display:block;
  font-weight:700;
  font-size:.95rem;
  line-height:1.35;
  letter-spacing:.01em;
}
.brand-sub {
  display:block;
  margin-top:2px;
  font-size:.75rem;
  color:var(--muted);
  letter-spacing:.12em;
}
.brand-tools { display:flex; align-items:center; gap:8px; }
.age-pill {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:0 8px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  font-size:.75rem;
  letter-spacing:.04em;
  background:#fff;
}
.chip-nav { background:var(--aluminum); border-bottom:1px solid var(--line); }
.chip-scroll {
  display:flex;
  gap:8px;
  overflow-x:auto;
  white-space:nowrap;
  scroll-snap-type:x mandatory;
  padding:10px 0 12px;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.chip-scroll::-webkit-scrollbar { display:none; }
.chip {
  scroll-snap-align:start;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 16px;
  border-radius:999px;
  border:1px solid var(--honey);
  background:#fff;
  color:var(--honey-deep);
  font-size:.875rem;
  flex:0 0 auto;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.chip:hover { background:#fff7f1; text-decoration:none; color:var(--honey-deep); }
.chip:active { transform:none; opacity:.88; }
.chip.is-current { background:var(--graphite); color:#fff; border-color:var(--graphite); }
.chip.is-current:hover { color:#fff; text-decoration:none; }
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid transparent;
  font-size:.9375rem;
  font-weight:700;
  line-height:1;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease,opacity .2s ease,box-shadow .2s ease;
}
.btn:hover { text-decoration:none; }
.btn:focus-visible { box-shadow:0 0 0 2px var(--terracotta); outline:none; }
.btn:active { transform:none; opacity:.88; }
.btn-main { background:var(--honey); color:#fff; border-color:var(--honey); }
.btn-main:hover { background:var(--honey-hover); border-color:var(--honey-hover); color:#fff; transform:translateY(-1px); }
.btn-cta { background:var(--terracotta); color:#fff; border-color:var(--terracotta); }
.btn-cta:hover { background:var(--cta-hover); border-color:var(--cta-hover); color:#fff; transform:translateY(-1px); }
.btn-ghost { background:transparent; color:var(--graphite); border-color:var(--graphite); }
.btn-ghost:hover { color:var(--honey-deep); border-color:var(--honey); background:#fff; transform:translateY(-1px); }
.hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.hero-copy { padding-right:12px; }
.film {
  position:relative;
  border-radius:var(--radius-img);
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--aluminum);
  box-shadow:var(--shadow);
  aspect-ratio:3/4;
  max-width:420px;
}
.film img { width:100%; height:100%; object-fit:cover; }
.film::before,.film::after {
  content:"";
  position:absolute;
  top:0; bottom:0;
  width:16px;
  background:repeating-linear-gradient(to bottom,var(--graphite) 0 7px,transparent 7px 20px);
  opacity:.28;
  pointer-events:none;
}
.film::before { left:0; }
.film::after { right:0; }
.film-no {
  position:absolute;
  top:22px;
  left:28px;
  min-width:52px;
  height:36px;
  padding:0 10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:var(--honey);
  color:#fff;
  font-weight:700;
  letter-spacing:.08em;
}
.film-meta {
  position:absolute;
  left:22px;
  right:22px;
  bottom:18px;
  background:rgba(247,243,238,.94);
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  padding:12px 14px;
}
.film-title { margin:6px 0 0; font-weight:700; font-size:1.125rem; }
.badge-zone {
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:0 10px;
  border-radius:999px;
  background:var(--blush);
  color:var(--ink);
  font-size:.75rem;
  font-weight:700;
}
.pain-row { display:grid; gap:12px; }
.pain-item {
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  padding:16px 16px 14px;
  box-shadow:var(--shadow);
}
.pain-item h3 { display:flex; align-items:center; gap:8px; }
.pain-no {
  width:28px; height:28px;
  border-radius:50%;
  background:var(--honey);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:.75rem;
  flex:0 0 28px;
}
.rail { position:relative; display:grid; gap:18px; margin:8px 0 0; padding:0; list-style:none; }
.rail-link {
  display:block;
  color:var(--ink);
  text-decoration:none;
  background:transparent;
}
.rail-link:hover { color:var(--ink); text-decoration:none; }
.rail-no {
  width:48px; height:48px;
  border-radius:50%;
  border:1px solid var(--honey);
  background:#fff;
  color:var(--honey-deep);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  position:relative;
  z-index:1;
}
.rail-link:hover .rail-no { background:var(--honey); color:#fff; }
.rail-name { display:block; margin-top:10px; }
.rail-desc { display:block; color:var(--muted); font-size:.875rem; }
.steps { list-style:none; margin:0; padding:0; display:grid; gap:0; }
.step {
  display:grid;
  grid-template-columns:56px 1fr;
  gap:14px;
  position:relative;
  padding-bottom:18px;
}
.step::before {
  content:"";
  position:absolute;
  left:23px;
  top:44px;
  bottom:0;
  width:1px;
  background:var(--line);
}
.step:last-child::before { display:none; }
.step-no {
  width:48px; height:48px;
  border-radius:50%;
  background:var(--graphite);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
}
.step-body {
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  padding:14px 16px;
  box-shadow:var(--shadow);
}
.scene-row {
  display:flex;
  gap:14px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding:4px 2px 10px;
  scrollbar-width:none;
}
.scene-row::-webkit-scrollbar { display:none; }
.scene-card {
  flex:0 0 78%;
  scroll-snap-align:start;
  display:flex;
  flex-direction:column;
  min-height:210px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow);
  color:var(--ink);
  overflow:hidden;
  transition:transform .2s ease,box-shadow .2s ease;
}
.scene-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-hover); color:var(--ink); text-decoration:none; }
.scene-swatch { height:74px; background:linear-gradient(90deg,#f3d7c4,var(--aluminum)); }
.scene-swatch.b { background:#e7b7a3; }
.scene-swatch.c { background:#ecd9cc; }
.scene-swatch.d { background:#f7efe8; }
.scene-body { padding:14px 16px 16px; }
.wife-band {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:28px;
  background:var(--paper);
  border:1px solid var(--line);
  border-left:6px solid var(--honey);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow);
}
.slots { list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.slot {
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  padding:16px;
  box-shadow:var(--shadow);
  min-height:132px;
}
.slot strong {
  display:block;
  font-size:clamp(1.8rem,3vw,2.4rem);
  line-height:1.1;
  color:var(--honey-deep);
  font-weight:700;
  margin:6px 0;
}
.slot-k {
  display:inline-flex;
  min-height:24px;
  align-items:center;
  padding:0 8px;
  border-radius:999px;
  background:var(--blush);
  font-size:.75rem;
}
.plist { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.plist a {
  display:grid;
  grid-template-columns:auto auto 1fr;
  gap:10px 12px;
  align-items:center;
  min-height:64px;
  padding:12px 14px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  color:var(--ink);
  box-shadow:var(--shadow);
  transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.plist a:hover { text-decoration:none; border-color:var(--honey); transform:translateY(-1px); box-shadow:var(--shadow-hover); color:var(--ink); }
.plist time { color:var(--muted); font-size:.875rem; }
.plist strong { font-size:1rem; }
.more-row { margin:16px 0 0; }
.quotes { display:grid; gap:12px; }
.quote {
  margin:0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  padding:18px 16px 14px;
  box-shadow:var(--shadow);
}
.quote p { margin:0 0 12px; }
.quote footer { color:var(--muted); font-size:.875rem; }
.aud-grid { display:grid; gap:12px; margin:0; }
.aud-item {
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  padding:16px;
  box-shadow:var(--shadow);
}
.aud-item dt { font-weight:700; font-size:1.125rem; margin-bottom:.35em; }
.aud-item dd { margin:0; color:var(--ink); }
.news-card {
  display:flex;
  flex-direction:column;
  height:100%;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  overflow:hidden;
  color:var(--ink);
  box-shadow:var(--shadow);
  transition:transform .2s ease,box-shadow .2s ease;
}
.news-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-hover); color:var(--ink); text-decoration:none; }
.news-top { height:8px; background:var(--honey); }
.news-top.t2 { background:var(--blush); }
.news-top.t3 { background:var(--terracotta); }
.news-top.t4 { background:var(--graphite); }
.news-body { padding:16px; }
.bars { list-style:none; margin:0; padding:8px 16px; background:#fff; border:1px solid var(--line); border-radius:var(--radius-card); box-shadow:var(--shadow); }
.bar-item {
  display:grid;
  grid-template-columns:52px minmax(6.5em,8em) 1fr auto;
  gap:12px;
  align-items:center;
  padding:12px 0;
  border-bottom:1px solid var(--line);
}
.bar-item:last-child { border-bottom:0; }
.bar-no {
  width:40px; height:40px;
  border-radius:10px;
  background:var(--aluminum);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  color:var(--graphite);
}
.bar-track { height:8px; background:var(--aluminum); border-radius:999px; overflow:hidden; }
.bar-track span { display:block; height:100%; background:var(--honey); border-radius:999px; }
.w72 { width:72%; } .w58 { width:58%; } .w49 { width:49%; } .w40 { width:40%; } .w33 { width:33%; }
.anchor-row { display:flex; flex-wrap:wrap; gap:8px; }
.close-bar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:28px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow);
}
.close-actions { display:flex; flex-wrap:wrap; gap:10px; }
.note-grid { display:grid; gap:12px; }
.note-item {
  padding:16px;
  border-radius:var(--radius-card);
  border:1px solid var(--line);
  background:#fff;
  box-shadow:var(--shadow);
}
.faq-acc { --bs-accordion-bg:var(--paper); --bs-accordion-border-color:var(--line); --bs-accordion-btn-bg:#fff; --bs-accordion-active-bg:#f4e3d4; --bs-accordion-active-color:var(--ink); --bs-accordion-btn-focus-box-shadow:0 0 0 2px var(--terracotta); --bs-accordion-btn-color:var(--ink); }
.faq-acc .accordion-item { border:1px solid var(--line); border-radius:14px !important; margin-bottom:10px; overflow:hidden; background:#fff; box-shadow:var(--shadow); }
.faq-acc .accordion-button { font-weight:700; min-height:52px; padding:14px 18px; box-shadow:none; }
.faq-acc .accordion-button:not(.collapsed) { color:var(--ink); }
.faq-acc .accordion-body { padding:0 18px 16px; color:var(--ink); }
.site-footer { background:var(--graphite); color:#f3eee8; padding:48px 0 20px; }
.site-footer a { color:#f3eee8; }
.site-footer a:hover { color:var(--blush); }
.footer-label { font-weight:700; margin:0 0 10px; color:#fff; }
.footer-links { list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.footer-links a { display:inline-flex; min-height:36px; align-items:center; }
.foot-form { display:grid; gap:8px; }
.foot-form label { font-weight:700; color:#fff; }
.mail-input {
  width:100%;
  min-height:44px;
  border-radius:var(--radius-input);
  border:1px solid var(--line);
  background:var(--paper);
  color:var(--ink);
  padding:0 12px;
}
.mail-input:focus { outline:none; border-color:var(--terracotta); box-shadow:0 0 0 2px var(--terracotta); }
.footer-brand .brand-name,.footer-brand .brand-sub { color:#fff; }
.footer-brand .brand-sub { color:#e7b7a3; }
.legal {
  margin-top:28px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.14);
  color:#e6ddd4;
  font-size:.875rem;
}
@media (max-width:991.98px) {
  .section { padding:48px 0; }
  .hero-copy { padding-right:0; margin-bottom:8px; }
  .wife-band,.close-bar { flex-direction:column; align-items:flex-start; }
}
@media (min-width:576px) {
  .pain-row { grid-template-columns:1fr; }
  .scene-card { flex-basis:46%; }
}
@media (min-width:768px) {
  .pain-row,.slots,.quotes,.note-grid { grid-template-columns:repeat(3,1fr); }
  .slots { grid-template-columns:repeat(4,1fr); }
  .note-grid { grid-template-columns:repeat(3,1fr); }
  .aud-grid { grid-template-columns:1fr 1fr; }
  .scene-card { flex-basis:280px; }
  .plist a { grid-template-columns:88px 120px 1fr; }
}
@media (min-width:992px) {
  .rail { grid-template-columns:repeat(3,1fr); gap:0; }
  .rail::before {
    content:"";
    position:absolute;
    left:8%;
    right:8%;
    top:24px;
    height:1px;
    background:var(--honey);
  }
  .step { grid-template-columns:72px 1fr; }
}
@media (max-width:767.98px) {
  .plist a { grid-template-columns:1fr; gap:4px; }
  .bar-item { grid-template-columns:44px 1fr auto; }
  .bar-name { grid-column:2 / -1; grid-row:1; }
  .bar-no { grid-row:1 / span 2; }
  .bar-track { grid-column:2 / 3; }
  .bar-val { grid-column:3; }
}
@media (max-width:575.98px) {
  .section { padding:36px 0; }
  .brand-name { font-size:.78rem; max-width:9.2em; }
  .chip-nav .container { padding-left:0; padding-right:0; }
  .chip-scroll { padding-left:12px; padding-right:12px; }
  .scene-card { flex-basis:86%; }
  .film { max-width:none; }
  .wife-band,.close-bar { padding:18px; }
  .pain-row,.slots,.quotes,.note-grid,.aud-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none !important; }
}

/* roulang page: category1 */
:root {
 --ink:#2A241F;
 --honey:#D4894A;
 --honey-deep:#A8652E;
 --blush:#E7B7A3;
 --terracotta:#C45C4A;
 --graphite:#3E4644;
 --aluminum:#E8E4DE;
 --paper:#F7F3EE;
 --line:#D9D1C7;
 --muted:#6F675F;
 --shadow:0 8px 24px rgba(42,36,31,.06);
 --shadow-hover:0 12px 28px rgba(42,36,31,.1);
 --radius-card:14px;
 --radius-img:12px;
 --radius-input:10px;
 --honey-hover:#c37b40;
 --cta-hover:#b45544;
}
/* roulang page: category1 */
:root {
 --ink:#2A241F;
 --honey:#D4894A;
 --honey-deep:#A8652E;
 --blush:#E7B7A3;
 --terracotta:#C45C4A;
 --graphite:#3E4644;
 --aluminum:#E8E4DE;
 --paper:#F7F3EE;
 --line:#D9D1C7;
 --muted:#6F675F;
 --shadow:0 8px 24px rgba(42,36,31,.06);
 --shadow-hover:0 12px 28px rgba(42,36,31,.1);
 --radius-card:14px;
 --radius-img:12px;
 --radius-input:10px;
 --honey-hover:#c37b40;
 --cta-hover:#b45544;
}
html { scroll-behavior:smooth; }
*, *::before, *::after { box-sizing:border-box; }
body {
 margin:0;
 color:var(--ink);
 background-color:var(--paper);
 background-image:linear-gradient(180deg,#f8efe6 0%,var(--paper) 320px);
 background-repeat:no-repeat;
 font-family:"PingFang SC","Noto Sans SC","Source Han Sans SC","Microsoft YaHei",sans-serif;
 font-size:1rem;
 line-height:1.8;
}
img { max-width:100%; display:block; }
button, input { font-family:inherit; }
a { color:var(--honey-deep); text-decoration:none; }
a:hover { text-decoration:underline; }
p { margin:0 0 .75em; }
h1, h2, h3 { color:var(--ink); }
h1 {
 font-weight:700;
 font-size:clamp(1.75rem, 3vw, 2.5rem);
 line-height:1.25;
 margin:0 0 .6em;
}
h2 {
 font-weight:700;
 font-size:clamp(1.35rem, 2vw, 1.75rem);
 line-height:1.35;
 margin:0 0 .6em;
}
h3 {
 font-weight:700;
 font-size:1.125rem;
 line-height:1.45;
 margin:0 0 .6em;
}
.container { max-width:1140px; }
.section { padding:72px 0; border-top:1px solid var(--line); }
.section-tight { padding:28px 0; }
.band-paper { background:transparent; }
.band-al { background:var(--aluminum); }
.section-head { margin-bottom:16px; }
.section-head p { margin:0; max-width:40em; }
.lead-sub { margin:0; max-width:36em; color:var(--ink); }
.brand-bar {
 position:sticky;
 top:0;
 z-index:1030;
 background:var(--paper);
 border-bottom:1px solid var(--line);
}
.brand-bar-inner {
 min-height:72px;
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:12px;
 padding:8px 0;
}
.brand {
 display:flex;
 align-items:center;
 gap:10px;
 color:var(--ink);
 text-decoration:none;
 min-height:44px;
 min-width:0;
}
.brand:hover { color:var(--ink); text-decoration:none; }
.brand-mark {
 width:36px;
 height:36px;
 flex:0 0 36px;
 border-radius:50%;
 border:3px solid var(--honey);
 border-right-color:transparent;
 border-bottom-color:var(--blush);
 transform:rotate(-28deg);
 position:relative;
}
.brand-mark::after {
 content:"";
 position:absolute;
 width:9px;
 height:9px;
 right:-3px;
 bottom:4px;
 background:var(--honey);
 clip-path:polygon(0 0,100% 50%,0 100%);
}
.brand-name {
 display:block;
 font-weight:700;
 font-size:.95rem;
 line-height:1.35;
 letter-spacing:.01em;
}
.brand-sub {
 display:block;
 margin-top:2px;
 font-size:.75rem;
 color:var(--muted);
 letter-spacing:.12em;
}
.brand-tools { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.age-pill {
 display:inline-flex;
 align-items:center;
 justify-content:center;
 min-height:28px;
 padding:0 8px;
 border:1px solid var(--line);
 border-radius:999px;
 color:var(--muted);
 font-size:.75rem;
 letter-spacing:.04em;
 background:#fff;
}
.chip-nav { background:var(--aluminum); border-bottom:1px solid var(--line); }
.chip-scroll {
 display:flex;
 gap:8px;
 overflow-x:auto;
 white-space:nowrap;
 scroll-snap-type:x mandatory;
 padding:10px 0 12px;
 scrollbar-width:none;
 -ms-overflow-style:none;
}
.chip-scroll::-webkit-scrollbar { display:none; }
.chip {
 scroll-snap-align:start;
 display:inline-flex;
 align-items:center;
 justify-content:center;
 min-height:44px;
 padding:0 16px;
 border-radius:999px;
 border:1px solid var(--honey);
 background:#fff;
 color:var(--honey-deep);
 font-size:.875rem;
 flex:0 0 auto;
 transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease,opacity .2s ease;
}
.chip:hover { background:#fff7f1; text-decoration:none; color:var(--honey-deep); }
.chip:active { transform:none; opacity:.88; }
.chip:focus-visible { outline:none; box-shadow:0 0 0 2px var(--terracotta); }
.chip.is-current { background:var(--graphite); color:#fff; border-color:var(--graphite); }
.chip.is-current:hover { color:#fff; text-decoration:none; }
.btn {
 display:inline-flex;
 align-items:center;
 justify-content:center;
 min-height:44px;
 padding:0 18px;
 border-radius:999px;
 border:1px solid transparent;
 font-size:.9375rem;
 font-weight:700;
 line-height:1;
 cursor:pointer;
 text-decoration:none;
 transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease,opacity .2s ease,box-shadow .2s ease;
}
.btn:hover { text-decoration:none; }
.btn:focus-visible { box-shadow:0 0 0 2px var(--terracotta); outline:none; }
.btn:active { transform:none; opacity:.88; }
.btn-main { background:var(--honey); color:#fff; border-color:var(--honey); }
.btn-main:hover { background:var(--honey-hover); border-color:var(--honey-hover); color:#fff; transform:translateY(-1px); }
.btn-cta { background:var(--terracotta); color:#fff; border-color:var(--terracotta); }
.btn-cta:hover { background:var(--cta-hover); border-color:var(--cta-hover); color:#fff; transform:translateY(-1px); }
.btn-ghost { background:transparent; color:var(--graphite); border-color:var(--graphite); }
.btn-ghost:hover { color:var(--honey-deep); border-color:var(--honey); background:#fff; transform:translateY(-1px); }
.badge-zone {
 display:inline-flex;
 align-items:center;
 min-height:26px;
 padding:0 10px;
 border-radius:999px;
 background:var(--blush);
 color:var(--ink);
 font-size:.75rem;
 font-weight:700;
}
.fine { font-size:.875rem; line-height:1.8; color:var(--muted); }
.cat-head-grid {
 display:grid;
 grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
 gap:28px;
 align-items:end;
}
.tool-row { display:flex; flex-direction:column; align-items:flex-end; gap:10px; }
.tool-group { display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:flex-end; }
.tool-label { font-size:.875rem; color:var(--muted); margin-right:2px; }
.seg {
 min-height:44px;
 padding:0 14px;
 border-radius:999px;
 border:1px solid var(--honey);
 background:#fff;
 color:var(--honey-deep);
 font-size:.875rem;
 font-weight:700;
 cursor:pointer;
 transition:background .2s ease,color .2s ease,border-color .2s ease,opacity .2s ease;
}
.seg:hover { background:#fff7f1; }
.seg:focus-visible { outline:none; box-shadow:0 0 0 2px var(--terracotta); }
.seg:active { opacity:.88; }
.seg.is-on { background:var(--graphite); color:#fff; border-color:var(--graphite); }
.seg.is-on:hover { color:#fff; }
.count-bar {
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:12px;
 min-height:52px;
 padding:10px 16px;
 background:#fff;
 border:1px solid var(--line);
 border-radius:var(--radius-card);
 box-shadow:var(--shadow);
}
.count-bar h2 { margin:0; font-size:1rem; line-height:1.5; }
.h-list { display:flex; flex-direction:column; gap:12px; }
.h-card {
 display:grid;
 grid-template-columns:168px minmax(0,1fr);
 gap:14px;
 align-items:stretch;
 padding:12px;
 background:#fff;
 border:1px solid var(--line);
 border-radius:var(--radius-card);
 box-shadow:var(--shadow);
 transition:transform .2s ease,box-shadow .2s ease;
}
.h-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-hover); }
.h-thumb {
 position:relative;
 min-height:126px;
 border-radius:var(--radius-img);
 background:
  linear-gradient(160deg,var(--blush) 0 34%,var(--aluminum) 34% 68%,var(--honey) 68% 84%,var(--honey-deep) 84% 100%);
}
.slot-no {
 position:absolute;
 top:8px;
 left:8px;
 min-height:26px;
 padding:0 8px;
 display:inline-flex;
 align-items:center;
 border-radius:999px;
 background:var(--graphite);
 color:#fff;
 font-size:.75rem;
 font-weight:700;
 letter-spacing:.04em;
}
.h-body { min-width:0; padding:4px 6px 2px 0; }
.h-body h3 { margin-bottom:.35em; }
.h-body h3 a { color:var(--ink); }
.h-body h3 a:hover { color:var(--honey-deep); }
.clamp-2 {
 display:-webkit-box;
 -webkit-line-clamp:2;
 -webkit-box-orient:vertical;
 overflow:hidden;
}
.meta-line { margin:0 0 .45em; color:var(--muted); font-size:.875rem; }
.h-body p { margin:0 0 .35em; }
.h-foot { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:8px; }
.more-row { display:flex; justify-content:flex-end; margin-top:16px; }
.note-panel {
 max-width:760px;
 background:#fff;
 border:1px solid var(--line);
 border-left:4px solid var(--honey);
 border-radius:var(--radius-card);
 box-shadow:var(--shadow);
 padding:22px 22px 10px;
}
.scene-grid {
 display:grid;
 grid-template-columns:repeat(4,minmax(0,1fr));
 gap:14px;
}
.mini-scene {
 display:flex;
 flex-direction:column;
 min-height:180px;
 padding:14px;
 background:#fff;
 border:1px solid var(--line);
 border-radius:var(--radius-card);
 box-shadow:var(--shadow);
 color:var(--ink);
 position:relative;
 overflow:hidden;
 transition:transform .2s ease,box-shadow .2s ease;
}
.mini-scene:hover { transform:translateY(-2px); box-shadow:var(--shadow-hover); color:var(--ink); text-decoration:none; }
.mini-scene .slot-no { position:static; align-self:flex-start; margin-bottom:12px; }
.mini-scene p { margin:0; color:var(--muted); font-size:.875rem; }
.week {
 list-style:none;
 display:grid;
 grid-template-columns:repeat(7,minmax(0,1fr));
 gap:8px;
 margin:0;
 padding:0;
}
.week li {
 background:#fff;
 border:1px solid var(--line);
 border-radius:var(--radius-card);
 box-shadow:var(--shadow);
 padding:12px 10px;
 min-height:112px;
}
.week span { display:block; color:var(--muted); font-size:.875rem; }
.week strong { display:block; margin:6px 0 2px; font-size:.95rem; }
.week em { display:block; font-style:normal; color:var(--honey-deep); font-size:.875rem; }
.accordion { --bs-accordion-btn-focus-box-shadow:0 0 0 2px var(--terracotta); --bs-accordion-active-bg:#f8efe6; --bs-accordion-active-color:var(--ink); --bs-accordion-btn-color:var(--ink); --bs-accordion-bg:#fff; --bs-accordion-border-color:var(--line); --bs-accordion-border-radius:14px; }
.accordion-item {
 background:#fff;
 border:1px solid var(--line) !important;
 border-radius:var(--radius-card) !important;
 overflow:hidden;
 margin-bottom:10px;
 box-shadow:var(--shadow);
}
.accordion-button {
 background:var(--paper);
 color:var(--ink);
 font-weight:700;
 min-height:44px;
 box-shadow:none;
}
.accordion-button:not(.collapsed) {
 background:#f8efe6;
 color:var(--ink);
 box-shadow:none;
}
.accordion-button:focus { box-shadow:0 0 0 2px var(--terracotta); border-color:transparent; }
.accordion-button::after { filter:none; }
.accordion-body { line-height:1.8; color:var(--ink); }
.return-bar {
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:16px;
 padding:18px 20px;
 background:#fff;
 border:1px solid var(--line);
 border-radius:var(--radius-card);
 box-shadow:var(--shadow);
}
.return-bar h2, .return-bar p { margin:0; }
.site-footer { background:var(--graphite); color:#e6ddd4; padding:56px 0 28px; }
.site-footer a { color:#f3ebe3; }
.site-footer a:hover { color:#fff; }
.site-footer .brand-name { color:#fff; }
.site-footer .brand-sub { color:var(--blush); }
.site-footer .brand:hover { color:#fff; }
.footer-label { margin:0 0 8px; color:var(--blush); font-weight:700; font-size:.875rem; letter-spacing:.08em; }
.footer-links { list-style:none; margin:0; padding:0; }
.footer-links li { margin:0; }
.footer-links a { display:inline-flex; align-items:center; min-height:36px; }
.foot-form label { display:block; color:#f3ebe3; font-weight:700; }
.mail-input {
 width:100%;
 min-height:44px;
 margin:8px 0 10px;
 padding:0 12px;
 border-radius:var(--radius-input);
 border:1px solid var(--line);
 background:#fff;
 color:var(--ink);
}
.mail-input:focus { outline:none; border-color:var(--honey); box-shadow:0 0 0 2px var(--terracotta); }
.legal {
 margin:28px 0 0;
 padding-top:16px;
 border-top:1px solid rgba(255,255,255,.12);
 color:#e6ddd4;
 font-size:.875rem;
}
@media (max-width:991.98px) {
 .section { padding:48px 0; }
 .cat-head-grid { grid-template-columns:1fr; }
 .tool-row, .tool-group { align-items:flex-start; justify-content:flex-start; }
 .scene-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .week { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (max-width:767.98px) {
 .week { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .return-bar { flex-direction:column; align-items:flex-start; }
}
@media (max-width:575.98px) {
 .section { padding:36px 0; }
 .section-tight { padding:20px 0; }
 .brand-bar-inner { align-items:flex-start; }
 .brand-name { font-size:.82rem; }
 .h-card { grid-template-columns:1fr; }
 .h-thumb { min-height:148px; }
 .scene-grid { grid-template-columns:1fr; }
 .count-bar { align-items:flex-start; flex-direction:column; }
 .more-row { justify-content:stretch; }
 .more-row .btn { width:100%; }
}
@media (min-width:1200px) {
 .container { max-width:1140px; }
}

/* 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}
