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

#rooms a:link { color: inherit !important; }
#rooms a:visited { color: inherit !important; }
.rbtns a.btn-rrsv:hover { color: #d42b2b !important; }
.pm a.btn-od:hover { color: #fff !important; }
.fac-b a.btn-od:hover { color: #fff !important; }
.fac-b a.btn-ow:hover { color: #372010 !important; }
.fac-cn a.fac-cb:hover { color: #fff !important; }
#rooms .rf a.btn-od:hover { color: #fff !important; }
.cta a.btn-cta:hover { color: #d42b2b !important; }

a.btn-plan {
  color: #fff !important;
}

a.btn-plan:hover {
  color:#d42b2b !important;
}


a.btn-ow,
a.btn-ow:link,
a.btn-ow:visited,
a.btn-ow:hover,
a.btn-ow:active {
  color: #fff !important;
}
a.btn-ow:hover,
a.btn-ow:active {
  color: #372010 !important;
}

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

.rooms .rbtns a.btn-rrsv:hover,
.rooms .rbtns a.btn-rrsv:visited:hover,
.rooms .rbtns a.btn-rrsv:visited:active,
.rooms .rbtns a.btn-rrsv:active {
  color: #d42b2b !important;
}




a.btn-cta,
a.btn-cta:link,
a.btn-cta:visited {
  color: #fff !important;
}
a.btn-cta:hover,
a.btn-cta:active {
  color: #372010 !important;
}



*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Meiryo",sans-serif;color:#1a1a1a;background:#fff;line-height:1.7;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

:root{
  --brown:#372010;
  --red:#d42b2b;
  --cream:#faf7f4;
  --border:#e8e0d8;
  --muted:#666;
  --inner:950px;
}

/* ===== BUTTONS ===== */
.btn-red{display:inline-flex;align-items:center;justify-content:center;background:var(--red);color:#fff;font-size:13px;letter-spacing:.18em;padding:15px 44px;border:2px solid var(--red);transition:background .25s,color .25s,border-color .25s;white-space:nowrap}
.btn-red:hover{background:transparent;color:#fff;border-color:#fff}
.btn-od{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--brown);color:var(--brown);font-size:12px;letter-spacing:.18em;padding:12px 32px;transition:background .25s,color .25s;white-space:nowrap}
.btn-od:hover{background:var(--brown);color:#fff}
.btn-ow{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.65);color:#fff!important;font-size:12px;letter-spacing:.18em;padding:12px 32px;transition:background .25s,color .25s,border-color .25s;white-space:nowrap}
.btn-ow:hover{background:#fff;color:var(--brown) !important;border-color:#fff}

/* ===== SEC HEAD ===== */
.sh{text-align:center;margin-bottom:52px}
.se{font-size:11px;letter-spacing:.4em;color:#aaa;display:block;margin-bottom:12px;text-transform:uppercase}
.st{font-size:clamp(20px,2.2vw,28px);font-weight:300;letter-spacing:.22em;color:#1a1a1a}
.sl{width:32px;height:1px;background:var(--brown);margin:14px auto 0}

/* ===== FV ===== */
.fv{position:relative;height:100vh;min-height:600px;overflow:hidden}
.fv-slides{position:absolute;inset:0}
.fv-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0}
.s1{background-image:url('https://img.travel.rakuten.co.jp/share/image_up/40262/LARGE/f0efdd3eb5daa3e655fd21b31ce4216664782fbb.47.9.26.3.jpg');animation:fvS1 32s 0s infinite}
.s2{background-image:url('https://img.travel.rakuten.co.jp/share/image_up/40262/LARGE/6b0dcbfa353d55398de013e90ec8def197d3953d.47.9.26.3.jpg');animation:fvS1 32s 8s infinite}
.s3{background-image:url('https://img.travel.rakuten.co.jp/share/image_up/40262/LARGE/5601c9850574a125d1571225c5398efbf5ab2732.47.9.26.3.jpg');animation:fvS1 32s 16s infinite}
.s4{background-image:url('https://img.travel.rakuten.co.jp/share/image_up/40262/LARGE/8ca559d902f50fe85da35a8054d1ec6f3d1faa7c.47.9.26.3.jpg');animation:fvS1 32s 24s infinite}
@keyframes fvS1{
  0%{opacity:0;transform:scale(1.04)}
  6%{opacity:1;transform:scale(1.05)}
  25%{opacity:1;transform:scale(1.12)}
  31%{opacity:0;transform:scale(1.13)}
  100%{opacity:0;transform:scale(1.04)}
}
.fv-overlay{position:absolute;inset:0;background:linear-gradient(120deg,rgba(20,8,0,.65) 0%,rgba(55,32,16,.25) 60%,transparent 100%)}
.fv-content{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:0 calc((100% - var(--inner)) / 2);color:#fff;z-index:10}
.fv-label{font-size:11px;letter-spacing:.35em;border:1px solid rgba(255,255,255,.4);padding:5px 16px;margin-bottom:24px;display:inline-block;width:fit-content;animation:fvC1 3s linear 1 both}
.fv-h1{font-size:clamp(30px,4vw,54px);font-weight:200;letter-spacing:.15em;line-height:1.3;margin-bottom:20px;white-space:nowrap;animation:fvC2 3.5s linear 1 both}
.fv-h1 em{font-style:normal;font-weight:700}
.fv-desc{font-size:14px;line-height:2;letter-spacing:.08em;margin-bottom:36px;animation:fvC3 4s linear 1 both}
.fv-btns{display:flex;gap:16px;animation:fvC4 4.5s linear 1 both}
@keyframes fvC1{0%{opacity:0;transform:translateY(18px)}20%{opacity:0;transform:translateY(18px)}60%{opacity:1;transform:translateY(0)}100%{opacity:1;transform:translateY(0)}}
@keyframes fvC2{0%{opacity:0;transform:translateY(18px)}30%{opacity:0;transform:translateY(18px)}65%{opacity:1;transform:translateY(0)}100%{opacity:1;transform:translateY(0)}}
@keyframes fvC3{0%{opacity:0;transform:translateY(18px)}40%{opacity:0;transform:translateY(18px)}70%{opacity:1;transform:translateY(0)}100%{opacity:1;transform:translateY(0)}}
@keyframes fvC4{0%{opacity:0;transform:translateY(18px)}50%{opacity:0;transform:translateY(18px)}75%{opacity:1;transform:translateY(0)}100%{opacity:1;transform:translateY(0)}}
.fv-scroll{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(255,255,255,.5);font-size:10px;letter-spacing:.25em}
.fv-scroll::after{content:'';width:1px;height:48px;background:rgba(255,255,255,.3);animation:scLine 1.6s ease-in-out infinite}
@keyframes scLine{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.fv-badge{position:absolute;bottom:48px;right:48px;border:1px solid rgba(255,255,255,.25);padding:18px 24px;text-align:center;color:#fff;background:rgba(20,8,0,.35);backdrop-filter:blur(10px)}
.badge-label{font-size:9px;letter-spacing:.2em;opacity:.6;margin-bottom:6px}
.badge-score{font-size:32px;font-weight:700;line-height:1}
.badge-stars{font-size:12px;color:#f5c842;margin:5px 0 4px}
.badge-sub{font-size:10px;opacity:.5}

/* ===== PLANS ===== */
.plans{padding:88px 0}
.pi{max-width:var(--inner);margin:0 auto;padding:0 20px}
.plans-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pc{background:#fff;border:1px solid var(--border);display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.pc:hover{transform:translateY(-5px);box-shadow:0 14px 44px rgba(55,32,16,.11)}
.pim{position:relative;aspect-ratio:16/10;overflow:hidden}
.pim img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.pc:hover .pim img{transform:scale(1.05)}
.pbadge{position:absolute;top:12px;left:12px;font-size:10px;letter-spacing:.1em;padding:4px 11px;color:#fff}
.pbadge.red{background:#c0392b}.pbadge.orange{background:#c0720a}.pbadge.gold{background:#8a7010}
.pbadge.blue{background:#1a5c8a}.pbadge.green{background:#1a6e3a}.pbadge.purple{background:#6a2e8a}
.pb{padding:22px 20px 20px;display:flex;flex-direction:column;flex:1}
.pt{font-size:10px;letter-spacing:.28em;color:#bbb;margin-bottom:6px}
.pn{font-size:14px;font-weight:700;letter-spacing:.04em;margin-bottom:10px;line-height:1.55}
.pd{font-size:12px;color:var(--muted);line-height:1.8;flex:1;margin-bottom:14px}
.prb{margin-bottom:16px;display:flex;align-items:baseline;gap:4px}
.p-label{font-size:10px;color:#aaa}
.p-num{font-size:21px;font-weight:700;color:var(--brown)}
.p-unit{font-size:11px;color:#aaa}
.btn-plan{display:flex;align-items:center;justify-content:center;background:var(--red);color:#fff;font-size:12px;letter-spacing:.12em;padding:12px 0;border:2px solid var(--red);transition:background .25s,color .25s}
.btn-plan:hover{background:transparent;color:var(--red)}
.pm{text-align:center;margin-top:36px}

/* ===== FACILITY ===== */
.facility{background:var(--cream);padding:88px 0 0}
.fh{max-width:var(--inner);margin:0 auto 56px;padding:0 20px;text-align:center}
.fac-b{display:grid;grid-template-columns:1fr 1fr;width:100%;border-top:1px solid var(--border)}
.fac-bi{overflow:hidden;min-height:460px}
.fac-bi img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.fac-b:hover .fac-bi img{transform:scale(1.03)}
.fac-bt{display:flex;align-items:center;background:#fff}
.fac-b.img-l .fac-bt{justify-content:flex-start}
.fac-b.img-l .fac-ti{padding:56px 40px 56px 56px;max-width:475px}
.fac-b.img-r .fac-bt{justify-content:flex-end}
.fac-b.img-r .fac-ti{padding:56px 56px 56px 40px;max-width:475px}
.fac-b.dark .fac-bt{background:var(--brown)}
.fn{font-size:100px;font-weight:700;line-height:1;color:rgba(55,32,16,.05);font-family:Georgia,serif;margin-bottom:-14px;display:block;letter-spacing:-.02em}
.fn.light{color:rgba(255,255,255,.06)}
.fe{font-size:11px;letter-spacing:.35em;color:#bbb;display:block;margin-bottom:10px}
.fe.light{color:rgba(255,255,255,.35)}
.fh2{font-size:clamp(19px,2vw,25px);font-weight:300;letter-spacing:.15em;line-height:1.55;margin-bottom:16px}
.fh2.light{color:#fff}
.fd{font-size:13px;color:var(--muted);line-height:1.95;margin-bottom:20px}
.fd.light{color:rgba(255,255,255,.7)}
.fts{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}
.ft{font-size:11px;border:1px solid var(--border);color:#755030;padding:3px 12px;letter-spacing:.08em}
.ft.light{border-color:rgba(255,255,255,.22);color:rgba(255,255,255,.7)}
.fho{font-size:11px;color:#bbb;margin-bottom:20px}
.fho.light{color:rgba(255,255,255,.38)}
.fac-compact{max-width:var(--inner);margin:0 auto;padding:52px 20px 80px;display:grid;grid-template-columns:1fr 1fr;gap:2px;border-top:1px solid var(--border)}
.fac-cc{position:relative;overflow:hidden;background:#111}
.fac-cc::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,transparent 35%,rgba(10,3,0,.8) 100%);transition:opacity .3s}
.fac-cc:hover::after{opacity:.75}
.fac-ci{aspect-ratio:16/9;overflow:hidden}
.fac-ci img{width:100%;height:100%;object-fit:cover;transition:transform .5s;filter:brightness(.9)}
.fac-cc:hover .fac-ci img{transform:scale(1.05);filter:brightness(1)}
.fac-cn{position:absolute;bottom:0;left:0;right:0;padding:28px;color:#fff;z-index:1}
.fac-compact-en{font-size:10px;letter-spacing:.3em;opacity:.55;margin-bottom:5px;text-transform:uppercase}
.fac-compact-h{font-size:clamp(16px,1.8vw,20px);font-weight:300;letter-spacing:.15em;margin-bottom:8px;line-height:1.4}
.fac-cts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.fac-ct{font-size:10px;border:1px solid rgba(255,255,255,.3);color:rgba(255,255,255,.75);padding:2px 10px;letter-spacing:.08em}
.fac-cb{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#fff;letter-spacing:.12em;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:2px;transition:gap .25s,border-color .2s}
.fac-cb:hover{gap:12px;border-color:#fff}

/* ===== ROOMS CAROUSEL ===== */
.rooms{background:var(--cream)}
.rooms-intro{text-align:center;padding:72px 20px 48px}
.rcar{position:relative;width:100%;height:82vh;min-height:540px;overflow:hidden}
.rcar input[type="radio"]{display:none}
.rt{display:flex;width:500%;height:100%;transition:transform .75s cubic-bezier(.4,0,.2,1)}
.rs{width:calc(100%/5);height:100%;position:relative;flex-shrink:0}
.rs img{width:100%;height:100%;object-fit:cover;display:block}
.ro{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.05) 0%,rgba(0,0,0,.08) 35%,rgba(0,0,0,.72) 100%);display:flex;align-items:flex-end}
.rcp{width:100%;max-width:var(--inner);margin:0 auto;padding:0 20px 52px;color:#fff}
.rcs{font-size:10px;letter-spacing:.35em;opacity:.65;text-transform:uppercase;margin-bottom:8px}
.rcp h3{font-size:clamp(22px,3vw,36px);font-weight:200;letter-spacing:.15em;margin-bottom:10px;line-height:1.35}
.rcp p{font-size:13px;line-height:1.85;opacity:.85;margin-bottom:16px;max-width:500px}
.rpw{display:inline-flex;align-items:baseline;gap:8px;margin-bottom:24px;padding:10px 16px;background:rgba(0,0,0,.28);backdrop-filter:blur(4px);border-left:3px solid rgba(255,255,255,.5)}
.rp-label{font-size:11px;letter-spacing:.12em;opacity:.75}
.rp-num{font-size:26px;font-weight:700}
.rp-unit{font-size:12px;opacity:.7}
.rbtns{display:flex;align-items:center;gap:16px}
.btn-rrsv{display:inline-flex;align-items:center;gap:8px;background:var(--red);color:#fff!important;font-size:13px;font-weight:700;letter-spacing:.1em;padding:12px 28px;border:2px solid var(--red);transition:background .3s,color .3s;box-shadow:0 4px 16px rgba(0,0,0,.25);white-space:nowrap}
.btn-rrsv .arr{display:inline-block;transition:transform .3s}
.btn-rrsv:hover{background:#fff;color:var(--red)!important;}
.btn-rrsv:hover .arr{transform:translateX(6px)}
#r1:checked ~ .rt{transform:translateX(0)}
#r2:checked ~ .rt{transform:translateX(-20%)}
#r3:checked ~ .rt{transform:translateX(-40%)}
#r4:checked ~ .rt{transform:translateX(-60%)}
#r5:checked ~ .rt{transform:translateX(-80%)}
.rnav{position:absolute;top:50%;transform:translateY(-50%);z-index:10}
.rnav.prev{left:20px}.rnav.next{right:20px}
.rnav label{display:none;align-items:center;justify-content:center;width:48px;height:48px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.42);border-radius:50%;cursor:pointer;backdrop-filter:blur(4px);font-size:22px;color:#fff;transition:background .2s,transform .15s;user-select:none}
.rnav label:hover{background:rgba(255,255,255,.28);transform:scale(1.08)}
#r1:checked ~ .rprev .for-r5{display:flex}  #r1:checked ~ .rnext .for-r2{display:flex}
#r2:checked ~ .rprev .for-r1{display:flex}  #r2:checked ~ .rnext .for-r3{display:flex}
#r3:checked ~ .rprev .for-r2{display:flex}  #r3:checked ~ .rnext .for-r4{display:flex}
#r4:checked ~ .rprev .for-r3{display:flex}  #r4:checked ~ .rnext .for-r5{display:flex}
#r5:checked ~ .rprev .for-r4{display:flex}  #r5:checked ~ .rnext .for-r1{display:flex}
.rinds{position:absolute;bottom:24px;right:28px;display:flex;gap:8px;z-index:10}
.rinds label{width:28px;height:2px;background:rgba(255,255,255,.32);cursor:pointer;display:block;border-radius:2px;transition:background .25s,transform .25s}
.rinds label:hover{background:rgba(255,255,255,.65)}
#r1:checked ~ .rinds .ri1,#r2:checked ~ .rinds .ri2,#r3:checked ~ .rinds .ri3,
#r4:checked ~ .rinds .ri4,#r5:checked ~ .rinds .ri5{background:#fff;transform:scaleX(1.3)}
.rcnt{position:absolute;bottom:20px;left:28px;color:rgba(255,255,255,.55);font-size:11px;letter-spacing:.2em;z-index:10}
#r1:checked ~ .rcnt::before{content:'01';color:#fff;font-size:15px;font-weight:700}
#r2:checked ~ .rcnt::before{content:'02';color:#fff;font-size:15px;font-weight:700}
#r3:checked ~ .rcnt::before{content:'03';color:#fff;font-size:15px;font-weight:700}
#r4:checked ~ .rcnt::before{content:'04';color:#fff;font-size:15px;font-weight:700}
#r5:checked ~ .rcnt::before{content:'05';color:#fff;font-size:15px;font-weight:700}
.rcnt::after{content:' / 05'}
.rf{text-align:center;padding:40px 20px;background:var(--cream)}

/* ===== REVIEWS ===== */
.reviews{background:var(--brown);padding:88px 20px}
.rev-inner{max-width:var(--inner);margin:0 auto}
.rev-head{text-align:center;margin-bottom:52px}
.rev-en{font-size:11px;letter-spacing:.4em;color:rgba(255,255,255,.3);display:block;margin-bottom:12px}
.rev-title{font-size:clamp(20px,2vw,26px);font-weight:300;letter-spacing:.22em;color:#fff}
.rev-line{width:32px;height:1px;background:rgba(255,255,255,.2);margin:14px auto 0}
.rvg{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.rvc{background:rgba(255,255,255,.05);padding:32px 26px;border:1px solid rgba(255,255,255,.08);position:relative;overflow:hidden}
.rvc::before{content:'\201C';font-size:80px;font-family:Georgia,serif;color:rgba(255,255,255,.06);position:absolute;top:-8px;left:14px;line-height:1;pointer-events:none}
.rev-stars{color:#f5c842;font-size:13px;margin-bottom:12px}
.rev-text{font-size:13px;color:rgba(255,255,255,.75);line-height:1.9;margin-bottom:14px;position:relative;z-index:1}
.rev-meta{font-size:11px;color:rgba(255,255,255,.32);letter-spacing:.1em}

/* ===== ACCESS ===== */
.access{padding:88px 20px;background:#fff}
.ac-in{max-width:var(--inner);margin:0 auto}
.ac-bd{display:grid;grid-template-columns:1fr 340px;gap:52px;align-items:start}
.ac-map{width:100%;aspect-ratio:16/11;overflow:hidden;border:1px solid var(--border)}
.ac-map iframe{width:100%;height:100%;border:0;display:block}
.ac-cards{display:flex;flex-direction:column}
.ac-row{padding:15px 0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:68px 1fr;gap:12px;align-items:start}
.ac-row:first-child{border-top:1px solid var(--border)}
.ac-label{font-size:10px;letter-spacing:.18em;color:var(--brown);font-weight:700;padding-top:3px}
.ac-body{font-size:13px;color:#444;line-height:1.85}
.ac-badge{display:inline-block;background:var(--brown);color:#fff;font-size:9px;letter-spacing:.1em;padding:2px 8px;margin-bottom:4px}

/* ===== CTA ===== */
.cta{background:#fff;padding:88px 20px;text-align:center;border-top:1px solid var(--border)}
.cta-score{margin-bottom:18px;display:flex;align-items:center;justify-content:center;gap:12px}
.cta-snum{font-size:40px;font-weight:700;line-height:1;color:var(--brown)}
.cta-sstars{font-size:20px;color:#f5c842}
.cta-slabel{font-size:11px;color:#aaa;letter-spacing:.15em;white-space:nowrap}
.cta-title{font-size:clamp(18px,2.3vw,26px);font-weight:300;letter-spacing:.22em;margin-bottom:12px;color:#1a1a1a;white-space:nowrap}
.cta-sub{font-size:13px;color:var(--muted);margin-bottom:36px;letter-spacing:.1em}
.btn-cta{display:inline-flex;align-items:center;justify-content:center;background:var(--red);color:#fff!important;font-size:13px;font-weight:700;letter-spacing:.18em;padding:16px 52px;border:2px solid var(--red);transition:background .25s,color .25s,border-color .25s;white-space:nowrap}
.btn-cta:hover{background:transparent;color:var(--red)!important;border-color:var(--red)}

/* ===== FOOTER ===== */
.footer{background:var(--brown);color:rgba(255,255,255,.65);padding:60px 20px 32px}
.f-in{max-width:var(--inner);margin:0 auto}
.f-top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:36px;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.1)}
.f-logo{font-size:17px;letter-spacing:.28em;color:#fff;font-weight:200}
.f-tagline{font-size:11px;opacity:.38;letter-spacing:.15em;margin-top:5px}
.f-addr{font-size:11px;line-height:1.9;text-align:right;opacity:.48}
.f-copy{font-size:10px;opacity:.22;text-align:center;letter-spacing:.15em}
