/* Homepage only. Shared styles and service pages are intentionally unchanged. */
:root { --home-navy:#1a3050; --home-ink:#26384c; --home-muted:#5d6875; --home-gold:#866743; --home-paper:#fcfbf9; --home-line:#e1ded9; }
html { scroll-behavior:smooth; scroll-padding-top:108px; }
body.home-page { background:var(--home-paper); color:var(--home-ink); font-family:'Noto Serif JP','Yu Mincho',serif; }
.home-page * { box-sizing:border-box; }
.home-page :focus-visible { outline:3px solid #bb8547; outline-offset:5px; }
.home-page img { max-width:100%; }
.home-page h1,.home-page h2,.home-page h3,.home-page h4 { font-family:'Noto Serif JP','Yu Mincho',serif; }
.home-skip-link { position:fixed; top:12px; left:12px; z-index:2100; padding:12px 20px; color:var(--home-navy); background:white; transform:translateY(-180%); }
.home-skip-link:focus { transform:translateY(0); }
.home-header { position:fixed; inset:0 0 auto; z-index:100; color:white; border-bottom:1px solid #ffffff26; transition:background .2s,color .2s,box-shadow .2s; }
.home-header.is-scrolled,.home-header:has(#mobile-menu:not(.hidden)) { background:rgba(237,245,250,.98); color:var(--home-navy); border-color:#c6d7e3; box-shadow:0 3px 18px #18283c0a; }
.home-header-inner { max-width:1560px; margin:auto; padding:0 44px; min-height:90px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.home-brand { display:inline-flex; flex-direction:column; flex-shrink:0; text-decoration:none; }
.home-brand-name { font-family:Georgia,'Times New Roman',serif; font-size:30px; line-height:1.15; letter-spacing:.06em; }
.home-brand-company { font-family:'Noto Serif JP',serif; font-size:10px; letter-spacing:.17em; margin-top:5px; text-align:center; }
.home-desktop-nav { display:flex; align-items:center; gap:34px; font-size:13px; font-weight:600; letter-spacing:.06em; }
.home-desktop-nav a { padding:14px 0; border-bottom:1px solid transparent; }
.home-desktop-nav a:hover { border-color:currentColor; }
.home-menu-button { display:none; width:46px; height:46px; align-items:center; justify-content:center; flex-direction:column; gap:6px; flex-shrink:0; }
.home-menu-button span { display:block; width:25px; height:1.5px; background:currentColor; }
.home-mobile-nav { background:#edf5fa; color:var(--home-navy); padding:12px 24px 22px; border-top:1px solid #c6d7e3; max-height:calc(100svh - 74px); overflow:auto; }
.home-mobile-nav a { display:flex; min-height:48px; align-items:center; padding:10px 4px; border-bottom:1px solid var(--home-line); font-size:14px; }
.home-hero { position:relative; isolation:isolate; min-height:100vh; min-height:100svh; display:grid; place-items:center; padding:142px 28px 54px; background:#243444; color:white; }
.home-hero::after { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(180deg,rgba(10,24,40,.28),rgba(10,24,40,.11) 55%,rgba(10,24,40,.14)); }
.home-hero::before { content:''; position:absolute; bottom:-1px; left:0; width:100%; height:27px; background:var(--home-paper); clip-path:ellipse(58% 100% at 50% 100%); }
.home-hero-image { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.home-hero-content { width:min(1060px,100%); text-align:center; }
.home-hero h1 { margin:0; font-weight:400; font-size:clamp(32px,3.55vw,58px); line-height:1.75; letter-spacing:.06em; text-shadow:0 2px 20px #0c1d3070; }
.home-hero h1>span { display:block; word-break:keep-all; }
.home-hero-lead { margin:22px 0 38px; font-family:'Noto Serif JP',serif; font-size:16px; letter-spacing:.12em; }
.home-entry-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:920px; margin:0 auto; }
.home-entry { position:relative; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:17px; min-height:214px; padding:28px 24px 20px; border:1px solid white; border-radius:11px; background:rgba(244,249,253,.97); color:var(--home-navy); box-shadow:0 8px 25px #091b2d20; transition:background .2s,transform .2s,box-shadow .2s; }
.home-entry::before { content:''; position:absolute; inset:5px; border:1px solid #c6d7e3; border-radius:7px; pointer-events:none; }
.home-entry:hover { background:#edf5fa; transform:translateY(-3px); box-shadow:0 12px 30px #091b2d40; }
.home-entry-label { font-family:Georgia,serif; letter-spacing:.15em; font-size:12px; }
.home-entry-title { font-family:'Noto Serif JP',serif; font-size:clamp(19px,1.7vw,27px); font-weight:600; line-height:1.6; word-break:keep-all; }
.home-entry-break { display:none; }
.home-entry-caption { border-top:1px solid #d3e0ea; padding-top:14px; width:100%; font-family:'Noto Serif JP',serif; font-size:12px; line-height:1.7; letter-spacing:.025em; }
.home-arrow { display:inline-block; font-family:Georgia,serif; font-size:28px; line-height:1; font-weight:400; }
.home-scroll { display:flex; width:80px; margin:29px auto 0; flex-direction:column; align-items:center; gap:3px; font-family:Georgia,serif; font-size:10px; letter-spacing:.14em; padding:8px; }
.home-scroll>span:last-child { font-family:Arial,sans-serif; font-size:26px; line-height:1; }
.home-container { width:min(1140px,calc(100% - 64px)); margin-inline:auto; }
.home-section { padding:84px 0; }
.home-section--soft { background:#edf5fa; }
.home-section-heading { text-align:center; margin:0 auto 40px; }
.home-eyebrow { color:var(--home-gold); font-family:Georgia,serif; letter-spacing:.2em; font-size:11px; margin:0 0 12px; }
.home-section-heading h2 { font-size:30px; font-weight:500; letter-spacing:.08em; line-height:1.7; margin:0 0 18px; }
.home-section-heading h2::after { content:''; display:block; width:30px; height:1px; background:#ad8c60; margin:18px auto 0; }
.home-section-heading>p:last-child:not(.home-eyebrow) { font-size:14px; color:var(--home-muted); line-height:2; }
.home-service-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.home-service-card { display:flex; flex-direction:column; border:1px solid var(--home-line); border-radius:6px; background:#fff; padding:14px; min-width:0; }
.home-service-visual { position:relative; aspect-ratio:1.9; overflow:hidden; background:#eee9e2; }
.home-service-visual img { width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.home-service-visual--consulting img { object-position:center 65%; }
.home-image-note { position:absolute; right:9px; bottom:9px; padding:4px 9px; background:rgba(255,255,255,.95); font-size:10px; color:var(--home-muted); }
.home-service-copy { display:flex; flex:1; flex-direction:column; position:relative; padding:28px 18px 18px; text-align:center; }
.home-service-copy h3 { font-size:23px; line-height:1.75; margin-bottom:15px; font-weight:500; }
.home-service-copy>p:not(.home-eyebrow) { font-size:14px; color:var(--home-muted); line-height:2; text-align:left; margin:0 0 24px; }
.home-button { display:flex; align-items:center; justify-content:space-between; gap:18px; width:100%; padding:16px 24px; min-height:54px; background:var(--home-navy); border:1px solid var(--home-navy); color:#fff; font-size:13px; line-height:1.7; letter-spacing:.06em; border-radius:3px; text-decoration:none; transition:background .2s; }
.home-service-copy .home-button { margin-top:auto; }
.home-button:hover { background:#304a6a; }
.home-service-note { text-align:center; font-size:12px; color:var(--home-muted); line-height:1.9; margin:24px 0 0; }
.home-anchor { display:block; position:absolute; top:0; }
.home-support-grid { display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--home-line); background:var(--home-paper); border-radius:6px; }
.home-work-panel,.home-support-panel { padding:32px; min-width:0; }
.home-support-panel { border-left:1px solid var(--home-line); }
.home-support-grid h3 { font-size:20px; font-weight:500; line-height:1.7; margin-bottom:14px; }
.home-work-panel>p { font-size:13px; line-height:1.9; color:var(--home-muted); }
.home-sample-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:26px 0 20px; }
.home-sample { display:block; min-width:0; text-align:center; }
.home-sample img { width:100%; aspect-ratio:3/4; object-fit:cover; object-position:top; border:1px solid #ebe7e0; box-shadow:0 8px 16px #1b304011; transition:transform .2s; }
.home-sample:hover img { transform:translateY(-3px); }
.home-sample span { display:block; font-size:11px; margin-top:12px; }
.home-work-panel>p.home-small-note { font-size:11px; line-height:1.9; margin-bottom:14px; }
.home-text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; min-height:48px; font-size:13px; border-bottom:1px solid #b0a08a; }
.home-text-link:hover { color:var(--home-gold); }
.home-support-list { list-style:none; padding:0; margin:0 0 12px; }
.home-support-list li { display:flex; gap:18px; padding:17px 0; border-bottom:1px solid var(--home-line); }
.home-support-list li:last-child { border-bottom:0; }
.home-support-number { display:grid; place-items:center; background:#eae3d9; color:#846b4a; width:44px; height:44px; flex-shrink:0; border-radius:50%; font-family:Georgia,serif; font-size:16px; }
.home-support-list h4 { font-size:17px; font-weight:500; margin-bottom:7px; }
.home-support-list p { color:var(--home-muted); font-size:13px; line-height:1.9; }
.home-diagnosis-link { display:block; margin-top:18px; font-size:12px; color:var(--home-muted); line-height:1.9; text-decoration:underline; text-underline-offset:4px; padding:8px 0; }
#profile .home-section-heading { margin-bottom:28px; }
.home-profile { max-width:560px; margin:auto; }
.home-profile-intro { width:fit-content; max-width:100%; margin-inline:auto; }
.home-profile-name-row { display:flex; align-items:center; justify-content:center; gap:24px; }
.home-profile-name { min-width:0; }
.home-profile-image { width:100px; flex-shrink:0; padding:4px; border:1px solid #c6d7e3; background:#edf5fa; }
/* Display only the upper body; keep the original portrait file untouched. */
.home-profile-crop { position:relative; aspect-ratio:4/5; overflow:hidden; }
.home-profile-crop img { display:block; position:absolute; width:210%; max-width:none; height:auto; left:-55%; top:-15%; }
.home-profile-copy { min-width:0; margin-top:20px; text-align:left; }
.home-profile-role { font-size:12px; letter-spacing:.05em; color:var(--home-muted); text-align:left; margin-bottom:8px; }
.home-profile-intro h3 { font-size:31px; font-weight:500; margin:0; letter-spacing:.08em; }
.home-profile-intro h3 span { display:block; font-family:inherit; font-size:10px; letter-spacing:.1em; margin-top:8px; color:var(--home-muted); }
.home-profile-copy p:not(.home-profile-role):not(.home-profile-message) { font-size:14px; line-height:2; color:var(--home-muted); margin-bottom:14px; }
.home-profile .home-profile-message { font-family:'Noto Serif JP',serif; font-size:23px; line-height:1.8; margin:20px 0 0; text-align:center; }
.home-profile-copy .home-button { max-width:340px; margin:20px auto 0; }
.home-company h2 { font-weight:500; font-size:28px; line-height:1.7; }
.home-company .shadow-lg,.home-company .shadow-md { box-shadow:none; }
.home-company .text-brand-gold { color:var(--home-gold); }
.home-company>.max-w-7xl { max-width:1204px; }
.home-contact-banner { padding:64px 0 70px; background:linear-gradient(#132b44e6,#132b44ee),url('../images/home-hero-20260903.webp') center 55%/cover; color:white; text-align:center; }
.home-contact-banner .home-eyebrow { color:#d5bd9a; }
.home-contact-banner h2 { font-weight:400; font-size:29px; line-height:1.9; letter-spacing:.07em; }
.home-contact-buttons { display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:760px; margin:30px auto 0; }
.home-button--outline { background:transparent; border:1px solid #ffffff80; }
.home-button--outline:hover { background:#ffffff15; }
.home-contact { padding-top:65px; padding-bottom:65px; }
.home-contact .text-brand-gold { color:var(--home-gold); }
.home-contact h2 { font-weight:500; }
.home-form-details { border:1px solid var(--home-line); border-radius:6px; }
.home-form-details summary { cursor:pointer; list-style:none; padding:20px 24px; display:flex; align-items:center; justify-content:space-between; font-size:15px; font-weight:600; color:var(--home-navy); }
.home-form-details summary::-webkit-details-marker { display:none; }
.home-form-details summary span { font-size:24px; font-weight:400; transition:transform .2s; }
.home-form-details[open] summary span { transform:rotate(45deg); }
.home-footer { padding:44px 0 32px; border-top:1px solid var(--home-line); color:var(--home-navy); background:#edf5fa; }
.home-footer-main { display:flex; gap:60px; justify-content:space-between; align-items:center; padding-bottom:28px; border-bottom:1px solid var(--home-line); }
.home-footer nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:4px 24px; max-width:660px; font-size:11px; }
.home-footer nav a { padding:10px 0; }
.home-footer a:hover { text-decoration:underline; text-underline-offset:5px; }
.home-footer-bottom { display:flex; justify-content:space-between; gap:24px; font-size:10px; line-height:2; color:var(--home-muted); padding-top:24px; padding-bottom:48px; }
.back-to-top { position:fixed; right:22px; bottom:92px; width:46px; height:46px; display:grid; place-items:center; z-index:80; background:#fff; color:var(--home-navy); border:1px solid #b9c1c9; border-radius:50%; box-shadow:0 6px 14px #182a4020; opacity:0; pointer-events:none; transition:opacity .2s; }
.back-to-top.is-visible { opacity:1; pointer-events:auto; }
.home-page #chatbot-button { background:var(--home-navy); }
@media(min-width:801px) { .home-mobile-nav { display:none!important; } }
@media(max-width:1000px) {
  .home-header-inner { padding-inline:28px; }
  .home-desktop-nav { gap:23px; }
  .home-service-copy { padding-inline:10px; }
  .home-service-copy h3 { font-size:20px; }
  .home-work-panel,.home-support-panel { padding:25px; }
}
@media(max-width:800px) {
  html { scroll-padding-top:90px; }
  .home-header-inner { min-height:74px; padding-inline:22px; }
  .home-brand-name { font-size:25px; }
  .home-brand-company { font-size:9px; }
  .home-desktop-nav { display:none; }
  .home-menu-button { display:flex; }
  .home-hero { padding:116px 24px 55px; }
  .home-hero h1 { font-size:36px; }
  .home-entry { padding-inline:16px; min-height:210px; }
  .home-entry-title { font-size:21px; }
  .home-entry-caption { font-size:11px; }
  .home-entry-grid { gap:16px; }
  .home-container { width:calc(100% - 40px); }
  .home-section { padding:62px 0; }
  .home-support-grid { grid-template-columns:1fr; }
  .home-support-panel { border-left:0; border-top:1px solid var(--home-line); }
  .home-sample img { aspect-ratio:4/3; }
  .home-profile-image { width:90px; }
  .home-footer-main { flex-direction:column; gap:28px; }
  .home-footer nav { justify-content:center; }
}
@media(max-width:600px) {
  .home-hero { padding:106px 22px 66px; }
  .home-hero-content { max-width:420px; }
  .home-hero h1 { font-size:clamp(23px,7vw,30px); line-height:1.75; letter-spacing:.04em; }
  .home-hero h1>span:first-child { white-space:nowrap; }
  .home-hero h1>span:last-child { max-width:10em; margin-inline:auto; }
  .home-hero-lead { font-size:12px; letter-spacing:.04em; margin:18px 0 24px; }
  .home-entry-grid { grid-template-columns:1fr; gap:13px; max-width:350px; }
  .home-entry { min-height:146px; padding:18px 20px 14px; gap:10px; }
  .home-entry-label { font-size:10px; }
  .home-entry-title { font-size:20px; line-height:1.6; }
  .home-entry-break { display:block; }
  .home-entry-caption { padding-top:10px; font-size:10px; }
  .home-entry .home-arrow { font-size:24px; }
  .home-scroll { margin-top:17px; }
  .home-desktop-break { display:none; }
  .home-section-heading { margin-bottom:28px; }
  .home-section-heading h2 { font-size:24px; letter-spacing:.04em; }
  .home-section-heading>p:last-child:not(.home-eyebrow) { font-size:12px; }
  .home-service-grid { grid-template-columns:1fr; gap:24px; }
  .home-service-card { padding:10px; }
  .home-service-copy { padding:24px 12px 12px; }
  .home-service-copy h3 { font-size:21px; }
  .home-service-copy>p:not(.home-eyebrow) { font-size:13px; }
  .home-service-note { font-size:11px; }
  .home-button { padding:14px 18px; font-size:12px; }
  .home-work-panel,.home-support-panel { padding:24px 20px; }
  .home-support-grid h3 { font-size:19px; }
  .home-sample-grid { gap:8px; }
  .home-sample img { aspect-ratio:3/4; }
  .home-sample span { font-size:10px; }
  .home-support-list li { gap:12px; }
  .home-support-number { width:36px; height:36px; font-size:14px; }
  .home-support-list p { font-size:12px; }
  .home-profile-name-row { gap:16px; }
  .home-profile-image { width:56px; padding:2px; }
  .home-profile-role { font-size:11px; line-height:1.8; }
  .home-profile-intro h3 { font-size:25px; }
  .home-profile-intro h3 span { font-size:9px; }
  .home-profile .home-profile-message { font-size:clamp(14px,4vw,18px); }
  .home-company h2 { font-size:24px; }
  .home-contact-banner { padding:48px 0; }
  .home-contact-banner h2 { font-size:23px; }
  .home-contact-buttons { grid-template-columns:1fr; gap:13px; }
  .home-contact { padding-top:50px; padding-bottom:50px; }
  .home-contact h2 { font-size:25px; }
  .home-form-details summary { font-size:13px; padding:16px; }
  .home-footer-bottom { flex-direction:column; text-align:center; }
  .home-page #chatbot-button { min-width:0; min-height:44px; font-size:12px; padding:10px 14px; right:12px; bottom:max(12px,env(safe-area-inset-bottom)); }
  .back-to-top { right:15px; bottom:74px; width:40px; height:40px; }
}
@media(max-width:360px) {
  .home-profile-image { width:48px; }
  .home-profile-intro h3 { font-size:22px; }
  .home-profile-role { font-size:10px; }
}
@media(max-width:600px) and (max-height:740px) {
  .home-hero { padding-top:90px; padding-bottom:59px; }
  .home-hero h1 { font-size:23px; line-height:1.6; }
  .home-hero-lead { margin:10px 0 16px; }
  .home-entry { min-height:126px; padding:13px 18px 11px; gap:7px; }
  .home-entry-title { font-size:18px; }
  .home-entry-caption { padding-top:7px; }
  .home-scroll { margin-top:8px; padding:6px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .home-page *,.home-page *::before,.home-page *::after { transition:none!important; animation:none!important; }
}
