:root { --ink:#18141c; --muted:#625e67; --paper:#f7f7f4; --purple:#59406a; --purple-dark:#302b33; --lime:#dce99f; --line:rgba(38,24,48,.17); --max:1180px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",system-ui,sans-serif; font-feature-settings:"palt"; -webkit-font-smoothing:antialiased; }
a { color:inherit; } img { max-width:100%; } em { color:var(--purple); font-style:normal; }
.home-site { overflow:hidden; } .wrap { width:min(calc(100% - 48px),1240px); margin-inline:auto; }
.brand { display:inline-flex; align-items:center; gap:11px; color:var(--purple); text-decoration:none; white-space:nowrap; }
.brand svg { width:38px; height:38px; flex:none; }.brand span { display:flex; flex-direction:column; gap:3px; line-height:1.05; }.brand strong { font-size:14px; letter-spacing:.05em; }.brand small { color:#84758e; font-size:7px; letter-spacing:.09em; }
.site-header { height:84px; position:absolute; inset:0 0 auto; z-index:4; display:flex; align-items:center; justify-content:space-between; }.site-nav { display:flex; gap:29px; }.site-nav a { color:#5d5660; text-decoration:none; font-size:12px; font-weight:700; }.site-nav a:hover { color:var(--purple); }
.button { min-height:54px; padding:0 22px 0 24px; border:1px solid var(--purple); border-radius:10px; display:inline-flex; align-items:center; justify-content:space-between; gap:24px; background:var(--purple); color:#fff; text-decoration:none; font-size:15px; font-weight:750; transition:background .2s,transform .2s; }.button:hover { background:var(--purple-dark); transform:translateY(-1px); }.button span { padding-left:18px; border-left:1px solid rgba(255,255,255,.35); font-size:18px; font-weight:400; }
.hero { min-height:780px; padding-top:84px; position:relative; overflow:hidden; }.hero__image { position:absolute; inset:0; }.hero__image::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(247,247,244,.99) 0%,rgba(247,247,244,.94) 30%,rgba(247,247,244,.32) 52%,rgba(247,247,244,0) 72%); }.hero__image img { width:100%; height:100%; object-fit:cover; object-position:center 44%; }.hero__copy { min-height:696px; padding:58px 0 62px; position:relative; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }.kicker { margin:0 0 18px; color:var(--purple); font-size:12px; font-weight:800; letter-spacing:.055em; }.hero h1 { max-width:730px; margin:0; font-size:clamp(49px,5.05vw,73px); line-height:1.22; letter-spacing:-.055em; }.hero__lead { max-width:585px; margin:28px 0 0; color:var(--muted); font-size:16px; line-height:1.9; }.hero .button { margin-top:32px; }
.subscription { width:min(calc(100% - 48px),var(--max)); margin:auto; padding:116px 0; }.subscription__intro,.price__intro { display:grid; grid-template-columns:.95fr 1.05fr; gap:96px; align-items:start; }.subscription h2,.price h2 { margin:0; font-size:clamp(40px,4.5vw,61px); line-height:1.34; letter-spacing:-.05em; }.subscription__lead,.price__intro>p { margin:0; padding-top:34px; border-top:2px solid var(--purple); color:var(--muted); font-size:15px; line-height:2; }.subscription__lead p { margin:0; }.subscription__lead p+p { margin-top:20px; }.reason-grid { margin-top:64px; display:grid; grid-template-columns:repeat(3,1fr); border-block:1px solid var(--line); }.reason-grid article { min-height:194px; padding:28px 31px 30px 0; }.reason-grid article+article { padding-left:31px; border-left:1px solid var(--line); }.reason-grid h3 { margin:0 0 15px; color:var(--purple); font-size:17px; line-height:1.65; }.reason-grid p { margin:0; color:var(--muted); font-size:13px; line-height:1.9; }.subscription__closing { padding-top:29px; display:grid; grid-template-columns:.75fr 1.25fr; gap:55px; }.subscription__closing strong { font-size:20px; line-height:1.65; }.subscription__closing p { margin:0; color:var(--muted); font-size:13px; line-height:1.9; }
.reasons,.price { width:min(calc(100% - 48px),1240px); margin:auto; padding:82px clamp(40px,7vw,92px); display:grid; grid-template-columns:.9fr 1.1fr; gap:86px; background:#ece9ee; }.reasons h2 { margin:0; font-size:clamp(42px,4.9vw,64px); line-height:1.28; letter-spacing:-.055em; }.reasons__heading>p:last-child { margin:27px 0 0; color:var(--muted); font-size:14px; line-height:1.9; }.reasons__list { border-top:2px solid var(--purple); }.reasons__list article { padding:24px 0; display:grid; grid-template-columns:160px 1fr; gap:24px; border-bottom:1px solid var(--line); }.reasons__list h3 { margin:0; color:var(--purple); font-size:15px; }.reasons__list p { margin:0; color:#4f4953; font-size:14px; line-height:1.85; }
.source { width:min(calc(100% - 48px),var(--max)); margin:112px auto; padding:42px 0; display:grid; grid-template-columns:290px 1fr; gap:68px; border-block:1px solid var(--line); }.source h2 { margin:0; font-size:clamp(31px,3.5vw,46px); line-height:1.38; letter-spacing:-.045em; }.source__copy p { max-width:800px; margin:0; color:var(--muted); font-size:13px; line-height:1.95; }.source__copy p+p { margin-top:13px; }.source__links { margin-top:19px; display:flex; flex-wrap:wrap; gap:13px 24px; }.source a { font-size:11px; font-weight:800; text-underline-offset:4px; }
.support { width:min(calc(100% - 48px),var(--max)); margin:auto; padding:0 0 120px; display:grid; grid-template-columns:.82fr 1.18fr; gap:90px; }.support__heading h2 { margin:0; font-size:clamp(39px,4.5vw,58px); line-height:1.33; letter-spacing:-.05em; }.support__heading>p:last-child { margin:26px 0 0; color:var(--muted); font-size:14px; line-height:1.9; }.support__items { border-top:2px solid var(--purple); }.support__items article { padding:27px 0; display:grid; grid-template-columns:1fr auto; gap:30px; align-items:end; border-bottom:1px solid var(--line); }.support h3 { margin:0 0 10px; font-size:21px; line-height:1.5; }.support__items p { margin:0; color:var(--muted); font-size:13px; line-height:1.85; }.support__items a { color:var(--purple); font-size:11px; font-weight:800; text-decoration:none; white-space:nowrap; }.support__items a span { margin-left:8px; }
.column-preview { width:min(calc(100% - 48px),var(--max)); margin:0 auto 120px; padding-top:12px; border-top:1px solid var(--line); }.column-preview__heading { display:flex; align-items:end; justify-content:space-between; gap:24px; padding:42px 0 31px; }.column-preview h2 { margin:0; font-size:clamp(32px,3.6vw,47px); letter-spacing:-.05em; }.text-link { color:var(--purple); font-size:12px; font-weight:800; text-underline-offset:5px; white-space:nowrap; }.column-preview article { padding:31px 0; display:grid; grid-template-columns:146px 1fr auto; gap:28px; align-items:center; border-block:1px solid var(--line); }.column-preview time,.column-preview__category { color:var(--muted); font-size:11px; font-weight:700; }.column-preview h3 { margin:0; font-size:22px; line-height:1.55; }.column-preview h3 a { text-decoration:none; }.column-preview p { grid-column:2; margin:0; color:var(--muted); font-size:13px; line-height:1.85; }.column-preview__more { color:var(--purple); font-size:12px; font-weight:800; text-decoration:none; white-space:nowrap; }
.price { margin-top:0; padding-bottom:0; display:block; }.price__intro { grid-template-columns:.98fr 1.02fr; gap:78px; }.price__intro>p { margin-top:38px; padding-top:27px; font-size:14px; line-height:1.95; }.price__offer { margin:60px 0 0; display:grid; grid-template-columns:.85fr 1.15fr; background:rgba(255,255,255,.58); border-block:1px solid rgba(38,24,48,.1); }.price__plan { min-height:206px; padding:31px 42px 29px; display:flex; flex-direction:column; justify-content:center; }.price__plan+.price__plan { border-left:1px solid var(--line); background:rgba(232,237,201,.74); }.price__label { min-height:19px; margin:0 0 11px; color:var(--purple); font-size:11px; font-weight:800; }.price__value { display:flex; align-items:baseline; gap:12px; }.price__value strong { font-size:clamp(56px,5.2vw,74px); line-height:.95; letter-spacing:-.06em; }.price__value small { margin-left:5px; font-size:19px; letter-spacing:0; }.badge { padding:5px 8px; background:var(--lime); color:#2b2d22; font-size:12px; font-weight:800; }.price__value--monthly { gap:10px; }.price__value--monthly>span { color:var(--purple); font-size:15px; font-weight:800; }.price__value--monthly strong { font-size:clamp(47px,4.5vw,64px); }.price__note { margin:12px 0 0; color:var(--muted); font-size:10px; line-height:1.6; }.price__checks { display:grid; grid-template-columns:1fr 1fr; }.price__checks p { margin:0; padding:21px 24px 21px 0; display:grid; grid-template-columns:120px 1fr; gap:17px; border-bottom:1px solid var(--line); }.price__checks p:nth-child(even) { padding-left:24px; border-left:1px solid var(--line); }.price__checks strong { color:var(--purple); font-size:12px; }.price__checks span { color:var(--muted); font-size:12px; line-height:1.75; }
.profile { width:min(calc(100% - 48px),var(--max)); margin:auto; padding:128px 0; display:grid; grid-template-columns:.9fr 1.1fr; gap:88px; align-items:center; }.profile figure { margin:0; background:#eeebf0; }.profile img { width:100%; display:block; aspect-ratio:4/3; object-fit:cover; }.profile h2 { margin:0; font-size:clamp(39px,4.1vw,54px); line-height:1.34; letter-spacing:-.05em; }.profile__lead { margin:25px 0 0; color:var(--muted); font-size:15px; line-height:1.9; }.profile__bio { margin-top:31px; padding-top:25px; display:grid; grid-template-columns:185px 1fr; gap:34px; border-top:1px solid var(--line); }.profile__bio p { margin:0; color:var(--muted); font-size:13px; line-height:1.9; }.profile__bio strong { display:block; color:var(--ink); font-size:20px; }.profile__bio span { display:block; margin-top:5px; font-size:10px; }
.faq { width:min(calc(100% - 48px),var(--max)); margin:auto; padding:10px 0 108px; display:grid; grid-template-columns:.75fr 1.25fr; gap:80px; }.faq h2 { margin:0; font-size:clamp(30px,3.2vw,43px); }.faq__items { border-top:2px solid var(--purple); }.faq details { border-bottom:1px solid var(--line); }.faq summary { padding:23px 44px 23px 0; position:relative; list-style:none; cursor:pointer; font-size:14px; font-weight:700; line-height:1.7; }.faq summary::-webkit-details-marker { display:none; }.faq summary::after { content:"+"; position:absolute; right:4px; top:19px; color:var(--purple); font-size:24px; font-weight:400; }.faq details[open] summary::after { content:"−"; }.faq details p { margin:-2px 0 23px; color:var(--muted); font-size:13px; line-height:1.85; }
.contact { width:min(calc(100% - 48px),1240px); margin:auto; padding:72px; display:grid; grid-template-columns:.85fr 1.15fr; gap:72px; background:#e9e7eb; }.contact h2 { margin:0; font-size:clamp(43px,4.6vw,61px); line-height:1.28; letter-spacing:-.055em; }.contact__copy>p:not(.kicker) { margin:24px 0 0; color:var(--muted); font-size:14px; line-height:1.85; }.contact__diagnosis { margin-top:16px!important; padding-top:16px; border-top:1px solid var(--line); font-size:12px!important; }.contact__copy>a { display:inline-block; margin-top:25px; font-size:12px; font-weight:700; text-underline-offset:5px; }.form { padding:34px; border-radius:16px; background:#fbfbf8; }.form__grid { display:grid; grid-template-columns:1fr 1fr; gap:17px 15px; }.field { display:block; }.field--wide { grid-column:1/-1; }.field span { display:block; margin-bottom:8px; color:#4e4852; font-size:11px; font-weight:750; }.field input,.field textarea { width:100%; border:1px solid #cbc6ce; border-radius:9px; background:#fff; padding:12px 13px; font-size:14px; outline:none; }.field textarea { min-height:122px; resize:vertical; line-height:1.7; }.field input:focus,.field textarea:focus { border-color:var(--purple); box-shadow:0 0 0 3px rgba(91,64,106,.11); }.option { margin-top:17px; padding:15px 0; display:flex; gap:11px; border-block:1px solid var(--line); color:#4e4852; cursor:pointer; }.option input,.consent input { accent-color:var(--purple); }.option strong,.option small { display:block; }.option strong { font-size:12px; line-height:1.6; }.option small { margin-top:3px; color:#77717b; font-size:10px; line-height:1.6; }.consent { margin:14px 0 16px; display:flex; align-items:center; gap:9px; color:#625c66; font-size:11px; }.form button { width:100%; }
.site-footer { width:min(calc(100% - 48px),var(--max)); margin:auto; padding:64px 0 110px; display:grid; grid-template-columns:1.2fr 1fr auto; gap:60px; align-items:start; }.site-footer>div>p:last-child { margin:18px 0 0; color:var(--muted); font-size:12px; }.site-footer>p { margin:0; color:var(--muted); font-size:10px; line-height:1.9; }.site-footer__links { display:flex; flex-direction:column; gap:4px; font-size:10px; }
@media (max-width:980px) { .site-nav{display:none}.hero__image::after{background:linear-gradient(90deg,rgba(247,247,244,.99) 0%,rgba(247,247,244,.92) 40%,rgba(247,247,244,.22) 68%,rgba(247,247,244,0) 86%)}.hero__image img{object-position:62% 44%}.subscription__intro,.price__intro{gap:58px}.reasons,.support{gap:52px}.contact{padding:58px 48px;gap:48px}.profile{gap:58px} }
@media (max-width:760px) { .wrap{width:calc(100% - 32px)}.brand svg{width:34px;height:34px}.brand strong{font-size:12px}.brand small{display:none}.site-header{height:72px}.hero{min-height:0;padding:72px 0 0;display:flex;flex-direction:column}.hero__image{height:410px;position:relative;order:1}.hero__image::after{background:linear-gradient(180deg,var(--paper) 0%,rgba(247,247,244,0) 16%,rgba(247,247,244,0) 83%,var(--paper) 100%)}.hero__image img{object-position:82% center}.hero__copy{width:100%;min-height:0;padding:38px 24px 56px;order:2}.hero h1{font-size:clamp(41px,11.3vw,53px)}.hero__lead{margin-top:24px;font-size:14px}.hero .button{width:100%;margin-top:28px}.subscription{width:calc(100% - 32px);padding:82px 0}.subscription__intro,.price__intro,.reasons,.support,.contact,.profile,.faq{grid-template-columns:1fr;gap:40px}.subscription h2{font-size:40px}.subscription__lead{padding-top:26px}.reason-grid{margin-top:49px;grid-template-columns:1fr}.reason-grid article{min-height:0;padding:24px 0}.reason-grid article+article{padding-left:0;border-top:1px solid var(--line);border-left:0}.subscription__closing{grid-template-columns:1fr;gap:11px}.reasons{width:100%;padding:67px 24px}.reasons h2{font-size:43px}.reasons__list article{grid-template-columns:1fr;gap:8px}.source{width:calc(100% - 32px);margin:84px auto;padding:34px 0;grid-template-columns:1fr;gap:25px}.source__links{flex-direction:column;align-items:flex-start}.support{width:calc(100% - 32px);padding-bottom:86px}.support h2{font-size:41px}.support__items article{grid-template-columns:1fr;gap:17px}.column-preview{width:calc(100% - 32px);margin-bottom:82px}.column-preview__heading{display:block;padding-block:31px}.column-preview__heading .text-link{display:inline-block;margin-top:16px}.column-preview article{display:block;padding:25px 0}.column-preview h3{margin-top:12px;font-size:20px}.column-preview p{margin-top:12px}.column-preview__more{display:inline-block;margin-top:16px}.price{width:100%;padding:67px 24px 0}.price h2{font-size:45px}.price__intro>p{margin-top:0;padding-top:24px}.price__offer{margin:48px -24px 0;grid-template-columns:1fr}.price__plan{min-height:0;padding:30px 24px 28px}.price__plan+.price__plan{border-top:1px solid var(--line);border-left:0}.price__value strong{font-size:58px}.price__value--monthly strong{font-size:clamp(48px,15vw,61px)}.price__checks{margin-inline:-24px;grid-template-columns:1fr}.price__checks p,.price__checks p:nth-child(even){padding:20px 24px;grid-template-columns:1fr;gap:7px;border-left:0}.profile{width:calc(100% - 32px);padding:88px 0;gap:48px}.profile h2{font-size:39px}.profile__bio{grid-template-columns:1fr;gap:17px}.faq{width:calc(100% - 32px);padding:0 0 82px;gap:31px}.contact{width:100%;padding:65px 16px 18px;gap:40px}.contact__copy{padding:0 8px}.contact h2{font-size:43px}.form{padding:25px 18px}.form__grid{grid-template-columns:1fr;gap:15px}.field--wide{grid-column:auto}.site-footer{width:calc(100% - 40px);padding-bottom:90px;grid-template-columns:1fr;gap:30px} }

/* 3プラン共通料金表 */
.price { width:min(calc(100% - 48px),1240px); padding:104px 0 116px; background:var(--paper); }
.home-plans__heading { margin-bottom:52px; display:grid; grid-template-columns:1fr auto; gap:64px; align-items:end; }
.home-plans__initial { min-width:275px; padding:8px 0 7px 32px; border-left:1px solid var(--line); }
.home-plans__initial p { margin:0 0 9px; color:var(--purple); font-size:11px; font-weight:800; letter-spacing:.04em; }
.home-plans__initial strong { display:flex; align-items:baseline; font-size:clamp(52px,5vw,70px); line-height:.9; letter-spacing:-.06em; }
.home-plans__initial strong span { margin-right:13px; color:var(--muted); font-size:13px; letter-spacing:.01em; }
.home-plans__initial strong small { margin-left:5px; font-size:18px; letter-spacing:0; }
.home-plans__scroll-hint { display:none; }
.home-plans__table-wrap { overflow-x:auto; border-top:2px solid var(--purple); border-bottom:1px solid var(--line); -webkit-overflow-scrolling:touch; }
.home-plans__table-wrap:focus-visible { outline:3px solid rgba(89,64,106,.3); outline-offset:5px; }
.home-plans__table-wrap table { width:100%; min-width:820px; border-collapse:separate; border-spacing:0; table-layout:fixed; }
.home-plans__table-wrap caption,.home-plans__sr-only { width:1px; height:1px; margin:-1px; padding:0; position:absolute; top:0; left:0; overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; border:0; }
.home-plans__table-wrap th,.home-plans__table-wrap td { border-right:1px solid var(--line); border-bottom:1px solid var(--line); text-align:left; vertical-align:middle; }
.home-plans__table-wrap tr>*:last-child { border-right:0; }
.home-plans__table-wrap tbody tr:last-child>* { border-bottom:0; }
.home-plans__table-wrap thead th { height:164px; padding:27px 28px 25px; position:relative; background:#eae8eb; }
.home-plans__table-wrap thead th:first-child { width:178px; }
.home-plans__comparison-label { color:var(--muted); font-size:12px; font-weight:700; }
.home-plans__name,.home-plans__price { display:block; }
.home-plans__name { margin-bottom:12px; color:var(--purple); font-size:19px; font-weight:800; letter-spacing:-.025em; }
.home-plans__price { font-size:clamp(28px,3vw,40px); font-weight:800; line-height:1; letter-spacing:-.05em; white-space:nowrap; }
.home-plans__price small { margin:0 4px; color:var(--muted); font-size:11px; font-weight:700; letter-spacing:0; }
.home-plans__recommendation { position:absolute; top:20px; left:28px; color:var(--purple); font-size:10px; font-weight:800; letter-spacing:.06em; }
.home-plans__standard { background:rgba(220,233,159,.42)!important; }
.home-plans__table-wrap tbody th { width:178px; padding:25px 28px; position:sticky; left:0; z-index:2; background:var(--paper); color:var(--purple); font-size:13px; line-height:1.6; }
.home-plans__table-wrap tbody th small { margin-top:5px; display:block; color:var(--muted); font-size:9px; font-weight:500; line-height:1.65; }
.home-plans__table-wrap tbody td { height:106px; padding:24px 18px; text-align:center; }
.home-plans__mark { display:inline-block; min-width:1.2em; text-align:center; font-weight:750; line-height:1; }
.home-plans__mark--yes { color:var(--purple); font-size:28px; }
.home-plans__mark--no { color:#a09ba2; font-size:20px; font-weight:500; }
.home-plans__basics { padding:25px 0 24px; display:grid; grid-template-columns:260px 1fr; gap:38px; border-bottom:1px solid var(--line); }
.home-plans__basics>strong { color:var(--purple); font-size:13px; line-height:1.7; }
.home-plans__basics ul { margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:42px; list-style:none; }
.home-plans__basics li { padding:9px 0 9px 17px; position:relative; border-bottom:1px solid rgba(56,38,72,.1); color:#4f4953; font-size:12px; line-height:1.75; }
.home-plans__basics li::before { content:""; width:5px; height:5px; position:absolute; top:17px; left:0; border-radius:50%; background:var(--purple); }
.home-plans__legend { padding:20px 0; display:flex; flex-wrap:wrap; gap:12px 30px; border-bottom:1px solid var(--line); }
.home-plans__legend>span { display:inline-flex; align-items:center; gap:8px; color:var(--muted); font-size:11px; line-height:1.7; }
.home-plans__legend .home-plans__mark--yes { font-size:19px; }
.home-plans__legend .home-plans__mark--no { font-size:16px; }
.home-plans__notes { margin-top:19px; }
.home-plans__notes p { margin:0; color:var(--muted); font-size:10px; line-height:1.8; }
.home-plans__notes p+p { margin-top:5px; }
.home-plans__button { margin-top:30px; }

@media (max-width:760px) {
  .price { width:100%; padding:79px 0 86px; }
  .home-plans__heading { margin:0 24px 37px; grid-template-columns:1fr; gap:29px; }
  .price .home-plans__heading h2 { font-size:41px; }
  .home-plans__initial { min-width:0; padding:22px 0 0; border-top:1px solid var(--line); border-left:0; }
  .home-plans__initial strong { font-size:57px; }
  .home-plans__scroll-hint { margin:0 24px 12px; display:flex; justify-content:space-between; color:var(--muted); font-size:10px; font-weight:700; }
  .home-plans__table-wrap { margin-left:24px; }
  .home-plans__table-wrap table { min-width:790px; }
  .home-plans__table-wrap thead th { height:148px; padding:23px 21px; }
  .home-plans__recommendation { top:17px; left:21px; }
  .home-plans__table-wrap thead th:first-child { width:126px; position:sticky; left:0; z-index:3; background:#eae8eb; }
  .home-plans__comparison-label { font-size:11px; }
  .home-plans__name { font-size:17px; }
  .home-plans__price { font-size:29px; }
  .home-plans__table-wrap tbody th { width:126px; padding:19px 16px; font-size:12px; }
  .home-plans__table-wrap tbody th small { font-size:8px; }
  .home-plans__table-wrap tbody td { height:100px; padding:21px; }
  .home-plans__basics { margin:0 24px; padding:24px 0; grid-template-columns:1fr; gap:7px; }
  .home-plans__basics ul { grid-template-columns:1fr; }
  .home-plans__basics li { font-size:11px; }
  .home-plans__legend { margin:0 24px; }
  .home-plans__notes { margin:17px 24px 0; }
  .home-plans__button { width:calc(100% - 48px); margin:27px 24px 0; }
}
