#home { background:#fff; color:#151515; padding-bottom:90px; overflow:hidden; }
#home section { width:min(1220px, calc(100% - 40px)); margin:0 auto; }
#home p { line-height:1.75; word-break:keep-all; }
.home-kicker { margin-bottom:14px; color:#ef6a2e; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:0; }
.home-section-head { max-width:720px; margin:0 auto 34px; text-align:center; }
.home-section-head h2 { font-size:34px; line-height:1.32; font-weight:800; letter-spacing:0; word-break:keep-all; }
.home-visual { width:100% !important; min-height:620px; padding:92px max(40px, calc((100% - 1220px) / 2)) 72px; display:grid; grid-template-columns:minmax(320px, 520px) 1fr; align-items:center; gap:56px; background:#f5f6f8; }
.home-visual-copy h1 { font-size:56px; line-height:1.16; font-weight:900; letter-spacing:0; word-break:keep-all; }
.home-visual-copy p:last-child { max-width:520px; margin-top:24px; color:#555; font-size:18px; }
.home-visual-stage { position:relative; min-height:360px; background:url("../img/communityhigh_bg.png") center/cover no-repeat; overflow:hidden; }
.stage-line { position:absolute; left:-8%; width:116%; height:86px; border-radius:50%; border-top:18px solid rgba(255,255,255,.75); }
.line-a { bottom:86px; transform:rotate(-8deg); }
.line-b { bottom:20px; transform:rotate(8deg); border-color:rgba(12,38,77,.82); }
.stage-mark { position:absolute; left:38px; bottom:58px; color:#fff; font-size:30px; font-weight:900; letter-spacing:0; }
.stage-chip { position:absolute; display:flex; align-items:center; justify-content:center; width:86px; height:34px; border:1px solid rgba(255,255,255,.75); color:#fff; font-size:12px; font-weight:800; background:rgba(255,255,255,.14); }
.chip-a { top:58px; right:30%; }
.chip-b { top:138px; right:12%; }
.chip-c { bottom:142px; left:24%; }
.home-about { margin-top:86px !important; padding:62px 70px; background:#f7f7f7; }
.about-grid { display:grid; grid-template-columns:1.3fr .7fr; gap:44px; align-items:stretch; }
.about-text { color:#454545; font-size:17px; }
.about-text p + p { margin-top:16px; }
.about-note { display:flex; flex-direction:column; justify-content:flex-end; min-height:220px; padding:28px; background:#fff; border-left:4px solid #ef6a2e; }
.about-note strong { font-size:24px; line-height:1.25; }
.about-note span { margin-top:18px; color:#666; line-height:1.7; }
.home-service { margin-top:92px !important; }
.service-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:24px; }
.service-grid article { background:#fff; border:1px solid #e5e7eb; padding:16px 16px 24px; }
.home-thumb { display:flex; align-items:center; justify-content:center; height:210px; margin-bottom:20px; background:#eef1f5 center/cover no-repeat; color:transparent; font-size:13px; font-weight:800; text-transform:uppercase; }
.service-grid article:nth-child(1) .home-thumb { background-image:url("../img/item-1.png"); }
.service-grid article:nth-child(2) .home-thumb { background-image:url("../img/item-2.jpg"); }
.service-grid article:nth-child(3) .home-thumb { background-image:url("../img/item-3.png"); }
.service-grid h3 { font-size:22px; font-weight:800; line-height:1.35; }
.service-grid p { margin-top:10px; color:#5d5d5d; font-size:15px; }
.home-pr { margin-top:96px !important; display:grid; grid-template-columns:.85fr 1.15fr; gap:0; align-items:stretch; background:#f6f6f6; }
.pr-copy { padding:58px 56px; }
.pr-copy h2 { font-size:36px; line-height:1.28; font-weight:900; letter-spacing:0; word-break:keep-all; }
.pr-copy p:not(.home-kicker) { margin-top:22px; color:#555; font-size:16px; }
.pr-board { position:relative; min-height:390px; background:#dfe5ed url("../img/item-4.png") center/cover no-repeat; overflow:hidden; }
@media (max-width:900px){
	#home { padding-bottom:64px; }
	#home section { width:calc(100% - 28px); }
	.home-section-head h2 { font-size:28px; }
	.home-visual { min-height:auto; padding:64px 20px 42px; grid-template-columns:1fr; gap:34px; }
	.home-visual-copy h1 { font-size:38px; }
	.home-visual-copy p:last-child { font-size:16px; }
	.home-visual-stage { min-height:280px; }
	.home-about { margin-top:54px !important; padding:40px 22px; }
	.about-grid { grid-template-columns:1fr; gap:24px; }
	.about-note { min-height:160px; }
	.home-service { margin-top:60px !important; }
	.service-grid { grid-template-columns:1fr; }
	.home-thumb { height:170px; }
	.home-pr { margin-top:64px !important; grid-template-columns:1fr; }
	.pr-copy { padding:40px 24px; }
	.pr-copy h2 { font-size:28px; }
	.pr-board { min-height:300px; }
}
