:root{
 --ink:#1F1F1F;
 --soft:#4A4A4A;
 --gray:#7A7A7A;
 --line:#9C9C9C;
 --hair:#D9D9D9;
 --mist:#F6F6F4;
 --paper:#FFFFFF;
 --red:#C8303A;
 --en:'Jost', sans-serif;
 --jp:'Zen Kaku Gothic New', sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--jp);color:var(--ink);background:var(--paper);line-height:2;font-weight:300;letter-spacing:.04em;-webkit-font-smoothing:antialiased}
a{color:inherit}

/* 四隅のトンボ飾り(名刺モチーフ) */
.marks{position:relative}
.marks::before,.marks::after,.marks>.mk-b::before,.marks>.mk-b::after{content:"";position:absolute;width:44px;height:44px;pointer-events:none}
.marks::before{top:28px;left:28px;border-left:1px solid var(--ink);border-top:1px solid var(--ink)}
.marks::after{top:28px;right:28px;border-right:1px solid var(--ink);border-top:1px solid var(--ink)}
.marks>.mk-b::before{bottom:28px;left:28px;border-left:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.marks>.mk-b::after{bottom:28px;right:28px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.cross{position:absolute;width:90px;height:40px;pointer-events:none}
.cross::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid var(--ink)}
.cross::after{content:"";position:absolute;top:0;bottom:0;left:50%;border-left:1px solid var(--ink)}

/* ヘッダー */
header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:22px 5vw;background:rgba(255,255,255,.92);backdrop-filter:blur(6px)}
.logo{font-family:var(--en);font-size:21px;letter-spacing:.06em;font-weight:400;text-decoration:none}
nav{display:flex;gap:34px}
nav a{font-family:var(--en);font-size:12px;letter-spacing:.2em;text-decoration:none;font-weight:400;position:relative;padding-bottom:3px}
nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--ink);transition:width .35s}
nav a:hover::after{width:100%}
.burger{display:none;background:none;border:0;cursor:pointer;z-index:120;padding:6px}
.burger span{display:block;width:22px;height:1px;background:var(--ink);margin:6px 0;transition:all .3s}
@media(max-width:760px){
 nav{display:none}
 .burger{display:block}
 body.nav-open nav{display:flex;position:fixed;inset:0;background:rgba(255,255,255,.98);flex-direction:column;align-items:center;justify-content:center;gap:36px;z-index:110}
 body.nav-open nav a{font-size:15px}
 body.nav-open .burger span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
 body.nav-open .burger span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}
}

/* ヒーロー */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:120px 6vw 90px}
.hero::before,.hero::after{top:92px!important}
.hero .cross.t{top:110px;left:50%;transform:translateX(-50%)}
.hero .cross.b{bottom:40px;left:50%;transform:translateX(-50%)}
.illust{width:min(560px,78vw);height:auto;margin-bottom:34px;clip-path:inset(0 100% 0 0);animation:reveal 2.4s ease-out .3s forwards}
@keyframes reveal{to{clip-path:inset(0 0 0 0)}}
@media(prefers-reduced-motion:reduce){.illust{animation:none;clip-path:none}}
.hero-en{font-family:var(--en);font-size:13px;letter-spacing:.32em;color:var(--gray);margin-bottom:22px}
@media(max-width:600px){.hero-en{font-size:10.5px;letter-spacing:.18em}.hero-lead br{display:none}}
.hero h1{font-weight:400;font-size:clamp(24px,3.6vw,38px);letter-spacing:.14em;line-height:1.9}
.hero-lead{margin-top:26px;font-size:14px;color:var(--soft);max-width:520px}
.hero-cta{margin-top:40px;display:inline-flex;align-items:center;gap:14px;font-family:var(--en);font-size:12px;letter-spacing:.24em;text-decoration:none}
.hero-cta .line{width:40px;height:1px;background:var(--ink);transition:width .35s}
.hero-cta:hover .line{width:64px}

/* セクション共通 */
section{padding:110px 6vw}
.head{max-width:1080px;margin:0 auto 56px;text-align:center}
.eyebrow{font-family:var(--en);font-size:12px;letter-spacing:.34em;color:var(--gray);margin-bottom:12px}
.eyebrow::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--red);margin-right:10px;vertical-align:middle;position:relative;top:-1px}
.title{font-size:clamp(20px,2.6vw,26px);font-weight:400;letter-spacing:.14em}
.wrap{max-width:1080px;margin:0 auto}

/* 4つの事業 */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
@media(max-width:820px){.grid{grid-template-columns:1fr}}
.card{position:relative;padding:52px 44px 48px;border:1px solid var(--hair);background:var(--paper);transition:border-color .35s}
.card:hover{border-color:var(--line)}
.card.wide{grid-column:1/-1}
.card:hover .corner{border-color:var(--red)}
.card .no{font-family:var(--en);font-size:12px;letter-spacing:.24em;color:var(--gray)}
.card .en{font-family:var(--en);font-size:24px;font-weight:300;letter-spacing:.06em;margin:14px 0 2px}
.card h3{font-size:14px;font-weight:500;letter-spacing:.16em;color:var(--soft);margin-bottom:18px}
.card p{font-size:13.5px;color:var(--soft)}
.card ul{list-style:none;margin-top:18px}
.card li{font-size:13px;padding:7px 0;border-bottom:1px dotted var(--hair)}
.more{display:inline-block;margin-top:22px;font-family:var(--en);font-size:11.5px;letter-spacing:.22em;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:2px}
.card .corner{position:absolute;top:-1px;right:-1px;width:22px;height:22px;border-top:1px solid var(--ink);border-right:1px solid var(--ink);transition:border-color .35s}

/* noi */
.noi{background:var(--paper)}
.noi-in{position:relative;max-width:760px;margin:0 auto;text-align:center;padding:72px 8vw}
.noi-in .c{position:absolute;width:34px;height:34px;border-color:var(--ink);border-style:solid;border-width:0}
.noi-in .c1{top:0;left:0;border-top-width:1px;border-left-width:1px}
.noi-in .c2{top:0;right:0;border-top-width:1px;border-right-width:1px}
.noi-in .c3{bottom:0;left:0;border-bottom-width:1px;border-left-width:1px}
.noi-in .c4{bottom:0;right:0;border-bottom-width:1px;border-right-width:1px}
.noi-points{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:34px 0 6px;text-align:left}
@media(max-width:700px){.noi-points{grid-template-columns:1fr}}
.noi-points>div{border-top:1px solid var(--ink);padding-top:16px}
.noi-points .pn{font-family:var(--en);font-size:12px;letter-spacing:.2em;color:var(--gray)}
.noi-points h3{font-size:15px;font-weight:500;letter-spacing:.14em;margin:6px 0 6px}
.noi-points p{font-size:13px}
.noi-word{font-family:var(--en);font-size:clamp(64px,10vw,96px);font-weight:300;letter-spacing:.12em;line-height:1;margin:6px 0 18px}
.noi h2{font-size:clamp(19px,2.4vw,24px);font-weight:400;letter-spacing:.12em;margin:10px 0 18px}
.noi p{font-size:14px;color:var(--soft)}
.btn-line{display:inline-block;margin-top:26px;padding:14px 40px;border:1px solid var(--ink);font-family:var(--en);font-size:12px;letter-spacing:.24em;text-decoration:none;transition:all .3s}
.btn-line:hover{background:var(--ink);color:var(--paper)}

.divider{display:flex;justify-content:center;padding:0}
.divider span{position:relative;width:90px;height:40px}
.divider span::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid var(--ink)}
.divider span::after{content:"";position:absolute;top:0;bottom:0;left:50%;border-left:1px solid var(--ink)}
/* 選ばれる理由 */
.why .three{display:grid;grid-template-columns:repeat(3,1fr);gap:44px}
@media(max-width:900px){.why .three{grid-template-columns:1fr}}
.why .three>div{border-top:1px solid var(--ink);padding-top:22px}
.why .no{font-family:var(--en);font-size:13px;letter-spacing:.2em;color:var(--gray);display:block;margin-bottom:10px}
.why h3{font-size:16px;font-weight:500;letter-spacing:.1em;margin-bottom:12px}
.why p{font-size:13.5px;color:var(--soft)}

/* 実績 */
.track{background:var(--paper)}
.tgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 52px;border-top:1px solid var(--ink)}
@media(max-width:820px){.tgrid{grid-template-columns:1fr}}
.titem{padding:18px 0;border-bottom:1px solid var(--hair)}
.tcat{display:block;font-size:14px;font-weight:500}
.tdesc{display:block;font-size:12.5px;color:var(--gray)}
.tnote{margin-top:22px;font-size:11px;color:var(--gray)}

/* 代表 */
.founder-in{max-width:720px;margin:0 auto;text-align:center}
.founder h2{font-size:clamp(19px,2.4vw,24px);font-weight:400;letter-spacing:.12em;line-height:2;margin-bottom:26px}
.founder p{font-size:14px;color:var(--soft);margin-bottom:14px;text-align:left}
.lead{margin-top:34px;border-top:1px solid var(--hair);padding-top:22px;font-family:var(--en)}
.lead div{display:flex;justify-content:center;gap:20px;padding:4px 0;font-size:13px;letter-spacing:.12em}
.lead .r{color:var(--gray);font-size:11px;letter-spacing:.2em;min-width:160px;text-align:right}
.lead .n{min-width:160px;text-align:left}

/* グループ */
.ggrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:900px){.ggrid{grid-template-columns:1fr}}
.g{position:relative;border:1px solid var(--hair);padding:38px 30px}
.g::after{content:"";position:absolute;top:-1px;right:-1px;width:22px;height:22px;border-top:1px solid var(--ink);border-right:1px solid var(--ink)}
.g .tag{font-family:var(--en);font-size:11px;letter-spacing:.24em;color:var(--gray);margin-bottom:12px}
.g h3{font-size:15px;font-weight:500;letter-spacing:.08em;margin-bottom:10px}
.g p{font-size:13px;color:var(--soft)}

/* CTA */
.cta{text-align:center;padding:130px 6vw}
.cta .cross.t{top:40px;left:50%;transform:translateX(-50%)}
.cta h2{font-size:clamp(20px,2.8vw,28px);font-weight:400;letter-spacing:.14em;margin-bottom:16px}
.cta p{font-size:13.5px;color:var(--soft)}

footer{border-top:1px solid var(--hair);padding:44px 6vw;text-align:center;font-family:var(--en);font-size:11px;letter-spacing:.1em;color:var(--gray)}
footer .flogo{font-size:16px;color:var(--ink);margin-bottom:10px}
footer .flinks{margin:14px 0}
footer .flinks a{font-family:var(--jp);text-decoration:none;margin:0 12px}

/* ---------- 下層ページ共通 ---------- */
.page-hero{padding:170px 6vw 70px;text-align:center}
.page-hero::before,.page-hero::after{top:92px!important}
.page-hero .cross.t{top:110px;left:50%;transform:translateX(-50%)}
.crumb{font-family:var(--en);font-size:11px;letter-spacing:.18em;color:var(--gray);margin-bottom:28px}
.crumb a{text-decoration:none}
.page-hero h1{font-size:clamp(24px,3.4vw,34px);font-weight:400;letter-spacing:.14em;line-height:1.8}
.page-hero .lead-txt{margin:22px auto 0;font-size:14px;color:var(--soft);max-width:600px}
.blocks{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
@media(max-width:820px){.blocks{grid-template-columns:1fr}}
.block{position:relative;border:1px solid var(--hair);padding:42px 38px}
.block::after{content:"";position:absolute;top:-1px;right:-1px;width:22px;height:22px;border-top:1px solid var(--ink);border-right:1px solid var(--ink)}
.block .no{font-family:var(--en);font-size:12px;letter-spacing:.24em;color:var(--gray)}
.block h3{font-size:16px;font-weight:500;letter-spacing:.12em;margin:10px 0 12px}
.block p{font-size:13.5px;color:var(--soft)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
@media(max-width:820px){.steps{grid-template-columns:1fr}}
.steps>div{border-top:1px solid var(--ink);padding-top:18px}
.steps .no{font-family:var(--en);font-size:22px;font-weight:300}
.steps h4{font-size:14.5px;font-weight:500;letter-spacing:.1em;margin:6px 0 8px}
.steps p{font-size:13px;color:var(--soft)}
.fit{max-width:760px;margin:0 auto;list-style:none;border-top:1px solid var(--ink)}
.fit li{padding:18px 4px;border-bottom:1px solid var(--hair);font-size:14px}
.fit li::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--red);margin-right:14px;vertical-align:middle;position:relative;top:-2px}
.table{width:100%;max-width:820px;margin:0 auto;border-collapse:collapse;border-top:1px solid var(--ink)}
.table th,.table td{text-align:left;padding:18px 8px;border-bottom:1px solid var(--hair);font-size:13.5px;vertical-align:top}
.table th{width:30%;font-weight:500;letter-spacing:.08em}
@media(max-width:600px){.table th,.table td{display:block;width:100%;padding:10px 4px}.table th{border-bottom:0;padding-top:16px}}
.prose{max-width:760px;margin:0 auto}
.prose h2{font-size:17px;font-weight:500;letter-spacing:.1em;margin:40px 0 12px}
.prose p,.prose li{font-size:14px;color:var(--soft)}
.prose ul{padding-left:1.2em}

/* ---------- 会社概要・お知らせ・お問い合わせ・プライバシー(追記) ---------- */
.table td a{text-decoration:none;border-bottom:1px solid var(--line)}
.table td ul{list-style:none}
.table td li{padding:2px 0}
.founder .pname{font-family:var(--en);font-size:22px;letter-spacing:.08em;margin-bottom:2px}
.founder .prole{font-family:var(--en);font-size:11px;letter-spacing:.24em;color:var(--gray);margin-bottom:26px}
.steps.three{grid-template-columns:repeat(3,1fr);max-width:1080px;margin:0 auto}
@media(max-width:820px){.steps.three{grid-template-columns:1fr}}
.steps .yr{font-family:var(--en);font-size:12px;letter-spacing:.2em;color:var(--gray)}
.steps p a{text-decoration:none;border-bottom:1px solid var(--line)}
.nlist{max-width:820px;margin:0 auto;list-style:none;border-top:1px solid var(--ink)}
.nlist li{border-bottom:1px solid var(--hair)}
.nlist .nitem{display:flex;gap:34px;align-items:baseline;padding:22px 4px;text-decoration:none}
.nlist .ndate{font-family:var(--en);font-size:12px;letter-spacing:.14em;color:var(--gray);white-space:nowrap;min-width:96px}
.nlist .ntitle{font-size:14px}
.nlist a.nitem:hover .ntitle{text-decoration:underline;text-underline-offset:4px}
@media(max-width:600px){.nlist .nitem{flex-direction:column;gap:4px}}
.cform{max-width:680px;margin:0 auto}
.cform label{display:block;font-size:13px;font-weight:400;letter-spacing:.1em;margin:28px 0 8px}
.cform .req{font-size:10.5px;color:var(--gray);margin-left:10px;letter-spacing:.1em;font-weight:300}
.cform input,.cform select,.cform textarea{width:100%;border:1px solid var(--line);background:var(--paper);padding:13px 14px;font-size:14px;font-family:var(--jp);font-weight:300;color:var(--ink);border-radius:0;-webkit-appearance:none;appearance:none;letter-spacing:.04em}
.cform select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231F1F1F' stroke-width='1'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:none;border-color:var(--ink)}
.cform textarea{min-height:200px;resize:vertical;line-height:1.9}
.cform .submit{margin-top:44px;text-align:center}
.cform button{background:var(--paper);color:var(--ink);cursor:pointer;margin-top:0}
.cnote{max-width:680px;margin:34px auto 0;font-size:12px;color:var(--gray)}
.cnote a,.prose a{text-decoration:none;border-bottom:1px solid var(--line)}
.prose .pdate{margin-top:50px;font-size:12.5px;color:var(--gray)}
/* ヘルスケア:noiの合言葉 */
.noi .motto{font-family:var(--en);font-size:12px;letter-spacing:.32em;color:var(--gray);margin:-4px 0 4px}

/* インバウンド:国・地域 */
.areas{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--ink)}
@media(max-width:700px){.areas{grid-template-columns:repeat(2,1fr)}.areas>div:last-child{grid-column:1/-1}}
.areas>div{padding:22px 8px;border-bottom:1px solid var(--hair);text-align:center;font-size:15px;letter-spacing:.12em}
.areas .en{display:block;font-family:var(--en);font-size:11px;letter-spacing:.24em;color:var(--gray);margin-bottom:4px}
.areas-note{max-width:640px;margin:22px auto 0;text-align:center;font-size:13px;color:var(--soft)}

/* お問い合わせ:Googleフォーム埋め込み */
.gform{max-width:760px;margin:0 auto;border-top:1px solid var(--ink);border-bottom:1px solid var(--hair)}
.gform iframe{display:block;width:100%;height:1650px;border:0}
@media(max-width:600px){.gform iframe{height:1900px}}
.gform-alt{max-width:760px;margin:18px auto 0;text-align:center;font-size:12.5px;color:var(--gray)}
.gform-alt a{color:var(--ink)}
