:root{
  --bg:#0a0a0b; --panel:#101013; --line:#262629;
  --txt:#f2f2f4; --sub:#9a9aa0; --silver:#d7d9de; --silver-dim:#7e8088;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--txt);font-family:-apple-system,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;line-height:1.85;-webkit-font-smoothing:antialiased;}
.serif{font-family:"Times New Roman",Georgia,"Hiragino Mincho ProN","Yu Mincho",serif;}
.wrap{max-width:1000px;margin:0 auto;padding:0 22px;}
a{color:inherit;}

/* nav */
nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:15px 22px;background:rgba(10,10,11,.72);backdrop-filter:blur(13px);border-bottom:1px solid var(--line);}
.logo{font-size:19px;letter-spacing:.16em;color:var(--silver);text-decoration:none;}
.logo .re{font-style:italic;color:#fff;}
.logo b{color:#fff;font-weight:600}
.nav-links{display:none;gap:26px;}
@media(min-width:860px){.nav-links{display:flex;}}
.nav-links a{font-size:13px;letter-spacing:.08em;color:var(--sub);text-decoration:none;transition:.2s;}
.nav-links a:hover{color:#fff;}
.nav-cta{font-size:12px;letter-spacing:.1em;color:#000;background:var(--silver);padding:8px 16px;border-radius:2px;text-decoration:none;font-weight:600;}

/* buttons */
.btn{display:inline-block;text-decoration:none;font-size:14px;letter-spacing:.08em;padding:14px 32px;border-radius:2px;transition:.2s;}
.btn-pri{background:var(--silver);color:#000;font-weight:600;}
.btn-pri:hover{background:#fff;}
.btn-sec{border:1px solid var(--silver-dim);color:var(--silver);}
.btn-sec:hover{border-color:var(--silver);color:#fff;}

/* page header (sub pages) */
.page-head{padding:140px 0 60px;border-bottom:1px solid var(--line);text-align:center;}
.page-head .eyebrow{font-size:11px;letter-spacing:.34em;color:var(--silver-dim);margin-bottom:16px;}
.page-head h1{font-size:clamp(28px,6vw,46px);font-weight:300;letter-spacing:.06em;}
.page-head p{color:var(--sub);margin-top:16px;font-size:15px;}

section{padding:80px 0;border-top:1px solid var(--line);}
.sec-label{font-size:11px;letter-spacing:.32em;color:var(--silver-dim);margin-bottom:14px;}
.sec-title{font-size:clamp(22px,5vw,33px);font-weight:300;letter-spacing:.05em;line-height:1.45;margin-bottom:44px;}

/* generic grid cards */
.cards{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);}
@media(min-width:760px){.cards.c2{grid-template-columns:repeat(2,1fr);}.cards.c3{grid-template-columns:repeat(3,1fr);}}
.card{background:var(--panel);padding:26px 26px;}
.card b{color:var(--txt);display:block;margin-bottom:8px;font-weight:500;letter-spacing:.04em;}
.card p{font-size:14px;color:var(--sub);}
.card .no{font-size:13px;letter-spacing:.2em;color:var(--silver-dim);margin-bottom:14px;font-family:"Times New Roman",serif;}

/* faq */
.faq-item{border-bottom:1px solid var(--line);padding:22px 0;}
.faq-item .q{font-size:15.5px;font-weight:500;color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.faq-item .q::after{content:"+";color:var(--silver-dim);font-size:20px;font-weight:300;}
.faq-item.open .q::after{content:"−";}
.faq-item .a{font-size:14px;color:var(--sub);max-height:0;overflow:hidden;transition:max-height .3s ease, margin .3s;}
.faq-item.open .a{max-height:300px;margin-top:14px;}

/* voices */
.voice{background:var(--panel);border:1px solid var(--line);padding:26px;}
.voice .stars{color:var(--silver);letter-spacing:.2em;font-size:13px;margin-bottom:12px;}
.voice p{font-size:14px;color:var(--sub);line-height:1.9;}
.voice .who{font-size:12.5px;color:var(--silver-dim);margin-top:16px;letter-spacing:.06em;}

/* price (shared) */
.price-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);}
@media(min-width:760px){.price-grid{grid-template-columns:repeat(3,1fr);}}
.plan{background:var(--panel);padding:34px 24px;text-align:center;position:relative;}
.plan.pop{background:#141418;}
.plan .tag{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);background:var(--silver);color:#000;font-size:10px;letter-spacing:.14em;padding:4px 14px;border-radius:2px;font-weight:600;}
.plan .pname{font-size:12.5px;letter-spacing:.18em;color:var(--silver);margin-bottom:14px;}
.plan .pprice{font-size:30px;font-weight:300;letter-spacing:.02em;}
.plan .pprice small{font-size:13px;color:var(--sub);letter-spacing:.05em;}
.plan ul{list-style:none;margin-top:18px;text-align:left;display:inline-block;}
.plan li{font-size:13px;color:var(--sub);padding:5px 0 5px 18px;position:relative;}
.plan li::before{content:"—";position:absolute;left:0;color:var(--silver-dim);}

.cta-block{text-align:center;margin-top:40px;padding:30px;border:1px solid var(--line);border-radius:3px;background:linear-gradient(180deg,#141416,#0d0d0f);}
.cta-block b{color:#fff;font-size:17px;letter-spacing:.03em;}
.cta-block span{display:block;color:var(--silver-dim);font-size:13px;margin:9px 0 20px;}

footer{padding:46px 0 60px;border-top:1px solid var(--line);color:var(--silver-dim);font-size:12.5px;text-align:center;letter-spacing:.05em;}
footer a{color:var(--silver);text-decoration:none;margin:0 2px;}
footer .fnav{margin-bottom:16px;}

/* hamburger (sub pages) */
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;}
.burger span{display:block;width:24px;height:2px;background:var(--silver);transition:.3s;}
.burger.on span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger.on span:nth-child(2){opacity:0;}
.burger.on span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-menu{position:fixed;top:0;right:0;bottom:0;width:72%;max-width:300px;background:#0d0d0f;border-left:1px solid var(--line);z-index:49;display:flex;flex-direction:column;padding:88px 28px 28px;gap:4px;transform:translateX(100%);transition:transform .3s ease;}
.mobile-menu.on{transform:translateX(0);}
.mobile-menu a{color:var(--sub);text-decoration:none;font-size:16px;letter-spacing:.06em;padding:16px 0;border-bottom:1px solid var(--line);}
.mobile-menu a:last-child{border-bottom:0;}
.mobile-menu .mm-cta{margin-top:18px;background:var(--silver);color:#000;text-align:center;border-radius:2px;font-weight:600;padding:15px 0;border-bottom:0;}
@media(max-width:859px){
  .burger{display:flex;}
  .nav-cta-desk{display:none;}
}
@media(max-width:600px){
  section{padding:60px 0;}
  .page-head{padding:120px 0 48px;}
  .sec-title{margin-bottom:32px;}
  .btn{padding:13px 24px;font-size:13.5px;}
  .plan{padding:28px 20px;}
}
