:root { --member-ink:#17343b; --member-soft:#62787c; --member-teal:#2f7774; --member-deep:#27545b; --member-gold:#b99b55; --member-line:#dbe5e2; }
body { color:var(--member-ink); background:#fff; }
.membership-main { overflow:hidden; background:#fff; }
.membership-shell { width:min(1120px,calc(100% - 48px)); margin:0 auto; }
.membership-kicker { margin:0 0 16px; color:#8a7137; font-family:var(--ui-font); font-size:10px; font-weight:900; letter-spacing:.2em; }
.membership-hero { padding:84px 0 82px; border-bottom:1px solid var(--member-line); }
.membership-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:80px; align-items:center; }
.membership-hero h1 { margin:0; font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif; font-size:clamp(42px,6vw,68px); font-weight:500; line-height:1.34; letter-spacing:-.04em; }
.membership-hero h1 em { color:var(--member-teal); font-style:normal; }
.membership-hero-grid>div>p:last-child { max-width:720px; margin:27px 0 0; color:var(--member-soft); font-size:15px; line-height:2; }
.membership-hero aside { padding:34px; border:1px solid #d4c28e; background:#fffdf7; box-shadow:0 24px 60px rgba(31,67,75,.07); }
.membership-hero aside>span,.membership-grid article>span,.membership-member-entry span { color:#8a7137; font-family:var(--ui-font); font-size:9px; font-weight:900; letter-spacing:.18em; }
.membership-hero aside>strong { display:block; margin:14px 0 3px; font-family:Georgia,serif; font-size:45px; font-weight:400; }
.membership-hero aside>strong small { color:var(--member-soft); font-family:var(--ui-font); font-size:11px; }
.membership-hero aside>p { margin:0 0 23px; color:var(--member-soft); font-size:12px; }
.membership-primary,.membership-grid article>a,.membership-member-entry>a { min-height:48px; display:flex; align-items:center; justify-content:center; padding:0 18px; color:#fff; background:var(--member-deep); font-family:var(--ui-font); font-size:12px; font-weight:800; text-decoration:none; }
.membership-login { display:block; margin-top:14px; color:var(--member-deep); font-family:var(--ui-font); font-size:11px; font-weight:800; text-align:center; text-decoration:underline; text-underline-offset:4px; }
.membership-plans { padding:92px 0 86px; background:#fff; }
.membership-heading { max-width:780px; margin-bottom:46px; }
.membership-heading h2,.membership-member-entry h2 { margin:0; font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif; font-size:clamp(30px,4vw,46px); font-weight:500; line-height:1.45; }
.membership-heading>p:last-child { margin:16px 0 0; color:var(--member-soft); font-size:14px; line-height:1.9; }
.membership-value-section { padding-bottom:72px; border-bottom:1px solid var(--member-line); }
.membership-values { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--member-gold); border-left:1px solid var(--member-line); }
.membership-values article { padding:30px; border-right:1px solid var(--member-line); border-bottom:1px solid var(--member-line); background:#fbfaf5; }
.membership-values article>span { color:#8a7137; font-family:Georgia,serif; font-size:14px; }
.membership-values h3 { margin:14px 0 10px; font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif; font-size:24px; font-weight:500; }
.membership-values p { margin:0; color:var(--member-soft); font-size:13px; line-height:1.9; }
.membership-comparison { padding:72px 0; border-bottom:1px solid var(--member-line); }
.membership-comparison>header { max-width:780px; margin-bottom:30px; }
.membership-comparison h2 { margin:0; font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif; font-size:clamp(28px,3.5vw,40px); font-weight:500; line-height:1.45; }
.membership-table-wrap { overflow-x:auto; border-top:1px solid var(--member-gold); }
.membership-comparison table { width:100%; min-width:600px; border-collapse:collapse; }
.membership-comparison th,.membership-comparison td { padding:16px 20px; border-bottom:1px solid var(--member-line); color:#4f666b; font-family:var(--ui-font); font-size:13px; text-align:center; }
.membership-comparison thead th { color:var(--member-ink); background:#f5f8f7; font-size:11px; font-weight:900; letter-spacing:.08em; }
.membership-comparison th:first-child { width:58%; text-align:left; }
.membership-comparison tbody th { color:var(--member-ink); font-weight:700; }
.membership-comparison tbody td:last-child { color:var(--member-deep); background:#fbfaf5; font-weight:900; }
.membership-comparison>p { margin:18px 0 0; color:#6d8083; font-family:var(--ui-font); font-size:11px; line-height:1.9; }
.membership-plan-heading { margin-top:72px; }
.membership-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--member-gold); border-left:1px solid var(--member-line); }
.membership-grid article { position:relative; min-height:560px; display:flex; flex-direction:column; padding:34px; border-right:1px solid var(--member-line); border-bottom:1px solid var(--member-line); background:#fff; }
.membership-grid article.membership-featured { background:#fbfaf5; }
.membership-grid h3 { margin:14px 0 0; font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif; font-size:28px; font-weight:500; }
.membership-grid strong { display:block; margin:20px 0 5px; font-family:var(--ui-font); font-size:20px; font-weight:800; line-height:1.5; }
.membership-grid strong small { display:block; margin-top:3px; color:var(--member-soft); font-family:var(--ui-font); font-size:10px; font-weight:700; }
.membership-grid article>p { min-height:55px; margin:12px 0 20px; color:var(--member-soft); font-size:12px; line-height:1.85; }
.membership-grid ul { margin:0 0 28px; padding:20px 0 0; border-top:1px solid var(--member-line); list-style:none; }
.membership-grid li { position:relative; padding:7px 0 7px 18px; color:#4f666b; font-size:12px; }
.membership-grid li::before { content:""; position:absolute; top:16px; left:0; width:8px; border-top:1px solid var(--member-gold); }
.membership-grid article>a { margin-top:auto; background:var(--member-teal); }
.membership-member-entry { display:grid; grid-template-columns:1fr auto; gap:48px; align-items:center; margin-top:54px; padding:36px 40px; border-top:1px solid var(--member-gold); border-bottom:1px solid var(--member-line); }
.membership-member-entry h2 { margin-top:9px; font-size:27px; }
.membership-member-entry p { margin:8px 0 0; color:var(--member-soft); font-size:12px; }
.membership-member-entry>a { min-width:230px; }
.membership-note { margin:28px 0 0; color:#6d8083; font-family:var(--ui-font); font-size:11px; line-height:1.9; }
@media(max-width:960px){.membership-grid{grid-template-columns:1fr 1fr}.membership-grid article:last-child{grid-column:1/-1;min-height:0}.membership-values{grid-template-columns:1fr}.membership-values article{padding:25px 28px}}
@media(max-width:800px){.membership-hero-grid{grid-template-columns:1fr;gap:42px}.membership-hero aside{max-width:480px}.membership-grid{grid-template-columns:1fr}.membership-grid article:last-child{grid-column:auto}.membership-grid article{min-height:0}.membership-member-entry{grid-template-columns:1fr;gap:25px}.membership-member-entry>a{min-width:0}}
@media(max-width:560px){.membership-shell{width:min(100% - 32px,1120px)}.membership-hero{padding:55px 0}.membership-hero h1{font-size:39px}.membership-hero aside,.membership-grid article{padding:26px 23px}.membership-plans{padding:68px 0}.membership-member-entry{padding:29px 22px}.membership-grid article>p{min-height:0}.membership-value-section{padding-bottom:54px}.membership-comparison{padding:54px 0}.membership-plan-heading{margin-top:54px}.membership-comparison th,.membership-comparison td{padding:14px 16px}}
