/* ホーム本文：情報の優先順位と読みやすさを重視した構成 */
.home-content { position:relative; background:#f7f7f4; color:#222521; --home-muted:#62665f; --home-line:#d9ddd5; letter-spacing:.025em; }
.home-content * { box-sizing:border-box; }
.home-content h2,.home-content h3,.home-content p { margin:0; }
.home-content h2 { font-size:clamp(30px,3.8vw,52px); line-height:1.5; font-weight:500; letter-spacing:.025em; }
.home-content h3 { line-height:1.6; font-weight:500; }
.h-container { max-width:1180px; margin:auto; padding:0 40px; }
.h-section { padding:104px 0; }
.h-eyebrow { display:flex; align-items:center; gap:12px; font:500 11px/1.5 var(--en); letter-spacing:.16em; margin-bottom:26px; }
.h-eyebrow::before { content:''; width:7px; height:7px; border-radius:50%; background:#d97037; }
.h-intro { padding-top:82px; }
.h-intro-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:80px; align-items:end; }
.h-intro-grid p { color:var(--home-muted); font-size:16px; line-height:2; }
.h-intro-grid h2 span { color:#7a8174; }
.h-link { display:inline-flex; align-items:center; gap:36px; font-size:14px; font-weight:500; border-bottom:1px solid #222521; padding:15px 0; margin-top:20px; }
.h-link span,.h-arrow { transition:transform .2s; }
.h-link:hover span { transform:translateX(5px); }
.h-service { margin-top:52px; display:grid; grid-template-columns:1fr 1fr; background:#e9ece5; border:1px solid #dbe0d4; border-radius:16px; overflow:hidden; }
.h-service-copy { padding:42px; }
.h-tag { display:inline-block; font-size:11px; padding:5px 12px; border:1px solid #b5bcad; border-radius:20px; margin-bottom:18px; }
.h-service h3 { font-size:27px; margin-bottom:14px; }
.h-service p { font-size:14px; color:#535a4c; line-height:1.9; }
.h-pills { display:flex; gap:8px; flex-wrap:wrap; margin-top:24px; }
.h-pills span { background:#f7f8f4; padding:6px 12px; font-size:11px; border-radius:5px; }
.h-system { position:relative; display:flex; flex-direction:column; justify-content:center; gap:14px; padding:38px; border-left:1px solid #d0d6c8; background-image:radial-gradient(#bec6b3 .7px,transparent .7px); background-size:16px 16px; }
.h-system-label { font:11px var(--en); letter-spacing:.12em; margin-bottom:8px; }
.h-system-node { background:#f9faf7; border:1px solid #bbc5b0; border-radius:8px; padding:16px 20px; display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:14px; box-shadow:0 6px 18px #313c1810; }
.h-system-node small { font:10px var(--en); color:#647054; }
.h-section-head { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:40px; }
.h-section-head h2 { font-size:clamp(28px,3vw,40px); }
.h-section-head p { max-width:340px; color:var(--home-muted); font-size:14px; line-height:1.9; }
.h-capability { border-top:1px solid var(--home-line); }
.h-tabs { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.h-tab { cursor:pointer; text-align:left; font:inherit; color:#60675a; background:transparent; border:1px solid #d2d8ca; border-radius:9px; padding:22px 26px; transition:background .2s,color .2s; }
.h-tab small { display:block; font:11px var(--en); letter-spacing:.1em; margin-bottom:8px; }
.h-tab b { font-size:20px; font-weight:500; }
.h-tab[aria-selected="true"] { background:#252d24; border-color:#252d24; color:white; }
.h-tab:hover:not([aria-selected="true"]) { background:#e7ebe1; }
.h-panel { display:grid; grid-template-columns:1fr 1.2fr; gap:64px; padding:44px 0 36px; }
.h-panel h3 { font-size:26px; margin-bottom:16px; }
.h-panel p { color:var(--home-muted); font-size:15px; line-height:2; }
.h-panel[hidden] { display:none; }
.h-detail-list { list-style:none; margin:0; padding:0; }
.h-detail-list li { padding:16px 0; border-bottom:1px solid var(--home-line); display:grid; grid-template-columns:140px 1fr; gap:20px; font-size:13px; }
.h-detail-list li:first-child { padding-top:0; }
.h-detail-list b { font-weight:500; }
.h-detail-list span { color:var(--home-muted); }
.h-reasons { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; border-top:1px solid var(--home-line); padding-top:30px; }
.h-reasons small { font:11px var(--en); color:#828a79; }
.h-reasons h3 { font-size:17px; margin:12px 0 8px; }
.h-reasons p { font-size:13px; color:var(--home-muted); line-height:1.9; }
.h-business { background:white; }
.h-business-list { border-top:1px solid var(--home-line); }
.h-business-row { position:relative; display:grid; grid-template-columns:64px 1fr 1fr 44px; gap:28px; align-items:center; padding:32px 20px; border-bottom:1px solid var(--home-line); transition:background .2s; }
.h-business-row:hover { background:#f2f4ef; }
.h-business-row:hover .h-arrow { transform:translate(3px,-3px); }
.h-business-row .h-number { font:12px var(--en); color:#858c7e; }
.h-business-row h3 { font-size:23px; }
.h-business-row small { display:block; font:10px var(--en); letter-spacing:.1em; margin-top:6px; color:#71796a; }
.h-business-row p { color:var(--home-muted); font-size:13px; line-height:1.9; }
.h-arrow { border:1px solid #d5dbce; border-radius:50%; display:grid; place-items:center; width:42px; height:42px; font-size:19px; }
.h-about { display:grid; grid-template-columns:1.2fr 1fr; gap:90px; }
.h-about p { color:var(--home-muted); font-size:15px; line-height:2; }
.h-about h2 { font-size:clamp(28px,3vw,40px); margin-bottom:24px; }
.h-locations { display:flex; gap:20px; border-top:1px solid var(--home-line); padding-top:24px; margin-top:32px; font:12px var(--en); color:#596050; }
.h-contact { padding:0 0 80px; }
.h-contact-box { position:relative; overflow:hidden; display:flex; align-items:center; justify-content:space-between; gap:30px; background:#e5eadf; border-radius:14px; padding:56px; }
.h-contact-box h2 { font-size:clamp(26px,3vw,38px); }
.h-contact-box p { color:#59614f; font-size:14px; margin-top:16px; }
.h-button { flex-shrink:0; display:inline-flex; align-items:center; gap:28px; border-radius:40px; background:#273025; color:white; padding:18px 26px; font-size:14px; transition:background .2s,transform .2s; }
.h-button:hover { background:#46543c; transform:translateY(-2px); }
.home-content a:focus-visible,.home-content button:focus-visible { outline:3px solid #cb632c; outline-offset:5px; }
@media (max-width:800px) {
 .h-container { padding:0 24px; } .h-section { padding:64px 0; }
 .h-intro-grid,.h-about { grid-template-columns:1fr; gap:26px; }
 .h-service { grid-template-columns:1fr; margin-top:32px; } .h-service-copy { padding:28px; }
 .h-system { padding:28px; border-left:0; border-top:1px solid #d0d6c8; }
 .h-section-head { display:block; } .h-section-head p { margin-top:20px; }
 .h-tab { padding:16px 12px; } .h-tab b { font-size:16px; } .h-tab small { font-size:9px; }
 .h-panel { grid-template-columns:1fr; gap:28px; padding:30px 0; }
 .h-detail-list li { grid-template-columns:110px 1fr; gap:12px; }
 .h-reasons { grid-template-columns:1fr; gap:22px; } .h-reasons h3 { margin-top:6px; }
 .h-business-row { grid-template-columns:24px 1fr 36px; gap:14px; padding:26px 0; }
 .h-business-row h3 { font-size:21px; } .h-business-row p { grid-column:2; }
 .h-business-row .h-arrow { grid-column:3; grid-row:1; width:34px; height:34px; }
 .h-contact-box { display:block; padding:30px 24px; } .h-button { margin-top:28px; }
 .h-contact { padding-bottom:48px; }
}
@media(prefers-reduced-motion:reduce) { .home-content * { transition:none!important; } }


/* Mission and vision directly below the sphere. */
.h-purpose-pair{background:#edf0e8;border-bottom:1px solid var(--home-line);scroll-margin-top:84px}
.h-purpose-columns{display:grid;grid-template-columns:1fr 1fr;gap:0}
.h-purpose-columns article{min-width:0;padding-right:48px}
.h-purpose-columns article+article{padding:0 0 0 48px;border-left:1px solid #cbd3c3;scroll-margin-top:104px}
.home-content .h-purpose-columns h2{font-size:clamp(26px,2.7vw,36px);line-height:1.55;letter-spacing:0;margin-bottom:28px}
.h-purpose-columns h2 span{color:#6c7a61}
.h-purpose-columns p{font-size:15px;line-height:2;color:#5d6855}
.home-content .h-purpose-columns p+p{margin-top:18px}
@media(max-width:760px){.h-purpose-columns{grid-template-columns:1fr}.h-purpose-columns article{padding:0 0 32px}.h-purpose-columns article+article{padding:32px 0 0;border-left:0;border-top:1px solid #cbd3c3}.h-purpose-columns p{font-size:14px}.home-content .h-purpose-columns h2{font-size:clamp(24px,6.4vw,32px);margin-bottom:22px}}
