/* ========= ルート変数（未定義対策） ========= */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }

#club-slider,#club-slider .fac-slide figcaption{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
#club-slider .fac-slide figcaption{ font-size:clamp(12px,3.3vw,14px); line-height:1.4; }

/* 横スクロール抑止 */
:where(html, body){ overflow-x: clip; }
@supports not (overflow: clip){
  :where(html, body){ overflow-x: hidden; }
}

.fac-page img{ display:block; width:100%; height:auto; }
.fac-page{ --container: 85vw; }
.fac-container{ margin-inline:auto; }
.fac-section.fac-clubhouse{ background:#fff; padding:3em 0 3em; }
.fac-section.fac-range{ background:#fff; padding:2em 0; }
.fac-pc{ width: var(--container); }

.fac-h2{ font-size:clamp(28px,4.4vw,60px); line-height:1.2; margin:0 0 .6em; color:#4c7650; white-space:nowrap; }
.fac-h2 small{ display:block; font-size:clamp(14px,1.6vw,16px); color:#6e6e6e; margin-top:.4em; letter-spacing:.1em; font-weight:400; }
.fac-h2 span{ background:linear-gradient(135deg,var(--grad1) 0%,var(--grad2) 50%,var(--grad3) 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; font-weight:500; font-family:"Baskervville",serif; font-size:30px; display:inline-block; opacity:0; transform:translateY(20px); transition:opacity .4s ease-out, transform .4s ease-out; }
.fac-h2 span.show{ opacity:1; transform:translateY(0); }

.fac-lead{ width:55%; font-family:"Hiragino Sans","Noto Sans JP",sans-serif; line-height:1.9; }
.fac-lead02{ line-height:1.9; font-family:"Hiragino Sans","Noto Sans JP",sans-serif; }
.fac-lead03{ width:100%; font-family:"Hiragino Sans","Noto Sans JP",sans-serif; line-height:1.9; margin-bottom:5em; }
/* 追加の注意書き */
.fac-note{ margin:.6em 0 0; color:#444; font-size:.95em; }

 /* Hero */
.fac-hero{ position:relative; min-height:clamp(260px,48vw,480px); background:center/cover no-repeat var(--hero); display:grid; place-items:center; isolation:isolate; }
.fac-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.15)); z-index:0; }
.fac-hero__inner{ position:relative; z-index:1; text-align:center; color:#fff; }
.fac-hero__en{ font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif; letter-spacing:.04em; font-size:clamp(34px,5vw,56px); margin:0 0 .3em; }
.fac-hero__ja{ margin:0; font:normal 13px/1 "Hiragino Sans","Noto Sans JP",sans-serif; }

 /* 2-col media */
.fac-media{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(20px,3vw,40px); align-items:center; }
.fac-media__img{ overflow:hidden; }

 /* Slider（PCはコンテナ内） */
.fac-slider{ --gap:clamp(8px,1.4vw,16px); position:relative; margin:28px auto 0; overflow:hidden; }
.fac-slider__track{ display:flex; gap:var(--gap); transition: transform .65s cubic-bezier(.20,.70,.20,1); will-change: transform; overflow:visible; }
.fac-slide{ flex:0 0 auto; position:relative; overflow:hidden; background:#e7ece9; }
.fac-slide img{ display:block; width:100%; object-fit:cover; }
.fac-slide figcaption{ position:absolute; inset:auto 0 0 0; padding:6px 8px; font-size:12px; color:#fff; font-weight:600; background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.55)); text-shadow:0 1px 2px rgba(0,0,0,.35); pointer-events:none; }
/* ナビ */
.fac-slider__nav{ position:absolute; top:calc(50% - var(--dots-h,0px)/2); transform:translateY(-50%); z-index:5; width:42px; height:42px; border:none; border-radius:999px; background:rgba(0,0,0,.35); color:#fff; font-size:22px; display:grid; place-items:center; transition:opacity .28s, transform .28s, filter .28s; }
.fac-slider__nav::before{ content:""; position:absolute; left:50%; top:50%; width:10px; height:10px; border-right:3px solid #fff; border-bottom:3px solid #fff; transform:translate(-50%,-50%) rotate(135deg); }
.fac-slider__nav.is-next::before{ transform:translate(-50%,-50%) rotate(-45deg); }
.fac-slider__nav.is-prev{ left:6px; }
.fac-slider__nav.is-next{ right:6px; }
.fac-dots{ display:flex; gap:8px; justify-content:center; margin-top:14px; }
.fac-dot{ width:15px; height:15px; border-radius:9999px; background:#cfd7cf; cursor:pointer; border:none; }
.fac-dot[aria-selected="true"]{ background:linear-gradient(135deg,var(--grad1) 0%,var(--grad2) 50%,var(--grad3) 100%); }

 /* Range */
.fac-grid--thumbs{ margin-top:18px; display:grid; grid-template-columns:repeat(6,1fr); gap:12px; }
.fac-grid--thumbs img{ aspect-ratio:4/3; object-fit:cover; }
.fac-range .fac-media__col{ display:flex; flex-direction:column; }
.fac-range .fac-grid--thumbs{ margin-top:-.5em; display:grid; grid-template-columns:repeat(3,1fr); gap:3px; }
.fac-media__body{ padding:0 2.2em 0 0; }
.fac-range .fac-thumb{ position:relative; overflow:hidden; cursor:pointer; }
.fac-range .fac-thumb::after{ content:""; position:absolute; inset:0; background:rgba(0,0,0,.45); opacity:.45; transition:opacity .2s ease; z-index:1; pointer-events:none; }
.fac-range .fac-thumb.is-active::after{ opacity:0; }
.fac-range .fac-thumb:not(.is-active)::after{ opacity:.45; }
.fac-range .fac-thumb:not(.is-active):hover::after{ opacity:.28; }
.fac-range .fac-thumb figcaption{ position:absolute; inset:auto 0 0 0; padding:6px 8px; font-size:clamp(10px,1vw,16px); color:#fff; background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.55)); text-shadow:0 1px 2px rgba(0,0,0,.35); z-index:2; font-weight:700; pointer-events:none; }
.fac-range .fac-media__img img{ transition:opacity .25s ease; }
.fac-range .fac-thumb.is-active img{ outline:3px solid #6fa074; outline-offset:2px; }

 /* Restaurant */
.fac-section.fac-restaurant{ margin-top:10em; margin-bottom:8em; }
#facility .fac-restaurant .fac-restaurant__grid{ position:relative; display:block; min-height:clamp(560px,64vw,760px); }
#facility .fac-restaurant__main{ position:absolute; top:clamp(-99px,-12vw,-70px); width:50%; z-index:1; }
#facility .fac-restaurant__main img{ width:100%; aspect-ratio:16/9; object-fit:cover; box-shadow:0 10px 24px rgba(0,0,0,.15); }
#facility .fac-restaurant__text{ position:absolute; left:35%; top:clamp(140px,12vw,160px); width:40%; background:#fff; padding:1em 2em; z-index:3; }
#facility .fac-restaurant__mosaic img{ position:absolute; display:block; width:min(300px,28vw); aspect-ratio:4/3; object-fit:cover; box-shadow:0 10px 24px rgba(0,0,0,.15); z-index:2; }
#facility .fac-restaurant__mosaic img:nth-child(1){ right:22%; top:clamp(-53px,0vw,0px); width:20%; z-index:10; height:22%; }
#facility .fac-restaurant__mosaic img:nth-child(2){ right:-5%; top:7vw; width:35%; height:440px; }
#facility .fac-restaurant__mosaic img:nth-child(3){ left:22%; top:clamp(300px,33vw,350px); width:clamp(220px,17vw,250px); }
#facility .fac-restaurant__mosaic img:nth-child(4){ left:32%; bottom:clamp(-51px,-3.5vw,-67px); width:20%; height:20%; }
#facility .fac-restaurant__mosaic img:nth-child(5){ right:25%; bottom:clamp(-30px,-2.5vw,-40px); width:20%; z-index:15; height:20%; }

 /* ボタン */
#facility .fac-btn{ display:inline-block; padding:12px 22px; border:1px solid #4b8; color:#4b8; text-decoration:none; font-size:14px; border-radius:999px; transition:.2s; }
#facility .fac-btn:hover{ background:#e9fff3; }
#facility .fac-btn:active{ transform:translateY(1px); }
#facility .fac-btn:focus-visible{ outline:3px solid #a8d4aa; outline-offset:3px; }

 /* 1600px〜微調整 */
@media (min-width:1600px){
  #facility .fac-restaurant__mosaic img:nth-child(2){ top:3vw; }
}

 /* タブレット */
@media (min-width:768px) and (max-width:1024px){
  #facility .fac-restaurant__grid{ min-height:clamp(560px,70vw,760px); }
  #facility .fac-restaurant__main{ width:44%; }
  #facility .fac-restaurant__text{ left:30%; top:10vw; width:50%; }
  #facility .fac-restaurant__mosaic img:nth-child(1){ right:15%; top:-4vw; width:22%; }
  #facility .fac-restaurant__mosaic img:nth-child(2){ right:-2%; top:8vw; width:32%; height:320px; }
  #facility .fac-restaurant__mosaic img:nth-child(3){ left:15%; top:29vw; width:clamp(200px,18vw,240px); }
  #facility .fac-restaurant__mosaic img:nth-child(4){ left:28%; bottom:-4.4vw; width:24%; }
  #facility .fac-restaurant__mosaic img:nth-child(5){ right:22%; bottom:-.6vw; width:22%; z-index:15; }
  #club-slider .fac-slide img{ height:10em; }
  .fac-lead{ width:80%; }
}

 /* 小さめ端末：スライド高さ */
@media (max-width:560px){
  .fac-slide img{ height:160px; }
}

 /* SP 並び替え（要望：クラブハウスはテキスト→画像） */
@media (max-width:767.98px){
  .fac-media{ grid-template-columns:1fr; }
  .fac-media__body{ padding:0 2em; }
  .fac-lead{ width:100%; }

  #facility .fac-media__img  { grid-area: img; }
  #facility .fac-media__body { grid-area: body; }

  /* Club House：テキスト → 画像 */
  #facility .fac-section.fac-clubhouse .fac-media{ grid-template-areas:"body" "img"; }

  /* Range：画像 → テキスト */
  #facility .fac-section.fac-range .fac-media{ grid-template-areas:"img" "body"; }

  .fac-h2 span{ font-size:25px; }
  .fac-lead, .fac-lead02, .fac-lead03{ font-size:.8em; }
  .fac-section.fac-clubhouse{ padding:2em 0 3em; }

  /* レストラン（SP） */
  #facility .fac-restaurant__main img{ display:block; width:100% !important; height:15em !important; aspect-ratio:auto !important; object-fit:cover !important; object-position:center; max-height:none !important; }
  #facility .fac-restaurant__main{ position:relative !important; width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
  #facility .fac-restaurant__text{ width:90%; left:50%; transform:translateX(-50%); top:8em; }
  .fac-h2{ font-size:2.5em; }
  .fac-lead03{ margin-bottom:1em; }
  #facility .fac-restaurant__mosaic{ position:static !important; display:grid !important; grid-template-columns:1fr 1fr; z-index:1 !important; }
  #facility .fac-restaurant__mosaic img{ position:static !important; inset:auto !important; transform:none !important; width:100% !important; aspect-ratio:4/3; object-fit:cover; box-shadow:0 8px 18px rgba(0,0,0,.12); }
  #facility .fac-restaurant__mosaic .js-rest-1,
  #facility .fac-restaurant__mosaic .js-rest-2,
  #facility .fac-restaurant__mosaic .js-rest-3,
  #facility .fac-restaurant__mosaic .js-rest-4,
  #facility .fac-restaurant__mosaic .js-rest-5{ display:none !important; }
  #facility .fac-restaurant__mosaic .js-rest-6,
  #facility .fac-restaurant__mosaic .js-rest-7{ display:block !important; order:1; margin-top:15em; }
  #facility .fac-restaurant__mosaic .js-rest-7{ order:2; }
}

 /* PC(>=768px)：コンテナ幅で整列 */
@media (min-width:768px){
  #facility .fac-section .fac-media{ display:grid; align-items:center; grid-template-columns:1.05fr .95fr; grid-template-areas:none !important; }
  #facility .fac-section.fac-range .fac-media{ grid-template-columns:.95fr 1.05fr; }
  #club-slider.fac-slider{ margin:28px auto 0 !important; }
  img.js-rest-6, img.js-rest-7{ display:none !important; }
}