/* **********************
楽天リセット
********************** */
.travel__tab {
	position:static!important;
}

#htlContents a:link,
#htlContents a:visited {
  color: inherit !important;
  text-decoration: none !important;
}

#htlContents a.btn-plan,
#htlContents a.btn-plan:link,
#htlContents a.btn-plan:visited {
  background: var(--dark) !important;
  color: var(--bg) !important;
  text-decoration: none !important;
}

#htlContents a.btn-red,
#htlContents a.btn-red:link,
#htlContents a.btn-red:visited {
  background: var(--red) !important;
  color: #fff !important;
}

#htlContents a.btn-text,
#htlContents a.btn-text:link,
#htlContents a.btn-text:visited {
  color: var(--gold) !important;
}

#htlContents a.btn-red,
#htlContents a.btn-red:link,
#htlContents a.btn-red:visited {
  color: #fff !important;
}

#htlContents .footer-col a:link,
#htlContents .footer-col a:visited,
#htlContents .footer-nav a:link,
#htlContents .footer-nav a:visited,
#htlContents .f-spacer a:link,
#htlContents .f-spacer a:visited {
  color: rgba(255,255,255,.82) !important;
}

html body #htlContents a.btn-red:link,
html body #htlContents a.btn-red:visited {
  background: #c0392b !important;
  color: #ffffff !important;
  text-decoration: none !important;
}
html body #htlContents a.btn-red:hover {
  background: #a93226 !important;
  color: #ffffff !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 10px 32px rgba(192,57,43,.5) !important;
}
html body #htlContents a.btn-plan:link,
html body #htlContents a.btn-plan:visited {
  background: #2c2a25 !important;
  color: #f8f8f2 !important;
  text-decoration: none !important;
}
html body #htlContents a.btn-plan:hover {
  background: #f8f8f2 !important;
  color: #2c2a25 !important;
}
html body #htlContents a.btn-text:link,
html body #htlContents a.btn-text:visited {
  color: #b5a07a !important;
  text-decoration: none !important;
}
html body #htlContents a.btn-text:hover {
  color: #2c2a25 !important;
  border-color: #2c2a25 !important;
  gap: 12px !important;
}
html body #htlContents a.btn-ghost:link,
html body #htlContents a.btn-ghost:visited {
  color: #ffffff !important;
  text-decoration: none !important;
}
html body #htlContents a.btn-ghost:hover {
  background: rgba(255,255,255,.25) !important;
  color: #ffffff !important;
}
html body #htlContents a.btn-ghost-dark:link,
html body #htlContents a.btn-ghost-dark:visited {
  color: rgba(255,255,255,.85) !important;
  text-decoration: none !important;
}
html body #htlContents a.btn-ghost-dark:hover {
  color: #ffffff !important;
}
html body #htlContents a.btn-outline:link,
html body #htlContents a.btn-outline:visited {
  color: #b5a07a !important;
  text-decoration: none !important;
}
html body #htlContents a.btn-outline:hover {
  background: #b5a07a !important;
  color: #ffffff !important;
}
html body #htlContents .nav-links a:link,
html body #htlContents .nav-links a:visited {
  color: #4a4640 !important;
  text-decoration: none !important;
}
html body #htlContents .nav-links a:hover {
  color: #2c2a25 !important;
}
html body #htlContents .footer-col a:link,
html body #htlContents .footer-col a:visited,
html body #htlContents .footer-nav a:link,
html body #htlContents .footer-nav a:visited {
  color: rgba(255,255,255,.82) !important;
  text-decoration: none !important;
}
html body #htlContents .f-spacer a:link,
html body #htlContents .f-spacer a:visited {
  color: #b5a07a !important;
  text-decoration: none !important;
}

html body #htlContents .nav-cta a:link,
html body #htlContents .nav-cta a:visited {
  background: #c0392b !important;
  color: #ffffff !important;
  text-decoration: none !important;
}
html body #htlContents .nav-cta a:hover {
  background: #a93226 !important;
  color: #ffffff !important;
}

html body #htlContents a.btn-room-reserve:link,
html body #htlContents a.btn-room-reserve:visited {
  background: #c0392b !important;
  color: #ffffff !important;
  text-decoration: none !important;
}
html body #htlContents a.btn-room-reserve:hover {
  background: #a93226 !important;
  color: #ffffff !important;
}

/* **********************
Style
********************** */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html {
  --bg:#f8f8f2; --footer:#88ad6c; --dark:#2c2a25;
  --gold:#b5a07a; --goldl:#d4c4a0; --text:#4a4640;
  --textl:#8a8478; --red:#c0392b; --border:#e4e0d8;
  --inner:950px;
}
body { font-family:'Helvetica Neue',Arial,'Hiragino Kaku Gothic ProN','Hiragino Sans',sans-serif !important; background:var(--bg) !important; color:var(--dark) !important; }

/* **********************
adjast
********************** */
.str-pt {
  width:100%;
}
.str-pt img {
  width:100%;
  height:auto;
}

.txt-lnk {
  margin-top:20px;
}

.bl-ttl {
  color:#88ad6c;
  font-size:40px;
}

/* NAV */
.nav { position:sticky; top:0; left:0; width:100%; z-index:9999; background:rgba(248,248,242,0.6); backdrop-filter:blur(10px); border-bottom:1px solid var(--border); }
.nav-in { max-width:var(--inner); margin:0 auto; display:flex; align-items:center; justify-content:space-between; height:60px; padding:0 0; }
.logo { text-decoration:none; }
.logo-en { display:block; font-size:9px; letter-spacing:.35em; color:var(--gold); text-transform:uppercase; }
.logo-ja { display:block; font-size:16px; font-weight:700; letter-spacing:.1em; color:var(--dark); margin-top:2px; }
.nav-links { display:flex; align-items:center; gap:2px; list-style:none; }
.nav-links a { display:block; padding:8px 12px; font-size:11px; letter-spacing:.15em; color:var(--text); text-decoration:none; position:relative; transition:color .25s; }
.nav-links a::after { content:''; position:absolute; bottom:4px; left:12px; right:12px; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .3s cubic-bezier(.4,0,.2,1); }
.nav-links a:hover { color:var(--dark); }
.nav-links a:hover::after { transform:scaleX(1); }
.nav-active a { color: var(--dark); }
.nav-active a::after { transform: scaleX(1); }
.nav-cta a { background:var(--red)!important; color:#fff!important; border-radius:3px; padding:10px 18px!important; font-weight:700; transition:background .3s!important; }
.nav-cta a::after { display:none!important; }
.nav-cta a:hover { background:#a93226!important; }

/* FV SLIDESHOW */
.fv { position:relative; margin-top:0px; width:100%; height:calc(100vh - 60px); min-height:540px; overflow:hidden; }
.fv-slides { position:absolute; inset:0; }
.fv-overlay { position:absolute; inset:0; background:linear-gradient(135deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.2) 60%,rgba(0,0,0,.44) 100%); z-index:1; }
.fv-slide { position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; animation:fvFade 25s infinite; }
.s1{animation-delay:0s} .s2{animation-delay:5s} .s3{animation-delay:10s} .s4{animation-delay:15s} .s5{animation-delay:20s}
@keyframes fvFade {
  0%{opacity:0;transform:scale(1)} 4%{opacity:1} 20%{opacity:1;transform:scale(1.06)} 24%{opacity:0;transform:scale(1.06)} 100%{opacity:0}
}
.fv-content { position:absolute; inset:0; z-index:2; width:100%; max-width:calc(var(--inner) + 48px); margin:0 auto; left:0; right:0; display:flex; flex-direction:column; justify-content:center; padding:0 60px; }
.fv-label { font-size:10px; letter-spacing:.4em; color:var(--goldl); text-transform:uppercase; margin-bottom:20px; padding-bottom:10px; border-bottom:1px solid rgba(181,160,122,.4); display:inline-block; animation:fadeUp .8s .1s both; }
.fv-h1 { font-size:clamp(26px,3.8vw,44px); font-weight:700; color:#fff; line-height:1.5; letter-spacing:.06em; margin-bottom:18px; text-shadow:0 2px 20px rgba(0,0,0,.3); animation:fadeUp .8s .25s both; }
.fv-desc { font-size:14px; color:rgba(255,255,255,.85); line-height:1.9; margin-bottom:34px; max-width:450px; text-shadow:0 1px 6px rgba(0,0,0,.3); animation:fadeUp .8s .4s both; }
.fv-btns { display:flex; gap:14px; flex-wrap:wrap; animation:fadeUp .8s .55s both; }
.fv-badge { position:absolute; bottom:36px; right:48px; z-index:2; background:rgba(0,0,0,.42); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.2); border-radius:4px; padding:16px 22px; text-align:center; color:#fff; animation:fadeUp .8s .7s both; }
.badge-label{font-size:10px;letter-spacing:.2em;opacity:.7;margin-bottom:6px}
.badge-score{font-size:34px;font-weight:700;line-height:1}
.badge-stars{font-size:16px;color:var(--gold);margin-top:4px}
.badge-sub{font-size:11px;opacity:.7;margin-top:4px}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}

/* BUTTONS */
.btn-red { display:inline-flex; align-items:center; gap:8px; background:var(--red); color:#fff; font-size:14px; font-weight:700; letter-spacing:.08em; padding:15px 30px; border-radius:3px; text-decoration:none; border:2px solid var(--red); box-shadow:0 6px 22px rgba(192,57,43,.4); transition:background .3s,transform .25s,box-shadow .3s; }
.btn-red:hover { background:#a93226; border-color:#a93226; transform:translateY(-3px); box-shadow:0 10px 32px rgba(192,57,43,.5); }
.btn-lg { font-size:15px; padding:18px 38px; }
.btn-ghost { display:inline-flex; align-items:center; background:rgba(255,255,255,.14); color:#fff; font-size:13px; letter-spacing:.1em; padding:14px 26px; border-radius:3px; text-decoration:none; border:1px solid rgba(255,255,255,.45); backdrop-filter:blur(4px); transition:background .3s,border-color .3s,transform .25s; }
.btn-ghost:hover { background:rgba(255,255,255,.25); border-color:rgba(255,255,255,.8); transform:translateY(-2px); }
.btn-ghost-dark { display:inline-flex; align-items:center; background:transparent; color:rgba(255,255,255,.85); font-size:14px; font-weight:700; letter-spacing:.08em; padding:17px 34px; border-radius:3px; text-decoration:none; border:1px solid rgba(255,255,255,.35); transition:border-color .3s,color .3s,transform .25s; }
.btn-ghost-dark:hover { border-color:rgba(255,255,255,.7); color:#fff; transform:translateY(-2px); }
.btn-text { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; color:var(--gold); text-decoration:none; letter-spacing:.08em; border-bottom:1px solid var(--gold); padding-bottom:3px; transition:color .25s,gap .3s cubic-bezier(.4,0,.2,1),border-color .25s; }
.btn-text:hover { color:var(--dark); border-color:var(--dark); gap:12px; }
.btn-plan { display:flex; align-items:center; justify-content:center; gap:8px; background:var(--dark); color:var(--bg); font-size:12px; font-weight:700; letter-spacing:.08em; padding:13px; border-radius:3px; text-decoration:none; border:1px solid var(--dark); transition:background .3s,color .3s; }
.btn-plan:hover { background:var(--bg); color:var(--dark); }
.btn-outline { display:inline-flex; align-items:center; gap:6px; background:transparent; color:var(--gold); font-size:11px; font-weight:700; letter-spacing:.1em; padding:8px 16px; border-radius:3px; text-decoration:none; border:1px solid var(--gold); transition:background .3s,color .3s; }
.btn-outline:hover { background:var(--gold); color:#fff; }

/* SECTION COMMON */
.sec-head { text-align:center; padding:72px 24px 52px; }
.sec-en { display:block; font-size:10px; letter-spacing:.4em; color:var(--gold); text-transform:uppercase; margin-bottom:12px; }
.sec-title { font-size:clamp(20px,2.4vw,26px); font-weight:700; letter-spacing:.1em; color:var(--dark); line-height:1.6; margin-bottom:14px; }
.sec-line { width:36px; height:2px; background:var(--gold); margin:16px auto 0; }

/* STRENGTHS */
.strengths { background:var(--bg); padding-bottom:72px; }
.str-grid { max-width:var(--inner); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:2px; padding:0 24px; }
.str-card { background:#fff; padding:40px 28px; text-align:center; position:relative; overflow:hidden; transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s; }
.str-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.4,0,.2,1); }
.str-card:hover { transform:translateY(-6px); box-shadow:0 16px 44px rgba(0,0,0,.1); }
.str-card:hover::after { transform:scaleX(1); }
.str-icon{font-size:34px;margin-bottom:14px;display:block}
.str-name{font-size:15px;font-weight:700;letter-spacing:.08em;color:var(--dark);margin-bottom:10px;margin-top:10px;}
.str-text{font-size:12px;line-height:1.85;color:var(--textl);text-align:left;}

/* PLANS */
.plans { background:var(--bg); padding:0 24px 80px; border-top:1px solid var(--border); }
.plans-grid { max-width:var(--inner); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.plan-card { background:#fff; border-radius:4px; overflow:hidden; border:1px solid var(--border); display:flex; flex-direction:column; transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s; }
.plan-card:hover { transform:translateY(-8px); box-shadow:0 20px 52px rgba(0,0,0,.12); }
.plan-img { position:relative; width:100%; aspect-ratio:4/3; overflow:hidden; }
.plan-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.4,0,.2,1); }
.plan-card:hover .plan-img img { transform:scale(1.08); }
.pbadge { position:absolute; top:12px; left:12px; color:#fff; font-size:10px; font-weight:700; letter-spacing:.08em; padding:4px 10px; border-radius:2px; }
.pbadge.red{background:var(--red)} .pbadge.orange{background:#e67e22} .pbadge.gold{background:var(--gold)}
.plan-body{padding:22px 20px 26px;flex:1;display:flex;flex-direction:column}
.plan-type{font-size:10px;letter-spacing:.25em;color:var(--gold);margin-bottom:7px}
.plan-name{font-size:15px;font-weight:700;color:var(--dark);margin-bottom:10px;line-height:1.45}
.plan-desc{font-size:12px;line-height:1.85;color:var(--textl);margin-bottom:16px;flex:1}
.price-box{background:#faf8f0;border-left:3px solid var(--gold);padding:9px 14px;margin-bottom:16px;border-radius:0 3px 3px 0;display:flex;align-items:baseline;gap:6px}
.p-label{font-size:11px;color:var(--textl)} .p-num{font-size:22px;font-weight:700;color:var(--dark)} .p-unit{font-size:11px;color:var(--textl)}

/* =====================
   BLEED – 950px インナー基準
   左右の画像はビューポート端まで、テキストは950pxの半分に揃える
   ===================== */
.bleed { display:table; width:100%; border-top:1px solid var(--border); }
.bleed:last-of-type { border-bottom:1px solid var(--border); }
.bleed-img, .bleed-text { display:table-cell; width:50%; vertical-align:middle; }

.bleed-img { padding:0; overflow:hidden; position:relative; }
.bleed-img img { width:100%; height:100%; min-height:460px; object-fit:cover; display:block; transition:transform .7s cubic-bezier(.4,0,.2,1); }
.bleed-img:hover img { transform:scale(1.05); }

/* テキスト側：950pxの半分(475px)をインナー幅として、左右どちらかに寄せる */
.bleed-text { background:var(--bg); }
/* 画像左→テキスト右：テキストボックスの左端を揃える */
.bleed.img-l .bleed-text { padding:56px 24px 56px 56px; }
.bleed.img-l .bleed-text-in { max-width:calc(var(--inner) / 2 - 16px); margin-left:0; }
/* 画像右→テキスト左：テキストボックスの右端を揃える */
.bleed.img-r .bleed-text { padding:56px 56px 56px 24px; }
.bleed.img-r .bleed-text-in { max-width:calc(var(--inner) / 2 - 16px); margin-left:auto; }

.bleed-h{font-size:clamp(18px,2.2vw,24px);font-weight:700;color:var(--dark);line-height:1.55;letter-spacing:.06em;margin:10px 0 14px}
.bleed-desc{font-size:13px;line-height:1.95;color:var(--textl);margin-bottom:26px}

/* ROOMS */
.rooms { background:var(--bg); padding-bottom:80px; border-top:1px solid var(--border); }
.rooms-grid { max-width:var(--inner); margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:14px; padding:0 24px; }
.room-card { text-decoration:none; color:inherit; border-radius:3px; overflow:hidden; background:#fff; border:1px solid var(--border); display:flex; flex-direction:column; transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s; }
.room-card:hover { transform:translateY(-6px); box-shadow:0 16px 40px rgba(0,0,0,.13); }
.room-img { aspect-ratio:5/4; overflow:hidden; }
.room-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.4,0,.2,1); }
.room-card:hover .room-img img { transform:scale(1.08); }
.room-info { padding:14px 14px 10px; }
.room-type{font-size:9px;letter-spacing:.25em;color:var(--gold);text-transform:uppercase;margin-bottom:5px}
.rooms-name{font-size:13px;font-weight:700;color:var(--dark);margin-bottom:6px;line-height:1.4}
.room-price{font-size:13px;color:var(--textl);margin-bottom:12px}
.room-card .btn-plan { font-size:11px; padding:10px; margin:0 14px 14px; }
.rooms-footer { max-width:var(--inner); margin:28px auto 0; padding:0 24px; text-align:center; }

/* REVIEWS – コンパクト版 */
.reviews { background:var(--dark); padding:64px 24px; }
.rev-en{color:var(--gold)!important} .rev-title{color:#fff!important}
.rev-grid { max-width:var(--inner); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.rev-card { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:4px; padding:24px 20px; transition:background .3s,transform .3s; }
.rev-card:hover { background:rgba(255,255,255,.09); transform:translateY(-4px); }
.rev-stars{font-size:14px;color:var(--gold);letter-spacing:3px;margin-bottom:10px}
.rev-text{font-size:12px;line-height:1.85;color:rgba(255,255,255,.8);margin-bottom:12px}
.rev-meta{font-size:11px;color:rgba(255,255,255,.4);letter-spacing:.1em}

/* CTA – スコア統合版 */
.cta { background:linear-gradient(135deg,#2c2a25 0%,#3d3930 100%); padding:64px 24px; text-align:center; }
.cta-score { display:inline-flex; align-items:center; gap:10px; margin-bottom:18px; }
.cta-score-num { font-size:28px; font-weight:700; color:var(--gold); }
.cta-score-stars { font-size:16px; color:var(--gold); }
.cta-score-label { font-size:12px; color:rgba(255,255,255,.55); letter-spacing:.1em; }
.cta-title{font-size:clamp(18px,2.4vw,28px);font-weight:700;color:#fff;margin:0 0 12px;line-height:1.5;letter-spacing:.08em}
.cta-sub{font-size:13px;color:rgba(255,255,255,.65);margin-bottom:24px;line-height:1.9}
.cta-urgency{display:inline-flex;align-items:center;gap:8px;background:rgba(192,57,43,.2);border:1px solid rgba(192,57,43,.5);color:#f4a89e;font-size:12px;letter-spacing:.08em;padding:7px 16px;border-radius:2px;margin-bottom:28px;animation:blink 1.8s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.5}}
.cta-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* FOOTER SPACER */
.f-spacer{background:var(--bg);padding:52px 24px;text-align:center;border-top:1px solid var(--border)}
.f-spacer-line{width:1px;height:42px;background:var(--gold);margin:0 auto 16px}
.f-spacer a{font-size:13px;letter-spacing:.15em;color:var(--gold);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:3px;transition:color .25s,border-color .25s}
.f-spacer a:hover{color:#8a7a5a;border-color:#8a7a5a}

/* FOOTER */
.footer{background:var(--footer);padding:52px 24px 30px}
.footer-in{max-width:var(--inner);margin:0 auto}
.footer-top{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:28px;margin-bottom:32px;border-bottom:1px solid rgba(255,255,255,.25)}
.f-logo-en{font-size:10px;letter-spacing:.3em;color:rgba(255,255,255,.65);text-transform:uppercase;margin-bottom:5px}
.f-logo-ja{font-size:21px;font-weight:700;letter-spacing:.15em;color:#fff}
.f-addr{font-size:12px;line-height:1.8;color:rgba(255,255,255,.75);text-align:right}
.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:36px;margin-bottom:32px}
.fc-title{font-size:10px;letter-spacing:.25em;color:rgba(255,255,255,.55);text-transform:uppercase;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.2)}
.footer-col p,.footer-col address{font-size:12px;line-height:2;color:rgba(255,255,255,.82);font-style:normal}
.footer-col a{color:rgba(255,255,255,.82);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);transition:border-color .2s}
.footer-col a:hover{border-color:#fff}
.footer-nav{display:flex;flex-wrap:wrap;gap:5px 18px;padding:22px 0;border-top:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2);margin-bottom:20px}
.footer-nav a{font-size:11px;letter-spacing:.12em;color:rgba(255,255,255,.75);text-decoration:none;transition:color .2s}
.footer-nav a:hover{color:#fff}
.footer-copy{text-align:center;font-size:11px;letter-spacing:.1em;color:rgba(255,255,255,.5)}

/* =====================
   ROOM PAGE
   ===================== */
   /* FV パララックス 40vh */
.room-fv {
  margin-top:0px; width:100%;
  height:40vh; min-height:280px;
  background: url('../img/rb.jpg') center 70%/cover no-repeat fixed;
  position:relative; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px; text-align:center;
}
.room-fv::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.3),rgba(0,0,0,.55)); }
.room-fv-en { position:relative; z-index:1; font-size:10px; letter-spacing:.45em; color:rgba(255,255,255,.7); text-transform:uppercase; }
.room-fv-line { position:relative; z-index:1; width:36px; height:1px; background:var(--gold); }
.room-fv h1 { position:relative; z-index:1; font-size:clamp(22px,3vw,34px); font-weight:700; letter-spacing:.15em; color:#fff; text-shadow:0 2px 16px rgba(0,0,0,.4); }
.room-fv-desc { position:relative; z-index:1; font-size:13px; letter-spacing:.08em; color:rgba(255,255,255,.82); line-height:1.8; }

/* 客室リード文 */
.room-lead { text-align:center; padding:60px 24px 48px; border-bottom:1px solid var(--border); }
.room-lead p { font-size:13px; line-height:2; color:var(--textl); max-width:600px; margin:16px auto 0; }

/* ===== 客室ブロック ===== */
.room-block {
  max-width:var(--inner); margin:0 auto;
  padding:56px 24px;
  border-bottom:1px solid var(--border);
  display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;
}

/* サムネイルギャラリー（CSS only） */
.room-gallery { position:sticky; top:80px; }
.room-gallery input[type=radio] { display:none; }
.gallery-main { width:100%; aspect-ratio:4/3; border-radius:3px; overflow:hidden; position:relative; background:var(--border); margin-bottom:8px; }
.gallery-main img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .4s ease; }
.gallery-thumbs { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.gallery-thumbs label { display:block; aspect-ratio:4/3; overflow:hidden; border-radius:2px; cursor:pointer; border:2px solid transparent; transition:border-color .2s; }
.gallery-thumbs label img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.gallery-thumbs label:hover img { transform:scale(1.06); }

/* ラジオ制御 – 部屋ごとにユニークなname属性で制御 */
#ra1:checked ~ .gallery-main .gi1,
#ra2:checked ~ .gallery-main .gi2,
#ra3:checked ~ .gallery-main .gi3,
#ra4:checked ~ .gallery-main .gi4 { opacity:1; }
#ra1:checked ~ .gallery-thumbs .gt1,
#ra2:checked ~ .gallery-thumbs .gt2,
#ra3:checked ~ .gallery-thumbs .gt3,
#ra4:checked ~ .gallery-thumbs .gt4 { border-color:var(--gold); }

#rb1:checked ~ .gallery-main .gi1,
#rb2:checked ~ .gallery-main .gi2,
#rb3:checked ~ .gallery-main .gi3,
#rb4:checked ~ .gallery-main .gi4 { opacity:1; }
#rb1:checked ~ .gallery-thumbs .gt1,
#rb2:checked ~ .gallery-thumbs .gt2,
#rb3:checked ~ .gallery-thumbs .gt3,
#rb4:checked ~ .gallery-thumbs .gt4 { border-color:var(--gold); }

#rc1:checked ~ .gallery-main .gi1,
#rc2:checked ~ .gallery-main .gi2,
#rc3:checked ~ .gallery-main .gi3,
#rc4:checked ~ .gallery-main .gi4 { opacity:1; }
#rc1:checked ~ .gallery-thumbs .gt1,
#rc2:checked ~ .gallery-thumbs .gt2,
#rc3:checked ~ .gallery-thumbs .gt3,
#rc4:checked ~ .gallery-thumbs .gt4 { border-color:var(--gold); }

#rd1:checked ~ .gallery-main .gi1,
#rd2:checked ~ .gallery-main .gi2,
#rd3:checked ~ .gallery-main .gi3,
#rd4:checked ~ .gallery-main .gi4 { opacity:1; }
#rd1:checked ~ .gallery-thumbs .gt1,
#rd2:checked ~ .gallery-thumbs .gt2,
#rd3:checked ~ .gallery-thumbs .gt3,
#rd4:checked ~ .gallery-thumbs .gt4 { border-color:var(--gold); }

/* 客室情報エリア */
.room-info-wrap {}
.room-badge-row { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.room-badge { font-size:10px; font-weight:700; letter-spacing:.08em; padding:4px 10px; border-radius:2px; }
.rb-type { background:var(--bg); color:var(--gold); border:1px solid var(--gold); }
.rb-popular { background:var(--red); color:#fff; }
.rb-limited { background:#e67e22; color:#fff; }
.room-name-en { font-size:10px; letter-spacing:.3em; color:var(--textl); text-transform:uppercase; margin-bottom:6px; }
.room-name { font-size:24px; font-weight:700; color:var(--dark); line-height:1.4; letter-spacing:.06em; margin-bottom:16px; }
.room-desc { font-size:13px; line-height:1.95; color:var(--textl); padding-bottom:20px; border-bottom:1px solid var(--border); margin-bottom:20px; }

/* 価格 */
.room-price-box {
  display:flex; align-items:baseline; gap:8px;
  background:#faf8f0; border-left:3px solid var(--gold);
  padding:12px 18px; margin-bottom:20px;
  border-radius:0 3px 3px 0;
}
.rp-label { font-size:11px; color:var(--textl); letter-spacing:.1em; }
.rp-num { font-size:26px; font-weight:700; color:var(--dark); }
.rp-unit { font-size:12px; color:var(--textl); }

/* スペックグリッド */
.room-specs { display:grid; grid-template-columns:1fr 1fr; gap:12px 20px; margin-bottom:20px; padding-bottom:20px; border-bottom:1px solid var(--border); }
.spec-item {}
.spec-label { font-size:9px; letter-spacing:.2em; color:var(--gold); text-transform:uppercase; margin-bottom:4px; }
.spec-val { font-size:13px; color:var(--dark); font-weight:500; }

/* タグ */
.room-tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:24px; }
.rtag { font-size:11px; color:var(--textl); border:1px solid var(--border); border-radius:2px; padding:4px 10px; }

/* 予約ボタン – メイン */
.btn-room-reserve {
  display:flex; align-items:center; justify-content:center; gap:10px;
  background:var(--red); color:#fff;
  font-size:14px; font-weight:700; letter-spacing:.08em;
  padding:16px; border-radius:3px; text-decoration:none;
  border:2px solid var(--red); width:100%;
  box-shadow:0 4px 18px rgba(192,57,43,.35);
  transition:background .3s,transform .25s,box-shadow .3s;
  margin-bottom:10px;
}
.btn-room-reserve .arrow { transition:transform .3s cubic-bezier(.4,0,.2,1); }
.btn-room-reserve:hover { background:#a93226; border-color:#a93226; transform:translateY(-2px); box-shadow:0 8px 28px rgba(192,57,43,.45); }
.btn-room-reserve:hover .arrow { transform:translateX(6px); }

/* 注記 */
.reserve-note { font-size:11px; color:var(--textl); text-align:center; line-height:1.7; }

/* ===== アメニティ ===== */
.amenity { max-width:var(--inner); margin:0 auto 0; padding:56px 24px 72px; }
.amenity-head { display:flex; align-items:center; gap:16px; margin-bottom:36px; }
.amenity-head .a-en { font-size:10px; letter-spacing:.25em; color:var(--gold); text-transform:uppercase; }
.amenity-head h3 { font-size:18px; font-weight:700; letter-spacing:.08em; color:var(--dark); }
.amenity-head .a-line { flex:1; height:1px; background:var(--border); }
.amenity-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:32px 24px; }
.amenity-cat { font-size:10px; letter-spacing:.18em; color:var(--gold); text-transform:uppercase; margin-bottom:12px; padding-bottom:8px; border-bottom:1px solid var(--border); }
.amenity-list { list-style:none; }
.amenity-list li { font-size:12px; color:var(--textl); line-height:1.65; padding:4px 0 4px 12px; position:relative; }
.amenity-list li::before { content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); width:4px; height:4px; border-radius:50%; background:var(--gold); }

/* ===== 締めCTA ===== */
.room-cta { background:linear-gradient(135deg,#2c2a25,#3d3930); padding:64px 24px; text-align:center; }
.room-cta .cta-title { font-size:clamp(18px,2.2vw,26px); font-weight:700; color:#fff; margin:14px 0 12px; line-height:1.5; letter-spacing:.08em; }
.room-cta .cta-sub { font-size:13px; color:rgba(255,255,255,.65); margin-bottom:28px; }
.room-cta .cta-btns { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* =====================
   RESTAURANT PAGE
   ===================== */

/* FV */
.rest-fv {
  margin-top:0px; width:100%; height:40vh; min-height:280px;
  background:url('../img/reb.jpg') center 60%/cover no-repeat fixed;
  position:relative; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px; text-align:center;
}
.rest-fv::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.25),rgba(0,0,0,.6)); }
.rest-fv * { position:relative; z-index:1; }
.rest-fv-en { font-size:10px; letter-spacing:.45em; color:rgba(255,255,255,.75); text-transform:uppercase; }
.rest-fv-line { width:36px; height:1px; background:var(--gold); }
.rest-fv h1 { font-size:clamp(22px,3vw,34px); font-weight:700; letter-spacing:.15em; color:#fff; text-shadow:0 2px 16px rgba(0,0,0,.4); }
.rest-fv-desc { font-size:13px; color:rgba(255,255,255,.82); line-height:1.8; letter-spacing:.06em; }

/* リード */
.rest-lead { text-align:center; padding:60px 24px 52px; border-bottom:1px solid var(--border); }
.rest-lead p { font-size:13px; line-height:2; color:var(--textl); max-width:560px; margin:16px auto 0; }

/* ===== 自社牧場セクション ===== */
.ranch-section {
  border-bottom:1px solid var(--border);
  padding:72px 24px 0;
}
.ranch-inner {
  max-width:var(--inner); margin:0 auto;
}

/* 上部：950px幅内の写真＋キャッチコピーオーバーレイ */
.ranch-hero {
  position:relative; width:100%; aspect-ratio:21/8; overflow:hidden;
  border-radius:8px;
}
.ranch-hero img {
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 8s cubic-bezier(.4,0,.2,1);
}
.ranch-section:hover .ranch-hero img { transform:scale(1.04); }
.ranch-hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to right, rgba(0,0,0,.6) 0%, rgba(0,0,0,.2) 60%, rgba(0,0,0,.0) 100%);
}
.ranch-hero-content {
  position:absolute; inset:0; display:flex; flex-direction:column;
  justify-content:center; padding:0 52px;
  max-width:560px;
}
.ranch-hero-en { font-size:10px; letter-spacing:.45em; color:var(--goldl); text-transform:uppercase; margin-bottom:14px; }
.ranch-hero-catch {
  font-size:clamp(22px,2.8vw,34px); font-weight:700; color:#fff;
  line-height:1.55; letter-spacing:.08em;
  text-shadow:0 2px 20px rgba(0,0,0,.3);
  margin-bottom:16px;
}
.ranch-hero-sub {
  font-size:13px; color:rgba(255,255,255,.85); line-height:1.9;
  text-shadow:0 1px 8px rgba(0,0,0,.3); margin-bottom:0;
}

/* 下部：3つのポイント＋説明文 */
.ranch-body {
  padding:52px 0 56px;
  display:grid; grid-template-columns:1fr 340px; gap:64px; align-items:start;
}

/* 左：3ポイント */
.ranch-points { display:flex; flex-direction:column; gap:0; }
.ranch-point {
  display:flex; align-items:flex-start; gap:20px;
  padding:22px 0; border-bottom:1px solid var(--border);
}
.ranch-point:first-child { padding-top:0; }
.ranch-point:last-child { border-bottom:none; padding-bottom:0; }
.rp-nums {
  font-size:11px; font-weight:700; letter-spacing:.2em; color:var(--gold);
  background:#faf8f0; border:1px solid var(--gold);
  width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; margin-top:2px;
}
.rp-body {}
.rp-title { font-size:15px; font-weight:700; color:var(--dark); margin-bottom:6px; letter-spacing:.04em; }
.rp-desc  { font-size:13px; line-height:1.9; color:var(--textl); }

/* 右：写真2枚＋バッジ */
.ranch-photos { position:sticky; top:80px; }
.ranch-photos-grid { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-bottom:12px; }
.ranch-photos-grid img {
  width:100%; aspect-ratio:4/3; object-fit:cover; display:block;
  border-radius:2px; transition:transform .5s cubic-bezier(.4,0,.2,1);
}
.ranch-photos-grid img:hover { transform:scale(1.03); }
.ranch-badge-row { display:flex; gap:6px; flex-wrap:wrap; }
.ranch-badge {
  display:inline-flex; align-items:center; gap:6px;
  font-size:11px; font-weight:700; letter-spacing:.06em;
  padding:6px 14px; border-radius:2px;
}
.rb-green { background:rgba(76,153,76,.1); color:#3a7a3a; border:1px solid rgba(76,153,76,.35); }
.rb-gold  { background:var(--bg); color:var(--gold); border:1px solid var(--gold); }

/* 上部CTAバナー */
.plan-banner-wrap { padding:0 24px; }
.plan-banner {
  background:var(--dark); padding:24px 36px;
  max-width:var(--inner); margin:48px auto 0;
  display:flex; align-items:center; justify-content:space-between; gap:24px; border-radius:3px;
}
.pb-label { font-size:10px; letter-spacing:.3em; color:var(--gold); text-transform:uppercase; margin-bottom:5px; display:block; }
.plan-banner p { font-size:15px; font-weight:700; color:#fff; letter-spacing:.04em; line-height:1.5; }
.plan-banner span { font-size:12px; color:rgba(255,255,255,.55); font-weight:400; }

/* ===== 食事セクション共通 ===== */
.dining-section { max-width:var(--inner); margin:0 auto; padding:72px 24px 0; }
.dining-head {
  display:flex; align-items:flex-end; justify-content:space-between;
  padding-bottom:18px; border-bottom:2px solid var(--border); margin-bottom:36px;
}
.dh-left .d-en { font-size:10px; letter-spacing:.35em; color:var(--gold); text-transform:uppercase; margin-bottom:7px; display:block; }
.dh-left h2 { font-size:clamp(20px,2.2vw,24px); font-weight:700; color:var(--dark); letter-spacing:.08em; }
.dh-right { font-size:12px; color:var(--textl); line-height:1.8; text-align:right; }

/* 食事ブロック：ギャラリー左＋テキスト右 */
.dining-block { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }

/* ギャラリー（客室ページ流用） */
.dining-gallery { position:sticky; top:80px; }
.dining-gallery input[type=radio] { display:none; }
.dgallery-main { width:100%; aspect-ratio:4/3; border-radius:3px; overflow:hidden; position:relative; background:var(--border); margin-bottom:8px; }
.dgallery-main img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .4s ease; }
.dgallery-thumbs { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.dgallery-thumbs label { display:block; aspect-ratio:4/3; overflow:hidden; border-radius:2px; cursor:pointer; border:2px solid transparent; transition:border-color .2s; }
.dgallery-thumbs label img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.dgallery-thumbs label:hover img { transform:scale(1.06); }

/* ディナー */
#da1:checked ~ .dgallery-main .di1,#da2:checked ~ .dgallery-main .di2,#da3:checked ~ .dgallery-main .di3,#da4:checked ~ .dgallery-main .di4 { opacity:1; }
#da1:checked ~ .dgallery-thumbs .dt1,#da2:checked ~ .dgallery-thumbs .dt2,#da3:checked ~ .dgallery-thumbs .dt3,#da4:checked ~ .dgallery-thumbs .dt4 { border-color:var(--gold); }
/* ランチ */
#db1:checked ~ .dgallery-main .di1,#db2:checked ~ .dgallery-main .di2,#db3:checked ~ .dgallery-main .di3,#db4:checked ~ .dgallery-main .di4 { opacity:1; }
#db1:checked ~ .dgallery-thumbs .dt1,#db2:checked ~ .dgallery-thumbs .dt2,#db3:checked ~ .dgallery-thumbs .dt3,#db4:checked ~ .dgallery-thumbs .dt4 { border-color:var(--gold); }
/* 朝食 */
#dc1:checked ~ .dgallery-main .di1,#dc2:checked ~ .dgallery-main .di2,#dc3:checked ~ .dgallery-main .di3,#dc4:checked ~ .dgallery-main .di4 { opacity:1; }
#dc1:checked ~ .dgallery-thumbs .dt1,#dc2:checked ~ .dgallery-thumbs .dt2,#dc3:checked ~ .dgallery-thumbs .dt3,#dc4:checked ~ .dgallery-thumbs .dt4 { border-color:var(--gold); }

/* テキストエリア */
.dining-info { padding-top:4px; }
.dining-badge-row { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.d-badge { font-size:10px; font-weight:700; letter-spacing:.08em; padding:4px 10px; border-radius:2px; }
.db-type { background:var(--bg); color:var(--gold); border:1px solid var(--gold); }
.db-note { background:var(--bg); color:var(--textl); border:1px solid var(--border); }
.dining-name { font-size:22px; font-weight:700; color:var(--dark); line-height:1.4; letter-spacing:.06em; margin-bottom:16px; }
.dining-desc { font-size:13px; line-height:1.95; color:var(--textl); padding-bottom:20px; border-bottom:1px solid var(--border); margin-bottom:20px; }

/* 特徴リスト */
.dining-features { list-style:none; margin-bottom:28px; }
.dining-features li { font-size:13px; color:var(--text); line-height:1.6; padding:8px 0 8px 16px; position:relative; border-bottom:1px solid var(--border); }
.dining-features li::before { content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); width:5px; height:5px; border-radius:50%; background:var(--gold); }

/* 時間バッジ */
.dining-time { display:inline-flex; align-items:center; gap:10px; background:#faf8f0; border-left:3px solid var(--gold); padding:10px 16px; border-radius:0 3px 3px 0; margin-bottom:24px; }
.dt-label { font-size:10px; letter-spacing:.15em; color:var(--textl); }
.dt-val { font-size:14px; font-weight:700; color:var(--dark); }

/* ===== 施設・BBQ ブリード ===== */
.venue-section { padding:80px 0 0; }
.venue-bleed { display:table; width:100%; border-top:1px solid var(--border); }
.venue-bleed:last-child { border-bottom:1px solid var(--border); }
.vb-img,.vb-text { display:table-cell; width:50%; vertical-align:middle; }
.vb-img { overflow:hidden; }
.vb-img img { width:100%; height:100%; min-height:420px; object-fit:cover; display:block; transition:transform .7s cubic-bezier(.4,0,.2,1); }
.vb-img:hover img { transform:scale(1.04); }
.vb-text { background:var(--bg); }
.vb-text-in { padding:64px 56px; }
.vb-text.text-right .vb-text-in { max-width:475px; margin-left:auto; }
.vb-text.text-left .vb-text-in { max-width:475px; }
.vb-h { font-size:clamp(18px,2vw,22px); font-weight:700; color:var(--dark); line-height:1.55; letter-spacing:.06em; margin:10px 0 14px; }
.vb-desc { font-size:13px; line-height:1.95; color:var(--textl); margin-bottom:10px; }
.vb-note { font-size:12px; color:var(--gold); margin-bottom:24px; font-weight:700; letter-spacing:.06em; }
.bbq-badge { display:inline-flex; align-items:center; gap:8px; background:rgba(192,57,43,.08); border:1px solid rgba(192,57,43,.3); color:var(--red); font-size:11px; font-weight:700; letter-spacing:.08em; padding:6px 14px; border-radius:2px; margin-bottom:20px; }

/* 営業時間 */
.hours { max-width:var(--inner); margin:80px auto 0; padding:0 24px 80px; }
.hours-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:36px; }
.hour-card { background:#fff; padding:32px 28px; text-align:center; position:relative; overflow:hidden; transition:transform .3s,box-shadow .3s; }
.hour-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.4,0,.2,1); }
.hour-card:hover { transform:translateY(-4px); box-shadow:0 12px 36px rgba(0,0,0,.09); }
.hour-card:hover::after { transform:scaleX(1); }
.hour-icon { font-size:28px; margin-bottom:12px; display:block; }
.hour-name { font-size:12px; font-weight:700; color:var(--dark); letter-spacing:.15em; margin-bottom:12px;padding-top:10px; }
.hour-time { font-size:20px; font-weight:700; color:var(--dark); margin-bottom:6px; }
.hour-note { font-size:11px; color:var(--textl); line-height:1.7; }

/* 締めCTA */
.rest-cta { background:linear-gradient(135deg,#2c2a25,#3d3930); padding:72px 24px; text-align:center; }
.rc-label { font-size:10px; letter-spacing:.4em; color:var(--gold); text-transform:uppercase; display:block; margin-bottom:14px; }
.rc-title { font-size:clamp(18px,2.4vw,26px); font-weight:700; color:#fff; margin-bottom:12px; line-height:1.5; letter-spacing:.08em; }
.rc-sub { font-size:13px; color:rgba(255,255,255,.65); margin-bottom:32px; line-height:1.9; }
.rc-btns { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.rc-note { font-size:11px; color:rgba(255,255,255,.4); margin-top:20px; line-height:1.8; }

/* =====================
   FACILITY PAGE
   ===================== */
   /* FV */
.fac-fv {
  margin-top:0px; width:100%; height:40vh; min-height:280px;
  background:url('../img/fb.jpg') center 40%/cover no-repeat fixed;
  position:relative; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px; text-align:center;
}
.fac-fv::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.25),rgba(0,0,0,.6)); }
.fac-fv * { position:relative; z-index:1; }
.fac-fv-en { font-size:10px; letter-spacing:.45em; color:rgba(255,255,255,.75); text-transform:uppercase; }
.fac-fv-line { width:36px; height:1px; background:var(--gold); }
.fac-fv h1 { font-size:clamp(22px,3vw,34px); font-weight:700; letter-spacing:.15em; color:#fff; text-shadow:0 2px 16px rgba(0,0,0,.4); }
.fac-fv-desc { font-size:13px; color:rgba(255,255,255,.82); line-height:1.8; letter-spacing:.06em; }

/* リード */
.fac-lead { text-align:center; padding:60px 24px 52px; border-bottom:1px solid var(--border); }
.fac-lead p { font-size:13px; line-height:2; color:var(--textl); max-width:560px; margin:16px auto 0; }

/* ===== セクション共通 ===== */
.fac-section { max-width:var(--inner); margin:0 auto; padding:72px 24px 0; }
.fac-section-last { padding-bottom:80px; }
.fac-head { display:flex; align-items:center; gap:16px; margin-bottom:36px; }
.fac-head .fh-en { font-size:10px; letter-spacing:.25em; color:var(--gold); text-transform:uppercase; }
.fac-head h2 { font-size:18px; font-weight:700; letter-spacing:.08em; color:var(--dark); }
.fac-head .fh-line { flex:1; height:1px; background:var(--border); }

/* ===== 段①：バナー型大カード（横長画像上・テキスト下） ===== */
.banner-cards { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.banner-card {
  background:#fff; border:1px solid var(--border); border-radius:4px;
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s;
}
.banner-card:hover { transform:translateY(-6px); box-shadow:0 20px 48px rgba(0,0,0,.13); }
.bn-img { width:100%; aspect-ratio:16/9; overflow:hidden; position:relative; }
.bn-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.4,0,.2,1); }
.banner-card:hover .bn-img img { transform:scale(1.05); }
.bn-badge-wrap { position:absolute; top:12px; left:12px; display:flex; gap:6px; }
.bn-badge { font-size:10px; font-weight:700; letter-spacing:.08em; padding:4px 10px; border-radius:2px; color:#fff; }
.bn-red  { background:var(--red); }
.bn-gold { background:var(--gold); }
.bn-dark { background:rgba(0,0,0,.55); backdrop-filter:blur(4px); }
.bn-body { padding:24px 26px 28px; flex:1; display:flex; flex-direction:column; }
.bn-en   { font-size:10px; letter-spacing:.3em; color:var(--gold); text-transform:uppercase; margin-bottom:6px; }
.bn-name { font-size:17px; font-weight:700; color:var(--dark); line-height:1.4; letter-spacing:.06em; margin-bottom:10px; }
.bn-desc { font-size:12px; line-height:1.9; color:var(--textl); margin-bottom:16px; flex:1; }
.bn-features { list-style:none; margin-bottom:16px; }
.bn-features li { font-size:12px; color:var(--text); line-height:1.6; padding:5px 0 5px 14px; position:relative; border-bottom:1px solid var(--border); }
.bn-features li:last-child { border-bottom:none; }
.bn-features li::before { content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); width:5px; height:5px; border-radius:50%; background:var(--gold); }
.bn-time { display:inline-flex; align-items:center; gap:8px; background:#faf8f0; border-left:3px solid var(--gold); padding:8px 12px; border-radius:0 3px 3px 0; margin-bottom:16px; font-size:11px; }
.bn-time-label { color:var(--textl); letter-spacing:.1em; }
.bn-time-val   { font-weight:700; color:var(--dark); }

/* ===== 段②：リスト型（16:9画像左・テキスト右・1行1施設） ===== */
.mid-list { display:flex; flex-direction:column; border:1px solid var(--border); }
.mid-list-item {
  background:#fff; display:grid; grid-template-columns:320px 1fr;
  border-bottom:1px solid var(--border); overflow:hidden;
  transition:box-shadow .3s; position:relative;
}
.mid-list-item:last-child { border-bottom:none; }
.mid-list-item:hover { box-shadow:0 4px 20px rgba(0,0,0,.09); z-index:1; }
.ml-img { aspect-ratio:16/14; overflow:hidden; flex-shrink:0; }
.ml-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.4,0,.2,1); }
.mid-list-item:hover .ml-img img { transform:scale(1.05); }
.ml-body { padding:24px 32px; border-left:1px solid var(--border); display:flex; flex-direction:column; justify-content:center; }
.ml-en   { font-size:9px; letter-spacing:.25em; color:var(--gold); text-transform:uppercase; margin-bottom:5px; }
.ml-name { font-size:15px; font-weight:700; color:var(--dark); margin-bottom:10px; line-height:1.4; }
.ml-desc { font-size:13px; line-height:1.95; color:var(--textl); margin-bottom:14px; flex:1; }
.ml-time { font-size:11px; color:var(--textl); background:#faf8f0; border-left:3px solid var(--gold); padding:7px 12px; border-radius:0 2px 2px 0; display:inline-block; }

/* ===== 段③：小カード（小さめ画像＋テキスト） ===== */
.small-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; }
.small-card {
  background:#fff; border:1px solid var(--border);
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .3s,box-shadow .3s; position:relative;
}
.small-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.4,0,.2,1); }
.small-card:hover { transform:translateY(-4px); box-shadow:0 10px 28px rgba(0,0,0,.08); }
.small-card:hover::after { transform:scaleX(1); }
.sc-img { width:100%; aspect-ratio:3/2; overflow:hidden; }
.sc-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s cubic-bezier(.4,0,.2,1); }
.small-card:hover .sc-img img { transform:scale(1.07); }
.sc-body { padding:14px 16px 18px; flex:1; }
.sc-name { font-size:12px; font-weight:700; color:var(--dark); letter-spacing:.08em; margin-bottom:6px; }
.sc-note { font-size:11px; color:var(--textl); line-height:1.75; }

/* ===== フロアマップ ===== */
.fac-floormap { background:var(--dark); padding:72px 24px; }
.floormap-wrap { max-width:var(--inner); margin:0 auto; border:1px solid rgba(255,255,255,.15); border-radius:4px; overflow:hidden; }
.floormap-wrap img { width:100%; display:block; }
.floormap-placeholder {
  width:100%; min-height:400px;
  background:rgba(255,255,255,.05);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  color:rgba(255,255,255,.5);
}
.floormap-placeholder .fp-icon { font-size:48px; opacity:.5; }
.floormap-placeholder p { font-size:13px; letter-spacing:.15em; }
.floormap-placeholder small { font-size:11px; opacity:.6; }
.floormap-note { max-width:var(--inner); margin:16px auto 0; font-size:11px; color:rgba(255,255,255,.4); text-align:right; }

/* 締めCTA */
.fac-cta { background:linear-gradient(135deg,#2c2a25,#3d3930); padding:72px 24px; text-align:center; }
.fc-label { font-size:10px; letter-spacing:.4em; color:var(--gold); text-transform:uppercase; display:block; margin-bottom:14px; }
.fc-title { font-size:clamp(18px,2.4vw,26px); font-weight:700; color:#fff; margin-bottom:12px; line-height:1.5; letter-spacing:.08em; }
.fc-sub   { font-size:13px; color:rgba(255,255,255,.65); margin-bottom:32px; line-height:1.9; }
.fc-btns  { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.f_sp {margin-top:12px;}

/* =====================
   ACCESS PAGE
   ===================== */
   /* FV */
.acc-fv {
  margin-top:0px; width:100%; height:40vh; min-height:280px;
  background:url('../img/ab.jpg') center 50%/cover no-repeat fixed;
  position:relative; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px; text-align:center;
}
.acc-fv::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.3),rgba(0,0,0,.65)); }
.acc-fv * { position:relative; z-index:1; }
.acc-fv-en { font-size:10px; letter-spacing:.45em; color:rgba(255,255,255,.75); text-transform:uppercase; }
.acc-fv-line { width:36px; height:1px; background:var(--gold); }
.acc-fv h1 { font-size:clamp(22px,3vw,34px); font-weight:700; letter-spacing:.15em; color:#fff; text-shadow:0 2px 16px rgba(0,0,0,.4); }
.acc-fv-desc { font-size:13px; color:rgba(255,255,255,.82); line-height:1.8; letter-spacing:.06em; }

/* ===== 地図 + 基本情報 ===== */
.acc-main { width:950px; margin:0 auto; padding:72px 0px 0; display:flex; grid-template-columns:1fr 420px; gap:48px; align-items:start; }
.acc-map-wrap { border-radius:4px; overflow:hidden; border:1px solid var(--border); background:var(--border); aspect-ratio:4/3; position:relative; }
.acc-map-wrap iframe { width:100%; height:100%; display:block; filter:grayscale(20%) contrast(95%); }
.acc-map-placeholder {
  width:100%; height:100%; min-height:360px;
  background:linear-gradient(135deg,#e4e0d8 0%,#d4cfc6 100%);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; color:var(--textl);
}
.acc-map-placeholder .map-icon { font-size:42px; }
.acc-map-placeholder p { font-size:12px; letter-spacing:.1em; }
.acc-map-placeholder small { font-size:11px; opacity:.7; }

/* 基本情報カード */
.acc-info-card { background:#fff; border:1px solid var(--border); border-radius:4px; padding:28px 24px; margin-bottom:16px; }
.aic-title { font-size:10px; letter-spacing:.25em; color:var(--gold); text-transform:uppercase; margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--border); }
.aic-row { display:flex; gap:12px; padding:9px 0; border-bottom:1px solid var(--border); align-items:flex-start; }
.aic-row:last-child { border-bottom:none; padding-bottom:0; }
.aic-label { font-size:10px; letter-spacing:.12em; color:var(--gold); min-width:56px; padding-top:2px; flex-shrink:0; }
.aic-val { font-size:13px; color:var(--dark); line-height:1.75; }
.aic-val a { color:var(--dark); text-decoration:none; border-bottom:1px solid var(--border); transition:border-color .2s; }
.aic-val a:hover { border-color:var(--gold); }

/* チェックイン・アウト */
.acc-ci-grid { display:grid; grid-template-columns:1fr 1fr; gap:2px; margin-bottom:16px; }
.acc-ci-card { background:#fff; border:1px solid var(--border); padding:20px 18px; text-align:center; }
.acc-ci-label { font-size:10px; letter-spacing:.2em; color:var(--gold); margin-bottom:6px; text-transform:uppercase; }
.acc-ci-time { font-size:24px; font-weight:700; color:var(--dark); margin-bottom:4px; }
.acc-ci-note { font-size:11px; color:var(--textl); }

/* ===== 交通手段タブ ===== */
.acc-transport { max-width:var(--inner); margin:64px auto 0; padding:0 24px; }
.at-head { display:flex; align-items:center; gap:16px; margin-bottom:32px; }
.at-head .at-en { font-size:10px; letter-spacing:.25em; color:var(--gold); text-transform:uppercase; }
.at-head h2 { font-size:18px; font-weight:700; letter-spacing:.08em; color:var(--dark); }
.at-head .at-line { flex:1; height:1px; background:var(--border); }

.trans-tabs { }
.trans-tabs input[type=radio] { display:none; }

/* タブラベル */
.trans-tab-labels {
  display:flex; gap:0; margin-bottom:0;
  border-bottom:none; /* パネルのborderと繋げる */
}
.trans-tab-label {
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 28px;
  font-size:12px; font-weight:700; letter-spacing:.1em;
  color:var(--textl);
  background:var(--border); /* 非選択：薄グレー */
  border:1px solid var(--border);
  border-bottom:1px solid var(--border);
  cursor:pointer;
  transition:color .2s, background .2s;
  position:relative; /* z-index制御のため */
  z-index:0;
  margin-right:3px;
  border-radius:3px 3px 0 0;
}
.trans-tab-label:hover { color:var(--dark); background:#ece9e1; }

/* アクティブタブ：白背景・下ボーダーなし・パネルと一体化 */
#t-train:checked ~ .trans-tab-labels .tl-train,
#t-car:checked   ~ .trans-tab-labels .tl-car {
  background:#fff;
  color:var(--dark);
  border-color:var(--border);
  border-bottom-color:#fff; /* 下ボーダーを白にしてパネルと一体化 */
  z-index:2;
}

/* パネル */
.trans-panels {
  border:1px solid var(--border);
  background:#fff;
  border-radius:0 3px 3px 3px;
  position:relative;
  z-index:1;
}
.trans-panel { display:none; padding:40px 36px; }
#t-train:checked ~ .trans-panels .tp-train,
#t-car:checked   ~ .trans-panels .tp-car { display:block; }

/* ===== ルートノード ===== */
.route { margin-bottom:36px; }
.route:last-of-type { margin-bottom:0; }
.route-badge { display:inline-flex; align-items:center; gap:6px; font-size:10px; font-weight:700; letter-spacing:.1em; padding:4px 10px; border-radius:2px; margin-bottom:16px; }
.rb-primary   { background:var(--dark); color:#fff; }
.rb-secondary { background:var(--bg); color:var(--gold); border:1px solid var(--gold); }
.route-nodes { display:flex; flex-direction:column; }
.route-node { display:flex; align-items:flex-start; gap:14px; position:relative; padding-bottom:20px; }
.route-node:last-child { padding-bottom:0; }
.route-node::before {
  content:''; position:absolute; left:7px; top:18px; bottom:0; width:2px;
  background:repeating-linear-gradient(to bottom,var(--gold) 0,var(--gold) 5px,transparent 5px,transparent 10px);
}
.route-node:last-child::before { display:none; }
.rn-dot { width:16px; height:16px; border-radius:50%; background:var(--gold); border:3px solid #fff; box-shadow:0 0 0 2px var(--gold); flex-shrink:0; margin-top:2px; }
.rn-dot.start,.rn-dot.end { background:var(--dark); box-shadow:0 0 0 2px var(--dark); }
.rn-body { flex:1; }
.rn-place { font-size:14px; font-weight:700; color:var(--dark); margin-bottom:2px; }
.rn-note  { font-size:12px; color:var(--textl); line-height:1.6; }
.rn-time  { display:inline-flex; align-items:center; gap:6px; background:#faf8f0; border-left:2px solid var(--gold); padding:5px 12px; font-size:12px; font-weight:700; color:var(--dark); margin:6px 0 0; border-radius:0 2px 2px 0; }

/* ===== 画像＋テキスト BOX ===== */
.route-media-box {
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  border:1px solid var(--border); border-radius:3px; overflow:hidden;
  margin-top:28px;
}
.rmb-img { aspect-ratio:4/3; overflow:hidden; }
.rmb-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.4,0,.2,1); }
.route-media-box:hover .rmb-img img { transform:scale(1.05); }
.rmb-text { background:#faf8f0; padding:28px 24px; display:flex; flex-direction:column; justify-content:center; }
.rmb-label { font-size:10px; letter-spacing:.25em; color:var(--gold); text-transform:uppercase; margin-bottom:8px; }
.rmb-title { font-size:15px; font-weight:700; color:var(--dark); line-height:1.5; margin-bottom:10px; }
.rmb-desc  { font-size:12px; color:var(--textl); line-height:1.85; margin-bottom:16px; }

/* 送迎バナー */
.transfer-banner {
  background:linear-gradient(135deg,var(--dark),#3d3930);
  border-radius:4px; padding:24px 28px; margin-top:36px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.tb-label { font-size:10px; letter-spacing:.3em; color:var(--gold); text-transform:uppercase; margin-bottom:5px; display:block; }
.tb-title { font-size:15px; font-weight:700; color:#fff; margin-bottom:4px; }
.tb-note  { font-size:12px; color:rgba(255,255,255,.55); }

/* ===== 駐車場 ===== */
.acc-parking { max-width:var(--inner); margin:64px auto 0; padding:0 24px 50px 24px; }
.parking-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:28px; }
.parking-card { background:#fff; border:1px solid var(--border); padding:24px 20px; text-align:center; }
.pc-icon  { font-size:28px; margin-bottom:10px; display:block; }
.pc-label { font-size:11px; font-weight:700; color:var(--dark); letter-spacing:.12em; margin-bottom:8px; }
.pc-val   { font-size:16px; font-weight:700; color:var(--dark); margin-bottom:6px; }
.pc-note  { font-size:11px; color:var(--textl); line-height:1.7; }

/* ===== 周辺観光 ===== */
.acc-spots { border-top:1px solid var(--border); margin-top:64px; }
.spots-grid { max-width:var(--inner); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding:0 24px 80px; }
.spot-card { background:#fff; border:1px solid var(--border); border-radius:3px; overflow:hidden; transition:transform .3s,box-shadow .3s; }
.spot-card:hover { transform:translateY(-6px); box-shadow:0 14px 40px rgba(0,0,0,.1); }
.spot-img { width:100%; aspect-ratio:16/9; overflow:hidden; }
.spot-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.spot-card:hover .spot-img img { transform:scale(1.06); }
.spot-body { padding:16px; }
.spot-dist { font-size:10px; letter-spacing:.15em; color:var(--gold); margin-bottom:5px; }
.spot-name { font-size:14px; font-weight:700; color:var(--dark); margin-bottom:6px; }
.spot-desc { font-size:12px; line-height:1.75; color:var(--textl); }

/* 締めCTA */
.acc-cta { background:linear-gradient(135deg,#2c2a25,#3d3930); padding:72px 24px; text-align:center; }
.ac-label { font-size:10px; letter-spacing:.4em; color:var(--gold); text-transform:uppercase; display:block; margin-bottom:14px; }
.ac-title { font-size:clamp(18px,2.4vw,26px); font-weight:700; color:#fff; margin-bottom:12px; line-height:1.5; letter-spacing:.08em; }
.ac-sub   { font-size:13px; color:rgba(255,255,255,.65); margin-bottom:32px; line-height:1.9; }
.ac-btns  { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.route_cont {margin-bottom:30px;line-height:1.5;color:#222;}
.acc-img {
  width:700px;
  height:auto;
  margin:0 auto;
}
.acc-img img {
  width:100%;
  height:auto;
}

.acc-maparea {
  position:relative;
  width:600px;
}

.acc-maparea img {
  width:100%;
  height:auto;
}

.maplink {
  display:block;
}


/* **********************
楽天リセット
********************** */
.travel__tab {
	position:static!important;
}

#htlContents a:link,
#htlContents a:visited {
  color: inherit !important;
  text-decoration: none !important;
}

#htlContents a.btn-plan,
#htlContents a.btn-plan:link,
#htlContents a.btn-plan:visited {
  background: var(--dark) !important;
  color: var(--bg) !important;
  text-decoration: none !important;
}

#htlContents a.btn-red,
#htlContents a.btn-red:link,
#htlContents a.btn-red:visited {
  background: var(--red) !important;
  color: #fff !important;
}

#htlContents a.btn-text,
#htlContents a.btn-text:link,
#htlContents a.btn-text:visited {
  color: var(--gold) !important;
}

#htlContents a.btn-red,
#htlContents a.btn-red:link,
#htlContents a.btn-red:visited {
  color: #fff !important;
}

#htlContents .footer-col a:link,
#htlContents .footer-col a:visited,
#htlContents .footer-nav a:link,
#htlContents .footer-nav a:visited,
#htlContents .f-spacer a:link,
#htlContents .f-spacer a:visited {
  color: rgba(255,255,255,.82) !important;
}

html body #htlContents a.btn-red:link,
html body #htlContents a.btn-red:visited {
  background: #c0392b !important;
  color: #ffffff !important;
  text-decoration: none !important;
}
html body #htlContents a.btn-red:hover {
  background: #a93226 !important;
  color: #ffffff !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 10px 32px rgba(192,57,43,.5) !important;
}
html body #htlContents a.btn-plan:link,
html body #htlContents a.btn-plan:visited {
  background: #2c2a25 !important;
  color: #f8f8f2 !important;
  text-decoration: none !important;
}
html body #htlContents a.btn-plan:hover {
  background: #f8f8f2 !important;
  color: #2c2a25 !important;
}
html body #htlContents a.btn-text:link,
html body #htlContents a.btn-text:visited {
  color: #b5a07a !important;
  text-decoration: none !important;
}
html body #htlContents a.btn-text:hover {
  color: #2c2a25 !important;
  border-color: #2c2a25 !important;
  gap: 12px !important;
}
html body #htlContents a.btn-ghost:link,
html body #htlContents a.btn-ghost:visited {
  color: #ffffff !important;
  text-decoration: none !important;
}
html body #htlContents a.btn-ghost:hover {
  background: rgba(255,255,255,.25) !important;
  color: #ffffff !important;
}
html body #htlContents a.btn-ghost-dark:link,
html body #htlContents a.btn-ghost-dark:visited {
  color: rgba(255,255,255,.85) !important;
  text-decoration: none !important;
}
html body #htlContents a.btn-ghost-dark:hover {
  color: #ffffff !important;
}
html body #htlContents a.btn-outline:link,
html body #htlContents a.btn-outline:visited {
  color: #b5a07a !important;
  text-decoration: none !important;
}
html body #htlContents a.btn-outline:hover {
  background: #b5a07a !important;
  color: #ffffff !important;
}
html body #htlContents .nav-links a:link,
html body #htlContents .nav-links a:visited {
  color: #4a4640 !important;
  text-decoration: none !important;
}
html body #htlContents .nav-links a:hover {
  color: #2c2a25 !important;
}
html body #htlContents .footer-col a:link,
html body #htlContents .footer-col a:visited,
html body #htlContents .footer-nav a:link,
html body #htlContents .footer-nav a:visited {
  color: rgba(255,255,255,.82) !important;
  text-decoration: none !important;
}
html body #htlContents .f-spacer a:link,
html body #htlContents .f-spacer a:visited {
  color: #b5a07a !important;
  text-decoration: none !important;
}

html body #htlContents .nav-cta a:link,
html body #htlContents .nav-cta a:visited {
  background: #c0392b !important;
  color: #ffffff !important;
  text-decoration: none !important;
}
html body #htlContents .nav-cta a:hover {
  background: #a93226 !important;
  color: #ffffff !important;
}

html body #htlContents a.btn-room-reserve:link,
html body #htlContents a.btn-room-reserve:visited {
  background: #c0392b !important;
  color: #ffffff !important;
  text-decoration: none !important;
}
html body #htlContents a.btn-room-reserve:hover {
  background: #a93226 !important;
  color: #ffffff !important;
}

/* **********************
Style
********************** */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html {
  --bg:#f8f8f2; --footer:#88ad6c; --dark:#2c2a25;
  --gold:#b5a07a; --goldl:#d4c4a0; --text:#4a4640;
  --textl:#8a8478; --red:#c0392b; --border:#e4e0d8;
  --inner:950px;
}
body { font-family:'Helvetica Neue',Arial,'Hiragino Kaku Gothic ProN','Hiragino Sans',sans-serif !important; background:var(--bg) !important; color:var(--dark) !important; }

/* **********************
adjast
********************** */
.str-pt {
  width:100%;
}
.str-pt img {
  width:100%;
  height:auto;
}

.txt-lnk {
  margin-top:20px;
}

.bl-ttl {
  color:#88ad6c;
  font-size:40px;
}

/* NAV */
.nav { position:sticky; top:0; left:0; width:100%; z-index:9999; background:rgba(248,248,242,0.6); backdrop-filter:blur(10px); border-bottom:1px solid var(--border); }
.nav-in { max-width:var(--inner); margin:0 auto; display:flex; align-items:center; justify-content:space-between; height:60px; padding:0 0; }
.logo { text-decoration:none;display:block;width:260px;height:auto; }
.logo-en { display:block; font-size:9px; letter-spacing:.35em; color:var(--gold); text-transform:uppercase; }
.logo-ja { display:block; font-size:16px; font-weight:700; letter-spacing:.1em; color:var(--dark); margin-top:2px; }
.nav-links { display:flex; align-items:center; gap:2px; list-style:none; }
.nav-links a { display:block; padding:8px 12px; font-size:11px; letter-spacing:.15em; color:var(--text); text-decoration:none; position:relative; transition:color .25s; }
.nav-links a::after { content:''; position:absolute; bottom:4px; left:12px; right:12px; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .3s cubic-bezier(.4,0,.2,1); }
.nav-links a:hover { color:var(--dark); }
.nav-links a:hover::after { transform:scaleX(1); }
.nav-active a { color: var(--dark); }
.nav-active a::after { transform: scaleX(1); }
.nav-cta a { background:var(--red)!important; color:#fff!important; border-radius:3px; padding:10px 18px!important; font-weight:700; transition:background .3s!important; }
.nav-cta a::after { display:none!important; }
.nav-cta a:hover { background:#a93226!important; }

/* FV SLIDESHOW */
.fv { position:relative; margin-top:0px; width:100%; height:calc(100vh - 60px); min-height:540px; overflow:hidden; }
.fv-slides { position:absolute; inset:0; }
.fv-overlay { position:absolute; inset:0; background:linear-gradient(135deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.2) 60%,rgba(0,0,0,.44) 100%); z-index:1; }
.fv-slide { position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; animation:fvFade 25s infinite; }
.s1{animation-delay:0s} .s2{animation-delay:5s} .s3{animation-delay:10s} .s4{animation-delay:15s} .s5{animation-delay:20s}
@keyframes fvFade {
  0%{opacity:0;transform:scale(1)} 4%{opacity:1} 20%{opacity:1;transform:scale(1.06)} 24%{opacity:0;transform:scale(1.06)} 100%{opacity:0}
}
.fv-content { position:absolute; inset:0; z-index:2; width:100%; max-width:calc(var(--inner) + 48px); margin:0 auto; left:0; right:0; display:flex; flex-direction:column; justify-content:center; padding:0 60px; }
.fv-label { font-size:10px; letter-spacing:.4em; color:var(--goldl); text-transform:uppercase; margin-bottom:20px; padding-bottom:10px; border-bottom:1px solid rgba(181,160,122,.4); display:inline-block; animation:fadeUp .8s .1s both; }
.fv-h1 { font-size:clamp(26px,3.8vw,44px); font-weight:700; color:#fff; line-height:1.5; letter-spacing:.06em; margin-bottom:18px; text-shadow:0 2px 20px rgba(0,0,0,.3); animation:fadeUp .8s .25s both; }
.fv-desc { font-size:14px; color:rgba(255,255,255,.85); line-height:1.9; margin-bottom:34px; max-width:450px; text-shadow:0 1px 6px rgba(0,0,0,.3); animation:fadeUp .8s .4s both; }
.fv-btns { display:flex; gap:14px; flex-wrap:wrap; animation:fadeUp .8s .55s both; }
.fv-badge { position:absolute; bottom:36px; right:48px; z-index:2; background:rgba(0,0,0,.42); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.2); border-radius:4px; padding:16px 22px; text-align:center; color:#fff; animation:fadeUp .8s .7s both; }
.badge-label{font-size:10px;letter-spacing:.2em;opacity:.7;margin-bottom:6px}
.badge-score{font-size:34px;font-weight:700;line-height:1}
.badge-stars{font-size:16px;color:var(--gold);margin-top:4px}
.badge-sub{font-size:11px;opacity:.7;margin-top:4px}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}

/* BUTTONS */
.btn-red { display:inline-flex; align-items:center; gap:8px; background:var(--red); color:#fff; font-size:14px; font-weight:700; letter-spacing:.08em; padding:15px 30px; border-radius:3px; text-decoration:none; border:2px solid var(--red); box-shadow:0 6px 22px rgba(192,57,43,.4); transition:background .3s,transform .25s,box-shadow .3s; }
.btn-red:hover { background:#a93226; border-color:#a93226; transform:translateY(-3px); box-shadow:0 10px 32px rgba(192,57,43,.5); }
.btn-lg { font-size:15px; padding:18px 38px; }
.btn-ghost { display:inline-flex; align-items:center; background:rgba(255,255,255,.14); color:#fff; font-size:13px; letter-spacing:.1em; padding:14px 26px; border-radius:3px; text-decoration:none; border:1px solid rgba(255,255,255,.45); backdrop-filter:blur(4px); transition:background .3s,border-color .3s,transform .25s; }
.btn-ghost:hover { background:rgba(255,255,255,.25); border-color:rgba(255,255,255,.8); transform:translateY(-2px); }
.btn-ghost-dark { display:inline-flex; align-items:center; background:transparent; color:rgba(255,255,255,.85); font-size:14px; font-weight:700; letter-spacing:.08em; padding:17px 34px; border-radius:3px; text-decoration:none; border:1px solid rgba(255,255,255,.35); transition:border-color .3s,color .3s,transform .25s; }
.btn-ghost-dark:hover { border-color:rgba(255,255,255,.7); color:#fff; transform:translateY(-2px); }
.btn-text { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; color:var(--gold); text-decoration:none; letter-spacing:.08em; border-bottom:1px solid var(--gold); padding-bottom:3px; transition:color .25s,gap .3s cubic-bezier(.4,0,.2,1),border-color .25s; }
.btn-text:hover { color:var(--dark); border-color:var(--dark); gap:12px; }
.btn-plan { display:flex; align-items:center; justify-content:center; gap:8px; background:var(--dark); color:var(--bg); font-size:12px; font-weight:700; letter-spacing:.08em; padding:13px; border-radius:3px; text-decoration:none; border:1px solid var(--dark); transition:background .3s,color .3s; }
.btn-plan:hover { background:var(--bg); color:var(--dark); }
.btn-outline { display:inline-flex; align-items:center; gap:6px; background:transparent; color:var(--gold); font-size:11px; font-weight:700; letter-spacing:.1em; padding:8px 16px; border-radius:3px; text-decoration:none; border:1px solid var(--gold); transition:background .3s,color .3s; }
.btn-outline:hover { background:var(--gold); color:#fff; }

/* SECTION COMMON */
.sec-head { text-align:center; padding:72px 24px 52px; }
.sec-en { display:block; font-size:10px; letter-spacing:.4em; color:var(--gold); text-transform:uppercase; margin-bottom:12px; }
.sec-title { font-size:clamp(20px,2.4vw,26px); font-weight:700; letter-spacing:.1em; color:var(--dark); line-height:1.6; margin-bottom:14px; }
.sec-line { width:36px; height:2px; background:var(--gold); margin:16px auto 0; }

/* STRENGTHS */
.strengths { background:var(--bg); padding-bottom:72px; }
.str-grid { max-width:var(--inner); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:2px; padding:0 24px; }
.str-card { background:#fff; padding:40px 28px; text-align:center; position:relative; overflow:hidden; transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s; }
.str-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.4,0,.2,1); }
.str-card:hover { transform:translateY(-6px); box-shadow:0 16px 44px rgba(0,0,0,.1); }
.str-card:hover::after { transform:scaleX(1); }
.str-icon{font-size:34px;margin-bottom:14px;display:block}
.str-name{font-size:15px;font-weight:700;letter-spacing:.08em;color:var(--dark);margin-bottom:10px;margin-top:10px;}
.str-text{font-size:12px;line-height:1.85;color:var(--textl);text-align:left;}

/* PLANS */
.plans { background:var(--bg); padding:0 24px 80px; border-top:1px solid var(--border); }
.plans-grid { max-width:var(--inner); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.plan-card { background:#fff; border-radius:4px; overflow:hidden; border:1px solid var(--border); display:flex; flex-direction:column; transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s; }
.plan-card:hover { transform:translateY(-8px); box-shadow:0 20px 52px rgba(0,0,0,.12); }
.plan-img { position:relative; width:100%; aspect-ratio:4/3; overflow:hidden; }
.plan-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.4,0,.2,1); }
.plan-card:hover .plan-img img { transform:scale(1.08); }
.pbadge { position:absolute; top:12px; left:12px; color:#fff; font-size:10px; font-weight:700; letter-spacing:.08em; padding:4px 10px; border-radius:2px; }
.pbadge.red{background:var(--red)} .pbadge.orange{background:#e67e22} .pbadge.gold{background:var(--gold)}
.plan-body{padding:22px 20px 26px;flex:1;display:flex;flex-direction:column}
.plan-type{font-size:10px;letter-spacing:.25em;color:var(--gold);margin-bottom:7px}
.plan-name{font-size:15px;font-weight:700;color:var(--dark);margin-bottom:10px;line-height:1.45}
.plan-desc{font-size:12px;line-height:1.85;color:var(--textl);margin-bottom:16px;flex:1}
.price-box{background:#faf8f0;border-left:3px solid var(--gold);padding:9px 14px;margin-bottom:16px;border-radius:0 3px 3px 0;display:flex;align-items:baseline;gap:6px}
.p-label{font-size:11px;color:var(--textl)} .p-num{font-size:22px;font-weight:700;color:var(--dark)} .p-unit{font-size:11px;color:var(--textl)}

/* =====================
   BLEED – 950px インナー基準
   左右の画像はビューポート端まで、テキストは950pxの半分に揃える
   ===================== */
.bleed { display:table; width:100%; border-top:1px solid var(--border); }
.bleed:last-of-type { border-bottom:1px solid var(--border); }
.bleed-img, .bleed-text { display:table-cell; width:50%; vertical-align:middle; }

.bleed-img { padding:0; overflow:hidden; position:relative; }
.bleed-img img { width:100%; height:100%; min-height:460px; object-fit:cover; display:block; transition:transform .7s cubic-bezier(.4,0,.2,1); }
.bleed-img:hover img { transform:scale(1.05); }

/* テキスト側：950pxの半分(475px)をインナー幅として、左右どちらかに寄せる */
.bleed-text { background:var(--bg); }
/* 画像左→テキスト右：テキストボックスの左端を揃える */
.bleed.img-l .bleed-text { padding:56px 24px 56px 56px; }
.bleed.img-l .bleed-text-in { max-width:calc(var(--inner) / 2 - 16px); margin-left:0; }
/* 画像右→テキスト左：テキストボックスの右端を揃える */
.bleed.img-r .bleed-text { padding:56px 56px 56px 24px; }
.bleed.img-r .bleed-text-in { max-width:calc(var(--inner) / 2 - 16px); margin-left:auto; }

.bleed-h{font-size:clamp(18px,2.2vw,24px);font-weight:700;color:var(--dark);line-height:1.55;letter-spacing:.06em;margin:10px 0 14px}
.bleed-desc{font-size:13px;line-height:1.95;color:var(--textl);margin-bottom:26px}

/* ROOMS */
.rooms { background:var(--bg); padding-bottom:80px; border-top:1px solid var(--border); }
.rooms-grid { max-width:var(--inner); margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:14px; padding:0 24px; }
.room-card { text-decoration:none; color:inherit; border-radius:3px; overflow:hidden; background:#fff; border:1px solid var(--border); display:flex; flex-direction:column; transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s; }
.room-card:hover { transform:translateY(-6px); box-shadow:0 16px 40px rgba(0,0,0,.13); }
.room-img { aspect-ratio:5/4; overflow:hidden; }
.room-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.4,0,.2,1); }
.room-card:hover .room-img img { transform:scale(1.08); }
.room-info { padding:14px 14px 10px; }
.room-type{font-size:9px;letter-spacing:.25em;color:var(--gold);text-transform:uppercase;margin-bottom:5px}
.rooms-name{font-size:13px;font-weight:700;color:var(--dark);margin-bottom:6px;line-height:1.4}
.room-price{font-size:13px;color:var(--textl);margin-bottom:12px}
.room-card .btn-plan { font-size:11px; padding:10px; margin:0 14px 14px; }
.rooms-footer { max-width:var(--inner); margin:28px auto 0; padding:0 24px; text-align:center; }

/* REVIEWS – コンパクト版 */
.reviews { background:var(--dark); padding:64px 24px; }
.rev-en{color:var(--gold)!important} .rev-title{color:#fff!important}
.rev-grid { max-width:var(--inner); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.rev-card { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:4px; padding:24px 20px; transition:background .3s,transform .3s; }
.rev-card:hover { background:rgba(255,255,255,.09); transform:translateY(-4px); }
.rev-stars{font-size:14px;color:var(--gold);letter-spacing:3px;margin-bottom:10px}
.rev-text{font-size:12px;line-height:1.85;color:rgba(255,255,255,.8);margin-bottom:12px}
.rev-meta{font-size:11px;color:rgba(255,255,255,.4);letter-spacing:.1em}

/* CTA – スコア統合版 */
.cta { background:linear-gradient(135deg,#2c2a25 0%,#3d3930 100%); padding:64px 24px; text-align:center; }
.cta-score { display:inline-flex; align-items:center; gap:10px; margin-bottom:18px; }
.cta-score-num { font-size:28px; font-weight:700; color:var(--gold); }
.cta-score-stars { font-size:16px; color:var(--gold); }
.cta-score-label { font-size:12px; color:rgba(255,255,255,.55); letter-spacing:.1em; }
.cta-title{font-size:clamp(18px,2.4vw,28px);font-weight:700;color:#fff;margin:0 0 12px;line-height:1.5;letter-spacing:.08em}
.cta-sub{font-size:13px;color:rgba(255,255,255,.65);margin-bottom:24px;line-height:1.9}
.cta-urgency{display:inline-flex;align-items:center;gap:8px;background:rgba(192,57,43,.2);border:1px solid rgba(192,57,43,.5);color:#f4a89e;font-size:12px;letter-spacing:.08em;padding:7px 16px;border-radius:2px;margin-bottom:28px;animation:blink 1.8s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.5}}
.cta-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* FOOTER SPACER */
.f-spacer{background:var(--bg);padding:52px 24px;text-align:center;border-top:1px solid var(--border)}
.f-spacer-line{width:1px;height:42px;background:var(--gold);margin:0 auto 16px}
.f-spacer a{font-size:13px;letter-spacing:.15em;color:var(--gold);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:3px;transition:color .25s,border-color .25s}
.f-spacer a:hover{color:#8a7a5a;border-color:#8a7a5a}

/* FOOTER */
.footer{background:var(--footer);padding:52px 24px 30px}
.footer-in{max-width:var(--inner);margin:0 auto}
.footer-top{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:28px;margin-bottom:32px;border-bottom:1px solid rgba(255,255,255,.25)}
.f-logo-en{font-size:10px;letter-spacing:.3em;color:rgba(255,255,255,.65);text-transform:uppercase;margin-bottom:5px}
.f-logo-ja{font-size:21px;font-weight:700;letter-spacing:.15em;color:#fff}
.f-addr{font-size:12px;line-height:1.8;color:rgba(255,255,255,.75);text-align:right}
.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:36px;margin-bottom:32px}
.fc-title{font-size:10px;letter-spacing:.25em;color:rgba(255,255,255,.55);text-transform:uppercase;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.2)}
.footer-col p,.footer-col address{font-size:12px;line-height:2;color:rgba(255,255,255,.82);font-style:normal}
.footer-col a{color:rgba(255,255,255,.82);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);transition:border-color .2s}
.footer-col a:hover{border-color:#fff}
.footer-nav{display:flex;flex-wrap:wrap;gap:5px 18px;padding:22px 0;border-top:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2);margin-bottom:20px}
.footer-nav a{font-size:11px;letter-spacing:.12em;color:rgba(255,255,255,.75);text-decoration:none;transition:color .2s}
.footer-nav a:hover{color:#fff}
.footer-copy{text-align:center;font-size:11px;letter-spacing:.1em;color:rgba(255,255,255,.5)}

/* =====================
   ROOM PAGE
   ===================== */
   /* FV パララックス 40vh */
.room-fv {
  margin-top:0px; width:100%;
  height:40vh; min-height:280px;
  background: url('../img/rb.jpg') center 70%/cover no-repeat fixed;
  position:relative; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px; text-align:center;
}
.room-fv::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.3),rgba(0,0,0,.55)); }
.room-fv-en { position:relative; z-index:1; font-size:10px; letter-spacing:.45em; color:rgba(255,255,255,.7); text-transform:uppercase; }
.room-fv-line { position:relative; z-index:1; width:36px; height:1px; background:var(--gold); }
.room-fv h1 { position:relative; z-index:1; font-size:clamp(22px,3vw,34px); font-weight:700; letter-spacing:.15em; color:#fff; text-shadow:0 2px 16px rgba(0,0,0,.4); }
.room-fv-desc { position:relative; z-index:1; font-size:13px; letter-spacing:.08em; color:rgba(255,255,255,.82); line-height:1.8; }

/* 客室リード文 */
.room-lead { text-align:center; padding:60px 24px 48px; border-bottom:1px solid var(--border); }
.room-lead p { font-size:13px; line-height:2; color:var(--textl); max-width:600px; margin:16px auto 0; }

/* ===== 客室ブロック ===== */
.room-block {
  max-width:var(--inner); margin:0 auto;
  padding:56px 24px;
  border-bottom:1px solid var(--border);
  display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;
}

/* サムネイルギャラリー（CSS only） */
.room-gallery { position:sticky; top:80px; }
.room-gallery input[type=radio] { display:none; }
.gallery-main { width:100%; aspect-ratio:4/3; border-radius:3px; overflow:hidden; position:relative; background:var(--border); margin-bottom:8px; }
.gallery-main img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .4s ease; }
.gallery-thumbs { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.gallery-thumbs label { display:block; aspect-ratio:4/3; overflow:hidden; border-radius:2px; cursor:pointer; border:2px solid transparent; transition:border-color .2s; }
.gallery-thumbs label img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.gallery-thumbs label:hover img { transform:scale(1.06); }

/* ラジオ制御 – 部屋ごとにユニークなname属性で制御 */
#ra1:checked ~ .gallery-main .gi1,
#ra2:checked ~ .gallery-main .gi2,
#ra3:checked ~ .gallery-main .gi3,
#ra4:checked ~ .gallery-main .gi4 { opacity:1; }
#ra1:checked ~ .gallery-thumbs .gt1,
#ra2:checked ~ .gallery-thumbs .gt2,
#ra3:checked ~ .gallery-thumbs .gt3,
#ra4:checked ~ .gallery-thumbs .gt4 { border-color:var(--gold); }

#rb1:checked ~ .gallery-main .gi1,
#rb2:checked ~ .gallery-main .gi2,
#rb3:checked ~ .gallery-main .gi3,
#rb4:checked ~ .gallery-main .gi4 { opacity:1; }
#rb1:checked ~ .gallery-thumbs .gt1,
#rb2:checked ~ .gallery-thumbs .gt2,
#rb3:checked ~ .gallery-thumbs .gt3,
#rb4:checked ~ .gallery-thumbs .gt4 { border-color:var(--gold); }

#rc1:checked ~ .gallery-main .gi1,
#rc2:checked ~ .gallery-main .gi2,
#rc3:checked ~ .gallery-main .gi3,
#rc4:checked ~ .gallery-main .gi4 { opacity:1; }
#rc1:checked ~ .gallery-thumbs .gt1,
#rc2:checked ~ .gallery-thumbs .gt2,
#rc3:checked ~ .gallery-thumbs .gt3,
#rc4:checked ~ .gallery-thumbs .gt4 { border-color:var(--gold); }

#rd1:checked ~ .gallery-main .gi1,
#rd2:checked ~ .gallery-main .gi2,
#rd3:checked ~ .gallery-main .gi3,
#rd4:checked ~ .gallery-main .gi4 { opacity:1; }
#rd1:checked ~ .gallery-thumbs .gt1,
#rd2:checked ~ .gallery-thumbs .gt2,
#rd3:checked ~ .gallery-thumbs .gt3,
#rd4:checked ~ .gallery-thumbs .gt4 { border-color:var(--gold); }

/* 客室情報エリア */
.room-info-wrap {}
.room-badge-row { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.room-badge { font-size:10px; font-weight:700; letter-spacing:.08em; padding:4px 10px; border-radius:2px; }
.rb-type { background:var(--bg); color:var(--gold); border:1px solid var(--gold); }
.rb-popular { background:var(--red); color:#fff; }
.rb-limited { background:#e67e22; color:#fff; }
.room-name-en { font-size:10px; letter-spacing:.3em; color:var(--textl); text-transform:uppercase; margin-bottom:6px; }
.room-name { font-size:24px; font-weight:700; color:var(--dark); line-height:1.4; letter-spacing:.06em; margin-bottom:16px; }
.room-desc { font-size:13px; line-height:1.95; color:var(--textl); padding-bottom:20px; border-bottom:1px solid var(--border); margin-bottom:20px; }

/* 価格 */
.room-price-box {
  display:flex; align-items:baseline; gap:8px;
  background:#faf8f0; border-left:3px solid var(--gold);
  padding:12px 18px; margin-bottom:20px;
  border-radius:0 3px 3px 0;
}
.rp-label { font-size:11px; color:var(--textl); letter-spacing:.1em; }
.rp-num { font-size:26px; font-weight:700; color:var(--dark); }
.rp-unit { font-size:12px; color:var(--textl); }

/* スペックグリッド */
.room-specs { display:grid; grid-template-columns:1fr 1fr; gap:12px 20px; margin-bottom:20px; padding-bottom:20px; border-bottom:1px solid var(--border); }
.spec-item {}
.spec-label { font-size:9px; letter-spacing:.2em; color:var(--gold); text-transform:uppercase; margin-bottom:4px; }
.spec-val { font-size:13px; color:var(--dark); font-weight:500; }

/* タグ */
.room-tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:24px; }
.rtag { font-size:11px; color:var(--textl); border:1px solid var(--border); border-radius:2px; padding:4px 10px; }

/* 予約ボタン – メイン */
.btn-room-reserve {
  display:flex; align-items:center; justify-content:center; gap:10px;
  background:var(--red); color:#fff;
  font-size:14px; font-weight:700; letter-spacing:.08em;
  padding:16px; border-radius:3px; text-decoration:none;
  border:2px solid var(--red); width:100%;
  box-shadow:0 4px 18px rgba(192,57,43,.35);
  transition:background .3s,transform .25s,box-shadow .3s;
  margin-bottom:10px;
}
.btn-room-reserve .arrow { transition:transform .3s cubic-bezier(.4,0,.2,1); }
.btn-room-reserve:hover { background:#a93226; border-color:#a93226; transform:translateY(-2px); box-shadow:0 8px 28px rgba(192,57,43,.45); }
.btn-room-reserve:hover .arrow { transform:translateX(6px); }

/* 注記 */
.reserve-note { font-size:11px; color:var(--textl); text-align:center; line-height:1.7; }

/* ===== アメニティ ===== */
.amenity { max-width:var(--inner); margin:0 auto 0; padding:56px 24px 72px; }
.amenity-head { display:flex; align-items:center; gap:16px; margin-bottom:36px; }
.amenity-head .a-en { font-size:10px; letter-spacing:.25em; color:var(--gold); text-transform:uppercase; }
.amenity-head h3 { font-size:18px; font-weight:700; letter-spacing:.08em; color:var(--dark); }
.amenity-head .a-line { flex:1; height:1px; background:var(--border); }
.amenity-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:32px 24px; }
.amenity-cat { font-size:10px; letter-spacing:.18em; color:var(--gold); text-transform:uppercase; margin-bottom:12px; padding-bottom:8px; border-bottom:1px solid var(--border); }
.amenity-list { list-style:none; }
.amenity-list li { font-size:12px; color:var(--textl); line-height:1.65; padding:4px 0 4px 12px; position:relative; }
.amenity-list li::before { content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); width:4px; height:4px; border-radius:50%; background:var(--gold); }

/* ===== 締めCTA ===== */
.room-cta { background:linear-gradient(135deg,#2c2a25,#3d3930); padding:64px 24px; text-align:center; }
.room-cta .cta-title { font-size:clamp(18px,2.2vw,26px); font-weight:700; color:#fff; margin:14px 0 12px; line-height:1.5; letter-spacing:.08em; }
.room-cta .cta-sub { font-size:13px; color:rgba(255,255,255,.65); margin-bottom:28px; }
.room-cta .cta-btns { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* =====================
   RESTAURANT PAGE
   ===================== */

/* FV */
.rest-fv {
  margin-top:0px; width:100%; height:40vh; min-height:280px;
  background:url('../img/reb.jpg') center 60%/cover no-repeat fixed;
  position:relative; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px; text-align:center;
}
.rest-fv::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.25),rgba(0,0,0,.6)); }
.rest-fv * { position:relative; z-index:1; }
.rest-fv-en { font-size:10px; letter-spacing:.45em; color:rgba(255,255,255,.75); text-transform:uppercase; }
.rest-fv-line { width:36px; height:1px; background:var(--gold); }
.rest-fv h1 { font-size:clamp(22px,3vw,34px); font-weight:700; letter-spacing:.15em; color:#fff; text-shadow:0 2px 16px rgba(0,0,0,.4); }
.rest-fv-desc { font-size:13px; color:rgba(255,255,255,.82); line-height:1.8; letter-spacing:.06em; }

/* リード */
.rest-lead { text-align:center; padding:60px 24px 52px; border-bottom:1px solid var(--border); }
.rest-lead p { font-size:13px; line-height:2; color:var(--textl); max-width:560px; margin:16px auto 0; }

/* ===== 自社牧場セクション ===== */
.ranch-section {
  border-bottom:1px solid var(--border);
  padding:72px 24px 0;
}
.ranch-inner {
  max-width:var(--inner); margin:0 auto;
}

/* 上部：950px幅内の写真＋キャッチコピーオーバーレイ */
.ranch-hero {
  position:relative; width:100%; aspect-ratio:21/8; overflow:hidden;
  border-radius:8px;
}
.ranch-hero img {
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 8s cubic-bezier(.4,0,.2,1);
}
.ranch-section:hover .ranch-hero img { transform:scale(1.04); }
.ranch-hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to right, rgba(0,0,0,.6) 0%, rgba(0,0,0,.2) 60%, rgba(0,0,0,.0) 100%);
}
.ranch-hero-content {
  position:absolute; inset:0; display:flex; flex-direction:column;
  justify-content:center; padding:0 52px;
  max-width:560px;
}
.ranch-hero-en { font-size:10px; letter-spacing:.45em; color:var(--goldl); text-transform:uppercase; margin-bottom:14px; }
.ranch-hero-catch {
  font-size:clamp(22px,2.8vw,34px); font-weight:700; color:#fff;
  line-height:1.55; letter-spacing:.08em;
  text-shadow:0 2px 20px rgba(0,0,0,.3);
  margin-bottom:16px;
}
.ranch-hero-sub {
  font-size:13px; color:rgba(255,255,255,.85); line-height:1.9;
  text-shadow:0 1px 8px rgba(0,0,0,.3); margin-bottom:0;
}

/* 下部：3つのポイント＋説明文 */
.ranch-body {
  padding:52px 0 56px;
  display:grid; grid-template-columns:1fr 340px; gap:64px; align-items:start;
}

/* 左：3ポイント */
.ranch-points { display:flex; flex-direction:column; gap:0; }
.ranch-point {
  display:flex; align-items:flex-start; gap:20px;
  padding:22px 0; border-bottom:1px solid var(--border);
}
.ranch-point:first-child { padding-top:0; }
.ranch-point:last-child { border-bottom:none; padding-bottom:0; }
.rp-nums {
  font-size:11px; font-weight:700; letter-spacing:.2em; color:var(--gold);
  background:#faf8f0; border:1px solid var(--gold);
  width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; margin-top:2px;
}
.rp-body {}
.rp-title { font-size:15px; font-weight:700; color:var(--dark); margin-bottom:6px; letter-spacing:.04em; }
.rp-desc  { font-size:13px; line-height:1.9; color:var(--textl); }

/* 右：写真2枚＋バッジ */
.ranch-photos { position:sticky; top:80px; }
.ranch-photos-grid { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-bottom:12px; }
.ranch-photos-grid img {
  width:100%; aspect-ratio:4/3; object-fit:cover; display:block;
  border-radius:2px; transition:transform .5s cubic-bezier(.4,0,.2,1);
}
.ranch-photos-grid img:hover { transform:scale(1.03); }
.ranch-badge-row { display:flex; gap:6px; flex-wrap:wrap; }
.ranch-badge {
  display:inline-flex; align-items:center; gap:6px;
  font-size:11px; font-weight:700; letter-spacing:.06em;
  padding:6px 14px; border-radius:2px;
}
.rb-green { background:rgba(76,153,76,.1); color:#3a7a3a; border:1px solid rgba(76,153,76,.35); }
.rb-gold  { background:var(--bg); color:var(--gold); border:1px solid var(--gold); }

/* 上部CTAバナー */
.plan-banner-wrap { padding:0 24px; }
.plan-banner {
  background:var(--dark); padding:24px 36px;
  max-width:var(--inner); margin:48px auto 0;
  display:flex; align-items:center; justify-content:space-between; gap:24px; border-radius:3px;
}
.pb-label { font-size:10px; letter-spacing:.3em; color:var(--gold); text-transform:uppercase; margin-bottom:5px; display:block; }
.plan-banner p { font-size:15px; font-weight:700; color:#fff; letter-spacing:.04em; line-height:1.5; }
.plan-banner span { font-size:12px; color:rgba(255,255,255,.55); font-weight:400; }

/* ===== 食事セクション共通 ===== */
.dining-section { max-width:var(--inner); margin:0 auto; padding:72px 24px 0; }
.dining-head {
  display:flex; align-items:flex-end; justify-content:space-between;
  padding-bottom:18px; border-bottom:2px solid var(--border); margin-bottom:36px;
}
.dh-left .d-en { font-size:10px; letter-spacing:.35em; color:var(--gold); text-transform:uppercase; margin-bottom:7px; display:block; }
.dh-left h2 { font-size:clamp(20px,2.2vw,24px); font-weight:700; color:var(--dark); letter-spacing:.08em; }
.dh-right { font-size:12px; color:var(--textl); line-height:1.8; text-align:right; }

/* 食事ブロック：ギャラリー左＋テキスト右 */
.dining-block { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }

/* ギャラリー（客室ページ流用） */
.dining-gallery { position:sticky; top:80px; }
.dining-gallery input[type=radio] { display:none; }
.dgallery-main { width:100%; aspect-ratio:4/3; border-radius:3px; overflow:hidden; position:relative; background:var(--border); margin-bottom:8px; }
.dgallery-main img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .4s ease; }
.dgallery-thumbs { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.dgallery-thumbs label { display:block; aspect-ratio:4/3; overflow:hidden; border-radius:2px; cursor:pointer; border:2px solid transparent; transition:border-color .2s; }
.dgallery-thumbs label img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.dgallery-thumbs label:hover img { transform:scale(1.06); }

/* ディナー */
#da1:checked ~ .dgallery-main .di1,#da2:checked ~ .dgallery-main .di2,#da3:checked ~ .dgallery-main .di3,#da4:checked ~ .dgallery-main .di4 { opacity:1; }
#da1:checked ~ .dgallery-thumbs .dt1,#da2:checked ~ .dgallery-thumbs .dt2,#da3:checked ~ .dgallery-thumbs .dt3,#da4:checked ~ .dgallery-thumbs .dt4 { border-color:var(--gold); }
/* ランチ */
#db1:checked ~ .dgallery-main .di1,#db2:checked ~ .dgallery-main .di2,#db3:checked ~ .dgallery-main .di3,#db4:checked ~ .dgallery-main .di4 { opacity:1; }
#db1:checked ~ .dgallery-thumbs .dt1,#db2:checked ~ .dgallery-thumbs .dt2,#db3:checked ~ .dgallery-thumbs .dt3,#db4:checked ~ .dgallery-thumbs .dt4 { border-color:var(--gold); }
/* 朝食 */
#dc1:checked ~ .dgallery-main .di1,#dc2:checked ~ .dgallery-main .di2,#dc3:checked ~ .dgallery-main .di3,#dc4:checked ~ .dgallery-main .di4 { opacity:1; }
#dc1:checked ~ .dgallery-thumbs .dt1,#dc2:checked ~ .dgallery-thumbs .dt2,#dc3:checked ~ .dgallery-thumbs .dt3,#dc4:checked ~ .dgallery-thumbs .dt4 { border-color:var(--gold); }

/* テキストエリア */
.dining-info { padding-top:4px; }
.dining-badge-row { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.d-badge { font-size:10px; font-weight:700; letter-spacing:.08em; padding:4px 10px; border-radius:2px; }
.db-type { background:var(--bg); color:var(--gold); border:1px solid var(--gold); }
.db-note { background:var(--bg); color:var(--textl); border:1px solid var(--border); }
.dining-name { font-size:22px; font-weight:700; color:var(--dark); line-height:1.4; letter-spacing:.06em; margin-bottom:16px; }
.dining-desc { font-size:13px; line-height:1.95; color:var(--textl); padding-bottom:20px; border-bottom:1px solid var(--border); margin-bottom:20px; }

/* 特徴リスト */
.dining-features { list-style:none; margin-bottom:28px; }
.dining-features li { font-size:13px; color:var(--text); line-height:1.6; padding:8px 0 8px 16px; position:relative; border-bottom:1px solid var(--border); }
.dining-features li::before { content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); width:5px; height:5px; border-radius:50%; background:var(--gold); }

/* 時間バッジ */
.dining-time { display:inline-flex; align-items:center; gap:10px; background:#faf8f0; border-left:3px solid var(--gold); padding:10px 16px; border-radius:0 3px 3px 0; margin-bottom:24px; }
.dt-label { font-size:10px; letter-spacing:.15em; color:var(--textl); }
.dt-val { font-size:14px; font-weight:700; color:var(--dark); }

/* ===== 施設・BBQ ブリード ===== */
.venue-section { padding:80px 0 0; }
.venue-bleed { display:table; width:100%; border-top:1px solid var(--border); }
.venue-bleed:last-child { border-bottom:1px solid var(--border); }
.vb-img,.vb-text { display:table-cell; width:50%; vertical-align:middle; }
.vb-img { overflow:hidden; }
.vb-img img { width:100%; height:100%; min-height:420px; object-fit:cover; display:block; transition:transform .7s cubic-bezier(.4,0,.2,1); }
.vb-img:hover img { transform:scale(1.04); }
.vb-text { background:var(--bg); }
.vb-text-in { padding:64px 56px; }
.vb-text.text-right .vb-text-in { max-width:475px; margin-left:auto; }
.vb-text.text-left .vb-text-in { max-width:475px; }
.vb-h { font-size:clamp(18px,2vw,22px); font-weight:700; color:var(--dark); line-height:1.55; letter-spacing:.06em; margin:10px 0 14px; }
.vb-desc { font-size:13px; line-height:1.95; color:var(--textl); margin-bottom:10px; }
.vb-note { font-size:12px; color:var(--gold); margin-bottom:24px; font-weight:700; letter-spacing:.06em; }
.bbq-badge { display:inline-flex; align-items:center; gap:8px; background:rgba(192,57,43,.08); border:1px solid rgba(192,57,43,.3); color:var(--red); font-size:11px; font-weight:700; letter-spacing:.08em; padding:6px 14px; border-radius:2px; margin-bottom:20px; }

/* 営業時間 */
.hours { max-width:var(--inner); margin:80px auto 0; padding:0 24px 80px; }
.hours-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:36px; }
.hour-card { background:#fff; padding:32px 28px; text-align:center; position:relative; overflow:hidden; transition:transform .3s,box-shadow .3s; }
.hour-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.4,0,.2,1); }
.hour-card:hover { transform:translateY(-4px); box-shadow:0 12px 36px rgba(0,0,0,.09); }
.hour-card:hover::after { transform:scaleX(1); }
.hour-icon { font-size:28px; margin-bottom:12px; display:block; }
.hour-name { font-size:12px; font-weight:700; color:var(--dark); letter-spacing:.15em; margin-bottom:12px;padding-top:10px; }
.hour-time { font-size:20px; font-weight:700; color:var(--dark); margin-bottom:6px; }
.hour-note { font-size:11px; color:var(--textl); line-height:1.7; }

/* 締めCTA */
.rest-cta { background:linear-gradient(135deg,#2c2a25,#3d3930); padding:72px 24px; text-align:center; }
.rc-label { font-size:10px; letter-spacing:.4em; color:var(--gold); text-transform:uppercase; display:block; margin-bottom:14px; }
.rc-title { font-size:clamp(18px,2.4vw,26px); font-weight:700; color:#fff; margin-bottom:12px; line-height:1.5; letter-spacing:.08em; }
.rc-sub { font-size:13px; color:rgba(255,255,255,.65); margin-bottom:32px; line-height:1.9; }
.rc-btns { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.rc-note { font-size:11px; color:rgba(255,255,255,.4); margin-top:20px; line-height:1.8; }

/* =====================
   FACILITY PAGE
   ===================== */
   /* FV */
.fac-fv {
  margin-top:0px; width:100%; height:40vh; min-height:280px;
  background:url('../img/fb.jpg') center 40%/cover no-repeat fixed;
  position:relative; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px; text-align:center;
}
.fac-fv::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.25),rgba(0,0,0,.6)); }
.fac-fv * { position:relative; z-index:1; }
.fac-fv-en { font-size:10px; letter-spacing:.45em; color:rgba(255,255,255,.75); text-transform:uppercase; }
.fac-fv-line { width:36px; height:1px; background:var(--gold); }
.fac-fv h1 { font-size:clamp(22px,3vw,34px); font-weight:700; letter-spacing:.15em; color:#fff; text-shadow:0 2px 16px rgba(0,0,0,.4); }
.fac-fv-desc { font-size:13px; color:rgba(255,255,255,.82); line-height:1.8; letter-spacing:.06em; }

/* リード */
.fac-lead { text-align:center; padding:60px 24px 52px; border-bottom:1px solid var(--border); }
.fac-lead p { font-size:13px; line-height:2; color:var(--textl); max-width:560px; margin:16px auto 0; }

/* ===== セクション共通 ===== */
.fac-section { max-width:var(--inner); margin:0 auto; padding:72px 24px 0; }
.fac-section-last { padding-bottom:80px; }
.fac-head { display:flex; align-items:center; gap:16px; margin-bottom:36px; }
.fac-head .fh-en { font-size:10px; letter-spacing:.25em; color:var(--gold); text-transform:uppercase; }
.fac-head h2 { font-size:18px; font-weight:700; letter-spacing:.08em; color:var(--dark); }
.fac-head .fh-line { flex:1; height:1px; background:var(--border); }

/* ===== 段①：バナー型大カード（横長画像上・テキスト下） ===== */
.banner-cards { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.banner-card {
  background:#fff; border:1px solid var(--border); border-radius:4px;
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s;
}
.banner-card:hover { transform:translateY(-6px); box-shadow:0 20px 48px rgba(0,0,0,.13); }
.bn-img { width:100%; aspect-ratio:16/9; overflow:hidden; position:relative; }
.bn-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.4,0,.2,1); }
.banner-card:hover .bn-img img { transform:scale(1.05); }
.bn-badge-wrap { position:absolute; top:12px; left:12px; display:flex; gap:6px; }
.bn-badge { font-size:10px; font-weight:700; letter-spacing:.08em; padding:4px 10px; border-radius:2px; color:#fff; }
.bn-red  { background:var(--red); }
.bn-gold { background:var(--gold); }
.bn-dark { background:rgba(0,0,0,.55); backdrop-filter:blur(4px); }
.bn-body { padding:24px 26px 28px; flex:1; display:flex; flex-direction:column; }
.bn-en   { font-size:10px; letter-spacing:.3em; color:var(--gold); text-transform:uppercase; margin-bottom:6px; }
.bn-name { font-size:17px; font-weight:700; color:var(--dark); line-height:1.4; letter-spacing:.06em; margin-bottom:10px; }
.bn-desc { font-size:12px; line-height:1.9; color:var(--textl); margin-bottom:16px; flex:1; }
.bn-features { list-style:none; margin-bottom:16px; }
.bn-features li { font-size:12px; color:var(--text); line-height:1.6; padding:5px 0 5px 14px; position:relative; border-bottom:1px solid var(--border); }
.bn-features li:last-child { border-bottom:none; }
.bn-features li::before { content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); width:5px; height:5px; border-radius:50%; background:var(--gold); }
.bn-time { display:inline-flex; align-items:center; gap:8px; background:#faf8f0; border-left:3px solid var(--gold); padding:8px 12px; border-radius:0 3px 3px 0; margin-bottom:16px; font-size:11px; }
.bn-time-label { color:var(--textl); letter-spacing:.1em; }
.bn-time-val   { font-weight:700; color:var(--dark); }

/* ===== 段②：リスト型（16:9画像左・テキスト右・1行1施設） ===== */
.mid-list { display:flex; flex-direction:column; border:1px solid var(--border); }
.mid-list-item {
  background:#fff; display:grid; grid-template-columns:320px 1fr;
  border-bottom:1px solid var(--border); overflow:hidden;
  transition:box-shadow .3s; position:relative;
}
.mid-list-item:last-child { border-bottom:none; }
.mid-list-item:hover { box-shadow:0 4px 20px rgba(0,0,0,.09); z-index:1; }
.ml-img { aspect-ratio:16/14; overflow:hidden; flex-shrink:0; }
.ml-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.4,0,.2,1); }
.mid-list-item:hover .ml-img img { transform:scale(1.05); }
.ml-body { padding:24px 32px; border-left:1px solid var(--border); display:flex; flex-direction:column; justify-content:center; }
.ml-en   { font-size:9px; letter-spacing:.25em; color:var(--gold); text-transform:uppercase; margin-bottom:5px; }
.ml-name { font-size:15px; font-weight:700; color:var(--dark); margin-bottom:10px; line-height:1.4; }
.ml-desc { font-size:13px; line-height:1.95; color:var(--textl); margin-bottom:14px; flex:1; }
.ml-time { font-size:11px; color:var(--textl); background:#faf8f0; border-left:3px solid var(--gold); padding:7px 12px; border-radius:0 2px 2px 0; display:inline-block; }

/* ===== 段③：小カード（小さめ画像＋テキスト） ===== */
.small-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; }
.small-card {
  background:#fff; border:1px solid var(--border);
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .3s,box-shadow .3s; position:relative;
}
.small-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.4,0,.2,1); }
.small-card:hover { transform:translateY(-4px); box-shadow:0 10px 28px rgba(0,0,0,.08); }
.small-card:hover::after { transform:scaleX(1); }
.sc-img { width:100%; aspect-ratio:3/2; overflow:hidden; }
.sc-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s cubic-bezier(.4,0,.2,1); }
.small-card:hover .sc-img img { transform:scale(1.07); }
.sc-body { padding:14px 16px 18px; flex:1; }
.sc-name { font-size:12px; font-weight:700; color:var(--dark); letter-spacing:.08em; margin-bottom:6px; }
.sc-note { font-size:11px; color:var(--textl); line-height:1.75; }

/* ===== フロアマップ ===== */
.fac-floormap { background:var(--dark); padding:72px 24px; }
.floormap-wrap { max-width:var(--inner); margin:0 auto; border:1px solid rgba(255,255,255,.15); border-radius:4px; overflow:hidden; }
.floormap-wrap img { width:100%; display:block; }
.floormap-placeholder {
  width:100%; min-height:400px;
  background:rgba(255,255,255,.05);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  color:rgba(255,255,255,.5);
}
.floormap-placeholder .fp-icon { font-size:48px; opacity:.5; }
.floormap-placeholder p { font-size:13px; letter-spacing:.15em; }
.floormap-placeholder small { font-size:11px; opacity:.6; }
.floormap-note { max-width:var(--inner); margin:16px auto 0; font-size:11px; color:rgba(255,255,255,.4); text-align:right; }

/* 締めCTA */
.fac-cta { background:linear-gradient(135deg,#2c2a25,#3d3930); padding:72px 24px; text-align:center; }
.fc-label { font-size:10px; letter-spacing:.4em; color:var(--gold); text-transform:uppercase; display:block; margin-bottom:14px; }
.fc-title { font-size:clamp(18px,2.4vw,26px); font-weight:700; color:#fff; margin-bottom:12px; line-height:1.5; letter-spacing:.08em; }
.fc-sub   { font-size:13px; color:rgba(255,255,255,.65); margin-bottom:32px; line-height:1.9; }
.fc-btns  { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.f_sp {margin-top:12px;}

/* =====================
   ACCESS PAGE
   ===================== */
   /* FV */
.acc-fv {
  margin-top:0px; width:100%; height:40vh; min-height:280px;
  background:url('../img/ab.jpg') center 50%/cover no-repeat fixed;
  position:relative; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px; text-align:center;
}
.acc-fv::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.3),rgba(0,0,0,.65)); }
.acc-fv * { position:relative; z-index:1; }
.acc-fv-en { font-size:10px; letter-spacing:.45em; color:rgba(255,255,255,.75); text-transform:uppercase; }
.acc-fv-line { width:36px; height:1px; background:var(--gold); }
.acc-fv h1 { font-size:clamp(22px,3vw,34px); font-weight:700; letter-spacing:.15em; color:#fff; text-shadow:0 2px 16px rgba(0,0,0,.4); }
.acc-fv-desc { font-size:13px; color:rgba(255,255,255,.82); line-height:1.8; letter-spacing:.06em; }

/* ===== 地図 + 基本情報 ===== */
.acc-main { width:950px; margin:0 auto; padding:72px 0px 0; display:flex; grid-template-columns:1fr 420px; gap:48px; align-items:start; }
.acc-map-wrap { border-radius:4px; overflow:hidden; border:1px solid var(--border); background:var(--border); aspect-ratio:4/3; position:relative; }
.acc-map-wrap iframe { width:100%; height:100%; display:block; filter:grayscale(20%) contrast(95%); }
.acc-map-placeholder {
  width:100%; height:100%; min-height:360px;
  background:linear-gradient(135deg,#e4e0d8 0%,#d4cfc6 100%);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; color:var(--textl);
}
.acc-map-placeholder .map-icon { font-size:42px; }
.acc-map-placeholder p { font-size:12px; letter-spacing:.1em; }
.acc-map-placeholder small { font-size:11px; opacity:.7; }

/* 基本情報カード */
.acc-info-card { background:#fff; border:1px solid var(--border); border-radius:4px; padding:28px 24px; margin-bottom:16px; }
.aic-title { font-size:10px; letter-spacing:.25em; color:var(--gold); text-transform:uppercase; margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--border); }
.aic-row { display:flex; gap:12px; padding:9px 0; border-bottom:1px solid var(--border); align-items:flex-start; }
.aic-row:last-child { border-bottom:none; padding-bottom:0; }
.aic-label { font-size:10px; letter-spacing:.12em; color:var(--gold); min-width:56px; padding-top:2px; flex-shrink:0; }
.aic-val { font-size:13px; color:var(--dark); line-height:1.75; }
.aic-val a { color:var(--dark); text-decoration:none; border-bottom:1px solid var(--border); transition:border-color .2s; }
.aic-val a:hover { border-color:var(--gold); }

/* チェックイン・アウト */
.acc-ci-grid { display:grid; grid-template-columns:1fr 1fr; gap:2px; margin-bottom:16px; }
.acc-ci-card { background:#fff; border:1px solid var(--border); padding:20px 18px; text-align:center; }
.acc-ci-label { font-size:10px; letter-spacing:.2em; color:var(--gold); margin-bottom:6px; text-transform:uppercase; }
.acc-ci-time { font-size:24px; font-weight:700; color:var(--dark); margin-bottom:4px; }
.acc-ci-note { font-size:11px; color:var(--textl); }

/* ===== 交通手段タブ ===== */
.acc-transport { max-width:var(--inner); margin:64px auto 0; padding:0 24px; }
.at-head { display:flex; align-items:center; gap:16px; margin-bottom:32px; }
.at-head .at-en { font-size:10px; letter-spacing:.25em; color:var(--gold); text-transform:uppercase; }
.at-head h2 { font-size:18px; font-weight:700; letter-spacing:.08em; color:var(--dark); }
.at-head .at-line { flex:1; height:1px; background:var(--border); }

.trans-tabs { }
.trans-tabs input[type=radio] { display:none; }

/* タブラベル */
.trans-tab-labels {
  display:flex; gap:0; margin-bottom:0;
  border-bottom:none; /* パネルのborderと繋げる */
}
.trans-tab-label {
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 28px;
  font-size:12px; font-weight:700; letter-spacing:.1em;
  color:var(--textl);
  background:var(--border); /* 非選択：薄グレー */
  border:1px solid var(--border);
  border-bottom:1px solid var(--border);
  cursor:pointer;
  transition:color .2s, background .2s;
  position:relative; /* z-index制御のため */
  z-index:0;
  margin-right:3px;
  border-radius:3px 3px 0 0;
}
.trans-tab-label:hover { color:var(--dark); background:#ece9e1; }

/* アクティブタブ：白背景・下ボーダーなし・パネルと一体化 */
#t-train:checked ~ .trans-tab-labels .tl-train,
#t-car:checked   ~ .trans-tab-labels .tl-car {
  background:#fff;
  color:var(--dark);
  border-color:var(--border);
  border-bottom-color:#fff; /* 下ボーダーを白にしてパネルと一体化 */
  z-index:2;
}

/* パネル */
.trans-panels {
  border:1px solid var(--border);
  background:#fff;
  border-radius:0 3px 3px 3px;
  position:relative;
  z-index:1;
}
.trans-panel { display:none; padding:40px 36px; }
#t-train:checked ~ .trans-panels .tp-train,
#t-car:checked   ~ .trans-panels .tp-car { display:block; }

/* ===== ルートノード ===== */
.route { margin-bottom:36px; }
.route:last-of-type { margin-bottom:0; }
.route-badge { display:inline-flex; align-items:center; gap:6px; font-size:10px; font-weight:700; letter-spacing:.1em; padding:4px 10px; border-radius:2px; margin-bottom:16px; }
.rb-primary   { background:var(--dark); color:#fff; }
.rb-secondary { background:var(--bg); color:var(--gold); border:1px solid var(--gold); }
.route-nodes { display:flex; flex-direction:column; }
.route-node { display:flex; align-items:flex-start; gap:14px; position:relative; padding-bottom:20px; }
.route-node:last-child { padding-bottom:0; }
.route-node::before {
  content:''; position:absolute; left:7px; top:18px; bottom:0; width:2px;
  background:repeating-linear-gradient(to bottom,var(--gold) 0,var(--gold) 5px,transparent 5px,transparent 10px);
}
.route-node:last-child::before { display:none; }
.rn-dot { width:16px; height:16px; border-radius:50%; background:var(--gold); border:3px solid #fff; box-shadow:0 0 0 2px var(--gold); flex-shrink:0; margin-top:2px; }
.rn-dot.start,.rn-dot.end { background:var(--dark); box-shadow:0 0 0 2px var(--dark); }
.rn-body { flex:1; }
.rn-place { font-size:14px; font-weight:700; color:var(--dark); margin-bottom:2px; }
.rn-note  { font-size:12px; color:var(--textl); line-height:1.6; }
.rn-time  { display:inline-flex; align-items:center; gap:6px; background:#faf8f0; border-left:2px solid var(--gold); padding:5px 12px; font-size:12px; font-weight:700; color:var(--dark); margin:6px 0 0; border-radius:0 2px 2px 0; }

/* ===== 画像＋テキスト BOX ===== */
.route-media-box {
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  border:1px solid var(--border); border-radius:3px; overflow:hidden;
  margin-top:28px;
}
.rmb-img { aspect-ratio:4/3; overflow:hidden; }
.rmb-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.4,0,.2,1); }
.route-media-box:hover .rmb-img img { transform:scale(1.05); }
.rmb-text { background:#faf8f0; padding:28px 24px; display:flex; flex-direction:column; justify-content:center; }
.rmb-label { font-size:10px; letter-spacing:.25em; color:var(--gold); text-transform:uppercase; margin-bottom:8px; }
.rmb-title { font-size:15px; font-weight:700; color:var(--dark); line-height:1.5; margin-bottom:10px; }
.rmb-desc  { font-size:12px; color:var(--textl); line-height:1.85; margin-bottom:16px; }

/* 送迎バナー */
.transfer-banner {
  background:linear-gradient(135deg,var(--dark),#3d3930);
  border-radius:4px; padding:24px 28px; margin-top:36px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.tb-label { font-size:10px; letter-spacing:.3em; color:var(--gold); text-transform:uppercase; margin-bottom:5px; display:block; }
.tb-title { font-size:15px; font-weight:700; color:#fff; margin-bottom:4px; }
.tb-note  { font-size:12px; color:rgba(255,255,255,.55); }

/* ===== 駐車場 ===== */
.acc-parking { max-width:var(--inner); margin:64px auto 0; padding:0 24px 50px 24px; }
.parking-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:28px; }
.parking-card { background:#fff; border:1px solid var(--border); padding:24px 20px; text-align:center; }
.pc-icon  { font-size:28px; margin-bottom:10px; display:block; }
.pc-label { font-size:11px; font-weight:700; color:var(--dark); letter-spacing:.12em; margin-bottom:8px; }
.pc-val   { font-size:16px; font-weight:700; color:var(--dark); margin-bottom:6px; }
.pc-note  { font-size:11px; color:var(--textl); line-height:1.7; }

/* ===== 周辺観光 ===== */
.acc-spots { border-top:1px solid var(--border); margin-top:64px; }
.spots-grid { max-width:var(--inner); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding:0 24px 80px; }
.spot-card { background:#fff; border:1px solid var(--border); border-radius:3px; overflow:hidden; transition:transform .3s,box-shadow .3s; }
.spot-card:hover { transform:translateY(-6px); box-shadow:0 14px 40px rgba(0,0,0,.1); }
.spot-img { width:100%; aspect-ratio:16/9; overflow:hidden; }
.spot-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.spot-card:hover .spot-img img { transform:scale(1.06); }
.spot-body { padding:16px; }
.spot-dist { font-size:10px; letter-spacing:.15em; color:var(--gold); margin-bottom:5px; }
.spot-name { font-size:14px; font-weight:700; color:var(--dark); margin-bottom:6px; }
.spot-desc { font-size:12px; line-height:1.75; color:var(--textl); }

/* 締めCTA */
.acc-cta { background:linear-gradient(135deg,#2c2a25,#3d3930); padding:72px 24px; text-align:center; }
.ac-label { font-size:10px; letter-spacing:.4em; color:var(--gold); text-transform:uppercase; display:block; margin-bottom:14px; }
.ac-title { font-size:clamp(18px,2.4vw,26px); font-weight:700; color:#fff; margin-bottom:12px; line-height:1.5; letter-spacing:.08em; }
.ac-sub   { font-size:13px; color:rgba(255,255,255,.65); margin-bottom:32px; line-height:1.9; }
.ac-btns  { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.route_cont {margin-bottom:30px;}
.acc-img {
  width:700px;
  height:auto;
  margin:0 auto;
}
.acc-img img {
  width:100%;
  height:auto;
}

.acc-maparea {
  position:relative;
  width:600px;
}

.acc-maparea img {
  width:100%;
  height:auto;
}

.maplink {
  display:block;
}

/* =============================================
   レスポンシブ用メディアクエリ
   css-file3.css の一番下に追記してください

   PC        : 950px以上（既存スタイルがそのまま適用）
   タブレット: 460px〜949px
   スマホ    : 459px以下
   ============================================= */

/* ===== タブレット（460〜949px） ===== */
@media (max-width: 949px) {

  :root { --inner: 100%; }

  /* NAV */
  .nav-in { padding:0 16px; }
  .logo-ja { font-size:14px; }
  .nav-links li:not(.nav-cta) { display:none; } /* 予約ボタンだけ残す */

  /* FV */
  .fv-content { padding:0 32px; }
  .fv-h1 { font-size:clamp(22px,4vw,36px); }

  /* STRENGTHS：2カラム */
  .str-grid { grid-template-columns:repeat(2,1fr); padding:0 16px; }

  /* PLANS：2カラム */
  .plans { padding:0 16px 64px; }
  .plans-grid { grid-template-columns:repeat(2,1fr); }

  /* BLEED：タブレットも縦積みに */
  .bleed { display:block; }
  .bleed-img,
  .bleed-text { display:block; width:100%; }
  .bleed-img img { min-height:280px; }
  .bleed.img-l .bleed-text,
  .bleed.img-r .bleed-text { padding:40px 24px; }
  .bleed.img-l .bleed-text-in,
  .bleed.img-r .bleed-text-in { max-width:100%; margin:0; }
  .bleed.img-r { display:flex; flex-direction:column; }
  .bleed.img-r .bleed-text { order:2; }
  .bleed.img-r .bleed-img  { order:1; }

  /* ROOMS：2カラム */
  .rooms-grid { grid-template-columns:repeat(2,1fr); padding:0 16px; }

  /* REVIEWS：2カラム（3枚目は非表示） */
  .rev-grid { grid-template-columns:repeat(2,1fr); }
  .rev-card:nth-child(3) { display:none; }

  /* CTA */
  .cta-btns { flex-direction:column; align-items:center; gap:10px; }
  .cta-btns .btn-red,
  .cta-btns .btn-ghost-dark { width:100%; max-width:400px; justify-content:center; }

  /* FOOTER */
  .footer-grid { grid-template-columns:1fr 1fr; gap:24px; }
  .footer-top { flex-direction:column; align-items:flex-start; gap:12px; }
  .f-addr { text-align:left; }
}

/* ===== スマホ（459px以下） ===== */
@media (max-width: 459px) {

  /* NAV */
  .nav-in { height:52px; padding:0 16px; }
  .logo-en { display:none; } /* ロゴの英字サブテキストを非表示 */
  .logo-ja { font-size:13px; }
  .nav-links li:not(.nav-cta) { display:none; }
  .nav-cta a { font-size:11px; padding:8px 14px !important; }

  /* FV */
  .fv { height:100svh; min-height:500px; margin-top:52px; }
  .fv-content { padding:0 20px; }
  .fv-h1 { font-size:clamp(20px,6vw,28px); }
  .fv-desc { font-size:12px; max-width:100%; }
  .fv-btns { flex-direction:column; gap:10px; }
  .fv-btns .btn-red,
  .fv-btns .btn-ghost { width:100%; justify-content:center; }
  .fv-badge { right:12px; bottom:16px; padding:10px 14px; }
  .badge-score { font-size:26px; }

  /* ボタン共通 */
  .btn-red.btn-lg { font-size:14px; padding:16px 20px; width:100%; justify-content:center; }
  .btn-ghost-dark { width:100%; justify-content:center; }

  /* セクション共通 */
  .sec-head { padding:48px 16px 32px; }
  .sec-title { font-size:17px; }

  /* STRENGTHS：1カラム */
  .str-grid { grid-template-columns:1fr; gap:2px; padding:0 16px; }

  /* PLANS：1カラム */
  .plans { padding:0 16px 48px; }
  .plans-grid { grid-template-columns:1fr; gap:16px; }

  /* BLEED：縦積み */
  .bleed { display:block; }
  .bleed-img,
  .bleed-text { display:block; width:100%; }
  .bleed-img img { min-height:220px; }
  .bleed.img-l .bleed-text,
  .bleed.img-r .bleed-text { padding:32px 16px; }
  .bleed.img-l .bleed-text-in,
  .bleed.img-r .bleed-text-in { max-width:100%; margin:0; }
  /* 画像→テキストの順に統一 */
  .bleed.img-r { display:flex; flex-direction:column; }
  .bleed.img-r .bleed-text { order:2; }
  .bleed.img-r .bleed-img  { order:1; }

  /* ROOMS：1カラム */
  .rooms { padding-bottom:48px; }
  .rooms-grid { grid-template-columns:1fr; gap:12px; padding:0 16px; }
  .room-img { aspect-ratio:16/9; } /* スマホは横長に */

  /* REVIEWS：1カラム */
  .reviews { padding:48px 16px; }
  .rev-grid { grid-template-columns:1fr; gap:12px; }
  .rev-card:nth-child(3) { display:block; } /* 3枚目を再表示 */

  /* CTA */
  .cta { padding:48px 16px; }
  .cta-btns { flex-direction:column; align-items:center; gap:10px; }
  .cta-btns .btn-red,
  .cta-btns .btn-ghost-dark { width:100%; justify-content:center; }

  /* FOOTER */
  .footer { padding:40px 16px 24px; }
  .footer-top { flex-direction:column; align-items:flex-start; gap:12px; }
  .f-addr { text-align:left; }
  .footer-grid { grid-template-columns:1fr; gap:20px; }
  .footer-nav { gap:6px 12px; }
}
