:root{--ink:#17372e;--deep:#0b2c32;--paper:#f4f0e5;--sand:#d5c4a0;--white:#fff;--serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;--sans:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
body.kobe-tenku-front-page .kobe-tenku-front,body.kobe-tenku-front-page .kobe-tenku-front *{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body.kobe-tenku-front-page{width:100%;margin:0;color:var(--ink);background:var(--paper);font-family:var(--serif);line-height:2;letter-spacing:.08em;overflow-x:clip}body.kobe-tenku-front-page.menu-open{overflow:hidden}.kobe-tenku-front main{overflow-x:clip}.kobe-tenku-front img{display:block;max-width:100%}.kobe-tenku-front a{color:inherit;text-decoration:none}.kobe-tenku-front figure{margin:0}.kobe-tenku-front .paper{background-color:var(--paper);background-image:none}
.header{position:fixed;z-index:50;top:0;left:0;width:100%;height:92px;padding:22px clamp(24px,4vw,68px);display:flex;align-items:center;justify-content:space-between;color:#fff;transition:background .5s,height .5s,padding .5s}.is-scrolled .header,.menu-open .header{height:72px;padding-top:10px;padding-bottom:10px;background:rgba(7,35,38,.92);backdrop-filter:blur(12px)}.header__brand,.menu-button{position:relative;z-index:52}.header__brand img{width:clamp(165px,18vw,250px);height:46px;object-fit:contain;object-position:left center;filter:drop-shadow(0 2px 10px rgba(0,0,0,.32))}.menu-button{display:block;width:36px;height:30px;border:0;border-radius:0;background:transparent;padding:0;cursor:pointer}.menu-button span{position:absolute;left:2px;display:block;width:32px;height:1px;background:#fff;transition:transform .35s,top .35s}.menu-button span:first-child{top:9px}.menu-button span:last-child{top:21px}.menu-open .menu-button span:first-child{top:15px;transform:rotate(45deg)}.menu-open .menu-button span:last-child{top:15px;transform:rotate(-45deg)}.nav{position:fixed;z-index:51;top:0;right:0;width:min(460px,100%);max-height:100svh;padding:116px 48px 48px;color:var(--ink);background:rgba(244,240,229,.98);box-shadow:-24px 24px 70px rgba(7,35,38,.18);overflow:auto;opacity:0;visibility:hidden;transform:translateY(-18px);transition:opacity .35s,visibility .35s,transform .35s}.menu-open .nav{opacity:1;visibility:visible;transform:none}
.nav ul{list-style:none;margin:0;padding:0;border-top:1px solid rgba(23,55,46,.2);width:100%;font-family:var(--serif);}
.nav li{margin:0;border-bottom:1px solid rgba(23,55,46,.2)}.nav__item{min-height:82px;padding:22px 4px;display:flex;align-items:center;justify-content:space-between;font-size:17px;letter-spacing:.12em}.nav a.nav__item{transition:padding .3s,color .3s}.nav a.nav__item:hover{padding-left:12px;color:#486e60}.nav__arrow{font-family:var(--sans);font-size:18px}.nav__item--soon{color:#75857d}.nav__item small{font-family:var(--sans);font-size:10px;font-weight:400;letter-spacing:.14em;color:#9b9e96}
.hero{position:relative;height:100svh;min-height:680px;overflow:hidden;color:#fff}.hero__video,.visit__background{position:absolute;inset:-8%;will-change:transform}.hero__video{width:116%;height:116%;max-width:none;object-fit:cover;object-position:center;transform:scale(1.06);background:#102d31 url("images/hero.jpg") center 62%/cover no-repeat}.visit__background{background:center/cover no-repeat}.hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,26,27,.5),transparent 46%),linear-gradient(0deg,rgba(5,26,27,.35),transparent 48%)}.hero__logo{position:absolute;z-index:2;left:50%;top:50%;width:clamp(180px,20vw,300px);height:auto;transform:translate(-50%,-46%);opacity:0;filter:drop-shadow(0 5px 24px rgba(0,0,0,.3));transition:opacity 1.2s ease 2.8s,transform 1.2s ease 2.8s}.is-ready .hero__logo{opacity:1;transform:translate(-50%,-50%)}.hero__copy{position:absolute;z-index:2;left:clamp(32px,8vw,130px);top:50%;display:flex;flex-direction:row-reverse;gap:28px;transform:translateY(-44%);writing-mode:vertical-rl;text-orientation:mixed;opacity:0;transition:opacity 1.3s ease 3.35s,transform 1.3s ease 3.35s}.is-ready .hero__copy{opacity:1;transform:translateY(-50%)}.hero h1{margin:0;font-size:clamp(31px,3.3vw,55px);font-weight:400;line-height:1.65;letter-spacing:.14em}.hero h1 span{display:block;white-space:nowrap;word-break:keep-all}.hero p{margin:7px 0 0;font-size:clamp(12px,1.1vw,15px);line-height:2.15;letter-spacing:.13em;white-space:nowrap;word-break:keep-all}.scroll-mark{position:absolute;z-index:3;bottom:28px;left:50%;width:1px;height:68px;background:rgba(255,255,255,.45)}.scroll-mark span{display:block;width:1px;height:100%;background:#fff;animation:scroll 2s infinite}@keyframes scroll{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.about{position:relative;min-height:1040px;padding:130px max(5vw,32px);display:grid;grid-template-columns:.4fr .62fr 1.98fr;gap:5vw;align-items:center;overflow:hidden}.about__words{writing-mode:vertical-rl;justify-self:center;height:520px}.about h2{margin:0 0 0 34px;font-size:clamp(28px,2.5vw,42px);font-weight:400;line-height:1.8}.about p{margin:0;font-size:14px;line-height:2.4}.about__photo{align-self:center;margin:0 -2vw 0 0}.about__photo img{width:100%;max-height:780px;object-fit:cover;filter:saturate(.85)}
.site-map{padding:140px max(4vw,28px) 170px;overflow:hidden}.site-map__heading{max-width:1320px;margin:0 auto 70px;display:flex;align-items:flex-end;justify-content:space-between;gap:50px}.site-map__heading h2{margin:0;font-size:clamp(31px,3.5vw,52px);font-weight:400;line-height:1.65}.site-map__heading p{margin:0 2vw 4px 0;font-size:15px;line-height:2.2}.site-map__interactive{position:relative;max-width:1480px;margin:0 auto}.site-map__viewport{overflow:visible}.site-map__stage{position:relative;line-height:0}.site-map__image{width:100%;height:auto}.map-hotspots{position:absolute;inset:0}.map-hotspot{position:absolute;z-index:2;left:var(--x);top:var(--y);display:flex;align-items:center;gap:8px;max-width:190px;padding:8px 11px 8px 8px;border:1px solid rgba(23,55,46,.28);border-radius:999px;color:var(--ink);background:rgba(248,245,237,.9);box-shadow:0 8px 24px rgba(23,55,46,.12);font-family:var(--serif);font-size:clamp(9px,.78vw,12px);line-height:1.3;letter-spacing:.04em;text-align:left;white-space:nowrap;transform:translate(-50%,-50%);cursor:pointer;backdrop-filter:blur(6px);transition:color .25s,background .25s,transform .25s,box-shadow .25s}.map-hotspot:hover,.map-hotspot:focus-visible,.map-hotspot.is-active{z-index:4;color:#fff;background:rgba(23,55,46,.94);box-shadow:0 12px 30px rgba(23,55,46,.24);transform:translate(-50%,-50%) translateY(-3px);outline:none}.map-hotspot__mark{flex:0 0 auto;width:10px;height:10px;border:2px solid currentColor;border-radius:50%}.map-card{position:relative;z-index:5;width:min(520px,100%);margin:28px 0 0 auto;color:var(--ink);background:rgba(248,245,237,.97);box-shadow:0 24px 70px rgba(7,35,38,.25);opacity:0;visibility:hidden;transform:translateY(16px);transition:opacity .3s,visibility .3s,transform .3s;pointer-events:none}.map-card.is-active{opacity:1;visibility:visible;transform:none;pointer-events:auto}.map-card figure{height:190px;overflow:hidden}.map-card__image{width:100%;height:100%;object-fit:cover}.map-card__body{padding:23px 25px 27px}.map-card__title{margin:0 0 11px;font-size:21px;font-weight:400;line-height:1.45;letter-spacing:.06em}.map-card__text{margin:0;font-size:12px;line-height:2}.map-card__close{position:absolute;z-index:2;top:10px;right:10px;width:32px;height:32px;border:0;border-radius:50%;color:#fff;background:rgba(7,35,38,.68);font-size:20px;line-height:1;cursor:pointer}
.time{background:var(--deep);color:#fff;padding:130px 0 0}.time__heading{padding:0 8vw 90px}.time h2{font-weight:400;font-size:clamp(30px,4vw,58px);line-height:1.65;margin:0}.time__panels{display:grid;grid-template-columns:1fr 1fr;gap:0}.time__panel{height:76vh;min-height:560px;overflow:hidden}.time__panel img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s ease}.time__panel:first-child img{object-position:center 70%}.time__panel:hover img{transform:scale(1.025)}
.moments{padding:160px max(7vw,36px)}.moment{max-width:1180px;margin:0 auto 180px;display:grid;grid-template-columns:1.25fr .75fr;gap:8vw;align-items:center}.moment--reverse{grid-template-columns:.75fr 1.25fr}.moment--reverse figure{order:2}.moment figure{overflow:hidden}.moment figure img{width:100%;max-height:720px;object-fit:cover;aspect-ratio:4/3}.moment__text{max-width:360px}.moment time{display:block;margin-bottom:28px;color:#697c72;font-size:15px;letter-spacing:.22em}.moment h2{font-weight:400;font-size:clamp(27px,2.8vw,43px);line-height:1.55;margin:0 0 34px}.moment p{font-size:14px;margin:0}
.lights{padding:150px max(5vw,30px) 170px;overflow:hidden}.lights__row{max-width:1180px;margin:0 auto 170px;display:grid;grid-template-columns:1.45fr .55fr;align-items:center;gap:7vw}.lights__row--bottom{grid-template-columns:.55fr 1.45fr}.lights__row figure{display:flex;align-items:center;justify-content:center}.lights__row figure img{width:auto;height:auto;max-width:100%;max-height:640px;object-fit:contain}.lights__art{position:relative;min-height:560px}.lights__art .watercolor-graphic{filter:drop-shadow(0 24px 24px rgba(22,55,46,.08))}.lights__art--sign .watercolor-graphic{max-height:570px}.lights__art--swing{min-height:440px}.lights__art--swing .watercolor-graphic{width:min(100%,720px);max-height:none}.lights__art--fire{min-height:400px}.lights__art--fire .watercolor-graphic{width:min(62%,390px);max-height:none;filter:drop-shadow(0 18px 24px rgba(117,65,21,.16))}.lights__vertical{writing-mode:vertical-rl;justify-self:center;height:450px}.lights__vertical h2{margin:0 0 0 30px;font-size:clamp(25px,2.3vw,38px);font-weight:400;line-height:1.8}.lights__vertical p{margin:0;font-size:15px;line-height:2.2;max-height:440px}.lights__closing{text-align:center;max-width:720px;margin:70px auto 0;font-size:14px}.lights__closing p+p{margin-top:42px}
.visit{position:relative;min-height:820px;color:#fff;display:flex;align-items:center;overflow:hidden}.visit__background{background-image:linear-gradient(90deg,rgba(2,17,20,.75),rgba(2,17,20,.18)),url("images/visit-night.jpg");transform:scale(1.08)}.visit__content{position:relative;z-index:2;margin-left:clamp(32px,10vw,160px);max-width:600px}.visit h2{font-size:clamp(31px,4vw,58px);font-weight:400;line-height:1.7;margin:0 0 38px}.visit p{font-size:14px}.text-link{display:inline-flex;align-items:center;gap:38px;margin-top:42px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.65)}
.reserve{position:relative;min-height:650px;padding:130px 30px;display:flex;align-items:center;justify-content:center;text-align:center;background:linear-gradient(rgba(8,24,27,.52),rgba(8,24,27,.65)),url("images/cta-film-resort.png") center/cover no-repeat;overflow:hidden;color:#fff}.reserve__content{position:relative;z-index:2;max-width:620px;text-shadow:0 2px 16px rgba(0,0,0,.36)}.reserve h2{font-size:clamp(32px,4vw,56px);font-weight:400;line-height:1.65;margin:0 0 28px}.reserve p{margin-bottom:42px}.reserve__button,.reserve__button:link,.reserve__button:visited,.reserve__button:hover,.reserve__button:focus-visible,.reserve__button:active{display:inline-block;padding:18px 42px;background:#f4f0e5;color:#17372e;transition:background .3s,transform .3s}.reserve__button:hover{background:#fff;transform:translateY(-2px)}.reserve small{display:block;margin-top:22px;font-size:13px;color:#738078}.footer{height:190px;background:#092a30;display:flex;align-items:center;justify-content:center}.footer img{width:210px}
.reveal{opacity:0;transform:translateY(34px);transition:opacity 1.1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:820px){.header{height:72px;padding:12px 20px}.header__brand img{width:155px}.menu-button{width:46px;height:46px}.menu-button span{left:12px;width:20px}.menu-button span:first-child{top:18px}.menu-button span:last-child{top:26px}.menu-open .menu-button span:first-child,.menu-open .menu-button span:last-child{top:22px}.nav{width:100%;padding:96px 24px 36px}.nav__item{min-height:74px;padding:19px 2px;font-size:16px}.hero{min-height:620px}.hero__video{object-position:57% center}.hero__copy{left:24px;top:46%;gap:18px}.hero h1{font-size:30px}.hero p{font-size:13px}.about{min-height:auto;padding:110px 26px;display:flex;flex-direction:column;gap:55px}.about__symbol{width:72px;top:44px}.about__words{writing-mode:horizontal-tb;height:auto}.about h2{margin:0 0 30px;font-size:29px;line-height:1.65}.about p{font-size:15px}.about__photo{margin:0}.about__photo img{max-height:none;aspect-ratio:3/4}.time{padding-top:90px}.time__heading{padding:0 28px 55px}.time__panels{grid-template-columns:1fr}.time__panel{height:65svh;min-height:430px}.moments{padding:110px 24px}.moment,.moment--reverse{display:flex;flex-direction:column;margin-bottom:110px;gap:42px;align-items:stretch}.moment--reverse figure{order:0}.moment__text{max-width:none}.moment h2{font-size:29px;margin-bottom:23px}.lights{padding:100px 24px}.lights__row,.lights__row--bottom{grid-template-columns:1fr;gap:42px;margin-bottom:110px}.lights__row--bottom .lights__vertical{order:2}.lights__art,.lights__art--swing{min-height:0}.lights__art--sign .watercolor-graphic{max-height:520px}.lights__art--swing .watercolor-graphic{width:112%;max-width:112%;margin-left:-6%}.lights__vertical{writing-mode:horizontal-tb;height:auto;justify-self:stretch}.lights__vertical h2{margin:0 0 24px;font-size:28px;line-height:1.7}.lights__vertical p{font-size:15px;max-height:none}.lights__row figure img{max-height:none}.lights__closing{text-align:left;margin-top:0}.visit{min-height:680px}.visit__content{margin:0 26px}.visit h2{font-size:31px}.reserve{min-height:580px}}
.text-link b{font-weight:400}
@media(max-width:820px){.menu-button{width:34px;height:28px}.menu-button span{left:1px;width:32px}.menu-button span:first-child{top:8px}.menu-button span:last-child{top:20px}.menu-open .menu-button span:first-child,.menu-open .menu-button span:last-child{top:14px}.site-map{padding:100px 24px 120px}.site-map__heading{margin-bottom:45px;display:block}.site-map__heading h2{margin-bottom:25px;font-size:30px}.site-map__heading p{font-size:12px}.site-map__viewport{margin:0 -24px;padding:0 24px 16px;overflow-x:auto;scrollbar-width:thin}.site-map__stage{width:900px}.map-hotspot{max-width:none;padding:7px 10px 7px 7px;font-size:10px}.map-card{position:relative;right:auto;bottom:auto;width:100%;margin-top:24px}.map-card figure{height:190px}.map-card__body{padding:21px 22px 24px}.map-card__title{font-size:19px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero__logo{opacity:1;transform:translate(-50%,-50%);transition:none}.hero__copy,.reveal{opacity:1;transform:none;transition:none}.scroll-mark span{animation:none}}

/* Visual refinements: single-line hero, editorial photo spacing, and daybook layout */
.hero h1{font-size:clamp(28px,2.7vw,42px)}
.hero h1 span{display:block;white-space:nowrap;word-break:keep-all}

.about{grid-template-columns:minmax(250px,.68fr) minmax(0,1.32fr);gap:clamp(42px,7vw,110px)}
.about__photo{height:520px;margin:0;justify-self:start;display:flex;align-items:stretch}
.about__photo img{width:auto;height:100%;max-width:100%;max-height:none;object-fit:contain}

.time{padding:130px 0 clamp(34px,3vw,52px);background:#f7f2e8;color:var(--ink)}
.time__heading{padding:0 clamp(34px,6vw,96px) 76px}
.time__panels{margin:0 clamp(18px,2.8vw,46px);overflow:hidden}
.time__panel{height:min(72vh,760px);min-height:520px}

.moments{position:relative;padding:150px max(7vw,36px) 180px;background-color:#f5efe3;background-image:linear-gradient(90deg,transparent 0,transparent calc(50% - .5px),rgba(103,79,51,.12) calc(50% - .5px),rgba(103,79,51,.12) calc(50% + .5px),transparent calc(50% + .5px))}
.moments__heading{max-width:1080px;margin:0 auto 86px;padding:0 0 34px;border-bottom:1px solid rgba(82,63,42,.28);text-align:center}
.moments__heading p{margin:0 0 12px;font-size:12px;letter-spacing:.28em;color:#7f7566}
.moments__heading h2{margin:0;font-size:clamp(30px,3.2vw,46px);font-weight:400;letter-spacing:.16em}
.moment,.moment--reverse{position:relative;max-width:1080px;margin:0 auto 92px;padding:clamp(28px,4vw,58px);grid-template-columns:1.08fr .92fr;gap:clamp(38px,6vw,82px);background:rgba(255,253,247,.9);box-shadow:0 22px 55px rgba(68,51,32,.09);border:1px solid rgba(105,83,55,.14);align-items:center}
.moment:nth-of-type(even){transform:rotate(.25deg)}
.moment:nth-of-type(odd){transform:rotate(-.2deg)}
.moment::before{content:"";position:absolute;left:20px;top:24px;bottom:24px;width:1px;background:#b77762;opacity:.45}
.moment figure{box-shadow:0 12px 30px rgba(54,45,34,.12)}
.moment figure img{width:100%;max-height:none;aspect-ratio:4/3;object-fit:cover}
.moment__text{max-width:none;padding:18px 10px 18px 2px;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 37px,rgba(90,72,50,.12) 38px);background-position:0 20px}
.moment time{margin-bottom:26px;font-size:14px;color:#9b5d48;letter-spacing:.24em}
.moment h2{font-size:clamp(25px,2.45vw,37px);margin-bottom:30px;line-height:1.7}
.moment p{line-height:2.25}

@media(max-width:820px){
  .hero__logo{width:clamp(160px,42vw,220px)}
  .hero h1{font-size:27px}
  .about{display:flex;gap:48px}
  .about__symbol{position:static;align-self:flex-start;margin:0;width:72px}
  .about__photo{width:100%;height:auto}
  .about__photo img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
  .time{padding:92px 0 22px}
  .time__heading{padding:0 24px 48px}
  .time__panels{margin:0 16px;gap:0}
  .time__panel{height:auto;min-height:0}
  .time__panel img{height:auto;aspect-ratio:auto;object-fit:contain}
  .moments{padding:100px 20px 120px;background-image:none}
  .moments__heading{margin-bottom:52px}
  .moment,.moment--reverse{display:flex;margin-bottom:58px;padding:24px;gap:32px;transform:none}
  .moment::before{left:11px;top:16px;bottom:16px}
  .moment--reverse figure{order:0}
  .moment h2{font-size:27px}
}

/* 複合リゾートとしての全体像 */
.resort-spectrum{padding:140px max(5vw,32px) 160px}
.resort-spectrum__heading{max-width:1180px;margin:0 auto 80px;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(50px,9vw,140px);align-items:end}
.resort-spectrum__heading h2{margin:0;font-size:clamp(32px,3.7vw,54px);font-weight:400;line-height:1.65}
.resort-spectrum__heading p{margin:0;max-width:560px;font-size:15px;line-height:2.35}
.resort-spectrum__items{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(23,55,46,.24);border-bottom:1px solid rgba(23,55,46,.24)}
.resort-spectrum__items article{min-height:300px;padding:35px 26px 38px;border-right:1px solid rgba(23,55,46,.18)}
.resort-spectrum__items article:last-child{border-right:0}
.resort-spectrum__items span{display:block;margin-bottom:42px;font-size:13px;color:#7c8d84}
.resort-spectrum__items h3{margin:0 0 23px;font-size:24px;font-weight:400}
.resort-spectrum__items p{margin:0;font-size:15px;line-height:2.1}

/* フィルム写真は主役写真を補う、滞在の記憶として全点を見せる */
.film-archive{padding:150px max(2.2vw,22px) 180px;color:#f8f3e8;background:#0c3134;content-visibility:auto;contain-intrinsic-size:1200px}
.film-archive__heading{max-width:1180px;margin:0 auto 80px;display:grid;grid-template-columns:.7fr .9fr 1.1fr;gap:clamp(35px,6vw,90px);align-items:end}
.film-archive__heading>p:first-child{margin:0;font-size:13px;line-height:2.1;color:#aebdb7}
.film-archive__heading h2{margin:0;font-size:clamp(32px,3.6vw,52px);font-weight:400;line-height:1.6}
.film-archive__heading>p:last-child{margin:0;font-size:15px;line-height:2.25;color:#d8dfda}
.film-archive__grid{columns:5;column-gap:12px}
.film-archive__item{break-inside:avoid;margin:0 0 12px;overflow:hidden;background:#173f40;opacity:0;transform:translateY(18px);content-visibility:auto;contain-intrinsic-size:300px 430px;transition:opacity .7s ease,transform .7s ease}
.film-archive__item[hidden]{display:none}
.film-archive__item.is-shown{opacity:1;transform:none}
.film-archive__grid img{display:block;width:100%;height:auto;filter:saturate(.78) contrast(.96);opacity:.9;transition:filter .5s,opacity .5s,transform .7s}
.film-archive__item:hover img{filter:saturate(.96) contrast(1);opacity:1;transform:scale(1.015)}
.film-archive__controls{max-width:1180px;margin:62px auto 0;display:flex;align-items:center;justify-content:center;gap:24px}
.film-archive__count{margin:0;font-size:13px;letter-spacing:.18em;color:#aebdb7;font-variant-numeric:tabular-nums}
.film-archive__more{min-width:220px;padding:17px 22px;display:flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid rgba(248,243,232,.46);border-radius:0;background:transparent;color:#f8f3e8;font:inherit;cursor:pointer;transition:background .35s,color .35s,border-color .35s}
.film-archive__more span{font-size:15px;letter-spacing:.16em}
.film-archive__more small{font-size:13px;color:#aebdb7;transition:color .35s}
.film-archive__more:hover,.film-archive__more:focus-visible{background:#f8f3e8;color:#17372e;border-color:#f8f3e8;outline:none}
.film-archive__more:hover small,.film-archive__more:focus-visible small{color:#496259}
.film-archive__more[hidden]{display:none}

@media(max-width:1100px){
  .film-archive__grid{columns:3}
}

@media(max-width:820px){
  .resort-spectrum{padding:100px 24px 110px}
  .resort-spectrum__heading{display:block;margin-bottom:52px}
  .resort-spectrum__heading h2{margin-bottom:28px;font-size:32px}
  .resort-spectrum__items{grid-template-columns:1fr 1fr}
  .resort-spectrum__items article{min-height:260px;padding:28px 20px;border-bottom:1px solid rgba(23,55,46,.18)}
  .resort-spectrum__items article:nth-child(2n){border-right:0}
  .resort-spectrum__items article:nth-child(n+3){border-bottom:0}
  .resort-spectrum__items span{margin-bottom:28px}
  .film-archive{padding:100px 12px 120px}
  .film-archive__heading{display:block;margin:0 12px 54px}
  .film-archive__heading h2{margin:20px 0 28px;font-size:32px}
  .film-archive__grid{columns:2;column-gap:8px}
  .film-archive__item{margin-bottom:8px;contain-intrinsic-size:180px 270px}
  .film-archive__controls{margin-top:42px;gap:16px}
  .film-archive__more{min-width:190px;padding:15px 18px;gap:18px}
}

/* Refined editorial timeline */
.moments{counter-reset:day-entry;padding:160px max(6vw,32px) 190px;background-color:#f4efe4;background-image:none}
.moments__heading{max-width:1240px;margin:0 auto 42px;padding:0 0 42px;display:grid;grid-template-columns:.72fr 1.28fr;align-items:end;border-bottom:1px solid rgba(23,55,46,.3);text-align:left}
.moments__heading p{margin:0;font-size:13px;letter-spacing:.3em;color:#7c756a}
.moments__heading h2{margin:0;font-size:clamp(34px,3.5vw,52px);line-height:1.35;letter-spacing:.14em}
.moment,.moment--reverse{counter-increment:day-entry;position:relative;max-width:1240px;margin:0 auto;padding:82px 0 108px;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:clamp(54px,8vw,126px);align-items:center;background:transparent;border:0;border-top:1px solid rgba(23,55,46,.18);box-shadow:none;transform:none}
.moment:nth-of-type(even),.moment:nth-of-type(odd){transform:none}
.moment::before{display:none}
.moment::after{content:"0" counter(day-entry);position:absolute;right:0;top:24px;font-family:var(--sans);font-size:10px;letter-spacing:.22em;color:rgba(23,55,46,.5)}
.moment--reverse::after{right:auto;left:0}
.moment figure{position:relative;padding:10px;background:rgba(255,252,245,.72);border:1px solid rgba(102,82,57,.14);box-shadow:0 18px 46px rgba(63,52,38,.08)}
.moment figure::after{content:"";position:absolute;inset:10px;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
.moment figure img{aspect-ratio:3/2;object-fit:cover;filter:saturate(.88) contrast(.98)}
.moment .moment__photo--torch{width:min(100%,420px);justify-self:center}
.moment .moment__photo--torch img,.moment .moment__photo--stars img{aspect-ratio:auto;height:auto;max-height:none;object-fit:contain;filter:none}
.moment__text{max-width:430px;padding:0;background:none}
.moment time{display:flex;align-items:center;gap:20px;margin:0 0 34px;font-size:clamp(34px,4.1vw,60px);font-weight:400;line-height:1;color:#375b4f;letter-spacing:.05em}
.moment time::after{content:"";width:52px;height:1px;background:rgba(55,91,79,.45)}
.moment h2{margin:0 0 28px;font-size:clamp(25px,2.3vw,36px);line-height:1.75;letter-spacing:.09em}
.moment p{font-size:15px;line-height:2.35;color:#435c53}

@media(max-width:820px){
  .moments{padding:104px 22px 124px}
  .moments__heading{display:block;margin-bottom:10px;padding-bottom:30px}
  .moments__heading p{margin-bottom:13px}
  .moment,.moment--reverse{display:flex;margin:0;padding:58px 0 72px;gap:34px;border-top:1px solid rgba(23,55,46,.18)}
  .moment::after,.moment--reverse::after{top:18px;right:0;left:auto}
  .moment figure{width:100%;padding:7px}
  .moment figure::after{inset:7px}
  .moment__text{max-width:none;padding:0}
  .moment time{margin-bottom:24px;font-size:38px}
  .moment h2{font-size:26px}
}

.lights__art--sign .watercolor-graphic{width:100%;max-height:none;mix-blend-mode:multiply}
.reserve__button{text-shadow:none}
.map-hotspot{border:0}

@media(min-width:821px){
  .lights__row--top{grid-template-columns:.55fr 1.45fr}
  .lights__row--bottom{grid-template-columns:1.45fr .55fr}
}

.footer{height:auto;min-height:56.28vw;display:block;padding:86px clamp(28px,6vw,92px) 48px;color:var(--ink);background-color:var(--paper);background-image:url("images/destinations-mountains.png");background-repeat:no-repeat;background-position:center bottom;background-size:100% auto;font-family:var(--sans)}
.footer__inner{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:1.35fr .7fr .8fr 1.25fr;gap:clamp(36px,5vw,82px);align-items:start}
.footer__brand img{width:min(100%,230px);height:auto;aspect-ratio:1800/500;object-fit:contain;object-position:left center}
.footer__brand p{margin:30px 0 0;font-size:13px;letter-spacing:.14em;color:rgba(23,55,46,.72)}
.footer__label{margin:0 0 20px;font-family:var(--sans);font-size:10px;line-height:1;letter-spacing:.24em;color:rgba(23,55,46,.55)}
.footer__nav,.footer__contact{display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.footer__nav a,.footer__contact a{font-size:13px;line-height:1.8;transition:opacity .25s}
.footer__nav a:hover,.footer__contact a:hover,.footer__bottom a:hover{opacity:.62}
.footer__contact address{margin:0 0 9px;font-style:normal;font-size:12px;line-height:2;color:rgba(23,55,46,.8)}
.footer__contact address span{font-size:10px}
.footer__tel{font-size:20px!important;letter-spacing:.08em}
.footer__bottom{position:relative;z-index:1;max-width:1320px;margin:70px auto 0;padding-top:22px;border-top:1px solid rgba(23,55,46,.2);display:flex;justify-content:space-between;align-items:center;font-family:var(--sans);font-size:11px;letter-spacing:.13em;color:rgba(23,55,46,.68)}
.footer__bottom small{font-size:10px}

@media(max-width:820px){
  .site-map__viewport{margin:0;padding:0;overflow:visible}
  .site-map__stage{width:100%}
  .map-hotspot{gap:4px;padding:5px 7px 5px 5px;font-size:clamp(6px,1.8vw,9px)}
  .map-hotspot__mark{width:7px;height:7px;border-width:1px}
  .footer{padding:66px 24px 24px}
  .footer__inner{grid-template-columns:1fr 1fr;gap:48px 28px}
  .footer__brand,.footer__contact{grid-column:1/-1}
  .footer__brand img{width:190px}
  .footer__bottom{margin-top:54px}
}

/* Hero rhythm, map information card, and emotional time chapter */
.hero h1{letter-spacing:.168em}

.map-card{position:absolute;left:28px;right:auto;bottom:24px;width:min(540px,40vw);min-height:154px;margin:0;display:grid;grid-template-columns:34% 66%;overflow:hidden}
.map-card figure{height:100%;min-height:154px}
.map-card__body{display:flex;flex-direction:column;justify-content:center;padding:18px 24px 20px}
.map-card__title{font-size:20px}
.map-card__text{font-size:13px;line-height:1.9}
.map-card__note{display:block;margin-top:8px;font-size:11px;line-height:1.6;color:#6d786f}
.map-hotspot--marker{padding:7px}
.lights__row--art-only{display:flex;justify-content:center;margin-bottom:100px}
.lights__row--art-only .lights__art{width:min(100%,760px)}

.time{padding:138px 0 112px;background:#f7f2e8;color:var(--ink)}
.time__heading{max-width:1280px;margin:0 auto;padding:0 clamp(34px,4vw,64px) 82px;display:grid;grid-template-columns:.9fr 1.1fr;column-gap:clamp(52px,8vw,120px);align-items:end}
.time__kicker{grid-column:1/-1;margin:0 0 28px;padding-bottom:18px;border-bottom:1px solid rgba(23,55,46,.24);font-size:13px;letter-spacing:.28em;color:#747d74}
.time__heading h2{margin:0;font-size:clamp(34px,3.8vw,56px);line-height:1.65}
.time__intro{margin:0 0 7px;max-width:520px;font-size:15px;line-height:2.35;color:#496259}
.time__panels{margin:0 clamp(20px,3vw,48px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.4vw,22px);overflow:visible}
.time__panel{position:relative;height:min(72vh,740px);min-height:540px;overflow:visible;background:#d9d3c6}
.time__panel::after{content:"";position:absolute;z-index:1;inset:42% 0 0;background:linear-gradient(0deg,rgba(8,27,27,.62),transparent);pointer-events:none}
.time__panel .time__main-photo{position:relative;z-index:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s ease}
.time__panel:first-child .time__main-photo{object-position:center 70%}
.time__panel:hover img{transform:none}
.time__panel:hover .time__main-photo{transform:none}
.time__film-photo{position:absolute;z-index:3;bottom:-38px;width:clamp(108px,18%,158px)!important;height:auto!important;aspect-ratio:2/3!important;object-fit:cover!important;padding:7px;background:#f8f2e7;box-shadow:0 16px 34px rgba(36,39,32,.2)}
.time__film-photo--left{right:28px;transform:rotate(2.2deg)!important}
.time__film-photo--right{left:28px;transform:rotate(-2.4deg)!important}
.time__panel figcaption{position:absolute;z-index:2;left:clamp(25px,3vw,48px);right:clamp(150px,20%,200px);bottom:32px;color:#fff;font-size:13px;line-height:1.9;letter-spacing:.08em;text-shadow:0 1px 12px rgba(0,0,0,.35)}
.time__panel:nth-child(2) figcaption{left:clamp(150px,20%,200px);right:clamp(25px,3vw,48px);text-align:right}
.time__panel figcaption span{display:block;margin-bottom:5px;font-size:20px;letter-spacing:.12em}

@media(max-width:820px){
  .hero h1{letter-spacing:.168em}
  .map-card{position:relative;left:auto;right:auto;bottom:auto;width:100%;min-height:0;margin-top:24px;display:block}
  .map-card figure{height:190px;min-height:0}
  .time{padding:100px 0 84px}
  .time__heading{display:block;padding:0 24px 56px}
  .time__kicker{margin-bottom:24px}
  .time__heading h2{margin-bottom:28px;font-size:34px}
  .time__panels{margin:0 16px;display:grid;grid-template-columns:1fr;gap:74px}
  .time__panel{height:62svh;min-height:470px}
  .time__panel .time__main-photo{height:100%;object-fit:cover}
  .time__film-photo{bottom:-28px;width:102px!important;padding:5px}
  .time__film-photo--left{right:18px}
  .time__film-photo--right{left:18px}
  .time__panel figcaption{left:24px;right:128px;bottom:24px}
  .time__panel:nth-child(2) figcaption{left:128px;right:24px}
  .time__panel figcaption span{font-size:18px}
}

/* Final presentation adjustments */
.header__logo--menu{display:none}
.menu-open .header{background:rgba(244,240,229,.98);box-shadow:0 12px 36px rgba(23,55,46,.12)}
.menu-open .header__logo--light{display:none}
.menu-open .header__logo--menu{display:block;filter:none}
.menu-open .menu-button span{background:#789da0}
.reserve{background-image:url("images/cta-sky.png");background-position:center 55%;background-size:cover}
.reserve h2{text-shadow:0 4px 32px rgba(7,25,30,.28)}

@media(max-width:820px){
  .map-hotspot{gap:5px;padding:6px 8px 6px 6px;font-size:10px}
  .map-hotspot__mark{width:8px;height:8px;border-width:1px}
}

/* 通常時：白いロゴだけ表示 */
.header__brand .header__logo--light {
  display: block;
}
.header__brand .header__logo--menu {
  display: none;
}

/* メニューを開いた時：カラーのロゴだけ表示 */
.menu-open .header__brand .header__logo--light {
  display: none;
}
.menu-open .header__brand .header__logo--menu {
  display: block;
}
.grecaptcha-badge { visibility: hidden; }