/* 9月28日に追記：承認済みService追加セクション専用スタイル。 */
/* 9月25日に追記：WHY GP?。既存Service内のスタイルを変更せず追加範囲に限定。 */
#service-why-gp, #service-why-gp *, #service-area, #service-area * { box-sizing:border-box; }
#service-why-gp { position:relative; background:#000; color:#fff; overflow:hidden; padding:40px 0 0; scroll-margin-top:96px; }
/* 9月25日に追記：1600pxの幅上限を解除し、写真・図面を画面両端へ配置。 */
#service-why-gp .gp-why__canvas { position:relative; width:100%; aspect-ratio:1200/1320; margin:auto; isolation:isolate; }
#service-why-gp .gp-why__title { position:absolute; top:4%; right:2%; width:48.5%; margin:0; z-index:3; }
#service-why-gp .gp-why__title img { width:100%; height:auto; }
#service-why-gp .gp-why__intro { position:absolute; top:19%; right:4%; width:39%; z-index:3; margin:0; color:#fff; font-size:clamp(13px,1.27vw,18px); font-weight:700; line-height:1.85; text-align:right; letter-spacing:0; }
#service-why-gp .gp-why__photo { position:absolute; height:auto; z-index:1; display:block; }
#service-why-gp .gp-why__photo--lead { left:0; top:0; width:62.1%; }
#service-why-gp .gp-why__photo--direction { right:0; top:33%; width:39.5%; }
#service-why-gp .gp-why__photo--team { left:0; top:56%; width:39.5%; }
#service-why-gp .gp-why__feature { position:absolute; z-index:3; width:52%; }
#service-why-gp .gp-why__feature--lead { top:43.5%; left:4.3%; }
#service-why-gp .gp-why__feature--direction { top:62.5%; right:4.3%; width:56%; text-align:right; }
#service-why-gp .gp-why__feature--team { top:84%; left:4.3%; width:45%; }
#service-why-gp h3 { margin:0 0 18px; font-size:clamp(22px,2.3vw,32px); color:#ff0; font-weight:700; line-height:1.45; letter-spacing:0; }
#service-why-gp h3 span { font-size:.68em; }
#service-why-gp .gp-why__feature p { margin:0; color:#fff; font-size:clamp(13px,1.23vw,17px); line-height:2; letter-spacing:0; }
#service-why-gp .gp-why__blueprint { position:absolute; z-index:0; height:auto; pointer-events:none; }
#service-why-gp .gp-why__blueprint--left { top:37%; left:0; width:32.7%; }
#service-why-gp .gp-why__blueprint--right { bottom:0; right:0; width:62%; }
/* 9月25日に追記：世界地図と地域別リスト。PCの光点は近接判定し、SPでは地図操作を無効化。 */
#service-area { padding:60px 0 40px; background:#000; color:#fff; }
#service-area .gp-area__header { display:grid; grid-template-columns:1fr 1.15fr; gap:5%; align-items:start; width:92%; max-width:1472px; margin:auto; }
#service-area h2 { margin:0; font:500 clamp(40px,6.1vw,88px)/1.15 'Oswald',sans-serif; color:#fff825; letter-spacing:-.025em; }
#service-area .gp-area__subtitle { margin:14px 0 0; font-size:14px; font-weight:700; }
#service-area .gp-area__intro { margin:0; font-size:clamp(13px,1.25vw,17px); line-height:2; letter-spacing:0; }
#service-area .gp-area__map { position:relative; max-width:1600px; margin:32px auto 0; }
#service-area .gp-area__map > img { display:block; width:100%; height:auto; }
/* 9月25日に追記：全28地点のPCホバーと発光。密集部も光点の中心を選択可能。 */
#service-area .gp-area__point { position:absolute; left:var(--x); top:var(--y); width:14px; height:14px; transform:translate(-50%,-50%); z-index:1; pointer-events:none; }
#service-area .gp-area__point[hidden] { display:none; }
#service-area .gp-area__point.is-open { z-index:2; }
/* 9月25日に追記：輪郭の強い光を、ゆっくり広がる淡い光へ調整。 */
#service-area .gp-area__point::before { content:''; position:absolute; inset:-12px; border-radius:50%; background:radial-gradient(circle,rgba(255,255,218,.72) 0%,rgba(255,248,156,.42) 20%,rgba(255,240,112,.18) 42%,rgba(255,237,128,.05) 62%,transparent 78%); filter:blur(3px); opacity:0; transform:scale(.8); transition:opacity .35s ease,transform .5s ease; mix-blend-mode:screen; }
#service-area .gp-area__point.is-open::before { opacity:1; transform:scale(1.1); }
#service-area .gp-area__point button { display:block; width:14px; height:14px; padding:0; border:0; border-radius:50%; background:transparent; pointer-events:none; }
#service-area .gp-area__point button:focus-visible { outline:2px solid #ff0; outline-offset:4px; }
#service-area .gp-area__tooltip { position:absolute; display:block; right:12px; bottom:12px; min-width:max-content; border:1px solid #fff825; border-radius:3px; padding:5px 7px; background:#000; color:#fff; text-align:center; pointer-events:auto; }
#service-area .gp-area__tooltip[hidden] { display:none; }
#service-area .gp-area__tooltip strong { display:block; color:#fff825; font:500 15px/1.3 'Oswald',sans-serif; }
#service-area .gp-area__tooltip span { display:block; margin-top:2px; font-size:11px; line-height:1.4; }
/* 9月25日に追記：SPとタッチ主体の端末にはホバー用の操作要素を出さない。 */
@media (max-width:767px), (hover:none), (pointer:coarse) {
  #service-area .gp-area__point { display:none; }
}
/* 9月25日に追記：動きを抑える設定では発光状態を即時切替。 */
@media (prefers-reduced-motion:reduce) {
  #service-area .gp-area__point::before { transition:none; }
}
#service-area .gp-area__regions { display:grid; grid-template-columns:3fr 4.4fr 2.4fr; gap:12px; width:93%; max-width:1488px; margin:-4px auto 0; position:relative; }
#service-area .gp-area__region { padding:12px 14px; border:1px solid #ccc; min-width:0; }
#service-area .gp-area__region h3 { display:flex; flex-wrap:wrap; align-items:baseline; column-gap:8px; margin:0 0 12px; border-bottom:1px solid #ccc; padding-bottom:6px; font:500 clamp(15px,1.5vw,21px)/1.35 'Oswald',sans-serif; color:#fff825; letter-spacing:0; }
#service-area .gp-area__region h3 span { font:500 10px/1.5 sans-serif; color:#fff; }
#service-area .gp-area__region ul { display:grid; grid-template-rows:repeat(3,auto); grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); column-gap:9px; row-gap:5px; list-style:none; margin:0; padding:0; }
#service-area .gp-area__region li { position:relative; padding-left:12px; font-size:clamp(9px,.8vw,11px); line-height:1.5; letter-spacing:0; }
#service-area .gp-area__region li::before { content:''; position:absolute; left:0; top:4px; width:8px; height:8px; border-radius:50%; background:#fff; }
#service-area .gp-area__region li span { display:block; }
#service-area .gp-area__region li [lang] { color:#fff825; font:500 clamp(11px,1vw,14px)/1.35 'Oswald',sans-serif; }
/* 9月25日に追記：タブレット以下は写真と本文を順番に配置し、読みやすい文字サイズを維持。 */
@media (max-width:1000px) {
  #service-why-gp { padding-top:40px; }
  #service-why-gp .gp-why__canvas { display:flex; flex-direction:column; aspect-ratio:auto; }
  #service-why-gp .gp-why__title, #service-why-gp .gp-why__intro, #service-why-gp .gp-why__photo, #service-why-gp .gp-why__feature { position:relative; inset:auto; }
  #service-why-gp .gp-why__title { width:min(78%,582px); align-self:flex-end; margin:0 4% 28px 0; }
  #service-why-gp .gp-why__intro { width:auto; margin:0 6% 36px; font-size:16px; text-align:left; }
  #service-why-gp .gp-why__photo--lead { width:min(90%,840px); }
  #service-why-gp .gp-why__photo--direction, #service-why-gp .gp-why__photo--team { width:min(78%,660px); margin-top:56px; }
  #service-why-gp .gp-why__photo--direction { align-self:flex-end; }
  #service-why-gp .gp-why__feature { width:auto; margin:12px 6% 0; text-align:left; }
  #service-why-gp h3 { font-size:28px; }
  #service-why-gp .gp-why__feature p { font-size:16px; }
  #service-why-gp .gp-why__blueprint--left { top:24%; width:60%; opacity:.65; }
  #service-why-gp .gp-why__blueprint--right { width:90%; bottom:0; opacity:.7; }
  #service-why-gp .gp-desktop-break, #service-area .gp-desktop-break { display:none; }
  #service-area { padding-top:80px; }
  #service-area .gp-area__regions { grid-template-columns:1fr; gap:16px; }
  #service-area .gp-area__region h3 { font-size:22px; }
  #service-area .gp-area__region h3 span { font-size:12px; }
  #service-area .gp-area__region li { font-size:13px; padding-left:15px; }
  #service-area .gp-area__region li [lang] { font-size:14px; }
  #service-area .gp-area__region ul { gap:12px; }
}
/* 9月25日に追記：SPの写真・余白・リスト・地図ツールチップ。 */
@media (max-width:600px) {
  #service-why-gp .gp-why__title { width:88%; margin-bottom:24px; }
  #service-why-gp .gp-why__intro { font-size:14px; line-height:1.9; }
  #service-why-gp .gp-why__photo--lead { width:110%; margin-left:-10%; }
  #service-why-gp .gp-why__photo--direction, #service-why-gp .gp-why__photo--team { width:95%; margin-top:44px; }
  #service-why-gp h3 { font-size:23px; margin-bottom:14px; }
  #service-why-gp h3 span { font-size:.74em; }
  #service-why-gp .gp-why__feature p { font-size:14px; line-height:1.95; }
  #service-area { padding:64px 0 40px; }
  #service-area .gp-area__header { display:block; width:88%; }
  #service-area h2 { font-size:44px; }
  #service-area .gp-area__subtitle { margin-top:10px; font-size:13px; }
  #service-area .gp-area__intro { margin-top:24px; font-size:14px; line-height:1.95; }
  #service-area .gp-area__map { margin:24px auto 38px; }
  #service-area .gp-area__regions { width:88%; }
  #service-area .gp-area__region { padding:16px; }
  #service-area .gp-area__region ul { grid-template-rows:none; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-flow:row; }
  #service-area .gp-area__region li { font-size:12px; }
}
/* 9月25日に追記：ユーザー指定のEVENT CATEGORY・STAGE DESIGNの余白。 */
#service_new #event-c { padding-top:3rem; }
#service_new #stage-design { margin-top:3rem; }
/* 9月25日に追記：SPのEVENT CATEGORY上余白。 */
@media (max-width:767px) {
  #service_new #event-c { padding-top:1rem; }
}
/* 9月28日に追記：Service見出しの指定改行をSPでも表示し、2行の文字列を収める。 */
@media (max-width:767px) {
  #service_new .sec-ttl-holder .sec-ttl span.jp { font-size:clamp(1.2rem,3.5vw,1.4rem); white-space:nowrap; }
  #service_new .sec-ttl-holder .sec-ttl span.jp br { display:inline; }
}
