/* ── Site wrapper ── */
.site-wrapper { width:100%; overflow-x:hidden; background:#fff; }

/* ── HERO ── */
.hero { position:relative; width:100%; height:760px; overflow:hidden; }
.hero__bg { position:absolute; inset:0; width:100%; height:100%; }
.hero__overlay { position:absolute; inset:0; background:linear-gradient(100deg,rgba(20,40,20,0.62) 0%,rgba(20,40,20,0.30) 42%,rgba(20,40,20,0.05) 70%); pointer-events:none; }

/* Hero slider */
.hero-slider { position:absolute; inset:0; display:grid; }
.hero-slide { grid-column:1; grid-row:1; width:100%; height:100%; background-size:cover; background-position:center; opacity:0; transition:opacity 1.2s ease; }
.hero-slide.is-active { opacity:1; }
.hero-slider__dots { position:absolute; bottom:72px; left:50%; transform:translateX(-50%); z-index:15; display:flex; gap:10px; }
.hero-slider__dot { width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.4); border:1.5px solid rgba(255,255,255,.7); cursor:pointer; transition:background .3s, transform .3s; padding:0; }
.hero-slider__dot.is-active { background:#fff; transform:scale(1.25); }

/* Site header */
.site-header { position:absolute; top:0; left:0; right:0; z-index:20; display:flex; align-items:center; justify-content:space-between; padding:22px 40px; }
.emergency-ticker + header.site-header { top:40px; }
.site-logo { display:flex; align-items:center; gap:13px; text-decoration:none; color:#fff; }
.site-logo__text { line-height:1.1; }
.site-logo__sub { font-size:10px; letter-spacing:1px; opacity:.85; font-weight:500; }
.site-logo__name { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:23px; letter-spacing:1px; }
.site-logo__en { font-size:9px; letter-spacing:3px; opacity:.8; font-weight:500; }
.site-nav { display:flex; gap:24px; color:#fff; white-space:nowrap; }
.site-nav__link { text-align:center; text-decoration:none; color:#fff; line-height:1.3; }
.site-nav__label { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:15px; }
.site-nav__en { font-size:9px; letter-spacing:1.5px; opacity:.8; }
.header-actions { display:flex; align-items:center; gap:12px; }
.btn-booking { display:flex; align-items:center; gap:8px; background:#2f5d34; color:#fff; text-decoration:none; padding:13px 20px; border-radius:7px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:14px; box-shadow:0 4px 14px rgba(0,0,0,.18); }
.btn-hamburger { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; width:58px; height:58px; background:#fff; border:none; border-radius:8px; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.18); }
.btn-hamburger__bar { display:block; width:24px; height:2px; background:#2f5d34; }
.btn-hamburger__label { font-size:8px; letter-spacing:1px; color:#2f5d34; font-weight:700; margin-top:1px; }

/* Hero copy */
.hero__copy { position:absolute; left:0; top:170px; padding-left:56px; z-index:10; color:#fff; }
.hero__h1 { margin:0; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:62px; line-height:1.28; letter-spacing:2px; text-shadow:0 2px 18px rgba(0,0,0,.35); }
.hero__lead { margin:22px 0 0; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:500; font-size:20px; line-height:1.6; text-shadow:0 2px 12px rgba(0,0,0,.4); }
.hero__btns { display:flex; gap:16px; margin-top:30px; }
.btn-primary { display:flex; align-items:center; gap:14px; background:#2f5d34; color:#fff; text-decoration:none; padding:17px 26px; border-radius:9px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:17px; box-shadow:0 8px 22px rgba(0,0,0,.25); min-width:210px; }
.btn-secondary { display:flex; align-items:center; gap:14px; background:rgba(255,255,255,.95); color:#2f5d34; text-decoration:none; padding:17px 26px; border-radius:9px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:17px; box-shadow:0 8px 22px rgba(0,0,0,.2); min-width:210px; }
.btn-arrow { margin-left:auto; display:flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; }
.btn-primary .btn-arrow { border:1.5px solid rgba(255,255,255,.6); }
.btn-secondary .btn-arrow { border:1.5px solid rgba(47,93,52,.4); }

/* ── NEWS ── */
.sec-news { position:relative; background:#fff; padding:52px 40px 64px; border-bottom:1px solid #eae8de; margin-top:-34px; border-radius:34px 34px 0 0; z-index:4; }
.sec-news__inner { max-width:1100px; margin:0 auto; }
.sec-news__head { display:flex; align-items:baseline; gap:16px; margin-bottom:20px; }
.sec-news__label { font-size:11px; letter-spacing:4px; color:#9aa890; font-weight:700; }
.sec-news__h2 { margin:0; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:22px; color:#2f5d34; }
.news-list { list-style:none; padding:0; margin:0; }
.news-item { border-bottom:1px solid #eae8de; }
.news-item:first-child { border-top:1px solid #eae8de; }
.news-item__link { display:flex; align-items:center; gap:20px; padding:15px 6px; text-decoration:none; color:inherit; }
.news-item__date { font-size:13px; color:#9aa890; font-weight:500; white-space:nowrap; flex:none; width:90px; }
.news-item__cat { font-size:11px; font-weight:700; letter-spacing:2px; color:#fff; background:#2f5d34; padding:3px 10px; border-radius:3px; white-space:nowrap; flex:none; }
.news-item__title { font-size:14px; color:#33332c; flex:1; line-height:1.5; }
.news-item__arrow { font-size:13px; color:#9aa890; flex:none; }

/* News more button */
.sec-news__more { display:flex; justify-content:flex-end; margin-top:28px; }
.btn-news-more { display:inline-flex; align-items:center; gap:10px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:13px; color:#2f5d34; text-decoration:none; border:1.5px solid #2f5d34; padding:10px 22px; border-radius:30px; transition:background .2s, color .2s; }
.btn-news-more:hover { background:#2f5d34; color:#fff; }
.btn-news-more__arrow { display:flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; border:1.5px solid currentColor; font-size:12px; }

/* ── PLAY ── */
.sec-play { position:relative; background:#f6f4eb; padding:62px 40px 70px; margin-top:-34px; border-radius:0; z-index:5; }
.sec-head { text-align:center; margin-bottom:38px; }
.sec-head__icon-wrap { display:flex; align-items:center; justify-content:center; gap:14px; }
.sec-head__h2 { margin:0; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:38px; color:#2f5d34; letter-spacing:2px; }
.sec-head__en { font-size:12px; letter-spacing:5px; color:#9aa890; font-weight:700; margin-top:4px; }
.sec-head--white .sec-head__h2 { color:#fff; }
.sec-head--white .sec-head__en { color:rgba(255,255,255,.6); }
.sec-head--season { text-align:left; margin-bottom:20px; }
.sec-head--season .sec-head__icon-wrap { justify-content:flex-start; gap:8px; }
.sec-head--season .sec-head__h2 { font-size:28px; }
.sec-head--season .sec-head__en { color:#9aa890; }
.play-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:16px; max-width:1180px; margin:0 auto; }
.play-card { position:relative; border-radius:14px; overflow:hidden; box-shadow:0 6px 18px rgba(0,0,0,.10); aspect-ratio:0.72; }
.play-card__bg { position:absolute; inset:0; width:100%; height:100%; }
.play-card__gradient { position:absolute; inset:0; background:linear-gradient(to top,rgba(20,40,20,.78) 0%,rgba(20,40,20,.1) 55%); }
.play-card__icon { position:absolute; top:14px; left:50%; transform:translateX(-50%); width:50px; height:50px; border-radius:50%; background:#2f5d34; display:flex; align-items:center; justify-content:center; box-shadow:0 3px 10px rgba(0,0,0,.3); }
.play-card__body { position:absolute; bottom:0; left:0; right:0; padding:14px 12px 16px; text-align:center; color:#fff; }
.play-card__en { font-size:11px; letter-spacing:1.5px; font-weight:700; opacity:.92; }
.play-card__name { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:16px; line-height:1.3; margin-top:3px; }
.play-card__arrow { display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; border:1.5px solid rgba(255,255,255,.7); margin:10px auto 0; font-size:14px; }
.play-card__badge { position:absolute; top:10px; right:10px; background:#e2a32b; color:#fff; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:11px; padding:4px 10px; border-radius:4px; letter-spacing:1px; }

/* ── STAY ── */
.sec-stay { position:relative; padding:100px 40px 100px; overflow:hidden; }
.stay-divider { position:absolute; left:0; right:0; overflow:hidden; line-height:0; z-index:1; }
.stay-divider svg { display:block; width:100%; height:80px; }
.stay-divider--top { top:0; }
.stay-divider--bottom { bottom:0; }
.sec-stay__bg { position:absolute; inset:0; width:100%; height:100%; }
.sec-stay__overlay { position:absolute; inset:0; background:rgba(28,48,28,.42); }
.sec-stay__inner { position:relative; z-index:2; }
.stay-head { text-align:center; margin-bottom:34px; }
.stay-head__h2 { margin:0; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:38px; color:#fff; letter-spacing:3px; text-shadow:0 2px 14px rgba(0,0,0,.4); }
.stay-head__en { font-size:12px; letter-spacing:5px; color:rgba(255,255,255,.85); font-weight:700; margin-top:4px; }
.stay-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; max-width:1280px; margin:0 auto; }
.stay-card { background:#faf8f2; border-radius:16px; overflow:hidden; box-shadow:0 8px 32px rgba(0,0,0,.18); position:relative; }
a.stay-card--link { display:block; text-decoration:none; color:inherit; transition:transform .22s, box-shadow .22s; }
a.stay-card--link:hover { transform:translateY(-4px); box-shadow:0 18px 40px rgba(0,0,0,.22); }
.stay-card__img { width:100%; height:200px; }
.stay-card__body { padding:22px 24px 26px; display:flex; flex-direction:column; gap:0; }
.stay-card__type { font-size:11px; letter-spacing:3px; color:#c9943a; font-weight:700; margin-bottom:8px; }
.stay-card__name { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:24px; color:#1e3820; letter-spacing:1px; margin:0 0 10px; }
.stay-card--villa .stay-card__name { font-size:26px; }
.stay-card__desc { font-size:13px; color:#6a6a60; line-height:1.7; margin-bottom:16px; }
.stay-card__cta { font-size:13px; color:#2f5d34; font-weight:700; letter-spacing:.5px; }
a.stay-card--link:hover .stay-card__cta { color:#c9943a; }
.stay-card__badge { position:absolute; top:12px; left:12px; background:#c9943a; color:#fff; font-family:'Zen Kaku Gothic New',sans-serif; font-size:10px; font-weight:700; letter-spacing:1.5px; padding:4px 10px; border-radius:4px; }
.stay-more { display:flex; justify-content:center; margin-top:30px; }
.btn-more { display:flex; align-items:center; gap:16px; background:#2f5d34; color:#fff; text-decoration:none; padding:16px 40px; border-radius:9px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:16px; box-shadow:0 6px 18px rgba(0,0,0,.25); }
.btn-more__arrow { display:flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; border:1.5px solid rgba(255,255,255,.55); }

/* ── SEASON ── */
.sec-season { background:#f0e9db; padding:60px 40px 64px; }
.season-layout { display:flex; align-items:flex-start; gap:34px; max-width:1180px; margin:0 auto; }
.season-info { flex:none; width:230px; padding-top:8px; }
.season-info__h2 { margin:0; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:33px; color:#2f5d34; line-height:1.4; }
.season-info__underline { border-bottom:3px solid #e2a32b; }
.season-info__en { font-size:12px; letter-spacing:4px; color:#9aa890; font-weight:700; margin-top:8px; }
.season-info__text { font-size:13px; color:#5a5a50; line-height:1.9; margin:18px 0 22px; }
.btn-outline { display:inline-flex; align-items:center; gap:14px; background:#fff; border:1.5px solid #2f5d34; color:#2f5d34; text-decoration:none; padding:12px 26px; border-radius:30px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:14px; }
.btn-outline__arrow { display:flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; border:1.5px solid #2f5d34; }
.season-slider-wrap { flex:1; position:relative; min-width:0; }
.season-slider { display:flex; gap:16px; overflow-x:auto; scroll-behavior:smooth; padding:4px; }
.season-nav-btn { position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:42px; height:42px; border-radius:50%; background:#2f5d34; border:none; color:#fff; font-size:18px; cursor:pointer; box-shadow:0 4px 12px rgba(0,0,0,.2); }
.season-nav-btn.--prev { left:-14px; }
.season-nav-btn.--next { right:-14px; }
.season-card { flex:none; width:220px; min-width:200px; position:relative; border-radius:14px; overflow:hidden; box-shadow:0 5px 16px rgba(0,0,0,.12); text-decoration:none; display:block; transition:transform .25s, box-shadow .25s; }
.season-card:hover { transform:translateY(-4px); box-shadow:0 10px 28px rgba(0,0,0,.18); }
.season-card__img { width:100%; height:230px; background-size:cover; background-position:center; }
.season-card__badge { position:absolute; top:12px; left:12px; color:#fff; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:15px; min-width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; padding:0 8px; }
.season-card__badge--spring { background:#e89bb0; }
.season-card__badge--summer { background:#4c9bd1; }
.season-card__badge--autumn { background:#d97734; }
.season-card__badge--winter { background:#7fb4dd; }
.season-card__badge--all { background:#7a9a6e; font-size:12px; }
.season-card__label { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(to top,rgba(20,40,20,.85),transparent); padding:32px 12px 14px; color:#fff; font-size:12px; font-weight:700; line-height:1.5; }

/* ── EXPERIENCE ── */
.sec-exp { background:#fbfaf3; padding:60px 40px 66px; }
.sec-exp__inner { max-width:1180px; margin:0 auto; }
.exp-head { display:flex; align-items:flex-end; gap:30px; margin-bottom:30px; }
.exp-head__h2 { margin:0; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:34px; color:#2f5d34; }
.exp-head__en { font-size:12px; letter-spacing:4px; color:#9aa890; font-weight:700; margin-top:6px; }
.exp-head__text { font-size:13px; color:#5a5a50; line-height:1.9; margin:0; }
.btn-outline-sm { margin-left:auto; display:inline-flex; align-items:center; gap:14px; background:#fff; border:1.5px solid #2f5d34; color:#2f5d34; text-decoration:none; padding:11px 22px; border-radius:30px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:13px; white-space:nowrap; }
.btn-outline-sm__arrow { display:flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; border:1.5px solid #2f5d34; }
/* slider wrapper */
.exp-slider-wrap { position:relative; }
.exp-nav-btn { position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:36px; height:36px; border-radius:50%; border:none; background:rgba(47,93,52,.85); color:#fff; font-size:18px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s; }
.exp-nav-btn:hover { background:#2f5d34; }
.exp-nav-btn--prev { left:-18px; }
.exp-nav-btn--next { right:-18px; }
.exp-slider { display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; -webkit-overflow-scrolling:touch; padding-bottom:4px; }
.exp-slider::-webkit-scrollbar { display:none; }
.exp-card { flex:0 0 calc(20% - 13px); scroll-snap-align:start; background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 4px 14px rgba(0,0,0,.08); text-decoration:none; color:inherit; display:block; }
.exp-card__img { width:100%; height:130px; background-size:cover; background-position:center; }
.exp-card__body { padding:14px 14px 16px; position:relative; }
.exp-card__name { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:15px; color:#33332c; }
.exp-card__desc { font-size:11px; color:#7a7a70; line-height:1.6; margin-top:5px; }
.exp-card__arrow { position:absolute; right:12px; bottom:12px; display:flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; background:#2f5d34; color:#fff; font-size:13px; }

/* ── EVENT + ACCESS ── */
.sec-access { background:#fff; padding:54px 40px 66px; }
.access-grid { display:grid; grid-template-columns:1fr 1fr; gap:26px; max-width:1180px; margin:0 auto; }

/* Event box */
.event-box { background:#eef1e3; border-radius:16px; padding:26px; display:flex; align-items:center; gap:20px; }
.event-box__photo { width:130px; height:230px; flex:none; border-radius:12px; }
.event-box__content { flex:1; min-width:0; }
.event-box__head { display:flex; align-items:center; gap:10px; }
.event-box__h3 { margin:0; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:22px; color:#2f5d34; }
.event-box__en { font-size:10px; letter-spacing:3px; color:#9aa890; font-weight:700; margin-top:4px; margin-bottom:16px; }
.event-tabs { display:none; }
.event-empty { font-size:13px; color:#9aa890; padding:12px 0; }
.event-list { background:#fff; border-radius:10px; padding:6px 14px; }
.event-item { display:flex; align-items:center; gap:12px; padding:11px 0; border-bottom:1px solid #eee; text-decoration:none; }
.event-item:last-child { border-bottom:none; }
.event-item__title { font-size:12px; color:#5a5a50; }
.btn-green { display:flex; align-items:center; justify-content:center; gap:12px; background:#2f5d34; color:#fff; text-decoration:none; padding:11px 0; border-radius:7px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:13px; margin-top:14px; }
.btn-green--outline { background:#fff; color:#2f5d34; border:1.5px solid #2f5d34; }

/* Access box */
.access-box { background:#fbfaf3; border-radius:16px; padding:26px; border:1px solid #ece9dc; }
.access-box__head { display:flex; align-items:center; gap:10px; }
.access-box__h3 { margin:0; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:22px; color:#2f5d34; }
.access-box__en { font-size:10px; letter-spacing:3px; color:#9aa890; font-weight:700; }
.access-box__text { font-size:12px; color:#5a5a50; margin:12px 0 16px; }
.access-layout { display:flex; gap:20px; }
.access-times { flex:1; display:flex; flex-direction:column; gap:10px; }
.access-time { display:flex; align-items:center; gap:12px; background:#fff; border-radius:9px; padding:11px 14px; }
.access-time--highlight { background:#fdeee6; border:1.5px solid #d56a35; }
.access-time__label { font-size:12px; color:#5a5a50; flex:1; }
.access-time__label--highlight { color:#d56a35; font-weight:700; }
.access-time__value { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:21px; color:#33332c; }
.access-time__value--highlight { color:#d56a35; }
.access-time__unit { font-size:12px; }
.access-map { flex:1; border-radius:10px; overflow:hidden; min-height:160px; }
.access-map__iframe { width:100%; height:100%; min-height:160px; display:block; border:0; }
.btn-access { display:flex; align-items:center; justify-content:center; gap:12px; background:#2f5d34; color:#fff; text-decoration:none; padding:11px 0; border-radius:7px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:13px; margin-top:16px; }

/* ─── RESPONSIVE ─── */
@media (max-width: 900px) {
  .site-header { padding: 16px 24px; }
  .site-nav { display: none; }
  .hero-slider__dots { display: none; }
  .hero { height: 560px; }
  .hero--with-ticker { height: 640px; }
  .hero__copy { top: 140px; padding-left: 32px; }
  .emergency-ticker ~ .hero__copy { top: 210px; }
  .hero__h1 { font-size: 46px; }
  .hero__lead { font-size: 16px; }
  .play-grid { grid-template-columns: repeat(3, 1fr); }
  .stay-grid { grid-template-columns: repeat(2, 1fr); }
  .stay-card__img { height: 150px; }
  .stay-card__name { font-size: 20px; }
  .stay-card--villa .stay-card__name { font-size: 22px; }
  .stay-card__body { padding: 16px 18px 20px; }
  .season-layout { flex-direction: column; gap: 24px; }
  .season-info { width: 100%; }
  .season-slider-wrap { width: 100%; }
  .season-nav-btn { display: none; }
  .access-grid { grid-template-columns: 1fr; }
  .event-box { flex-direction: column; }
  .event-box__photo { width: 100%; height: 200px; }
  .access-layout { flex-direction: column; }
  .access-map { min-height: 200px; }
  .sec-play, .sec-stay, .sec-season, .sec-exp { padding-left: 24px; padding-right: 24px; }
  .sec-news, .sec-access { padding-left: 24px; padding-right: 24px; }
}

@media (max-width: 600px) {
  .hero { height: 540px; }
  .hero--with-ticker { height: 620px; }
  .hero__copy { top: 140px; padding-left: 20px; right: 0; padding-right: 20px; }
  .emergency-ticker ~ .hero__copy { top: 180px; }
  .hero__h1 { font-size: 30px; letter-spacing: 1px; }
  .hero__lead { font-size: 13px; margin-top: 12px; }
  .hero__btns { flex-direction: column; gap: 10px; margin-top: 16px; }
  .btn-primary, .btn-secondary { min-width: 0; justify-content: center; padding: 14px 20px; font-size: 15px; }
  .site-header { padding: 12px 16px; }
  .btn-hamburger { width: 48px; height: 48px; }
  .play-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .sec-head__h2 { font-size: 28px; }
  .stay-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .stay-head__h2 { font-size: 28px; }
  .stay-card__img { height: 160px; }
  .stay-card__name { font-size: 15px; }
  .season-info__h2 { font-size: 24px; }
  .exp-head { flex-direction: column; align-items: center; gap: 12px; }
  .exp-head__titles { width: 100%; }
  .exp-head__text { text-align: center; }
  .exp-head__h2 { font-size: 26px; }
  .btn-outline-sm { margin-left: 0; }
  .exp-card { flex: 0 0 calc(50% - 8px); }
  .sec-play, .sec-stay, .sec-season, .sec-exp { padding-left: 16px; padding-right: 16px; }
  .sec-news, .sec-access { padding-left: 16px; padding-right: 16px; }

  /* NEWS: ボタン中央寄せ */
  .sec-news__more { justify-content: center; }

  /* SEASON: テキスト・ボタン中央寄せ */
  .sec-head--season { text-align: center; }
  .sec-head--season .sec-head__icon-wrap { justify-content: center; }
  .season-info__text { text-align: center; }
  .season-info { display: flex; flex-direction: column; align-items: center; }

  /* NEWS: ニュースリスト - 日付・カテゴリーを上行、タイトルを下行に */
  .news-item__link { flex-wrap: wrap; gap: 6px 10px; align-items: center; }
  .news-item__date { width: auto; }
  .news-item__title { flex-basis: 100%; order: 3; margin-top: 2px; }
  .news-item__arrow { order: 2; margin-left: auto; }
}

@media (max-width: 480px) {
  .hero { height: 520px; }
  .hero__h1 { font-size: 24px; }
  .hero__lead { font-size: 12px; }
  .btn-booking { display: none; }
  .btn-hamburger { width: 44px; height: 44px; }
  .stay-grid { grid-template-columns: 1fr; }
  .exp-card { flex: 0 0 calc(70% - 8px); }
}

/* ============ EAT ============ */
.sec-eat { position:relative; padding:84px 24px 150px; background:#f6f5ea; }
.eat-divider { position:absolute; left:0; right:0; bottom:-1px; height:80px; pointer-events:none; }
.eat-divider svg { display:block; width:100%; height:100%; }
.eat-fp-card__note { font-size:11px; font-weight:700; opacity:.85; margin-left:2px; }
.eat-fp-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; max-width:1180px; margin:0 auto; }
.eat-fp-card { position:relative; display:block; border-radius:16px; overflow:hidden; min-height:250px; text-decoration:none; box-shadow:0 6px 20px rgba(0,0,0,.12); transition:box-shadow .25s; }
.eat-fp-card:hover { box-shadow:0 12px 30px rgba(0,0,0,.2); }
.eat-fp-card__bg { position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .5s ease; }
.eat-fp-card:hover .eat-fp-card__bg { transform:scale(1.05); }
.eat-fp-card__gradient { position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.62) 0%, rgba(0,0,0,.05) 55%); }
.eat-fp-card__body { position:absolute; left:18px; right:16px; bottom:16px; color:#fff; }
.eat-fp-card__en { font-size:10px; letter-spacing:3px; font-weight:700; opacity:.75; }
.eat-fp-card__name { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:18px; margin-top:4px; text-shadow:0 1px 8px rgba(0,0,0,.4); }
.eat-fp-card__arrow { position:absolute; right:0; bottom:2px; font-size:16px; opacity:.85; }
.eat-fp-more { display:flex; justify-content:center; margin-top:38px; }
@media (max-width:900px) {
  .eat-fp-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:520px) {
  .sec-eat { padding:56px 16px 110px; }
  .eat-divider { height:50px; }
  .eat-fp-grid { gap:12px; }
  .eat-fp-card { min-height:180px; border-radius:12px; }
  .eat-fp-card__name { font-size:15px; }
}
