.lead{color:var(--dim); font-size:15px; max-width:660px; margin-bottom:50px;}

.page-hero::after{content:""; position:absolute; top:-30%; right:-6%; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle, rgba(108,47,133,.15), transparent 65%);}
.page-hero p{color:var(--dim); font-size:15px; max-width:560px; white-space:nowrap;}

/* CEO */
.ceo{padding:30px 0 50px; border-bottom:1px solid var(--line-soft);}
.ceo-grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:center;}
.ceo-photo{aspect-ratio:1/1; border-radius:16px; position:relative; background:linear-gradient(155deg, #F5F1FA, #FFFFFF); border:1px solid var(--line-soft); overflow:hidden;}
.ceo-photo img{width:100%; height:100%; object-fit:cover; object-position:top; display:block;}
.ceo blockquote{font-size:clamp(20px,2.4vw,27px); line-height:1.75; margin-bottom:26px; font-weight:600; font-family:'Noto Sans JP', sans-serif; color:var(--purple-deep);}
.ceo p.body{color:var(--dim); font-size:14.5px; margin-bottom:10px;}
.ceo .name{margin-top:24px; font-size:13px; letter-spacing:.05em; color:var(--purple); font-family:'Noto Sans JP', sans-serif;}

/* Company table */
.company{padding:30px 0 50px; border-bottom:1px solid var(--line-soft);}
.company-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px;}
.table{border-top:1px solid var(--line-soft);}
.row{display:grid; grid-template-columns:140px 1fr; gap:20px; padding:20px 0; border-bottom:1px solid var(--line-soft); font-size:14px;}
.row dt{font-family:'Noto Sans JP', sans-serif; color:var(--dim); font-size:12px;}
.row dd a{color:var(--purple); border-bottom:1px solid var(--purple);}
.map-box{border-radius:16px; min-height:320px; position:relative; overflow:hidden; border:1px solid var(--line-soft);}
.map-box iframe{width:100%; height:100%; min-height:320px; display:block; border:0;}

/* Members */
.partners{padding:30px 0 50px; border-bottom:1px solid var(--line-soft);}
.clients{padding:30px 0 50px; border-bottom:1px solid var(--line-soft);}
.logo-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:16px;}
.partners .logo-grid{grid-template-columns:repeat(3,1fr);}
.logo-box{aspect-ratio:16/9; border:1px dashed var(--line-soft); border-radius:10px; background:var(--bg-soft); display:flex; align-items:center; justify-content:center; padding:16px; overflow:hidden;}
.logo-box img{max-width:100%; max-height:100%; object-fit:contain; display:block;}

.members{padding:30px 0 50px;}
.members .filters{display:flex; gap:12px; flex-wrap:wrap; margin:28px 0 40px;}
.members .filter-btn{font-family:'Noto Sans JP', sans-serif; font-size:12.5px; padding:10px 22px; border-radius:30px; border:1px solid var(--line-soft); color:var(--dim); background:#fff;}
.members .filter-btn.active{background:linear-gradient(90deg, var(--purple) 35%, var(--teal) 100%); color:#fff; font-weight:600; border-color:transparent;}
.members .filter-btn:hover:not(.active){border-color:var(--purple); color:var(--purple);}
.member-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
.member-card{border:1.5px solid var(--purple); border-radius:16px; overflow:hidden; transition:.3s; background:#fff; cursor:pointer;}
.member-card:hover{transform:translateY(-4px); box-shadow:0 16px 34px rgba(108,47,133,.28);}
.member-photo{aspect-ratio:1/1; background:linear-gradient(155deg,#F5F1FA,#fff); display:flex; align-items:center; justify-content:center; font-size:48px; position:relative; overflow:hidden;}
.member-photo .dept{position:absolute; top:14px; left:14px; z-index:1; font-family:'Noto Sans JP', sans-serif; font-size:10px; background:var(--purple); color:#fff; padding:4px 10px; border-radius:20px;}
.member-card[data-category="プロデューサー"] .dept{background:var(--teal);}
.member-card[data-category="アドバイザー"] .dept{background:var(--coral);}
.member-photo img{width:100%; height:100%; object-fit:cover; object-position:top; display:block;}
.member-info{padding:22px;}
.member-role{font-family:'Noto Sans JP', sans-serif; font-size:10.5px; color:var(--purple); margin-bottom:8px; letter-spacing:.05em;}
.member-name{font-size:16px; font-weight:600; margin-bottom:10px;}
.member-bio{font-size:12.5px; color:var(--dim); line-height:1.7; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;}
.member-more{margin-top:10px; font-family:'Noto Sans JP', sans-serif; font-size:11px; color:var(--purple); font-weight:600;}

/* Member detail modal */
body.modal-open{overflow:hidden;}
.member-modal-overlay{position:fixed; inset:0; background:rgba(40,20,60,.55); z-index:200; display:none; align-items:center; justify-content:center; padding:24px;}
.member-modal-overlay.active{display:flex;}
.member-modal{background:#fff; border-radius:16px; max-width:640px; width:100%; max-height:85vh; overflow-y:auto; position:relative; padding:40px;}
.member-modal-close{position:absolute; top:18px; right:18px; width:34px; height:34px; border-radius:50%; border:1px solid var(--line-soft); background:#fff; color:var(--dim); font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:.2s; z-index:1;}
.member-modal-close:hover{border-color:var(--purple); color:var(--purple);}
.member-modal-head{display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:20px;}
.member-modal-text{flex:1; min-width:0;}
.member-modal-photo{flex-shrink:0; width:144px; height:144px; border-radius:16px; overflow:hidden; background:linear-gradient(155deg,#F5F1FA,#fff); display:flex; align-items:center; justify-content:center; font-size:48px; border:1px solid var(--line-soft);}
.member-modal-photo img{width:100%; height:100%; object-fit:cover; object-position:top; display:block;}
.member-modal .dept{display:inline-block; font-family:'Noto Sans JP', sans-serif; font-size:10px; background:var(--purple); color:#fff; padding:4px 10px; border-radius:20px; margin-bottom:16px;}
.member-modal[data-category="プロデューサー"] .dept{background:var(--teal);}
.member-modal[data-category="アドバイザー"] .dept{background:var(--coral);}
.member-modal .member-role{font-size:11px;}
.member-modal .member-name{font-size:22px; margin-bottom:0;}
.member-modal .member-bio{font-size:13.5px; line-height:1.9; display:block; -webkit-line-clamp:unset; overflow:visible;}

@media(max-width:900px){
  .ceo-grid, .company-grid{grid-template-columns:1fr; gap:32px;}
  .member-grid{grid-template-columns:repeat(2,1fr); gap:18px;}
  .logo-grid{grid-template-columns:repeat(3,1fr); gap:12px;}
  .page-hero p{white-space:normal;}
  .ceo{padding:20px 0 45px;}
  .ceo-photo{aspect-ratio:4/3;}
  .company{padding:20px 0 45px;}
  .partners{padding:20px 0 40px;}
  .clients{padding:20px 0 40px;}
  .members{padding:20px 0 50px;}
  .members .filters{margin:20px 0 28px;}
  .member-modal{padding:28px; max-height:88vh;}
  .member-modal-photo{width:96px; height:96px;}
  .member-modal-head{gap:16px;}
}
