/* ===== 変数 ===== */
:root{ --bezier:cubic-bezier(.20,.70,.20,1); }

/* ===== ベース ===== */
.west-course{max-width:1140px;margin:0 auto;padding:0 24px;}
.west-course h1{font-size:48px;line-height:1.2;margin:72px 0 12px;font-weight:600;font-family:"Baskervville",serif;}
.west-course .lead{color:#333;line-height:1.9;margin-bottom:32px;max-width:820px;}

/* ===== ヒーロー ===== */
.hero-img{position:relative;overflow:hidden;aspect-ratio:16/9;}
.hero-img video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.hero-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.02);}

/* === Hero 内でポインターに === */
.hero-img { cursor: pointer; }
.hero-img:focus-visible { outline: 2px solid rgba(255,255,255,.9); outline-offset: -2px; }

/* === タブ内の画像アイコン === */
.gal__tab img{ width:40px; height:35px; display:inline-block; }

/* ===== ホールギャラリー（ボタン） ===== */
.gallery{padding:56px 0 20px;}
.gallery .box{display:grid;grid-template-columns:360px 1fr;gap:28px;align-items:center;margin:0;padding:2em;border-top:1px solid #888;border-bottom:1px solid #888;}
.gallery .thumb{aspect-ratio:16/10;overflow:hidden;box-shadow:0 8px 20px rgba(0,0,0,.12);}
.gallery .thumb img{width:100%;height:100%;display:block;}
.gallery h2{font-size:1.8em;font-weight:600;color:#888;margin:0 0 8px;font-family:"Baskervville",serif;}
.btn-line{display:inline-block;padding:12px 22px;border:1px solid #4b8;color:#4b8;text-decoration:none;font-size:14px;border-radius:999px;transition:.2s;}
.btn-line:hover{background:#e9fff3}

/* ===== コースデータ表（Ladies追加） ===== */
.table-wrap{overflow:auto;border-left:1px solid #888;margin:28px 0 64px;}
table.west{width:100%;border-collapse:collapse;background:#fff;min-width:760px;}
table.west thead th{background:#666;font-weight:400;color:#fff;padding:14px 12px;text-align:center;}
table.west tbody td{padding:14px 12px;border-bottom:1px solid #888;border-right:1px solid #888;text-align:center;}
.glay-back{background:#eee;}

/* ======== モーダル ======== */
.modal{position:fixed;inset:0;z-index:1000;display:none}
.modal.is-open{display:block}
.modal__bg{position:absolute;inset:0;background:rgba(0,0,0,.65);backdrop-filter:saturate(80%) blur(1px);}
.modal__panel{position:absolute;inset:20px;background:#111;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.45);}
@media (max-width:900px){ .modal__panel{inset:8px} }

/* 本体 */
.gal{position:relative;height:100%;display:grid;grid-template-columns:1fr;}
.gal__media{position:relative;background:#000;overflow:hidden;height:100%;}
.gal__main-img,.gal__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none;}
.gal__main-img.is-active,.gal__video.is-active{display:block}
.gal__overlay-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.45),rgba(0,0,0,0) 40%);pointer-events:none;z-index:2}

/* ナビ矢印＝写真送り */
.gal__nav{position:absolute;inset:0;z-index:7;pointer-events:none}
.gal__arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  pointer-events:auto;width:44px;height:88px;display:grid;place-items:center;
  border:none;background:rgba(0,0,0,.35);color:#fff;font-size:24px;border-radius:6px;cursor:pointer;
  transition:opacity .25s;
}
#prevPhoto{left:8px}
#nextPhoto{right:8px}
.gal__arrow:hover{opacity:.9}
.gal__arrow.is-disabled{opacity:.35;pointer-events:none}

/* 下：ホール番号（デフォは画像内・中央下） */
.gal__holes{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);display:flex;gap:8px;z-index:6}
.gal__holebtn{width:34px;height:34px;border-radius:999px;border:1px solid rgba(255,255,255,.85);background:rgba(0,0,0,.25);color:#fff;font-weight:600;display:grid;place-items:center;cursor:pointer}
.gal__holebtn.is-active{background:#fff;color:#111}

/* 上中央：Photo / Drone タブ */
.gal__type{position:absolute;top:18px;left:50%;transform:translateX(-50%);display:flex;gap:14px;z-index:6}
.gal__tab{min-width:160px;height:42px;padding:0 18px;border-radius:999px;border:2px solid rgba(255,255,255,.85);background:rgba(0,0,0,.35);color:#fff;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.gal__tab.is-active{background:rgba(255,255,255,.12)}
.gal__tab svg{width:18px;height:18px}

/* キャプション＝中央寄せ */
.gal__caption{
  position:absolute;left:50%;bottom:10%;
  transform:translateX(-50%);width:calc(100% - 40px);
  color:#fff;font-weight:700;text-align:center;
  text-shadow:0 2px 10px rgba(0,0,0,.5);z-index:6
}

/* 右の情報カード */
.gal__right{position:absolute;right:16px;top:50%;z-index:5;width:min(340px,32vw);max-width:90%;padding:18px;color:#fff;transform:translateY(-50%);text-align:center;}
.gal__title{font-weight:800;font-size:24px;margin:0 0 10px}
.gal__meta{font-size:13px;opacity:.9;margin-bottom:12px}
.gal__map{width:100%;height:520px;object-fit:contain;display:block;border-radius:6px}

/* 閉じる */
.gal__close{position:absolute;right:12px;top:12px;width:40px;height:40px;border:none;border-radius:999px;background:rgba(0,0,0,.45);color:#fff;font-size:22px;cursor:pointer;z-index:8}

/* 画像枚数バー（Pager） */
.gal__pager{position:absolute;left:50%;bottom:56px;transform:translateX(-50%);display:flex;gap:6px;z-index:6}
.gal__pager span{display:block;width:24px;height:4px;border-radius:999px;background:rgba(255,255,255,.45)}
.gal__pager span.is-on{background:#fff}

/* モーダル時に背景スクロール無効 */
body.is-locked{overflow:hidden}

/* ===== 最後のコース誘導 ===== */
.course-pair{margin:64px 0 0;}
.course-pair__grid{display:grid;grid-template-columns:1fr 1fr;gap:0;}
.course-pair__cell{position:relative;height:340px;overflow:hidden;isolation:isolate;}
.course-band__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;filter:brightness(1.2);transform-origin:center;transition:transform 1.1s var(--bezier),filter .8s var(--bezier)}
.course-band__overlay{position:absolute;inset:0;display:grid;place-items:center;color:#fff;text-align:center;padding:22px;background:linear-gradient(to bottom,rgba(0,0,0,.25),rgba(0,0,0,.35));z-index:2}
.course-pill{display:inline-block;border:2px solid rgba(255,255,255,.92);border-radius:999px;padding:10px 90px;background:rgba(255,255,255,.04);transition:transform .6s var(--bezier),box-shadow .6s var(--bezier)}
.course-pill .en{font-family:"Baskervville",serif;font-weight:400;font-size:1.5em;}
.course-ja{font-size:1em;font-weight:300;font-family:"Roboto",sans-serif;margin-top:2em}
.course-desc{margin-top:3em;font-weight:300;font-family:"Roboto",sans-serif;line-height:1.8;font-size:.8rem;text-shadow:0 2px 8px rgba(0,0,0,.45)}
.course-pair a:hover .course-band__bg{transform:scale(1.028);filter:brightness(1.3)}
.course-pair a:hover .course-pill{transform:translateY(-2px)}

/* ===== レスポンシブ ===== */
@media (max-width:900px){
  .gallery .box{grid-template-columns:1fr;gap:16px;}
  .course-pair__grid{grid-template-columns:1fr;}
  .course-pair__cell{height:300px;}
  .course-pill{padding:10px 48px;}
}

/* ======= スマホ：中央16:9パネル＋外側フッター帯 ======= */
@media (max-width:767px){
  .modal__panel{position:fixed; left:50%; top:50%;transform:translate(-50%,-50%);width:min(96vw, 860px);max-width:calc(78vh * 1.7778);aspect-ratio:16/9; max-height:78vh;overflow:hidden;}
  .gal__right{
    right:10px; top:50%; transform:translateY(-50%);
    width:min(280px,36vw); padding:12px; border-radius:8px;
  }
  .gal__type{ top:12px; gap:10px; }
  .gal__tab{ min-width:110px; height:34px; padding:0 12px;font-size:13px; }
  .gal__caption{ bottom:12%; width:calc(100% - 28px); }
  .gal__nav .gal__arrow{ width:38px; height:76px; font-size:20px; border-radius:6px; }

  #holesFooter.gal__footer{display:flex; position:absolute; left:0; right:0; bottom:0;flex-direction:column; align-items:center; justify-content:center;gap:4px; padding:10px 12px;z-index:8;}
  #holesFooter .gal__pager{ position:static; transform:none; bottom:auto; }
  #holesFooter .gal__holes{position:static; transform:none; margin:0; padding:0; display:flex; gap:6px;}
  #holesFooter .gal__holebtn{
    width:34px; height:34px; font-size:14px; border:1px solid rgba(255,255,255,.9);
    background:rgba(0,0,0,.25); color:#fff;
  }
  #holesFooter .gal__holebtn.is-active{ background:#fff; color:#111; }

  .gal__media > .gal__holes{ display:none !important; }

  #holesFooter.gal__footer{top: 50%;flex-direction: column;}
  #holesFooter .gal__title{
    display:block !important;
    font-size:18px; font-weight:800; margin:0;
    text-align:center; color:#fff;
    text-shadow:0 2px 10px rgba(0,0,0,.5);
  }
  #holesFooter .gal__meta{
    display:block !important;
    font-size:12px; margin:2px 0 2px;
    text-align:center; color:#fff; opacity:.95;
  }
  #holesFooter .gal__pager{ margin-top:4px; }
  #holesFooter .gal__holes{ margin-top:4px; }

  .west-course h1 {font-size: 24px;}
  .west-course .lead {font-size:0.8em;}
  .gallery h2 {font-size: 1.3em;}
  .txt p{font-size:0.8em;margin-bottom: 2em;}
  .gallery .box {padding: 2em 0.5em 0.5em;}
  table.west {min-width: 550px;}
  .gal__caption{font-size:0.8em;}
  .gal__nav .gal__arrow {width: 26px;height: 50px;}
  .gal__close {width: 30px;height: 30px;}
  .gal__tab {height: 25px;border: 1px solid rgba(255, 255, 255, .85);}
  .gal__right {right: -5%;}
  .gal__map {width: 70%;height: auto;}
  #holesFooter .gal__title {font-weight: 500;}
}
	
/* 1) ①〜⑨（下部のホール番号）を常に下中央 */
.gal__holes{
  left:50% !important;
  transform:translateX(-50%) !important;
}

/* 2) 画像枚数バー（Pager）も常に下中央 */
.gal__pager{
  left:50% !important;
  transform:translateX(-50%) !important;
}

/* 3) 左右矢印を常に縦方向の中央に */
.gal__arrow{
  top:50% !important;
  transform:translateY(-50%) !important;
}

/* ====== スマホ最適化（SPでも常に中央） ====== */
@media (max-width:767px){
  #holesFooter.gal__footer{justify-content:center !important;align-items:center !important;text-align:center !important;}
  #holesFooter .gal__pager, #holesFooter .gal__holes{justify-content:center !important;}
  .gal__close{ top: 10px !important; }
  .gal__pager{ transform: translateX(0%) !important; }
  .gal__holes{ transform: translateX(0%) !important; }
.gal__caption {font-size: 0.72em;}
.gal__tab{font-size: 12.35px;}
}

/* ===== ボタン内テキストの厳密センタリング ===== */
.gal__holebtn, .gal__arrow, .gal__close{
  display: inline-grid !important;
  place-items: center !important;
  text-align: center !important;
  line-height: 1 !important;
  padding: 0 !important;
  box-sizing: border-box;
}
.gal__holebtn{ font-variant-numeric: tabular-nums; }
#holesFooter .gal__holebtn{
  display: inline-grid !important;
  place-items: center !important;
  text-align: center !important;
  line-height: 1 !important;
  padding: 0 !important;
}

@media (min-width:768px){
.gal__tab{font-size: 1em;}

.gal__caption {font-size: 1.2em;}
}