/* セクション: 白背景。paddingは他と統一 */
.pnp-exhibitors{ width:100%; background:#fff; padding:70px 60px; }
.pnp-exhibitors__inner{ max-width:1000px; margin:0 auto; }

/* 見出し (白背景: h2紫 + h1紺 + 黄divider) */
.pnp-exhibitors__eyebrow{ color:var(--pnp-purple-1); font-size:40px; font-weight:700; line-height:1.2; margin:0 0 10px; text-align:left; }
.pnp-exhibitors__subhead{ color:var(--pnp-navy-dark); font-size:18px; font-weight:600; letter-spacing:.05em; line-height:1.4; margin:0 0 25px; text-align:left; }
.pnp-exhibitors__head{ margin:0 0 55px; }

/* 導入文 */
.pnp-exhibitors__intro{ color:var(--pnp-navy-dark); font-size:15px; line-height:2; margin:0 0 45px; }
.pnp-exhibitors__intro p{ margin:0; }

/* フィルタ */
.pnp-exhibitors__filters{ display:flex; flex-direction:column; gap:14px; margin:0 0 40px; }
.pnp-exhibitors__filter-row{
  display:flex; align-items:center; gap:12px;
  flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none;   /* 折返さず横スクロール (Figma SP) */
}
.pnp-exhibitors__filter-row::-webkit-scrollbar{ display:none; }
.pnp-exhibitors__day{ color:var(--pnp-navy-dark); font-size:15px; line-height:1.4; flex:none; }
.pnp-exhibitors__pill{
  appearance:none; cursor:pointer; flex:none; white-space:nowrap;
  border:1px solid var(--pnp-navy-dark); border-radius:999px; background:#E2F0FF;  /* セクション背景と同色 (デザイン改定) */
  color:var(--pnp-navy-dark); font-size:14px; line-height:1.4; padding:8px 24px;
  transition:background .3s cubic-bezier(.05,0,0,1), color .3s cubic-bezier(.05,0,0,1), border-color .3s cubic-bezier(.05,0,0,1);
}
.pnp-exhibitors__pill:hover{ background:rgba(110,110,204,.1); }
.pnp-exhibitors__pill.is-active{ background:var(--pnp-purple-1); border-color:var(--pnp-purple-1); color:#fff; }

/* ロゴグリッド: 5列(SP2列)。セルはロゴ画像(contain) */
.pnp-exhibitors__grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:6px; }
.pnp-exhibitors__cell{
  aspect-ratio:245/100; background:#ddd; overflow:hidden; cursor:pointer;
  display:flex; align-items:center; justify-content:center; text-decoration:none;
  transition:opacity .3s;
}
.pnp-exhibitors__cell:hover{ opacity:.8; }
.pnp-exhibitors__cell:focus-visible{ outline:2px solid var(--pnp-purple-1); outline-offset:2px; }
.pnp-exhibitors__cell img{ width:100%; height:100%; object-fit:contain; display:block; background:#fff; }
.pnp-exhibitors__cell.is-hidden{ display:none; }

/* ===== ロゴ詳細モーダル (他モーダルと同じSTUDIO標準挙動) ===== */
.pnp-exhibitors__modal{ position:fixed; inset:0; z-index:80; visibility:hidden; pointer-events:none; }
.pnp-exhibitors__modal.is-prep, .pnp-exhibitors__modal.is-open{ visibility:visible; pointer-events:auto; }
.pnp-exhibitors__modal-overlay{ position:absolute; inset:0; background:rgba(0,0,0,.7); opacity:0; transition:opacity .4s cubic-bezier(.4,.4,0,1); }
.pnp-exhibitors__modal.is-open .pnp-exhibitors__modal-overlay{ opacity:1; }
.pnp-exhibitors__modal-box{
  position:absolute; top:50%; left:50%;
  width:min(740px, 92vw); max-height:88dvh; overflow-y:auto;
  background:#fff; border-radius:18px; padding:56px 56px 32px;
  opacity:0; transform:translate(-50%,-46%);
  transition:opacity .4s cubic-bezier(.4,.4,0,1), transform .4s cubic-bezier(.4,.4,0,1);
}
/* モーダルの縦スクロールバー: Windows(Edge/Chrome)のクラシックバーが角丸を潰すため、
   透明トラック+丸thumbのカスタム表示にし、上下18px(=border-radiusぶん)を避ける */
.pnp-exhibitors__modal-box{ scrollbar-width:thin; scrollbar-color:rgba(37,59,73,.35) transparent; }
.pnp-exhibitors__modal-box::-webkit-scrollbar{ width:8px; }
.pnp-exhibitors__modal-box::-webkit-scrollbar-track{ background:transparent; margin:18px 0; }
.pnp-exhibitors__modal-box::-webkit-scrollbar-thumb{ background:rgba(37,59,73,.35); border-radius:8px; }
.pnp-exhibitors__modal-box::-webkit-scrollbar-thumb:hover{ background:rgba(37,59,73,.55); }

.pnp-exhibitors__modal.is-open .pnp-exhibitors__modal-box{ opacity:1; transform:translate(-50%,-50%); }
.pnp-exhibitors__modal-body > *{
  opacity:0; transform:translateY(16px);
  transition:opacity .5s cubic-bezier(.4,.4,0,1), transform .5s cubic-bezier(.4,.4,0,1);
}
.pnp-exhibitors__modal.is-open .pnp-exhibitors__modal-body > *{
  opacity:1; transform:translateY(0);
  transition-delay:calc(.08s + var(--i, 0) * .04s);
}

/* モーダル内 (Figma: ロゴ中央 + 会社名 + URL + 説明) */
.pnp-exhibitors__mlogo{ width:200px; aspect-ratio:2/1; background:#ddd; margin:0 auto 28px; display:flex; align-items:center; justify-content:center; }
.pnp-exhibitors__mlogo img{ width:100%; height:100%; object-fit:contain; display:block; background:#fff; }
.pnp-exhibitors__mcompany{ color:var(--pnp-navy-dark); font-size:18px; font-weight:700; line-height:1.5; text-align:center; margin:0 0 18px; }
.pnp-exhibitors__murl{ display:block; color:var(--pnp-purple-1); font-size:14px; line-height:1.5; text-align:center; text-decoration:underline; margin:0 0 26px; word-break:break-all; }
.pnp-exhibitors__murl[hidden]{ display:none; }
.pnp-exhibitors__mdesc{ color:#333; font-size:14px; line-height:2; margin:0; text-align:left; }
.pnp-exhibitors__mdesc p{ margin:0 0 4px; }
.pnp-exhibitors__mdesc:empty{ display:none; }
.pnp-exhibitors__modal-close{
  appearance:none; background:none; border:none; cursor:pointer;
  display:flex; align-items:center; gap:8px; margin:24px 0 0 auto;
  color:var(--pnp-blue); font-size:18px; font-weight:700;
}
.pnp-exhibitors__modal-close:hover{ opacity:.75; }

/* 右上✕ (常時可視の閉じるボタン。wrapperがfixedなのでビューポート右上に固定) */
.pnp-exhibitors__modal-x{
  position:absolute; top:14px; right:18px; z-index:2;
  appearance:none; background:none; border:none; cursor:pointer;
  color:#fff; padding:10px; line-height:0;
  opacity:0; transition:opacity .4s cubic-bezier(.4,.4,0,1);
}
.pnp-exhibitors__modal.is-open .pnp-exhibitors__modal-x{ opacity:1; }
.pnp-exhibitors__modal.is-open .pnp-exhibitors__modal-x:hover{ opacity:.75; }

/* 下部固定画像 */
.pnp-exhibitors__photos{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin-top:70px; }
.pnp-exhibitors__photo{ width:100%; aspect-ratio:16/10; border-radius:8px; overflow:hidden; background:#e8e8ee; }
.pnp-exhibitors__photo img{ width:100%; height:100%; object-fit:cover; display:block; }

/* レスポンシブ */
@media (max-width:1140px){
  .pnp-exhibitors__eyebrow{ font-size:36px; }
  .pnp-exhibitors__grid{ grid-template-columns:repeat(4,1fr); }
}
@media (max-width:840px){
  .pnp-exhibitors{ padding:70px 30px; }
  .pnp-exhibitors__eyebrow{ font-size:36px; }
  .pnp-exhibitors__subhead{ font-size:16px; }
  .pnp-exhibitors__grid{ grid-template-columns:repeat(2,1fr); }
  .pnp-exhibitors__photos{ grid-template-columns:1fr; gap:24px; }
  .pnp-exhibitors__modal-box{ padding:40px 24px 24px; }
}
@media (max-width:540px){
  .pnp-exhibitors__eyebrow{ font-size:32px; }
  .pnp-exhibitors__subhead{ font-size:15px; }
  .pnp-exhibitors__modal-box{ top:52%; }
  .pnp-exhibitors__mlogo { margin:bottom:14px }
  .pnp-exhibitors__mcompany { margin-bottom:9px }
  .pnp-exhibitors__murl { margin-bottom:13px; }
}