/* home ページ固有CSV。design/index.html の2番目の<style>ブロックをそのまま移植。重複クラス名(.iv/.philo等)がページ間で衝突するため個別ファイル化し条件付きenqueue。 */
.hero{background:var(--cream);position:relative;overflow:hidden}
.hero::after{content:'';position:absolute;width:360px;height:360px;border-radius:50%;right:-180px;bottom:-180px;border:70px solid rgba(200,16,46,.06);pointer-events:none}
.hero .hero-grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(420px,.96fr);min-height:700px;align-items:center;gap:70px}
.hero .hero-copy{padding:92px 0 78px;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}
.hero .hero-copy .eyebrow{color:var(--crimson)}
.hero h1{font-size:clamp(46px,5.5vw,72px);font-weight:800;line-height:1.25;margin-top:24px;letter-spacing:.02em}
.hero p{font-size:clamp(15.5px,1.8vw,17px);line-height:2;margin:28px 0 0;max-width:560px;color:var(--mauve)}
.hero .acts{display:flex;gap:12px;margin-top:38px;flex-wrap:wrap}
.hero .acts .btn.ghost{border-color:var(--crimson);color:var(--crimson)}
.hero .hero-visual{height:520px;position:relative;z-index:2}
.hero .hero-main{position:absolute;inset:0 0 50px 56px;border-radius:180px 16px 16px 16px;overflow:hidden;box-shadow:0 35px 70px -35px rgba(36,30,41,.5)}
.hero .hero-main img{width:100%;height:100%;object-fit:cover}
.hero .hero-crop{position:absolute;left:0;bottom:0;width:200px;height:164px;border:10px solid var(--cream);border-radius:16px;overflow:hidden;box-shadow:0 18px 45px -25px rgba(36,30,41,.55)}
.hero .hero-crop img{width:100%;height:100%;object-fit:cover;object-position:82% 46%;transform:scale(1.45)}
.hero .hero-vertical{position:absolute;right:-10px;top:30px;writing-mode:vertical-rl;font-size:10px;letter-spacing:.32em;font-weight:800;color:var(--crimson)}
.philo{display:grid;grid-template-columns:400px 1fr;gap:0;border-radius:26px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.philo .left{background:var(--crimson);color:#fff;padding:56px 46px;position:relative}
.philo .right{background:var(--paper);padding:52px 50px;display:flex;flex-direction:column;gap:34px;justify-content:center}
.philo .item{display:flex;gap:22px;align-items:flex-start}
.philo .item .icowrap{flex-shrink:0}
.philo .item h3{font-size:23px;color:var(--crimson);font-weight:700}
.philo .item p{font-size:15.5px;line-height:1.9;margin:8px 0 0;color:var(--mauve)}
.business-card{padding:0;overflow:hidden}
.business-card .business-image{aspect-ratio:4/3;overflow:hidden;background:var(--rose-soft)}
.business-card .business-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.business-card:hover .business-image img{transform:scale(1.035)}
.business-card .business-body{padding:30px 30px 34px}
.business-card .business-body h3{margin-top:10px}
.svc{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:24px;padding:0;overflow:hidden}
.svc .svc-image{height:100%;min-height:170px;overflow:hidden}
.svc .svc-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.svc:hover .svc-image img{transform:scale(1.035)}
.svc .icowrap{flex-shrink:0}
.svc .tag{font-size:11.5px;letter-spacing:3px;font-weight:700;color:var(--crimson)}
.svc h3{font-size:21px;margin:4px 0 0}
.svc p{font-size:14.5px;color:var(--mauve);margin:4px 0 0}
.iv{display:grid;grid-template-columns:340px 1fr;gap:0;border-radius:22px;overflow:hidden;background:var(--paper);border:1px solid var(--line)}
.iv .ph{position:relative;background:var(--ink);min-height:340px}
.iv .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:68% 50%}
.iv .body{padding:48px 46px;display:flex;flex-direction:column;justify-content:center}
@media(max-width:860px){.hero .hero-grid{grid-template-columns:1fr;min-height:auto;gap:38px}.hero .hero-copy{padding:76px 0 0}.hero h1{font-size:clamp(42px,11vw,58px)}.hero .hero-visual{height:400px;margin-bottom:58px}.hero .hero-main{inset:0 0 44px 42px;border-radius:130px 16px 16px 16px}.hero .hero-crop{width:160px;height:130px;border-width:8px}.hero .hero-vertical{right:-4px;top:22px}.philo,.iv{grid-template-columns:1fr}.philo .left{padding:44px 32px}.philo .right,.iv .body{padding:38px 30px}.svc{grid-template-columns:112px 1fr;gap:16px}.svc .svc-image{min-height:150px}}
@media(max-width:560px){.business-card .business-image{aspect-ratio:16/10}.business-card .business-body{padding:26px 24px 30px}.svc{grid-template-columns:1fr;padding-bottom:24px}.svc .svc-image{min-height:190px}.svc>.svc-copy{margin:0 24px}}
