/* roulang page: index */
:root{
  --bg:#F7F3EE;
  --surface:#FFFFFF;
  --bg-deep:#24352C;
  --primary:#B2673E;
  --primary-deep:#955232;
  --peach:#E4B29B;
  --leaf:#7E9D82;
  --ink:#29241F;
  --muted:#756B61;
  --on-dark:#F1EAE2;
  --line:#E5D9CD;
  --radius-lg:22px;
  --radius-md:15px;
  --radius-sm:9px;
  --shadow:0 6px 24px rgba(41,36,31,.05);
  --shadow-hover:0 16px 38px rgba(41,36,31,.10);
  --space:clamp(72px, 9vw, 130px);
  --font-serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","Georgia",serif;
  --font-sans:system-ui,"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.78;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul,ol,li{margin:0;padding:0;list-style:none;}
button{background:none;border:0;padding:0;cursor:pointer;font-family:inherit;}
.container{
  width:min(1220px, 92%);
  margin-inline:auto;
}
.container-narrow{
  max-width:720px;
}
.serif{font-family:var(--font-serif);}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  letter-spacing:.16em;
  font-weight:600;
  color:var(--primary);
  background:rgba(178,103,62,.09);
  border:1px solid rgba(178,103,62,.16);
  padding:8px 14px;
  border-radius:999px;
  line-height:1.2;
}
.eyebrow .fa-solid{color:var(--primary);font-size:12px;}
.section{padding:var(--space) 0;}
.section-head{
  max-width:760px;
}
.section-head.center{margin-inline:auto;text-align:center;}
.section-head.left{margin-left:0;}
.section-head h2{
  font-family:var(--font-serif);
  font-weight:600;
  font-size:clamp(30px,4vw,44px);
  line-height:1.2;
  letter-spacing:.01em;
  margin:18px 0 16px;
}
.section-head p{
  font-size:17px;
  color:var(--muted);
  max-width:620px;
}
.section-head.center p{margin-inline:auto;}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:.88em 1.6em .85em;
  border-radius:999px;
  font-size:15px;
  font-weight:600;
  border:1px solid transparent;
  line-height:1.2;
  transition:.25s ease;
  background:transparent;
  color:var(--ink);
  text-align:center;
}
.btn-primary{
  background:var(--primary);
  color:#fff;
  box-shadow:0 8px 20px rgba(178,103,62,.18);
}
.btn-primary:hover{
  background:var(--primary-deep);
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(149,82,50,.22);
  color:#fff;
}
.btn-primary:active{transform:translateY(0);background:#7B3F22;}
.btn-ghost{
  background:transparent;
  border-color:rgba(41,36,31,.2);
  color:var(--ink);
}
.btn-ghost:hover{
  border-color:var(--primary);
  color:var(--primary);
  background:#fff;
}
.btn-light{
  background:var(--surface);
  color:var(--primary);
}
.btn-light:hover{
  background:#F5EBE3;
  transform:translateY(-2px);
  color:var(--primary-deep);
}
.btn svg{margin-right:6px;}
.btn:focus-visible, .nav-link:focus-visible, a:focus-visible{
  outline:3px solid rgba(178,103,62,.4);
  outline-offset:3px;
  border-radius:10px;
}
[hidden]{display:none !important;}

/* topbar */
.topbar{
  background:var(--bg-deep);
  color:rgba(241,234,226,.85);
  font-size:13px;
  padding:8px 0;
}
.topbar-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.topbar i{color:var(--peach);margin-right:6px;}

/* header */
.site-header{
  position:sticky;
  top:0;
  z-index:999;
  background:rgba(247,243,238,.94);
  backdrop-filter:blur(14px);
  box-shadow:0 1px 0 rgba(229,217,205,.7);
}
.nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:70px;
  gap:22px;
}
.brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-serif);
  font-size:27px;
  font-weight:700;
  letter-spacing:.05em;
  color:var(--ink);
  white-space:nowrap;
  position:relative;
  text-shadow:0 1px 0 rgba(255,255,255,.6);
}
.brand-mark{
  width:42px;
  height:42px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--primary),#C9905D);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  box-shadow:0 8px 16px rgba(178,103,62,.18);
  position:relative;
}
.brand-mark::after{
  content:"";
  position:absolute;
  inset:6px;
  border:1px solid rgba(255,255,255,.45);
  border-radius:9px;
}
.main-menu{
  display:flex;
  align-items:center;
  gap:34px;
}
.nav-link{
  position:relative;
  font-size:15px;
  font-weight:500;
  padding:8px 0 5px;
  color:var(--ink);
  letter-spacing:.02em;
  transition:.2s;
}
.nav-link:hover{
  color:var(--primary);
}
.nav-link::after{
  content:"";
  position:absolute;
  left:0;bottom:-2px;
  width:0;height:2px;
  background:var(--primary);
  border-radius:2px;
  transition:.3s;
}
.nav-link:hover::after{
  width:100%;
}
.nav-link.active{
  color:var(--primary);
}
.nav-link.active::after{
  width:100%;
}
.nav-actions{
  display:flex;
  align-items:center;
  gap:12px;
}
.nav-loc{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid rgba(178,103,62,.28);
  background:#fff;
  color:var(--primary);
  font-weight:600;
  font-size:14px;
  padding:8px 14px;
  border-radius:999px;
  transition:.2s;
}
.nav-loc i{
  color:var(--primary);
}
.nav-loc:hover{
  border-color:var(--primary);
  background:rgba(178,103,62,.06);
  transform:translateY(-1px);
}
.nav-toggle{
  display:none;
  width:44px;
  height:44px;
  border-radius:12px;
  border:1px solid var(--line);
  font-size:19px;
  align-items:center;
  justify-content:center;
  color:var(--ink);
  background:#fff;
}
.nav-toggle:hover{color:var(--primary);border-color:var(--primary);}
.mobile-loc{display:none;}

/* hero */
.hero{
  position:relative;
  background-size:cover;
  background-position:center;
  min-height:760px;
  display:flex;
  align-items:center;
  isolation:isolate;
  padding:70px 0 90px;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(80deg,rgba(247,243,238,.97) 0%,rgba(247,243,238,.92) 34%,rgba(247,243,238,.45) 62%,rgba(247,243,238,.2) 100%),
    rgba(36,53,44,.18);
}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) 440px;
  align-items:center;
  gap:clamp(36px,5vw,72px);
}
.hero-desc{
  margin:22px 0 26px;
  max-width:640px;
  color:var(--muted);
  font-size:17px;
  line-height:1.85;
}
.hero-desc strong{color:var(--primary);font-weight:600;}
.hero h1{
  font-family:var(--font-serif);
  font-size:clamp(39px,5.4vw,68px);
  line-height:1.12;
  letter-spacing:.004em;
  margin:19px 0 4px;
  font-weight:600;
  max-width:760px;
}
.hero-kicker{
  display:inline-flex;
  flex-wrap:wrap;
  align-items:center;
  gap:9px;
  background:rgba(255,255,255,.7);
  border:1px solid rgba(178,103,62,.2);
  padding:8px 15px;
  border-radius:999px;
  color:var(--primary);
  font-size:13px;
  font-weight:600;
}
.hero-kicker i{color:var(--primary);}
.cta-row{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:9px;
}
.mini-trust{
  display:flex;
  flex-wrap:wrap;
  gap:26px;
  align-items:center;
  margin-top:30px;
  color:var(--muted);
  font-size:14px;
  border-top:1px solid rgba(229,217,205,.82);
  padding-top:22px;
  max-width:640px;
}
.mini-trust div{
  display:flex;
  align-items:center;
  gap:9px;
}
.mini-trust strong{
  color:var(--ink);
  font-family:var(--font-serif);
  font-size:20px;
  font-weight:600;
}
.mini-trust .fa-solid{
  color:var(--leaf);
}

/* pledge card */
.pledge-card{
  position:relative;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(18px);
  border:1px solid rgba(229,217,205,.9);
  box-shadow:0 20px 45px rgba(41,36,31,.11);
  border-radius:26px;
  padding:26px 26px 22px;
}
.pledge-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
}
.pledge-title{
  font-family:var(--font-serif);
  font-weight:600;
  font-size:18px;
}
.pledge-badge{
  background:var(--peach);
  color:#5A3322;
  font-size:12px;
  font-weight:700;
  padding:5px 10px;
  border-radius:999px;
  letter-spacing:.04em;
}
.ring-column{
  display:flex;
  align-items:center;
  gap:20px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:22px;
  padding:20px 18px;
  margin-top:8px;
}
.ring-box{
  position:relative;
  width:124px;
  height:124px;
  flex:0 0 124px;
}
.ring-box svg{
  width:124px;
  height:124px;
  transform:rotate(-90deg);
}
.ring-track,.ring-bar{
  fill:none;
  stroke-width:11;
}
.ring-track{
  stroke:#F0E6DB;
}
.ring-bar{
  stroke:var(--primary);
  stroke-linecap:round;
  stroke-dasharray:326.7;
  stroke-dashoffset:71.9;
}
.ring-center{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  font-family:var(--font-serif);
}
.ring-center b{
  font-size:30px;
  line-height:1;
  color:var(--ink);
}
.ring-center span{
  font-size:12px;
  color:var(--muted);
  margin-top:5px;
}
.ring-meta{
  flex:1;
  display:grid;
  gap:11px;
  color:var(--muted);
  font-size:14px;
}
.ring-meta b{
  font-family:var(--font-serif);
  font-size:19px;
  color:var(--ink);
  display:block;
  line-height:1.15;
}
.ring-meta small{
  color:var(--muted);
  display:block;
}
.crowd-bar{
  height:8px;
  background:#F0E6DB;
  border-radius:99px;
  overflow:hidden;
  margin:19px 0 16px;
}
.crowd-bar i{
  display:block;
  height:100%;
  width:78%;
  background:linear-gradient(90deg,var(--primary),#CF9066);
  border-radius:99px;
}
.pledge-tiers{
  display:grid;
  gap:9px;
  margin-top:10px;
}
.pledge-mini{
  display:flex;
  align-items:center;
  justify-content:space-between;
  border:1px solid #EEE1D4;
  border-radius:15px;
  background:#FCF9F5;
  padding:12px 13px;
  font-size:14px;
  transition:.2s;
  cursor:default;
}
.pledge-mini:hover{
  border-color:var(--primary);
  background:#FDF3EB;
}
.pledge-mini b{
  font-size:16px;
  font-family:var(--font-serif);
  font-weight:600;
}
.pledge-mini span{
  color:var(--muted);
  text-align:right;
  font-size:13px;
}
.pledge-mini .money{
  display:block;
  color:var(--primary);
  font-size:15px;
  font-weight:700;
  font-family:var(--font-serif);
}
.hero-footnote{
  margin:14px 0 0;
  font-size:12px;
  color:var(--muted);
  line-height:1.5;
}

/* headers general */
.label-box{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:var(--primary);
  letter-spacing:.1em;
  font-size:13px;
  font-weight:600;
  margin-bottom:8px;
}

/* pain */
.pain{
  background:var(--surface);
  border-top:1px solid var(--line);
}
.pain-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 1.1fr;
  gap:70px;
  align-items:center;
}
.pain-aside{
  position:relative;
}
.pain-aside img{
  width:100%;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
  aspect-ratio:4/3;
  object-fit:cover;
}
.pain-aside::after{
  content:"";
  position:absolute;
  right:-18px;
  bottom:-18px;
  width:180px;
  height:180px;
  border-radius:24px;
  border:1px solid var(--peach);
  z-index:-1;
}
.pain-list{
  margin-top:32px;
  border-top:1px solid var(--line);
}
.pain-item{
  display:flex;
  align-items:flex-start;
  gap:13px;
  border-bottom:1px solid var(--line);
  padding:15px 0;
  font-size:16px;
  line-height:1.6;
}
.pain-item i{
  margin-top:6px;
  color:var(--primary);
  font-size:14px;
}
.pain-item strong{
  color:var(--ink);
}
.pain-item span{
  display:block;
  color:var(--muted);
  font-size:14px;
}

/* solution */
.solution{
  position:relative;
  overflow:hidden;
}
.solution .aside-word{
  max-width:340px;
  margin-left:auto;
  text-align:right;
  color:var(--muted);
  font-size:13px;
  letter-spacing:.06em;
  border-top:1px solid var(--line);
  padding-top:12px;
}
.solution-layout{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:64px;
  align-items:start;
}
.solution-intro h3{
  font-family:var(--font-serif);
  font-weight:600;
  font-size:clamp(30px,3.8vw,44px);
  line-height:1.2;
  margin:13px 0 20px;
  max-width:360px;
}
.solution-intro p{
  color:var(--muted);
  font-size:17px;
  max-width:420px;
}
.image-compose{
  position:relative;
  min-height:400px;
}
.image-compose .main-photo{
  width:78%;
  margin-left:auto;
  border-radius:24px;
  box-shadow:var(--shadow);
  aspect-ratio:1.15/1;
  object-fit:cover;
}
.image-compose .sub-photo{
  position:absolute;
  bottom:-38px;
  left:0;
  width:55%;
  border-radius:20px;
  border:8px solid var(--bg);
  box-shadow:var(--shadow);
  aspect-ratio:1/1;
  object-fit:cover;
}
.feature-list{
  margin-top:50px;
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:14px;
  grid-column:1/-1;
}
.feature-item{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:18px;
  padding:20px 17px;
  position:relative;
  transition:.25s;
}
.feature-item:hover{
  transform:translateY(-4px);
  border-color:rgba(178,103,62,.45);
  box-shadow:var(--shadow-hover);
}
.feature-item .num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:31px;
  height:31px;
  background:rgba(178,103,62,.1);
  color:var(--primary);
  border-radius:10px;
  font-family:var(--font-serif);
  font-weight:700;
  font-size:14px;
  margin-bottom:12px;
}
.feature-item h4{
  font-family:var(--font-serif);
  font-size:19px;
  margin:0 0 8px;
  font-weight:600;
}
.feature-item p{
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
  margin:0;
}

/* result */
.result{
  background:var(--bg-deep);
  position:relative;
  isolation:isolate;
  color:var(--on-dark);
  overflow:hidden;
}
.result::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(90deg,rgba(36,53,44,.92),rgba(36,53,44,.65)),
    url('/assets/images/backpic/back-2.jpg') center/cover no-repeat;
}
.result-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  flex-wrap:wrap;
}
.result-head .eyebrow{
  background:rgba(228,178,155,.12);
  border-color:rgba(228,178,155,.25);
  color:#EAC7B5;
}
.result-head h2{
  color:var(--on-dark);
}
.result-head p{
  color:rgba(241,234,226,.72);
}
.result-number-card{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:24px;
  margin-top:44px;
}
.result-num{
  border:1px solid rgba(241,234,226,.15);
  background:rgba(255,255,255,.06);
  border-radius:20px;
  padding:24px 19px 20px;
  backdrop-filter:blur(12px);
  transition:.25s;
}
.result-num:hover{
  background:rgba(255,255,255,.11);
  transform:translateY(-4px);
}
.result-num b{
  display:block;
  font-family:var(--font-serif);
  font-size:43px;
  font-weight:600;
  line-height:1.03;
  color:#F0B58E;
}
.result-num b em{
  font-style:normal;
  font-size:19px;
  margin-left:3px;
  color:rgba(241,234,226,.8);
}
.result-num span{
  display:block;
  color:var(--on-dark);
  margin-top:8px;
  font-size:14px;
  line-height:1.45;
}

/* proof */
.proof{
  background:var(--bg);
}
.proof-grid{
  display:grid;
  grid-template-columns:1.2fr .9fr .9fr;
  gap:18px;
  margin-top:46px;
}
.quote-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:18px;
  padding:27px 24px 23px;
  box-shadow:var(--shadow);
  transition:.25s;
}
.quote-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-hover);
}
.quote-card.main{
  padding:30px 28px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.quote-icon{
  display:inline-flex;
  width:43px;
  height:43px;
  border-radius:50%;
  background:rgba(178,103,62,.1);
  color:var(--primary);
  align-items:center;
  justify-content:center;
  margin-bottom:12px;
  font-size:15px;
}
.quote-text{
  font-family:var(--font-serif);
  font-size:19px;
  color:var(--ink);
  line-height:1.75;
  margin:0;
}
.quote-card small{
  display:block;
  font-size:14px;
  color:var(--muted);
  margin-top:18px;
  border-top:1px solid var(--line);
  padding-top:16px;
}
.quote-card .stars{
  color:#D99A5B;
  letter-spacing:3px;
  font-size:14px;
  margin-top:8px;
}

/* journal */
.journal{
  background:var(--surface);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.journal-layout{
  display:grid;
  grid-template-columns:1fr .72fr;
  gap:60px;
  align-items:start;
}
.journal-list{
  border-top:1px solid var(--line);
}
.journal-item{
  border-bottom:1px solid var(--line);
  padding:19px 0;
  display:flex;
  align-items:center;
  gap:18px;
}
.journal-date{
  flex:0 0 58px;
  color:var(--primary);
  font-family:var(--font-serif);
  font-size:15px;
  font-weight:600;
  line-height:1.3;
}
.journal-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  color:var(--ink);
  font-weight:500;
}
.journal-link:hover{
  color:var(--primary);
}
.journal-link i{
  opacity:0;
  transform:translateX(-5px);
  transition:.3s;
  font-size:14px;
}
.journal-link:hover i{
  opacity:1;
  transform:translateX(0);
}
.journal-link span small{
  display:block;
  font-size:13px;
  color:var(--muted);
  font-weight:400;
  margin-top:2px;
}
.radar-card{
  position:sticky;
  top:118px;
  background:
    linear-gradient(145deg,rgba(178,103,62,.06),rgba(255,255,255,.85)),
    linear-gradient(120deg,#FFF9F1,#F7EFE5);
  border:1px solid var(--line);
  border-radius:22px;
  padding:24px 22px;
}
.radar-card h4{
  font-family:var(--font-serif);
  font-weight:600;
  font-size:21px;
  margin:0 0 10px;
}
.radar-card p{
  color:var(--muted);
  font-size:15px;
  margin-bottom:18px;
}
.direction-list{
  display:grid;
  gap:10px;
}
.direction-item{
  display:flex;
  align-items:center;
  gap:11px;
  background:rgba(255,255,255,.75);
  border-radius:14px;
  padding:12px 13px;
  color:var(--ink);
  font-size:14px;
  transition:.2s;
}
.direction-item:hover{
  color:var(--primary);
  border:solid 1px rgba(178,103,62,.26);
}
.direction-item .tag-dot{
  width:12px;height:12px;
  border-radius:4px;
  background:var(--peach);
  flex:0 0 auto;
}
.direction-item .tag-dot.green{background:var(--leaf);}
.direction-item small{
  color:var(--muted);
}
.direction-item i{
  margin-left:auto;
  color:var(--primary);
}

/* citation */
.cta{
  background:var(--bg);
}
.cta-box{
  background:
    linear-gradient(100deg,rgba(36,53,44,.88),rgba(36,53,44,.65)),
    url('/assets/images/backpic/back-5.jpg') center/cover no-repeat;
  border-radius:28px;
  overflow:hidden;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  color:#fff;
  box-shadow:0 20px 44px rgba(41,36,31,.14);
}
.cta-intro{
  padding:56px 52px;
}
.cta-intro h2{
  font-family:var(--font-serif);
  color:#fff;
  font-size:clamp(29px,4vw,44px);
  line-height:1.17;
  margin:16px 0 18px;
}
.cta-intro p{
  color:rgba(241,234,226,.8);
  max-width:400px;
  font-size:16px;
}
.cta-actions{
  display:flex;
  gap:13px;
  flex-wrap:wrap;
  margin-top:28px;
}
.cta-form{
  background:rgba(247,243,238,.96);
  padding:37px 32px;
  margin:18px 18px 18px 0;
  border-radius:22px;
  color:var(--ink);
}
.cta-form h4{
  font-family:var(--font-serif);
  font-size:21px;
  margin-bottom:4px;
}
.cta-form > p{
  font-size:14px;
  color:var(--muted);
  margin:6px 0 24px;
}
.form-field{
  display:block;
  margin-bottom:15px;
}
.form-field label{
  display:block;
  font-size:14px;
  font-weight:600;
  margin-bottom:6px;
}
.form-field input,.form-field textarea{
  width:100%;
  border:1px solid #E2D6C9;
  background:#FDFAF6;
  border-radius:13px;
  padding:11px 15px;
  outline:none;
  font-size:15px;
  color:var(--ink);
  line-height:1.5;
  transition:.25s;
}
.form-field input:focus,.form-field textarea:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(178,103,62,.15);
  background:#fff;
}
.form-field textarea{
  resize:vertical;
  min-height:72px;
}
.form-submit{
  width:100%;
}
.form-tip{
  display:none;
  text-align:center;
  font-size:14px;
  color:var(--leaf);
  font-weight:600;
  margin-top:13px;
}
.form-tip i{
  margin-right:5px;
}

/* faq*/
.faq-block{
  background:var(--surface);
  border-bottom:1px solid var(--line);
}
.faq-grid{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:58px;
  align-items:start;
}
.visit-spot{
  background:
    linear-gradient(150deg,#EADFC8 0%,#F6EEE1 52%,#F4E6D7 100%);
  border:1px solid #E6D8C6;
  border-radius:23px;
  padding:27px 25px;
  position:sticky;
  top:130px;
}
.visit-spot h4{
  font-family:var(--font-serif);
  font-weight:600;
  font-size:23px;
  margin:0 0 6px;
}
.visit-spot p{
  color:var(--muted);
  font-size:15px;
}
.visit-row{
  display:flex;
  align-items:flex-start;
  gap:13px;
  padding:13px 0;
  border-top:1px solid rgba(229,217,205,.8);
  font-size:14px;
}
.visit-row i{
  color:var(--primary);
  width:18px;
  margin-top:3px;
  text-align:center;
}
.visit-row b{
  display:block;
  font-size:15px;
}
.visit-note{
  background:rgba(178,103,62,.07);
  border-radius:13px;
  font-size:13px;
  color:var(--muted);
  padding:12px 14px;
  margin-top:13px;
}
.accordion{
  background:var(--surface);
  list-style:none;
  margin:0;
  border:0;
  border-radius:0;
}
.accordion-item{
  border:1px solid var(--line);
  background:var(--surface);
  border-radius:16px;
  margin-bottom:12px;
  overflow:hidden;
  transition:.25s;
}
.accordion-item.is-active{
  border-color:rgba(178,103,62,.42);
  box-shadow:0 12px 30px rgba(178,103,62,.08);
}
.accordion-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:transparent;
  color:var(--ink);
  font-size:16px;
  font-weight:600;
  padding:17px 21px;
  line-height:1.5;
  border:0;
}
.accordion-title:focus{
  outline:3px solid rgba(178,103,62,.3);
  border-radius:14px;
  z-index:2;
}
.accordion-title::after{
  content:"\f067" !important;
  font-family:"Font Awesome 6 Free" !important;
  font-weight:900;
  color:var(--primary);
  margin-left:12px;
  min-width:16px;
  transition:.3s;
  font-size:14px;
}
.accordion-item.is-active .accordion-title::after{
  content:"\f068" !important;
}
.accordion-content{
  padding:0 21px 19px !important;
  color:var(--muted);
  font-size:15px;
}
.accordion-content p{
  margin:0;
  line-height:1.75;
}

/* footer */
.site-footer{
  background:var(--bg-deep);
  color:rgba(241,234,226,.72);
  font-size:14px;
}
.footer-top{
  display:grid;
  grid-template-columns:1.35fr .8fr .8fr 1fr;
  gap:43px;
  padding:64px 0 50px;
}
.footer-brand h3{
  font-family:var(--font-serif);
  color:var(--on-dark);
  font-size:28px;
  margin:0 0 13px;
  font-weight:600;
}
.footer-brand h3 span{
  color:#E4B29B;
}
.footer-brand p{
  max-width:290px;
  color:rgba(241,234,226,.7);
  line-height:1.8;
}
.footer-tag{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  margin-top:18px;
}
.footer-tag span{
  border:1px solid rgba(241,234,226,.22);
  color:rgba(241,234,226,.8);
  font-size:12px;
  padding:3px 11px;
  border-radius:999px;
}
.footer-title{
  font-size:15px;
  font-weight:600;
  color:var(--on-dark);
  margin-bottom:15px;
  border-bottom:1px solid rgba(241,234,226,.13);
  padding-bottom:9px;
}
.footer-menu li{
  margin-bottom:8px;
}
.footer-menu a{
  color:rgba(241,234,226,.72);
  transition:.2s;
}
.footer-menu a:hover{
  color:#E4B29B;
  padding-left:3px;
}
.footer-contact li{
  display:flex;
  gap:10px;
  margin-bottom:12px;
  font-size:14px;
}
.footer-contact i{
  color:#E4B29B;
  width:15px;
  text-align:center;
  margin-top:3px;
}
.footer-bottom{
  border-top:1px solid rgba(241,234,226,.13);
  padding:19px 0;
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  color:rgba(241,234,226,.48);
  font-size:13px;
}
.footer-bottom a{
  color:rgba(241,234,226,.65);
}
.footer-bottom a:hover{
  color:#fff;
}
.footer-tech{
  color:rgba(241,234,226,.34);
}

/* reveal */
.reveal{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .8s ease,transform .8s cubic-bezier(.21,.65,.31,.99);
}
.reveal.in{
  opacity:1;
  transform:none;
}

/* responsive */
@media screen and (max-width:1024px){
  .hero-grid{
    grid-template-columns:minmax(0,1fr) 405px;
  }
  .feature-list{
    grid-template-columns:repeat(2,1fr);
  }
  .proof-grid{
    grid-template-columns:1fr 1fr;
  }
  .proof-grid .quote-card.main{
    grid-column:1/-1;
  }
  .journal-layout{
    grid-template-columns:1fr;
    gap:36px;
  }
  .radar-card{
    position:static;
  }
  .footer-top{
    grid-template-columns:1fr 1fr;
  }
  .solution-layout{
    grid-template-columns:1fr;
  }
  .image-compose{
    min-height:auto;
    margin-top:8px;
  }
}
@media screen and (max-width:768px){
  .topbar-inner{
    justify-content:center;
    text-align:center;
    flex-direction:column;
  }
  .nav-toggle{
    display:inline-flex;
    margin-left:auto;
  }
  .main-menu{
    position:absolute;
    top:calc(100% - 2px);
    left:4%;
    right:4%;
    background:var(--surface);
    flex-direction:column;
    gap:4px;
    padding:18px;
    border:1px solid var(--line);
    border-radius:18px;
    box-shadow:var(--shadow-hover);
    display:none;
    z-index:50;
  }
  .main-menu.open{
    display:flex;
  }
  .nav-link{
    width:100%;
    padding:11px 9px;
    border-radius:11px;
  }
  .nav-link:hover,.nav-link.active{
    background:rgba(178,103,62,.08);
  }
  .nav-link.active::after,.nav-link::after{
    display:none;
  }
  .nav-loc{
    border-radius:12px;
  }
  .nav-actions .nav-loc span{
    display:none;
  }
  .nav-actions .btn-primary{
    width:38px;
    height:38px;
    padding:0;
    border-radius:12px;
    font-size:0;
  }
  .nav-actions .btn-primary::before{
    content:"\f358";
    font-family:"Font Awesome 6 Free";
    font-weight:900;
    font-size:15px;
  }
  .mobile-loc{
    display:flex !important;
  }
  .hero{
    min-height:auto;
  }
  .hero-grid{
    grid-template-columns:1fr;
  }
  .hero::before{
    background:linear-gradient(180deg,rgba(247,243,238,.96) 0%,rgba(247,243,238,.85) 50%,rgba(247,243,238,.96));
  }
  .pledge-card{
    max-width:600px;
  }
  .pain-grid{
    grid-template-columns:1fr;
    gap:60px;
  }
  .section-head h2{
    font-size:33px;
  }
  .cta-box{
    grid-template-columns:1fr;
  }
  .cta-form{
    margin:0;
    border-radius:0 0 28px 28px;
  }
  .cta-intro{
    padding:45px 28px 40px;
  }
  .faq-grid{
    grid-template-columns:1fr;
    gap:50px;
  }
  .visit-spot{
    position:static;
  }
  .footer-top{
    grid-template-columns:1fr;
  }
}
@media screen and (max-width:640px){
  .feature-list{
    grid-template-columns:1fr;
  }
  .proof-grid{
    grid-template-columns:1fr;
  }
  .proof-grid .quote-card.main{
    grid-column:auto;
  }
  .result-number-card{
    grid-template-columns:1fr 1fr;
  }
  .journal-item{
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
  }
  .journal-date{
    flex-basis:auto;
  }
  .footer-bottom{
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  .hero h1{
    font-size:39px;
  }
  .mini-trust{
    gap:15px;
  }
  .ring-column{
    flex-wrap:wrap;
  }
  .ring-meta{
    min-width:150px;
  }
}
@media screen and (max-width:520px){
  .topbar{
    font-size:12px;
  }
  .topbar-inner span{
    display:inline-block;
    line-height:1.4;
  }
  .brand{
    font-size:24px;
  }
  .cta-intro{
    padding:36px 20px;
  }
  .cta-actions .btn{
    min-width:0;
    width:100%;
  }
  .container{
    width:90%;
  }
  .result-head h2{
    font-size:28px;
  }
}
@media (prefers-reduced-motion:reduce){
  *{
    animation-duration:.01ms !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  .reveal{
    opacity:1;
    transform:none;
  }
}

/* roulang page: category1 */
:root{
 --bg:#F7F3EE;
 --surface:#FFFFFF;
 --bg-deep:#24352C;
 --primary:#B2673E;
 --primary-deep:#955232;
 --peach:#E4B29B;
 --leaf:#7E9D82;
 --ink:#29241F;
 --muted:#756B61;
 --on-dark:#F1EAE2;
 --line:#E5D9CD;
 --radius-lg:24px;
 --radius-md:15px;
 --radius-sm:9px;
 --shadow:0 6px 24px rgba(41,36,31,.05);
 --shadow-hover:0 16px 38px rgba(41,36,31,.10);
 --space:clamp(72px, 9vw, 128px);
 --font-serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","Georgia",serif;
 --font-sans:system-ui,"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",sans-serif;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
 margin:0;
 background:var(--bg);
 color:var(--ink);
 font-family:var(--font-sans);
 font-size:16px;
 line-height:1.78;
 -webkit-font-smoothing:antialiased;
 overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto;}
a{color:inherit;text-decoration:none;}
button{background:none;border:0;padding:0;cursor:pointer;font-family:inherit;}
.container{width:min(1220px,92%);margin-inline:auto;}
.eyebrow{
 display:inline-flex;
 align-items:center;
 gap:10px;
 font-size:13px;
 letter-spacing:.16em;
 font-weight:600;
 color:var(--primary);
 background:rgba(178,103,62,.09);
 border:1px solid rgba(178,103,62,.18);
 padding:8px 14px;
 border-radius:999px;
 line-height:1.2;
}
.eyebrow i{font-size:12px;color:var(--primary);}
.section{padding:var(--space) 0;position:relative;}
.section-head{max-width:760px;margin-bottom:42px;}
.section-head h2{
 font-family:var(--font-serif);
 font-weight:600;
 font-size:clamp(28px,3.6vw,42px);
 line-height:1.22;
 margin:18px 0 14px;
 letter-spacing:.01em;
}
.section-head p{color:var(--muted);font-size:17px;max-width:620px;}
.lead{font-size:17px;color:var(--muted);}
.btn{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:10px;
 min-height:46px;
 padding:.86em 1.55em .84em;
 border-radius:999px;
 font-size:15px;
 font-weight:600;
 border:1px solid transparent;
 line-height:1.2;
 transition:.25s ease;
 text-align:center;
 color:var(--ink);
}
.btn-primary{
 background:var(--primary);
 color:#fff;
 box-shadow:0 8px 20px rgba(178,103,62,.18);
}
.btn-primary:hover{
 background:var(--primary-deep);
 transform:translateY(-2px);
 box-shadow:0 12px 26px rgba(149,82,50,.22);
 color:#fff;
}
.btn-primary:active{transform:translateY(0);background:#7B3F22;}
.btn-ghost{
 background:transparent;
 border-color:rgba(41,36,31,.22);
 color:var(--ink);
}
.btn-ghost:hover{border-color:var(--primary);color:var(--primary);background:#fff;}
.btn-light{
 background:var(--surface);
 color:var(--primary);
}
.btn-light:hover{background:#F5EBE3;color:var(--primary-deep);transform:translateY(-2px);}
.btn:focus-visible,.nav-link:focus-visible,a:focus-visible{
 outline:3px solid rgba(178,103,62,.42);
 outline-offset:3px;
 border-radius:10px;
}
a:focus-visible{outline-offset:4px;}
.site-header{
 position:sticky;
 top:0;
 z-index:999;
 background:rgba(247,243,238,.94);
 backdrop-filter:blur(14px);
 box-shadow:0 1px 0 rgba(229,217,205,.7);
}
.nav-inner{
 display:flex;
 align-items:center;
 justify-content:space-between;
 min-height:70px;
 gap:22px;
}
.brand{
 display:inline-flex;
 align-items:center;
 gap:10px;
 font-family:var(--font-serif);
 font-size:27px;
 font-weight:700;
 letter-spacing:.05em;
 color:var(--ink);
 white-space:nowrap;
}
.brand-mark{
 width:42px;
 height:42px;
 border-radius:14px;
 background:linear-gradient(135deg,var(--primary),#C9905D);
 display:inline-flex;
 align-items:center;
 justify-content:center;
 color:#fff;
 box-shadow:0 8px 16px rgba(178,103,62,.18);
 position:relative;
}
.brand-mark::after{
 content:"";
 position:absolute;
 inset:6px;
 border:1px solid rgba(255,255,255,.45);
 border-radius:9px;
}
.main-menu{display:flex;align-items:center;gap:32px;}
.nav-link{
 position:relative;
 font-size:15px;
 font-weight:500;
 padding:8px 0 5px;
 color:var(--ink);
 letter-spacing:.02em;
 transition:.2s;
}
.nav-link:hover{color:var(--primary);}
.nav-link::after{
 content:"";
 position:absolute;
 left:0;
 bottom:-2px;
 width:0;
 height:2px;
 background:var(--primary);
 border-radius:2px;
 transition:.3s;
}
.nav-link:hover::after,.nav-link.active::after{width:100%;}
.nav-link.active{color:var(--primary);}
.nav-actions{display:flex;align-items:center;gap:12px;}
.nav-loc{
 display:inline-flex;
 align-items:center;
 gap:6px;
 border:1px solid rgba(178,103,62,.28);
 background:#fff;
 color:var(--primary);
 font-weight:600;
 font-size:14px;
 padding:8px 14px;
 border-radius:999px;
 transition:.2s;
}
.nav-loc:hover{border-color:var(--primary);background:rgba(178,103,62,.06);transform:translateY(-1px);}
.nav-toggle{
 display:none;
 width:44px;
 height:44px;
 border-radius:12px;
 border:1px solid var(--line);
 font-size:19px;
 align-items:center;
 justify-content:center;
 color:var(--ink);
 background:#fff;
}
.nav-toggle:hover{color:var(--primary);border-color:var(--primary);}
.mobile-loc{display:none;}

/* Page hero */
.page-hero{
 position:relative;
 background:linear-gradient(to right,rgba(247,243,238,.05),rgba(247,243,238,.05)),
 url("/assets/images/backpic/back-1.jpg") center/cover no-repeat;
 padding:clamp(76px,9vw,128px) 0 52px;
 isolation:isolate;
}
.page-hero::before{
 content:"";
 position:absolute;
 inset:0;
 z-index:-1;
 background:linear-gradient(80deg,rgba(247,243,238,.98) 0%,rgba(247,243,238,.93) 40%,rgba(247,243,238,.55) 72%,rgba(247,243,238,.16) 100%);
}
.crumb{
 display:flex;
 align-items:center;
 flex-wrap:wrap;
 gap:8px;
 font-size:14px;
 color:var(--muted);
 margin-bottom:24px;
}
.crumb a{color:var(--primary);font-weight:600;}
.crumb i{font-size:12px;color:var(--peach);}
.page-hero h1{
 font-family:var(--font-serif);
 font-size:clamp(34px,4.8vw,60px);
 font-weight:600;
 line-height:1.2;
 letter-spacing:.02em;
 max-width:780px;
 margin:20px 0 18px;
}
.hero-lead{
 max-width:650px;
 font-size:17px;
 color:var(--muted);
 margin-bottom:28px;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:42px;}
.hero-trust{
 display:flex;
 flex-wrap:wrap;
 gap:12px 30px;
 border-top:1px solid rgba(178,103,62,.25);
 padding-top:20px;
 max-width:760px;
 font-size:14px;
 color:var(--muted);
}
.hero-trust i{color:var(--leaf);margin-right:5px;font-size:13px;}

/* Category in-page nav */
.cat-nav-wrap{
 position:sticky;
 top:70px;
 z-index:80;
 background:rgba(255,255,255,.92);
 backdrop-filter:blur(12px);
 border-block:1px solid var(--line);
 padding:14px 0;
}
.cat-nav{
 display:flex;
 align-items:center;
 gap:8px;
 flex-wrap:wrap;
}
.cat-nav-title{
 font-size:13px;
 color:var(--muted);
 letter-spacing:.12em;
 margin-right:10px;
 font-weight:600;
}
.cat-tab{
 display:inline-flex;
 align-items:center;
 gap:7px;
 padding:8px 16px;
 font-size:14px;
 font-weight:600;
 color:var(--ink);
 border-radius:999px;
 border:1px solid transparent;
 transition:.2s;
}
.cat-tab i{font-size:13px;color:var(--primary);}
.cat-tab:hover{color:var(--primary);border-color:var(--line);background:var(--bg);}
.cat-tab.cta-tab{margin-left:auto;color:var(--primary);border-color:rgba(178,103,62,.3);}
.cat-tab.cta-tab:hover{background:rgba(178,103,62,.06);}

/* Showcase blocks */
.showcase-cols{display:flex;align-items:center;gap:clamp(28px,5vw,68px);}
.showcase-media{
 position:relative;
 flex:0 0 46%;
 border-radius:var(--radius-lg);
 overflow:hidden;
 box-shadow:var(--shadow);
}
.showcase-media img{
 width:100%;
 aspect-ratio:4/3.4;
 object-fit:cover;
 transition:.45s ease;
}
.showcase-media:hover img{transform:scale(1.03);}
.media-note{
 position:absolute;
 left:18px;
 bottom:18px;
 background:rgba(36,53,44,.85);
 color:var(--on-dark);
 font-size:13px;
 padding:9px 14px;
 border-radius:999px;
 backdrop-filter:blur(6px);
}
.media-note i{color:var(--peach);margin-right:5px;}
.showcase-copy{flex:1;min-width:0;}
.showcase-copy h3{
 font-family:var(--font-serif);
 font-size:clamp(25px,3vw,38px);
 line-height:1.28;
 font-weight:600;
 margin:20px 0 13px;
}
.showcase-copy > p{color:var(--muted);font-size:16.5px;margin-bottom:22px;max-width:64ch;}
.mini-spec{
 display:grid;
 grid-template-columns:repeat(3,1fr);
 gap:1px;
 background:var(--line);
 border:1px solid var(--line);
 border-radius:var(--radius-md);
 overflow:hidden;
 margin-bottom:0;
}
.mini-spec div{
 background:var(--surface);
 padding:13px 14px;
}
.mini-spec span{
 display:block;
 color:var(--muted);
 font-size:12px;
 margin-bottom:2px;
}
.mini-spec strong{
 font-size:14px;
 font-weight:700;
 font-family:var(--font-serif);
}
.wood-copy{
 order:1;
}
.wood-copy + .showcase-media{order:2;margin-left:0;}
.wood-note{
 background:var(--bg);
 border:1px solid var(--line);
 border-radius:var(--radius-md);
 padding:14px 16px;
 margin-top:16px;
 display:flex;
 gap:10px;
 align-items:flex-start;
 font-size:14px;
 color:var(--ink);
}
.wood-note i{color:var(--leaf);margin-top:4px;}

/* Spec table */
.spec-section{
 background:#FBF6F0;
 border-block:1px solid var(--line);
}
.spec-table{
 border-top:1px solid var(--line);
}
.spec-row{
 display:grid;
 grid-template-columns:230px 1fr;
 gap:26px;
 padding:24px 4px;
 border-bottom:1px solid var(--line);
 align-items:baseline;
 transition:.2s;
}
.spec-label{
 font-family:var(--font-serif);
 font-size:20px;
 font-weight:600;
 color:var(--ink);
 display:flex;
 gap:10px;
 align-items:baseline;
}
.spec-label i{color:var(--primary);font-size:15px;}
.spec-label small{
 display:block;
 font-family:var(--font-sans);
 font-size:12px;
 color:var(--muted);
 font-weight:400;
 letter-spacing:.02em;
 margin-top:3px;
}
.spec-desc{color:var(--muted);font-size:15px;max-width:78ch;}
.spec-desc strong{color:var(--ink);font-weight:600;}
.spec-desc .tag{
 display:inline-block;
 font-size:12px;
 border:1px solid var(--line);
 background:#fff;
 border-radius:6px;
 padding:1px 8px;
 margin:3px 5px 0 0;
 color:var(--primary);
 font-weight:600;
}

/* Card row */
.m-card-grid{display:flex;align-items:stretch;gap:24px;flex-wrap:wrap;}
.m-card-grid.grid-2 > .m-card{flex:1 1 calc(50% - 12px);}
.m-card-grid.grid-3 > .m-card{flex:1 1 calc(33.333% - 16px);}
.m-card-grid.grid-2 > .m-card.featured{flex:1 1 46%;}
.m-card{
 background:var(--surface);
 border:1px solid var(--line);
 border-radius:var(--radius-lg);
 overflow:hidden;
 transition:.28s ease;
 box-shadow:var(--shadow);
 display:flex;
 flex-direction:column;
}
.m-card:hover{
 box-shadow:var(--shadow-hover);
 border-color:rgba(178,103,62,.4);
 transform:translateY(-4px);
}
.m-card-media{
 aspect-ratio:4/2.9;
 overflow:hidden;
 position:relative;
 background:var(--bg-deep);
}
.m-card-media img{width:100%;height:100%;object-fit:cover;transition:.4s ease;}
.m-card:hover .m-card-media img{transform:scale(1.04);}
.card-badge{
 position:absolute;
 top:14px;
 left:14px;
 background:rgba(36,53,44,.84);
 color:var(--on-dark);
 font-size:12px;
 letter-spacing:.05em;
 padding:5px 12px;
 border-radius:999px;
 backdrop-filter:blur(6px);
}
.m-card-body{padding:22px 22px 23px;display:flex;flex-direction:column;gap:8px;flex:1;}
.m-card-body h3{font-family:var(--font-serif);font-size:23px;font-weight:600;margin:0;}
.card-tags{display:flex;gap:7px;flex-wrap:wrap;}
.card-tags span{
 background:lighten(#B2673E, 48%);
 background:rgba(178,103,62,.1);
 color:var(--primary);
 font-size:12px;
 font-weight:600;
 padding:3px 10px;
 border-radius:7px;
 letter-spacing:.02em;
}
.m-card-body p{color:var(--muted);font-size:14.5px;margin:4px 0 0;line-height:1.7;}
.card-more{
 margin-top:auto;
 padding-top:12px;
 font-size:14px;
 color:var(--primary);
 font-weight:600;
 display:inline-flex;
 align-items:center;
 gap:7px;
}

/* Visit / steps */
.visit-wrap{
 background:linear-gradient(135deg,#F1E3D4,#F9F4EC);
 border-radius:var(--radius-lg);
 overflow:hidden;
 display:flex;
 gap:0;
 flex-wrap:wrap;
}
.visit-copy{
 flex:1 1 44%;
 padding:clamp(32px,4vw,56px);
 background:url("/assets/images/backpic/back-3.jpg") center/cover;
 position:relative;
 isolation:isolate;
 color:var(--ink);
}
.visit-copy::before{
 content:"";
 inset:0;
 position:absolute;
 z-index:-1;
 background:linear-gradient(to right,rgba(247,243,238,.95),rgba(247,243,238,.86));
}
.visit-copy h2{
 font-family:var(--font-serif);
 font-size:clamp(27px,3.2vw,40px);
 font-weight:600;
 margin:18px 0 14px;
 line-height:1.25;
}
.visit-copy p{color:var(--muted);max-width:48ch;}
.visit-location{
 margin-top:24px;
 border-top:1px solid var(--line);
 padding-top:18px;
 font-size:14px;
 color:var(--ink);
 display:grid;
 gap:7px;
 max-width:50ch;
}
.visit-location i{color:var(--primary);width:22px;text-align:center;}
.step-list{
 flex:1 1 56%;
 padding:clamp(32px,4vw,56px);
 display:grid;
 gap:18px;
}
.step-row{
 display:flex;
 align-items:flex-start;
 gap:18px;
 background:var(--surface);
 border-radius:var(--radius-md);
 padding:18px 20px;
 border:1px solid var(--line);
 box-shadow:var(--shadow);
}
.step-num{
 width:38px;
 height:38px;
 flex:none;
 border-radius:50%;
 background:var(--primary);
 color:#fff;
 display:flex;
 align-items:center;
 justify-content:center;
 font-family:var(--font-serif);
 font-weight:600;
 font-size:15px;
}
.step-copy strong{font-size:16px;display:block;margin-bottom:2px;}
.step-copy span{font-size:14px;color:var(--muted);line-height:1.65;display:block;}
.open-note{
 background:var(--bg-deep);
 color:var(--on-dark);
 border-radius:var(--radius-lg);
 padding:clamp(26px,3vw,40px);
 text-align:center;
 margin-top:34px;
 display:flex;
}
.open-note-inner{max-width:680px;margin-inline:auto;}
.open-note i{color:var(--peach);font-size:23px;display:block;margin-bottom:8px;}
.open-note h3{font-family:var(--font-serif);font-size:23px;font-weight:600;margin:0 0 7px;}
.open-note p{color:rgba(241,234,226,.82);font-size:14.5px;margin:0;}

/* FAQ */
.faq-list{max-width:760px;margin-inline:auto;display:grid;gap:14px;}
details{
 background:var(--surface);
 border:1px solid var(--line);
 border-radius:var(--radius-md);
 overflow:hidden;
 box-shadow:var(--shadow);
}
summary{
 list-style:none;
 display:flex;
 justify-content:space-between;
 align-items:center;
 gap:18px;
 font-size:16.5px;
 font-weight:600;
 padding:20px 24px;
 cursor:pointer;
 position:relative;
 padding-right:64px;
 transition:.2s;
}
summary::-webkit-details-marker{display:none;}
summary .faq-icon{
 position:absolute;
 right:20px;
 width:30px;
 height:30px;
 border-radius:50%;
 border:1px solid rgba(178,103,62,.35);
 display:flex;
 align-items:center;
 justify-content:center;
 color:var(--primary);
 font-size:14px;
 transition:.3s;
 background:rgba(178,103,62,.05);
 flex:none;
}
summary:hover{color:var(--primary);}
details[open] summary .faq-icon{transform:rotate(45deg);background:var(--primary);color:#fff;border-color:var(--primary);}
details[open] summary{border-bottom:1px solid var(--line);}
.faq-body{
 padding:18px 24px 22px;
 color:var(--muted);
 font-size:15px;
 line-height:1.9;
 border-top:0 solid transparent;
 animation:fadeIn .25s ease;
}
.faq-body p{margin:0;}
@keyframes fadeIn{from{opacity:0;transform:translateY(-3px);}to{opacity:1;transform:none;}}

/* Join CTA */
.join-section{
 position:relative;
 color:var(--on-dark);
 overflow:hidden;
 background:var(--bg-deep);
 padding:var(--space) 0;
}
.join-section::before{
 content:"";
 position:absolute;
 inset:0;
 background:url("/assets/images/backpic/back-2.jpg") center/cover no-repeat;
 opacity:.14;
}
.join-grid{
 position:relative;
 display:grid;
 grid-template-columns:1.05fr .95fr;
 gap:clamp(32px,5vw,68px);
 align-items:center;
}
.join-text h2{
 font-family:var(--font-serif);
 font-size:clamp(29px,3.8vw,44px);
 line-height:1.25;
 color:#fff;
 margin:18px 0 15px;
}
.ml-eyebrow{
 color:var(--peach);
 background:rgba(228,178,155,.15);
 border-color:rgba(228,178,155,.3);
}
.join-text p{color:rgba(241,234,226,.82);font-size:15.6px;max-width:52ch;}
.join-card{
 background:#fff;
 color:var(--ink);
 border-radius:var(--radius-lg);
 padding:clamp(24px,3vw,36px);
 box-shadow:0 22px 55px rgba(0,0,0,.16);
}
.join-card .form-item{margin-bottom:15px;}
.join-card label{
 display:block;
 font-size:13px;
 font-weight:600;
 margin-bottom:6px;
 color:var(--ink);
}
.join-card input,.join-card textarea{
 width:100%;
 border:1px solid var(--line);
 background:#FCF9F5;
 border-radius:11px;
 font-family:var(--font-sans);
 font-size:14.5px;
 padding:.86em 1em;
 color:var(--ink);
 transition:.2s;
}
.join-card textarea{min-height:92px;resize:vertical;}
.join-card input:focus,.join-card textarea:focus{
 outline:none;
 border-color:var(--primary);
 box-shadow:0 0 0 3px rgba(178,103,62,.14);
 background:#fff;
}
.form-note{
 font-size:12px;
 color:var(--muted);
 margin-top:9px;
 line-height:1.6;
}
.form-message{
 margin-top:12px;
 display:none;
 font-size:13px;
 background:rgba(126,157,130,.18);
 border:1px solid rgba(126,157,130,.4);
 color:#547254;
 border-radius:8px;
 padding:8px 12px;
}

/* Footer */
.site-footer{
 background:var(--bg-deep);
 color:rgba(241,234,226,.78);
 padding:76px 0 28px;
 margin-top:0;
}
.footer-top{
 display:grid;
 grid-template-columns:1.3fr .9fr .9fr 1.05fr;
 gap:clamp(28px,4vw,52px);
}
.footer-brand h3{
 font-family:var(--font-serif);
 font-size:26px;
 color:#fff;
 margin:0 0 14px;
 letter-spacing:.04em;
}
.footer-brand h3 span{color:var(--peach);}
.footer-brand p{font-size:14px;line-height:1.9;max-width:34ch;margin-bottom:18px;}
.footer-tag{display:flex;flex-wrap:wrap;gap:7px;}
.footer-tag span{
 border:1px solid rgba(241,234,226,.2);
 border-radius:7px;
 font-size:12px;
 padding:3px 10px;
 color:rgba(241,234,226,.82);
}
.footer-title{
 font-size:14px;
 color:var(--peach);
 margin-bottom:14px;
 letter-spacing:.05em;
 font-weight:600;
}
.footer-menu,.footer-contact{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:14px;}
.footer-menu a{transition:.2s;}
.footer-menu a:hover{color:var(--peach);padding-left:3px;}
.footer-contact li{display:flex;gap:10px;align-items:flex-start;line-height:1.6;}
.footer-contact i{color:var(--peach);margin-top:4px;width:18px;text-align:center;}
.footer-bottom{
 margin-top:48px;
 border-top:1px solid rgba(241,234,226,.15);
 padding-top:20px;
 display:flex;
 justify-content:space-between;
 flex-wrap:wrap;
 gap:10px;
 font-size:12px;
 color:rgba(241,234,226,.6);
}
.footer-bottom .footer-tech{color:rgba(241,234,226,.4);}
@media (prefers-reduced-motion:reduce){
 *{animation:none!important;transition:none!important;}
}

/* Reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease;}
.reveal.visible{opacity:1;transform:none;}

/* Responsive */
@media (max-width:1024px){
 .showcase-cols{flex-direction:column;}
 .showcase-media{flex:none;width:100%;}
 .showcase-media img{aspect-ratio:4/3;}
 .showcase-copy{width:100%;}
 .visit-copy,.step-list{flex-basis:100%;}
 .join-grid{grid-template-columns:1fr;}
 .footer-top{grid-template-columns:1fr 1fr;}
 .main-menu{
   position:fixed;
   left:12px;
   right:12px;
   top:72px;
   background:#fff;
   border:1px solid var(--line);
   border-radius:var(--radius-lg);
   box-shadow:var(--shadow-hover);
   flex-direction:column;
   align-items:flex-start;
   padding:20px;
   gap:14px;
   display:flex;
   max-height:0;
   overflow:hidden;
   opacity:0;
   transition:.3s;
   pointer-events:none;
 }
 .main-menu.open{
   max-height:calc(100vh - 100px);
   opacity:1;
   pointer-events:auto;
 }
 .nav-link{width:100%;}
 .nav-link.mobile-loc{
   display:inline-flex;
   align-items:center;
   gap:9px;
   color:var(--primary);
   border-top:1px solid var(--line);
   padding-top:15px;
   margin-top:3px;
 }
 .nav-loc{display:none;}
 .nav-toggle{display:inline-flex;}
 .nav-actions .btn-primary span{display:none;}
 .nav-actions .btn-primary{padding:0;width:46px;height:46px;}
 .cat-nav-wrap{top:70px;}
 .cat-tab.cta-tab{margin-left:0;}
}
@media (max-width:768px){
 .section{padding:64px 0;}
 .container{width:88%;}
 .page-hero{padding-top:60px;}
 .hero-actions .btn{width:100%;}
 .hero-actions{margin-bottom:28px;}
 .mini-spec{grid-template-columns:1fr;}
 .spec-row{grid-template-columns:1fr;gap:8px;}
 .m-card-grid.grid-2 > .m-card,
 .m-card-grid.grid-3 > .m-card,
 .m-card-grid.grid-2 > .m-card.featured{flex:1 1 100%;}
 .footer-top{grid-template-columns:1fr;}
 .page-hero h1{font-size:34px;}
 .cat-nav{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;}
 .cat-nav-title{flex:none;}
 .cat-tab{flex:none;}
 .visit-copy,.step-list{padding:26px 20px;}
 .visit-location{grid-template-columns:1fr;}
 .join-card{padding:22px 20px;}
 .m-card-media{aspect-ratio:4/2.6;}
 .footer-bottom{justify-content:center;text-align:center;}
}
@media (max-width:520px){
 .brand{font-size:23px;}
 .brand-mark{width:38px;height:38px;border-radius:13px;}
 .nav-inner{gap:12px;min-height:64px;}
 .cat-nav-wrap{top:64px;}
 .m-card-body h3{font-size:20px;}
}
