/* 特集ページ（実装指示書 決定版）。接頭辞 fp- */
.s2 .fp{--pg:#f4f2ee;--pi:#1b1a18;--pm:#6e6a62;--pa:#8c4a2a;--pln:rgba(27,26,24,.16);
	--bg:var(--pg);--ink:var(--pi);--body:var(--pi);--muted:var(--pm);--accent:var(--pa);--line:var(--pln);--soft:color-mix(in srgb,var(--pi) 7%,transparent);
	position:relative;background-color:var(--pg);color:var(--pi);transition:background-color .6s ease,color .6s ease;font-family:'Shippori Mincho',serif}
.s2 .fp[data-tone="c1"]{--pg:#ebe4d6;--pm:#5f5a50;--pln:rgba(27,26,24,.18)}
.s2 .fp[data-tone="c2"]{--pg:#1b1a18;--pi:#ece9e2;--pm:#a8a398;--pa:#d9a27f;--pln:rgba(236,233,226,.2)}
.s2 .fp[data-tone="c3"]{--pg:#8c4a2a;--pi:#f7f1e8;--pm:#efd8c8;--pa:#f7d7bf;--pln:rgba(247,241,232,.3)}
.s2 .fp[data-tone="c4"]{--pg:#e1e4dc;--pm:#56594f;--pln:rgba(27,26,24,.18)}
html[data-theme="dark"] .s2 .fp{--pg:#151412;--pi:#ece9e2;--pm:#9d998f;--pa:#d9a27f;--pln:rgba(236,233,226,.16)}
html[data-theme="dark"] .s2 .fp[data-tone="c1"]{--pg:#1f1d1a;--pm:#a29e94}
html[data-theme="dark"] .s2 .fp[data-tone="c2"]{--pg:#0b0b0a;--pm:#a29e94}
html[data-theme="dark"] .s2 .fp[data-tone="c3"]{--pg:#4e2a19;--pi:#f4ece2;--pm:#dcbfa9;--pa:#f0c19f}
html[data-theme="dark"] .s2 .fp[data-tone="c4"]{--pg:#1a1e1b;--pm:#a2a69c}
.s2 .fp [id]{scroll-margin-top:calc(64px + var(--top,0px) + 8px)}
.s2 .fp a:focus-visible,.s2 .fp button:focus-visible{outline:1px solid #8c4a2a;outline-offset:3px}

/* ---------- 表紙＋目次 ---------- */
.s2 .fp-cover{position:relative;height:calc((100vh - 64px - var(--top,0px)) * 3.8);color:#1b1a18}
.s2 .fp-stage{position:sticky;top:calc(64px + var(--top,0px));height:calc(100vh - 64px - var(--top,0px));overflow:hidden;perspective:1700px;perspective-origin:30% 50%}
.s2 .fp-spread{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:#efeae0;color:#1b1a18}
html[data-theme="dark"] .s2 .fp-spread{background:#1b1917;color:#ece9e2}
.s2 .fp-sp-l{display:flex;flex-direction:column;justify-content:center;padding:clamp(24px,4.4vw,72px);min-width:0;will-change:transform,opacity}
.s2 .fp-sp-l .k{margin:0 0 6px;font-size:12px;letter-spacing:.16em;color:#8c4a2a}
html[data-theme="dark"] .s2 .fp-sp-l .k{color:#d9a27f}
.s2 .fp-sp-l .big{margin:0 0 clamp(16px,3vh,32px);font-family:'Newsreader',serif;font-style:italic;font-weight:300;font-size:clamp(48px,7vw,104px);line-height:1}
.s2 .fp-sp-l ol{list-style:none;margin:0;padding:0;border-top:1px solid currentColor}
.s2 .fp-sp-l li{border-bottom:1px solid rgba(127,120,108,.35)}
.s2 .fp-sp-l a{display:flex;align-items:baseline;gap:14px;padding:clamp(10px,2vh,18px) 0;color:inherit;text-decoration:none}
.s2 .fp-sp-l a:hover b{color:#8c4a2a}
html[data-theme="dark"] .s2 .fp-sp-l a:hover b{color:#d9a27f}
.s2 .fp-sp-l i{flex:none;width:2em;font-family:'Newsreader',serif;font-style:italic;font-size:15px;color:#8c4a2a}
html[data-theme="dark"] .s2 .fp-sp-l i{color:#d9a27f}
.s2 .fp-sp-l b{font-weight:800;font-size:clamp(15px,1.6vw,20px);line-height:1.5;transition:color .2s}
.s2 .fp-sp-l u{flex:1;min-width:16px;border-bottom:1px dotted rgba(127,120,108,.7);text-decoration:none;align-self:center}
.s2 .fp-sp-l em{flex:none;font-family:'Newsreader',serif;font-style:italic;font-size:13px;opacity:.7}
.s2 .fp-sp-r{position:relative;overflow:hidden}
.s2 .fp-sp-r::before{content:"";position:absolute;left:0;top:0;bottom:0;width:48px;background:linear-gradient(to right,rgba(0,0,0,.2),transparent);z-index:3}
.s2 .fp-sp-r .ph{position:absolute;background:#cfc8bb center/cover no-repeat;box-shadow:0 18px 36px -16px rgba(0,0,0,.45);will-change:transform}
.s2 .fp-sp-r .ph1{left:12%;top:5%;width:58%;aspect-ratio:4/3}
.s2 .fp-sp-r .ph2{right:6%;top:28%;width:50%;aspect-ratio:3/4;max-height:56%}
.s2 .fp-sp-r .ph3{left:18%;bottom:5%;width:54%;aspect-ratio:16/10}
.s2 .fp-veil{position:absolute;inset:0;background:#000;opacity:.45;pointer-events:none;z-index:4}
.s2 .fp-cast{position:absolute;top:0;bottom:0;left:0;width:0;opacity:0;pointer-events:none;background:linear-gradient(to right,rgba(0,0,0,.42),transparent);z-index:5}
.s2 .fp-page{position:absolute;inset:0;transform-origin:left center;transform-style:preserve-3d;will-change:transform;z-index:6}
.s2 .fp-front,.s2 .fp-back{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.s2 .fp-front{--fo:clamp(10px,1.4vw,18px);--fi:calc(var(--fo) + 5px);--fm:calc(var(--fi) + clamp(14px,2.2vw,32px));background:#f4f2ee;box-sizing:border-box;padding:clamp(8px,1.4vw,20px)}
.s2 .fp-back{transform:rotateY(180deg);background:#e9e3d8}
.s2 .fp-art{position:absolute;inset:clamp(8px,1.4vw,20px);overflow:hidden;background:#e6e0d2}
.s2 .fp-art span{position:absolute;left:0;right:0;bottom:0;top:-8%;background-size:cover;background-position:72% 100%;background-repeat:no-repeat;transform:translate3d(0,var(--ay,0%),0) scale(var(--as,1));will-change:transform}
.s2 .fp-dim{position:absolute;inset:clamp(8px,1.4vw,20px);background:linear-gradient(to bottom,transparent 60%,rgba(20,18,16,.3) 100%);pointer-events:none}
.s2 .fp-frame{position:absolute;pointer-events:none;box-sizing:border-box}
.s2 .fp-frame.o{inset:var(--fo);border:1px solid rgba(27,26,24,.6)}
.s2 .fp-frame.n{inset:var(--fi);border:1px solid rgba(27,26,24,.28)}
.s2 .fp-frame.o i{position:absolute;width:9px;height:9px;background:#8c4a2a;transform:rotate(45deg)}
.s2 .fp-frame.o i:nth-child(1){left:-5px;top:-5px}.s2 .fp-frame.o i:nth-child(2){right:-5px;top:-5px}.s2 .fp-frame.o i:nth-child(3){left:-5px;bottom:-5px}.s2 .fp-frame.o i:nth-child(4){right:-5px;bottom:-5px}
.s2 .fp-mast{position:absolute;top:var(--fm);left:var(--fm);right:var(--fm);text-align:center;color:#1b1a18;will-change:transform}
.s2 .fp-mast .nm{display:block;font-family:'Newsreader',serif;font-weight:300;font-size:min(12.5vw,17vh,210px);line-height:.82;letter-spacing:.02em;white-space:nowrap}
.s2 .fp-mast .rl{display:block;height:1px;background:#1b1a18;margin:clamp(6px,1.2vh,12px) 0 6px}
.s2 .fp-mast .mt{display:flex;justify-content:space-between;gap:10px;font-family:'Newsreader',serif;font-style:italic;font-size:clamp(11px,1.1vw,14px);line-height:1.4}
.s2 .fp-vert{display:none;position:absolute;left:var(--fm);top:30%;margin:0;writing-mode:vertical-rl;font-weight:700;font-size:15px;line-height:1.9;letter-spacing:.12em;color:#1b1a18}
.s2 .fp-vert span{display:block}
@media(min-width:900px){.s2 .fp-vert{display:block}}
.s2 .fp-band{position:absolute;left:clamp(28px,3.4vw,52px);bottom:clamp(28px,3.4vw,52px);max-width:min(780px,calc(100% - 56px));box-sizing:border-box;padding:clamp(16px,2.2vw,30px) clamp(20px,2.8vw,40px) clamp(14px,2vw,26px);background:rgba(27,26,24,.5);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-top:3px solid #8c4a2a;color:#f7f3ec}
.s2 .fp-band .tab{position:absolute;left:0;top:-37px;display:flex;align-items:baseline;gap:10px;padding:7px 16px;background:#8c4a2a;color:#f7f3ec}
.s2 .fp-band .tab b{font-weight:800;font-size:14px;letter-spacing:.3em}
.s2 .fp-band .tab i{font-family:'Newsreader',serif;font-style:italic;font-size:13px}
.s2 .fp-band .wm{position:absolute;right:18px;top:6px;font-family:'Newsreader',serif;font-weight:200;font-size:clamp(56px,7vw,110px);line-height:1;color:rgba(247,243,236,.1);pointer-events:none}
.s2 .fp-band .sb{display:flex;align-items:center;gap:14px;margin:0 0 .5em;font-size:clamp(13px,1.3vw,16px)}
.s2 .fp-band .sb span{color:#d9a27f;font-weight:700;letter-spacing:.12em}
.s2 .fp-band .sb s{display:block;width:40px;height:1px;background:rgba(247,243,236,.6);text-decoration:none}
.s2 .fp-band .sb i{font-family:'Newsreader',serif;font-style:italic}
.s2 .fp-band h1{margin:0 0 .5em;font-family:'Shippori Mincho',serif;font-weight:800;font-size:clamp(26px,min(6.2vw,7.4vh),100px);line-height:1.12;color:#f7f3ec;letter-spacing:0;border:0;padding:0;background:none}
.s2 .fp-band h1::before,.s2 .fp-band h1::after{display:none}
.s2 .fp-band .mm{display:flex;flex-wrap:wrap;gap:4px 18px;margin:0;font-size:12px;line-height:1.7;opacity:.88}
.s2 .fp-cue{position:absolute;right:var(--fm);bottom:var(--fm);display:flex;align-items:center;gap:12px;color:#1b1a18;transition:opacity .3s}
.s2 .fp-cue i{font-family:'Newsreader',serif;font-style:italic;font-size:13px}
.s2 .fp-cue b{display:block;width:40px;height:1px;background:#1b1a18;transform-origin:left;animation:fpcue 2s ease-in-out infinite}
@keyframes fpcue{0%,100%{transform:scaleX(.4)}50%{transform:scaleX(1)}}
.s2 .fp-sheen{position:absolute;inset:0;pointer-events:none}
.s2 .fp-peelw{position:absolute;right:0;bottom:0;width:var(--peel,0px);height:var(--peel,0px);filter:drop-shadow(-4px -4px 6px rgba(0,0,0,.3));pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.s2 .fp-peelw span{display:block;width:100%;height:100%;clip-path:polygon(0 0,100% 0,0 100%);background:linear-gradient(135deg,#f7f2ea,#d6cebf)}

/* ---------- 章・はじめに ---------- */
.s2 .fp-sec{position:relative;padding:clamp(44px,6vw,88px) var(--gut,24px)}
.s2 .fp-wrap{max-width:1200px;margin:0 auto}
.s2 .fp-pillar{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding-bottom:10px;border-bottom:1px solid var(--pln);font-size:11px;letter-spacing:.1em;color:var(--pm)}
.s2 .fp-pillar i{font-family:'Newsreader',serif;font-style:italic;font-size:13px;letter-spacing:0;white-space:nowrap}
.s2 .fp-lead{margin:clamp(32px,5vw,64px) 0 clamp(28px,4vw,48px);max-width:960px}
.s2 .fp-lead p.sb-lede{margin:0;font-family:'Shippori Mincho',serif;font-weight:700;font-size:clamp(22px,2.7vw,36px);line-height:1.85;color:var(--pi)}
.s2 .fp .fp-body{max-width:none;margin:0;column-gap:40px;column-rule:1px solid var(--pln)}
@media(min-width:640px){.s2 .fp .fp-body{column-count:2}}
@media(min-width:1100px){.s2 .fp-ch .fp-body{column-count:3}}
.s2 .fp .fp-body>p{margin:0 0 1.4em;font-size:16px;line-height:2.1;color:var(--pi)}
.s2 .fp .fp-body>p:first-child::first-letter{float:left;font-size:4.4em;line-height:.82;font-weight:800;color:var(--pa);padding:.06em .1em 0 0}
.s2 .fp .fp-body>*:not(p){column-span:all}
.s2 .fp .fp-body>.is-style-sb-stay{display:block;margin:2em 0;padding:22px 26px;border:1px solid var(--pln);border-left:3px solid var(--pa);background:var(--soft);font-size:15px;line-height:2}
.s2 .fp .fp-body>.is-style-sb-stay::before{content:"Stay";display:block;margin-bottom:6px;font-family:'Newsreader',serif;font-style:italic;font-size:14px;color:var(--pa)}
.s2 .fp .fp-body mark{color:inherit}
.s2 .fp .fp-body a{color:inherit}
.s2 .fp-nombre{display:flex;justify-content:space-between;margin-top:clamp(40px,6vw,80px);padding-top:10px;border-top:1px solid var(--pln);font-family:'Newsreader',serif;font-style:italic;font-size:13px;color:var(--pm)}

.s2 .fp-open{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(24px,5vw,80px);align-items:center;margin:clamp(32px,5vw,72px) 0 clamp(40px,6vw,80px);will-change:transform,opacity}
.s2 .fp-open.is-l{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.s2 .fp-open.is-l .fp-oa{order:-1}
@media(max-width:899px){.s2 .fp-open,.s2 .fp-open.is-l{grid-template-columns:minmax(0,1fr)}.s2 .fp-open .fp-oa{order:-1;max-width:420px}}
.s2 .fp-ot .no{display:block;font-family:'Newsreader',serif;font-weight:200;font-size:clamp(120px,17vw,260px);line-height:.9;color:var(--pa)}
.s2 .fp-ot h2{margin:.1em 0 .6em;padding:0;border:0;background:none;display:block;font-family:'Shippori Mincho',serif;font-weight:800;font-size:clamp(30px,4.4vw,64px);line-height:1.3;color:var(--pi)}
.s2 .fp-ot h2::before,.s2 .fp-ot h2::after{display:none}
.s2 .fp-ot .ld p{margin:0;font-size:clamp(15px,1.4vw,17px);line-height:2.1;font-weight:500;color:var(--pi)}
.s2 .fp-oa .fr{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--soft);box-shadow:0 30px 60px -30px rgba(0,0,0,.45)}
.s2 .fp-oa .ar{position:absolute;left:0;right:0;top:-7%;height:114%;background-size:cover;background-position:center;transform:translate3d(0,var(--py,0px),0);will-change:transform}
.s2 .fp-oa .pp{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:7% 8%;box-sizing:border-box;color:#1b1a18;pointer-events:none;will-change:opacity}
.s2 .fp-oa .pp .t{display:flex;justify-content:space-between;font-family:'Newsreader',serif;font-style:italic;font-size:14px}
.s2 .fp-oa .pp .m{font-family:'Newsreader',serif;font-weight:200;font-size:clamp(90px,13vw,190px);line-height:1}
.s2 .fp-oa .pp .b{font-weight:800;font-size:clamp(16px,1.8vw,24px);line-height:1.5}

/* ---------- 登場ホテル ---------- */
.s2 .fp-hotels .hh{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--pln);margin-bottom:22px}
.s2 .fp-hotels .hh h2{margin:0;padding:0;border:0;background:none;display:block;font-weight:800;font-size:clamp(22px,2.6vw,32px);color:var(--pi)}
.s2 .fp-hotels .hh h2::before,.s2 .fp-hotels .hh h2::after{display:none}
.s2 .fp-hotels .hh i{font-family:'Newsreader',serif;font-style:italic;font-size:15px;color:var(--pm)}
.s2 .fp-hotels .gr{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:10px}
.s2 .fp-hotels .gr a{display:flex;align-items:center;gap:14px;padding:8px 14px 8px 8px;border:1px solid var(--pln);color:var(--pi);text-decoration:none;transition:border-color .2s}
.s2 .fp-hotels .gr a:hover{border-color:#8c4a2a}
.s2 .fp-hotels .th{flex:none;width:64px;height:64px;background:var(--soft);overflow:hidden}
.s2 .fp-hotels .th span{display:block;width:100%;height:100%;background-size:cover;background-position:center}
.s2 .fp-hotels .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.s2 .fp-hotels .tx b{font-weight:800;font-size:14px;line-height:1.4}
.s2 .fp-hotels .tx small{font-size:11px;color:var(--pm)}
.s2 .fp-hotels .gr em{flex:none;font-family:'Newsreader',serif;font-style:italic;font-size:12px;color:var(--pa)}

@media(prefers-reduced-motion:reduce){
	.s2 .fp-cover{height:calc(100vh - 64px - var(--top,0px))}
	.s2 .fp-cue b{animation:none}
	.s2 .fp{transition:none}
}
@media(max-width:899px){
	.s2 .fp-spread{grid-template-columns:minmax(0,1fr)}
	.s2 .fp-sp-r{display:none}
	.s2 .fp-sp-l{padding:clamp(20px,6vw,40px)}
}
@media(max-width:639px){
	.s2 .fp-cue{display:none}
	.s2 .fp-band .sb{flex-wrap:wrap;gap:2px 12px}
	.s2 .fp-band .sb span{white-space:nowrap}
	.s2 .fp-band .sb s{display:none}
}
