/* roulang page: index */
:root{
  --paper:#f5f1eb;
  --paper-deep:#e9e1d8;
  --surface:#fffdfa;
  --ink:#252120;
  --muted:#756c69;
  --line:#d8cec7;
  --wine:#713a50;
  --wine-dark:#4c2535;
  --rose:#a45e6d;
  --dust:#cdaab0;
  --silver:#a59b99;
  --deep:#241b20;
  --deep-soft:#34242d;
  --success:#5f796a;
  --warning:#a76c3f;
  --radius:14px;
  --radius-lg:22px;
  --shadow:0 16px 36px rgba(57,39,42,.08);
  --shadow-soft:0 8px 20px rgba(57,39,42,.06);
  --container:1220px;
  --ease:220ms cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif;
  font-size:16px;line-height:1.78;overflow-x:hidden;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;opacity:.3;z-index:10;
  background-image:radial-gradient(rgba(61,42,44,.17) .55px,transparent .65px);
  background-size:7px 7px;mix-blend-mode:multiply;
}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
img{max-width:100%;display:block}
::selection{background:var(--dust);color:var(--deep)}
:focus-visible{outline:3px solid rgba(113,58,80,.38);outline-offset:3px}
.container{width:min(calc(100% - 48px),var(--container));margin-inline:auto}
.section{padding:108px 0;position:relative}
.eyebrow{
  display:flex;align-items:center;gap:10px;color:var(--wine);font-size:12px;
  font-weight:800;letter-spacing:.13em;line-height:1.2;
}
.eyebrow .num{font-variant-numeric:tabular-nums;color:var(--rose);font-size:13px}
.eyebrow::after{content:"";width:42px;height:1px;background:currentColor;opacity:.55}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:42px}
.section-head h2,.section-title{
  font-size:clamp(30px,4vw,52px);letter-spacing:-.065em;line-height:1.16;margin:13px 0 0;
}
.section-head p{max-width:475px;color:var(--muted);font-size:15px;margin:0 0 3px}
.btn{
  border:1px solid transparent;min-height:48px;padding:11px 20px;display:inline-flex;align-items:center;justify-content:center;
  gap:9px;border-radius:9px;font-weight:750;font-size:14px;letter-spacing:.02em;transition:var(--ease);
}
.btn svg{width:16px;height:16px;transition:transform var(--ease)}
.btn-primary{background:var(--wine);color:#fff}
.btn-primary:hover{background:var(--wine-dark);transform:translateY(-2px);box-shadow:0 10px 20px rgba(76,37,53,.2)}
.btn-primary:hover svg{transform:translateX(3px)}
.btn-quiet{border-color:var(--line);background:rgba(255,253,250,.55);color:var(--ink)}
.btn-quiet:hover{border-color:var(--wine);background:var(--surface);color:var(--wine);transform:translateY(-2px)}
.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--wine);font-weight:800;font-size:14px}
.text-link::after{content:"→";transition:transform var(--ease)}
.text-link:hover::after{transform:translateX(4px)}
.tag{
  display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border:1px solid var(--line);
  border-radius:99px;color:var(--muted);font-size:12px;line-height:1.2;background:rgba(255,253,250,.55)
}

/* Header */
.site-header{
  position:sticky;top:0;z-index:100;background:rgba(245,241,235,.88);
  backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:var(--ease)
}
.site-header.scrolled{border-color:var(--line);box-shadow:0 6px 22px rgba(49,30,35,.045)}
.nav-wrap{height:78px;display:flex;align-items:center;justify-content:space-between;gap:25px}
.brand{display:inline-flex;align-items:center;gap:11px;flex-shrink:0;font-weight:900;letter-spacing:-.07em;font-size:21px}
.brand-mark{
  width:27px;height:27px;border-radius:50%;background:var(--wine);position:relative;display:grid;place-items:center;
}
.brand-mark::before,.brand-mark::after{content:"";position:absolute;border:1px solid rgba(255,255,255,.76);border-radius:50%}
.brand-mark::before{width:13px;height:13px}.brand-mark::after{width:5px;height:5px;background:#fff}
.main-nav{display:flex;align-items:center;gap:31px;margin-left:auto}
.main-nav a{font-size:14px;font-weight:700;color:var(--muted);position:relative;padding:27px 0}
.main-nav a::after{content:"";position:absolute;left:0;bottom:19px;width:0;height:2px;background:var(--wine);transition:width var(--ease)}
.main-nav a:hover,.main-nav a.active{color:var(--ink)}
.main-nav a:hover::after,.main-nav a.active::after{width:100%}
.location{
  display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--surface);
  color:var(--wine);border-radius:99px;padding:7px 12px 7px 10px;font-size:12px;font-weight:800;white-space:nowrap
}
.location svg{width:15px;height:15px}
.menu-toggle{display:none;border:0;background:transparent;padding:9px;color:var(--ink)}
.menu-toggle span{display:block;width:22px;height:2px;background:currentColor;margin:5px 0;transition:var(--ease)}
.mobile-panel{display:none}

/* Hero */
.hero{padding:42px 0 38px;min-height:670px;display:flex;align-items:center}
.hero-stage{
  width:100%;min-height:570px;border-radius:var(--radius-lg);position:relative;overflow:hidden;color:#fff;
  background:var(--deep);padding:clamp(31px,5vw,72px);display:grid;grid-template-columns:1fr 342px;gap:34px;align-items:end;
}
.hero-stage::before{
  content:"";position:absolute;inset:0;opacity:.78;
  background:
    radial-gradient(circle at 86% 13%,rgba(184,102,123,.52),transparent 23%),
    radial-gradient(circle at 68% 94%,rgba(133,62,95,.37),transparent 31%),
    linear-gradient(126deg,#20191d 5%,#2d2028 58%,#38232e);
}
.hero-stage::after{
  content:"";position:absolute;right:-55px;top:-70px;width:390px;height:390px;border:1px solid rgba(255,255,255,.23);
  border-radius:50%;box-shadow:0 0 0 42px rgba(255,255,255,.035),0 0 0 85px rgba(255,255,255,.025)
}
.hero-copy,.support-card{position:relative;z-index:1}
.hero-copy{align-self:center;padding-top:28px}
.hero .eyebrow{color:#e7c7cc}.hero .eyebrow .num{color:#fff}
.hero h1{font-size:clamp(43px,6.2vw,78px);line-height:1.09;letter-spacing:-.09em;margin:21px 0 23px;max-width:700px}
.hero h1 em{font-style:normal;color:#e1a6b1}
.hero-desc{max-width:650px;color:rgba(255,255,255,.78);font-size:16px;line-height:1.9;margin:0}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:31px}
.hero .btn-quiet{color:#fff;border-color:rgba(255,255,255,.36);background:rgba(255,255,255,.04)}
.hero .btn-quiet:hover{background:#fff;color:var(--wine);border-color:#fff}
.hero-notes{display:flex;gap:24px;flex-wrap:wrap;margin-top:31px}
.hero-note{font-size:12px;color:rgba(255,255,255,.62);display:flex;align-items:center;gap:8px}
.hero-note strong{color:#fff;font-size:14px}
.support-card{
  border:1px solid rgba(255,255,255,.22);background:rgba(31,23,28,.46);border-radius:18px;padding:24px;
  backdrop-filter:blur(8px);align-self:end
}
.support-card small{font-size:11px;color:#dcbec4;font-weight:800;letter-spacing:.12em}
.ring-row{display:flex;align-items:center;gap:18px;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.progress-ring{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#d999a5 0 68%,rgba(255,255,255,.13) 68% 100%);position:relative}
.progress-ring::before{content:"";width:70px;height:70px;border-radius:50%;background:var(--deep-soft);position:absolute}
.progress-ring b{font-size:18px;position:relative;letter-spacing:-.06em}
.ring-meta span{display:block;color:#e5c8ce;font-size:12px}.ring-meta strong{font-size:20px;letter-spacing:-.05em}
.tiers{display:grid;gap:9px;padding-top:19px}
.tier{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#e9d9dc}
.tier b{font-weight:800;color:#fff}.tier i{font-style:normal;color:#e0a4b0}

/* Metrics */
.metrics{padding-top:55px;padding-bottom:70px}
.metric-board{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr}
.metric{padding:25px 26px;border-right:1px solid var(--line);min-height:132px}
.metric:last-child{border-right:0}.metric:first-child{padding-left:0}
.metric-kicker{font-size:12px;color:var(--muted);display:block;margin-bottom:11px}
.metric strong{font-size:clamp(28px,3vw,42px);letter-spacing:-.08em;line-height:1;display:block;color:var(--wine)}
.metric p{font-size:13px;color:var(--muted);margin:9px 0 0;line-height:1.55}

/* Benefits */
.benefits{background:var(--paper-deep)}
.benefit-grid{display:grid;grid-template-columns:1.15fr .85fr .85fr;gap:18px}
.benefit-card{background:var(--surface);border:1px solid rgba(111,84,84,.1);border-radius:var(--radius);padding:29px;min-height:250px;transition:var(--ease);position:relative;overflow:hidden}
.benefit-card:first-child{background:var(--wine);color:#fff}
.benefit-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:rgba(113,58,80,.35)}
.benefit-icon{width:39px;height:39px;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;color:var(--wine);margin-bottom:44px}
.benefit-card:first-child .benefit-icon{color:#fff;border-color:rgba(255,255,255,.33)}
.benefit-icon svg{width:20px;height:20px}
.benefit-card h3{font-size:21px;letter-spacing:-.06em;margin:0 0 10px;line-height:1.25}
.benefit-card p{font-size:14px;color:var(--muted);margin:0;line-height:1.75}
.benefit-card:first-child p{color:rgba(255,255,255,.77)}
.benefit-index{position:absolute;right:21px;top:20px;font-weight:900;color:rgba(113,58,80,.17);font-size:42px;line-height:1}
.benefit-card:first-child .benefit-index{color:rgba(255,255,255,.2)}

/* Time */
.time-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:56px;align-items:start}
.time-aside{position:sticky;top:110px}
.time-aside p{color:var(--muted);max-width:355px;font-size:15px}
.time-list{border-top:1px solid var(--line)}
.time-card{padding:21px 0;display:grid;grid-template-columns:77px 1fr auto;gap:20px;align-items:center;border-bottom:1px solid var(--line);transition:var(--ease)}
.time-card:hover{padding-left:13px;background:rgba(255,253,250,.55)}
.time-time{font-size:13px;color:var(--wine);font-weight:900;letter-spacing:.03em}
.time-card h3{font-size:18px;margin:0 0 3px;letter-spacing:-.04em}.time-card p{font-size:13px;color:var(--muted);margin:0}
.swatches{display:flex;gap:5px}.swatches span{width:17px;height:17px;border-radius:50%;border:1px solid rgba(0,0,0,.07)}

/* Matrix */
.matrix{background:var(--deep);color:#fff}
.matrix .section-head p{color:rgba(255,255,255,.65)}.matrix .eyebrow{color:#dbabb4}.matrix .eyebrow .num{color:#fff}
.matrix-grid{display:grid;grid-template-columns:1.16fr .84fr;gap:20px}
.matrix-feature,.matrix-item{border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);background:rgba(255,255,255,.035);transition:var(--ease)}
.matrix-feature{padding:36px;min-height:330px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(135deg,rgba(163,87,108,.44),rgba(255,255,255,.035))}
.matrix-feature:hover,.matrix-item:hover{transform:translateY(-4px);border-color:rgba(226,169,181,.65)}
.matrix h3{font-size:clamp(24px,3vw,34px);line-height:1.2;letter-spacing:-.065em;margin:15px 0 11px}.matrix p{color:rgba(255,255,255,.7);font-size:14px;max-width:500px;margin:0}
.matrix-feature .tag,.matrix-item .tag{border-color:rgba(255,255,255,.22);color:#f2dce0;background:transparent}
.matrix-side{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.matrix-item{padding:24px;min-height:155px}.matrix-item h4{font-size:18px;margin:27px 0 7px;letter-spacing:-.04em}.matrix-item p{font-size:13px;line-height:1.6}

/* Compare */
.compare-wrap{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.compare-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:34px}
.compare-card.recommended{background:#f1e3e3;border-color:#c99ca5}
.compare-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:25px}.compare-top h3{margin:0;font-size:25px;letter-spacing:-.06em}
.status{font-size:12px;padding:4px 9px;border-radius:99px;background:#e9e4de;color:var(--muted);font-weight:800}.recommended .status{background:var(--wine);color:#fff}
.compare-list{list-style:none;padding:0;margin:0;display:grid;gap:15px}.compare-list li{padding-left:25px;position:relative;color:var(--muted);font-size:14px}.compare-list li::before{content:"";position:absolute;left:0;top:.69em;width:10px;height:1px;background:var(--silver)}.recommended .compare-list li::before{height:10px;border-radius:50%;top:.45em;background:var(--rose)}
.meter{height:5px;background:#ddd3cc;border-radius:99px;margin-top:29px;overflow:hidden}.meter span{display:block;height:100%;background:var(--silver);border-radius:inherit}.recommended .meter span{background:var(--wine)}

/* News */
.news{background:var(--paper-deep)}
.news-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:55px}
.news-list{border-top:1px solid var(--line)}
.news-item{display:grid;grid-template-columns:59px 1fr auto;gap:18px;align-items:center;padding:19px 0;border-bottom:1px solid var(--line);transition:var(--ease)}
.news-item:hover{padding-left:12px;background:rgba(255,255,255,.37)}
.news-date{font-size:12px;color:var(--wine);font-weight:900;line-height:1.35}.news-date span{display:block;color:var(--muted);font-weight:600}
.news-item h3{font-size:17px;letter-spacing:-.04em;line-height:1.4;margin:0 0 3px}.news-item p{font-size:13px;color:var(--muted);margin:0;line-height:1.55}
.news-arrow{font-size:22px;color:var(--wine);transition:var(--ease)}.news-item:hover .news-arrow{transform:translateX(4px)}
.feature-note{border-left:2px solid var(--wine);padding:5px 0 5px 23px;margin-top:77px}.feature-note .quote{font-size:24px;line-height:1.55;letter-spacing:-.055em;margin:0}.feature-note p{color:var(--muted);font-size:13px;margin:17px 0 0}

/* FAQ */
.faq-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:75px}.faq-intro{position:sticky;top:110px;height:max-content}.faq-intro p{color:var(--muted);font-size:15px}
.faq-list{border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line)}
.faq-question{width:100%;border:0;background:transparent;padding:22px 2px;display:flex;align-items:center;text-align:left;gap:17px;color:var(--ink);font-weight:800;font-size:16px}
.faq-question .q-num{font-size:12px;color:var(--rose);font-variant-numeric:tabular-nums}.faq-question .plus{margin-left:auto;color:var(--wine);font-size:23px;font-weight:400;line-height:1;transition:transform var(--ease)}
.faq-question[aria-expanded="true"] .plus{transform:rotate(45deg)}
.faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows 280ms ease}.faq-answer>div{overflow:hidden}.faq-answer p{font-size:14px;color:var(--muted);margin:0;padding:0 35px 0 39px}.faq-question[aria-expanded="true"]+.faq-answer{grid-template-rows:1fr}.faq-question[aria-expanded="true"]+.faq-answer p{padding-bottom:24px}

/* Form */
.contact{padding-top:0}
.contact-panel{background:var(--deep);color:#fff;border-radius:var(--radius-lg);padding:clamp(28px,5vw,61px);display:grid;grid-template-columns:.84fr 1.16fr;gap:62px;position:relative;overflow:hidden}
.contact-panel::after{content:"";width:350px;height:350px;border:1px solid rgba(255,255,255,.11);border-radius:50%;position:absolute;left:-162px;bottom:-185px}
.contact-copy,.contact-form{position:relative;z-index:1}.contact-copy .eyebrow{color:#e1b4bd}.contact-copy h2{font-size:clamp(31px,4.1vw,51px);letter-spacing:-.07em;line-height:1.17;margin:17px 0}.contact-copy p{color:rgba(255,255,255,.69);font-size:14px;max-width:390px}.contact-details{margin-top:34px;display:grid;gap:12px;font-size:13px;color:#e8cdd2}.contact-details span{display:flex;gap:10px;align-items:center}.contact-details i{font-style:normal;width:18px;color:#fff}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:12px;color:#ecd3d7;font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:rgba(255,255,255,.07);color:#fff;padding:12px 13px;outline:none;transition:var(--ease);min-height:46px}.field textarea{min-height:100px;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:rgba(255,255,255,.48)}.field select{color:rgba(255,255,255,.75)}.field select option{color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{border-color:#e8aeb9;background:rgba(255,255,255,.12);box-shadow:0 0 0 3px rgba(232,174,185,.13)}.form-submit{grid-column:1/-1;display:flex;align-items:center;gap:15px;margin-top:4px}.form-submit .btn{background:#fff;color:var(--wine);min-width:145px}.form-submit .btn:hover{background:#efdce0;transform:translateY(-2px)}.form-tip{font-size:12px;line-height:1.55;color:rgba(255,255,255,.52);margin:0}.form-message{display:none;grid-column:1/-1;padding:10px 13px;border-radius:8px;font-size:13px;background:rgba(95,121,106,.3);border:1px solid rgba(181,219,197,.35);color:#e0f0e5}.form-message.show{display:block}

/* Footer */
.site-footer{padding:30px 0 42px;border-top:1px solid var(--line)}
.footer-top{display:flex;justify-content:space-between;gap:30px;align-items:flex-start;padding:25px 0 35px}.footer-copy{font-size:13px;color:var(--muted);max-width:410px;margin:15px 0 0}.footer-nav{display:flex;gap:22px;flex-wrap:wrap;padding-top:8px}.footer-nav a{font-size:13px;color:var(--muted);font-weight:700}.footer-nav a:hover{color:var(--wine)}.footer-bottom{border-top:1px solid var(--line);padding-top:20px;display:flex;align-items:center;justify-content:space-between;gap:17px;color:var(--muted);font-size:12px}.footer-bottom .location{font-size:11px;background:transparent}

.reveal{opacity:0;transform:translateY(18px);transition:opacity 540ms ease,transform 540ms ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:1024px){
  .hero-stage{grid-template-columns:1fr 300px}.benefit-grid{grid-template-columns:1fr 1fr}.benefit-card:first-child{grid-column:span 2}.matrix-grid{grid-template-columns:1fr}.faq-layout{gap:42px}.news-layout{gap:35px}.contact-panel{gap:35px}
}
@media(max-width:768px){
  .container{width:min(calc(100% - 32px),var(--container))}.section{padding:72px 0}.nav-wrap{height:68px}.main-nav,.nav-wrap>.location{display:none}.menu-toggle{display:block;margin-left:auto}.mobile-panel{display:none;padding:12px 16px 18px;border-top:1px solid var(--line);background:var(--paper)}.mobile-panel.open{display:grid;gap:7px}.mobile-panel a{font-weight:800;padding:10px 4px}.mobile-panel .location{width:max-content;margin-top:5px}.hero{padding-top:19px;min-height:0}.hero-stage{min-height:auto;grid-template-columns:1fr;padding:32px 25px 25px}.hero h1{font-size:clamp(39px,10vw,56px)}.support-card{max-width:none}.section-head{display:block;margin-bottom:30px}.section-head p{margin-top:17px}.metric-board{grid-template-columns:1fr 1fr}.metric{padding:19px;border-bottom:1px solid var(--line)}.metric:nth-child(2){border-right:0}.metric:nth-child(3),.metric:nth-child(4){border-bottom:0}.metric:first-child{padding-left:19px}.benefit-grid{grid-template-columns:1fr}.benefit-card:first-child{grid-column:auto}.time-grid,.news-layout,.faq-layout,.contact-panel{grid-template-columns:1fr;gap:32px}.time-aside,.faq-intro{position:static}.matrix-side{grid-template-columns:1fr 1fr}.compare-wrap{grid-template-columns:1fr}.news-layout .feature-note{margin-top:5px}.contact-form{gap:13px}.footer-top,.footer-bottom{display:block}.footer-nav{margin-top:22px}.footer-bottom>*+*{margin-top:12px}
}
@media(max-width:520px){
  .hero-stage{border-radius:16px}.hero-actions{display:grid;grid-template-columns:1fr}.hero-actions .btn{width:100%}.hero-notes{gap:12px 17px}.support-card{padding:19px}.metric-board{margin-inline:-1px}.metric{padding:16px}.metric strong{font-size:29px}.time-card{grid-template-columns:58px 1fr;gap:11px}.time-card .swatches{grid-column:2}.matrix-feature{padding:26px;min-height:290px}.matrix-side{grid-template-columns:1fr}.matrix-item{min-height:0}.compare-card{padding:25px}.news-item{grid-template-columns:46px 1fr 18px;gap:10px}.news-item h3{font-size:15px}.faq-question{font-size:15px;gap:11px}.faq-answer p{padding-left:28px;padding-right:10px}.contact-panel{padding:30px 22px}.contact-form{grid-template-columns:1fr}.field.full,.form-submit{grid-column:auto}.form-submit{display:grid}.form-submit .btn{width:100%}.form-tip{padding-left:2px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* roulang page: category1 */
:root{
 --paper:#f5f1eb;--paper-deep:#e9e1d8;--surface:#fffdfa;--ink:#252120;
 --muted:#756c69;--line:#d8cec7;--wine:#713a50;--wine-dark:#4c2535;
 --rose:#a45e6d;--dust:#cdaab0;--silver:#a59b99;--deep:#241b20;
 --deep-soft:#34242d;--success:#5f796a;--warning:#a76c3f;
 --radius:14px;--radius-lg:22px;--shadow:0 16px 36px rgba(57,39,42,.08);
 --shadow-soft:0 8px 20px rgba(57,39,42,.06);--container:1220px;
 --ease:220ms cubic-bezier(.2,.7,.2,1)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif;font-size:16px;line-height:1.78;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.27;z-index:10;background-image:radial-gradient(rgba(61,42,44,.17) .55px,transparent .65px);background-size:7px 7px;mix-blend-mode:multiply}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
img{max-width:100%;display:block}
.container{width:min(calc(100% - 48px),var(--container));margin-inline:auto}
.section{padding:106px 0;position:relative}
.eyebrow{display:flex;align-items:center;gap:10px;color:var(--wine);font-size:12px;font-weight:800;letter-spacing:.13em;line-height:1.2}
.eyebrow .num{font-variant-numeric:tabular-nums;color:var(--rose);font-size:13px}
.eyebrow::after{content:"";width:42px;height:1px;background:currentColor;opacity:.55}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:42px}
.section-head h2{font-size:clamp(30px,4vw,52px);letter-spacing:-.065em;line-height:1.16;margin:13px 0 0}
.section-head p{max-width:475px;color:var(--muted);font-size:15px;margin:0 0 3px}
.btn{border:1px solid transparent;min-height:48px;padding:11px 20px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:9px;font-weight:750;font-size:14px;letter-spacing:.02em;transition:var(--ease)}
.btn-primary{background:var(--wine);color:#fff}
.btn-primary:hover{background:var(--wine-dark);transform:translateY(-2px);box-shadow:0 10px 20px rgba(76,37,53,.2)}
.btn-quiet{border-color:var(--line);background:rgba(255,253,250,.55);color:var(--ink)}
.btn-quiet:hover{border-color:var(--wine);background:var(--surface);color:var(--wine);transform:translateY(-2px)}
.btn:focus-visible,.filter:focus-visible,.main-nav a:focus-visible,.footer-nav a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,.menu-toggle:focus-visible{outline:3px solid rgba(164,94,109,.35);outline-offset:3px}
.tag{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border:1px solid var(--line);border-radius:99px;color:var(--muted);font-size:12px;line-height:1.2;background:rgba(255,253,250,.55)}
.site-header{position:sticky;top:0;z-index:100;background:rgba(245,241,235,.9);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:var(--ease)}
.site-header.scrolled{border-color:var(--line);box-shadow:0 6px 22px rgba(49,30,35,.045)}
.nav-wrap{height:78px;display:flex;align-items:center;justify-content:space-between;gap:25px}
.brand{display:inline-flex;align-items:center;gap:11px;flex-shrink:0;font-weight:900;letter-spacing:-.07em;font-size:21px}
.brand-mark{width:27px;height:27px;border-radius:50%;background:var(--wine);position:relative;display:grid;place-items:center}
.brand-mark:before,.brand-mark:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.76);border-radius:50%}
.brand-mark:before{width:13px;height:13px}.brand-mark:after{width:5px;height:5px;background:#fff}
.main-nav{display:flex;align-items:center;gap:31px;margin-left:auto}
.main-nav a{font-size:14px;font-weight:700;color:var(--muted);position:relative;padding:27px 0}
.main-nav a:after{content:"";position:absolute;left:0;bottom:19px;width:0;height:2px;background:var(--wine);transition:width var(--ease)}
.main-nav a:hover,.main-nav a.active{color:var(--ink)}
.main-nav a:hover:after,.main-nav a.active:after{width:100%}
.location{display:inline-flex;align-items:center;gap:7px;color:var(--wine);border:1px solid var(--line);border-radius:99px;padding:7px 13px;font-size:12px;font-weight:750;white-space:nowrap}
.location svg{width:15px;height:15px}
.menu-toggle{display:none;border:0;background:transparent;padding:9px;color:var(--ink)}
.menu-toggle span{display:block;width:22px;height:2px;background:currentColor;margin:5px 0;transition:var(--ease)}
.mobile-panel{display:none}
.page-intro{padding:84px 0 60px;border-bottom:1px solid var(--line)}
.intro-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.65fr);gap:80px;align-items:end}
.page-intro h1{font-size:clamp(43px,6vw,76px);line-height:1.1;letter-spacing:-.09em;margin:18px 0 22px;max-width:800px}
.page-intro h1 em{font-style:normal;color:var(--wine)}
.intro-copy{color:var(--muted);font-size:16px;max-width:520px;margin:0}
.intro-note{border-left:2px solid var(--rose);padding:5px 0 5px 21px;color:var(--muted);font-size:14px}
.intro-note strong{display:block;color:var(--ink);font-size:22px;line-height:1.3;margin-bottom:6px}
.filter-bar{padding:25px 0;border-bottom:1px solid var(--line)}
.filter-layout{display:flex;align-items:center;justify-content:space-between;gap:24px}
.filter-title{font-size:13px;font-weight:800;color:var(--ink)}
.filters{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.filter{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:99px;padding:8px 15px;font-size:13px;transition:var(--ease)}
.filter:hover,.filter.active{background:var(--wine);border-color:var(--wine);color:#fff}
.directory{padding:94px 0}
.directory-grid{display:grid;grid-template-columns:210px minmax(0,1fr);gap:70px}
.index-side{position:relative}
.index-side h2{font-size:18px;margin:0 0 20px}
.index-side p{font-size:13px;color:var(--muted);margin:0 0 25px}
.index-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}
.index-list li{border-bottom:1px solid var(--line)}
.index-list a{display:flex;justify-content:space-between;padding:12px 0;color:var(--muted);font-size:13px;transition:var(--ease)}
.index-list a:hover{color:var(--wine);padding-left:5px}
.index-list span{color:var(--rose)}
.entry-list{border-top:1px solid var(--ink)}
.entry{display:grid;grid-template-columns:72px minmax(0,1fr) 110px;gap:25px;padding:29px 20px;border-bottom:1px solid var(--line);align-items:center;transition:var(--ease)}
.entry:hover{background:var(--surface);box-shadow:var(--shadow-soft);transform:translateX(4px)}
.entry-number{font-size:14px;color:var(--rose);font-weight:800;letter-spacing:.08em}
.entry h3{margin:0 0 7px;font-size:23px;letter-spacing:-.04em;line-height:1.35}
.entry p{margin:0;color:var(--muted);font-size:14px;max-width:650px}
.entry-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.entry-arrow{justify-self:end;color:var(--wine);font-size:24px;transition:var(--ease)}
.entry:hover .entry-arrow{transform:translateX(5px)}
.compare-section{background:var(--paper-deep)}
.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.compare-card{background:var(--surface);border:1px solid var(--line);padding:31px;border-radius:var(--radius-lg);min-height:290px}
.compare-card.highlight{background:var(--deep);color:#fff;border-color:var(--deep)}
.compare-card h3{font-size:24px;margin:15px 0 21px;letter-spacing:-.04em}
.compare-card p{color:var(--muted);font-size:14px;margin:0 0 20px}
.compare-card.highlight p{color:rgba(255,255,255,.68)}
.compare-list{list-style:none;padding:0;margin:0}
.compare-list li{display:flex;gap:12px;border-top:1px solid var(--line);padding:11px 0;font-size:14px}
.compare-card.highlight .compare-list li{border-color:rgba(255,255,255,.17)}
.compare-list li:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--rose);margin-top:9px;flex:none}
.faq-section{padding-top:98px}
.faq-list{max-width:900px;border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-question{width:100%;border:0;background:transparent;padding:21px 0;display:flex;align-items:center;justify-content:space-between;text-align:left;color:var(--ink);font-weight:800;font-size:16px}
.faq-question span:last-child{font-size:25px;color:var(--wine);font-weight:400;transition:var(--ease)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .32s ease}
.faq-answer p{color:var(--muted);font-size:14px;margin:0;padding:0 45px 22px 0}
.faq-item.open .faq-answer{max-height:180px}
.faq-item.open .faq-question span:last-child{transform:rotate(45deg)}
.cta-section{padding:34px 0 108px}
.cta-panel{background:var(--deep);border-radius:var(--radius-lg);padding:48px clamp(25px,5vw,68px);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:35px}
.cta-panel h2{font-size:clamp(28px,4vw,48px);letter-spacing:-.07em;line-height:1.18;margin:14px 0 10px}
.cta-panel p{color:rgba(255,255,255,.68);font-size:14px;margin:0;max-width:600px}
.cta-panel .eyebrow{color:#e7c7cc}
.cta-panel .btn-primary{background:#d08b9b;color:var(--deep)}
.cta-panel .btn-primary:hover{background:#e4a8b5}
.site-footer{background:var(--deep);color:#fff;border-top:1px solid rgba(255,255,255,.1);padding:42px 0 25px}
.footer-top{display:flex;justify-content:space-between;gap:40px;padding-bottom:45px}
.footer-copy{color:rgba(255,255,255,.56);font-size:13px;max-width:360px;margin:18px 0 0}
.footer-nav{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}
.footer-nav a{color:rgba(255,255,255,.72);font-size:13px;transition:var(--ease)}
.footer-nav a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.14);padding-top:20px;display:flex;justify-content:space-between;gap:20px;color:rgba(255,255,255,.48);font-size:12px}
.site-footer .location{color:#f0cbd1;border-color:rgba(255,255,255,.2)}
@media(max-width:900px){
 .intro-grid{gap:40px}.directory-grid{grid-template-columns:170px minmax(0,1fr);gap:35px}
 .entry{grid-template-columns:58px minmax(0,1fr) 45px}.entry h3{font-size:20px}
}
@media(max-width:700px){
 .container{width:min(calc(100% - 32px),var(--container))}
 .nav-wrap{height:68px}.main-nav,.nav-wrap>.location{display:none}.menu-toggle{display:block}
 .mobile-panel{position:absolute;top:68px;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--line);padding:12px 16px 20px;box-shadow:var(--shadow);z-index:99}
 .mobile-panel.open{display:block}.mobile-panel a{display:block;padding:13px 0;border-bottom:1px solid var(--line);font-weight:750;color:var(--muted)}
 .mobile-panel a.active{color:var(--wine)}
 .mobile-panel .location{display:inline-flex;margin-top:14px}
 .brand{font-size:18px}.section{padding:72px 0}
 .page-intro{padding:58px 0 43px}.intro-grid{display:block}.page-intro h1{font-size:43px}.intro-note{margin-top:35px}
 .filter-layout{display:block}.filters{justify-content:flex-start;margin-top:17px;flex-wrap:nowrap;overflow:auto;padding-bottom:4px}
 .filter{white-space:nowrap}.directory{padding:65px 0}.directory-grid{display:block}
 .index-side{margin-bottom:40px}.index-list{display:flex;gap:10px;overflow:auto;border:0}.index-list li{border:0;flex:none}.index-list a{border:1px solid var(--line);border-radius:99px;padding:7px 12px}
 .entry{grid-template-columns:42px minmax(0,1fr) 25px;gap:12px;padding:23px 5px}.entry h3{font-size:18px}.entry p{font-size:13px}
 .compare-grid{grid-template-columns:1fr}.compare-card{min-height:0;padding:25px}.section-head{display:block;margin-bottom:28px}.section-head p{margin-top:16px}
 .cta-section{padding:15px 0 72px}.cta-panel{display:block;padding:32px 25px}.cta-panel .btn{margin-top:25px;width:100%}
 .footer-top,.footer-bottom{display:block}.footer-nav{margin-top:28px;gap:15px 22px}.footer-bottom .location{margin-top:16px}
}
@media(max-width:420px){.page-intro h1{font-size:37px}.brand{font-size:16px}.entry-arrow{font-size:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
