/* ── Villa Page ─────────────────────────────────────────── */

/* ── Hero ── */
.villa-hero { position:relative; height:100vh; min-height:700px; max-height:920px; overflow:hidden; }
.villa-hero__img { position:absolute; inset:0; width:100%; height:100%; }
.villa-hero__overlay { position:absolute; inset:0; background:linear-gradient(160deg,rgba(8,20,8,.38) 0%,rgba(8,20,8,.12) 55%,rgba(8,20,8,.42) 100%); }

/* Header nav (overlay on hero) */
.villa-site-header { position:absolute; top:0; left:0; right:0; z-index:20; display:flex; align-items:center; justify-content:space-between; padding:26px 48px; }
.villa-site-logo { display:flex; align-items:center; gap:13px; text-decoration:none; color:#fff; }
.villa-site-logo__text { line-height:1.1; }
.villa-site-logo__sub { font-size:10px; letter-spacing:1px; opacity:.85; font-weight:500; }
.villa-site-logo__name { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:23px; letter-spacing:1px; }
.villa-site-logo__en { font-size:9px; letter-spacing:3px; opacity:.8; font-weight:500; }
.villa-site-nav { display:flex; gap:22px; }
.villa-site-nav__item { display:flex; flex-direction:column; align-items:center; text-decoration:none; color:#fff; gap:3px; }
.villa-site-nav__jp { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:13px; line-height:1; }
.villa-site-nav__en { font-size:8px; letter-spacing:1.5px; opacity:.72; line-height:1; }
.villa-header-actions { display:flex; align-items:center; gap:14px; }
.villa-header-sns { display:flex; align-items:center; gap:10px; }
.villa-header-sns__link { display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.8); transition:color .18s; }
.villa-header-sns__link:hover { color:#fff; }
.villa-btn-reserve-header { display:flex; align-items:center; gap:8px; background:#c9943a; color:#fff; text-decoration:none; padding:12px 20px; border-radius:7px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:13px; box-shadow:0 4px 14px rgba(0,0,0,.2); }
.villa-site-header .btn-hamburger { --bar-color:#fff; }
.villa-site-header .btn-hamburger__bar { background:#fff; }
.villa-site-header .btn-hamburger__label { color:#fff; }

/* Hero body */
.villa-hero__body { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#fff; padding:0 40px; z-index:10; }
.villa-hero__badge { display:inline-flex; align-items:center; gap:8px; background:rgba(201,148,58,.92); color:#fff; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:13px; letter-spacing:2px; padding:7px 22px; border-radius:30px; margin-bottom:26px; }
.villa-hero__badge-dot { width:6px; height:6px; border-radius:50%; background:#fff; opacity:.8; }
.villa-hero__en { font-size:12px; letter-spacing:7px; font-weight:700; opacity:.8; margin-bottom:14px; }
.villa-hero__h1 { margin:0; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:80px; letter-spacing:10px; line-height:1; text-shadow:0 4px 28px rgba(0,0,0,.4); }
.villa-hero__lead { font-family:'Zen Kaku Gothic New',sans-serif; font-size:17px; font-weight:500; line-height:1.9; margin:26px 0 44px; text-shadow:0 2px 14px rgba(0,0,0,.4); opacity:.95; }
.villa-hero__cta { display:inline-flex; align-items:center; gap:14px; background:#c9943a; color:#fff; text-decoration:none; padding:19px 50px; border-radius:10px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:18px; letter-spacing:1px; box-shadow:0 10px 32px rgba(0,0,0,.35); }
.villa-hero__cta-arrow { display:flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; border:1.5px solid rgba(255,255,255,.55); }
.villa-hero__scroll { position:absolute; bottom:36px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:10px; color:rgba(255,255,255,.7); font-size:9px; letter-spacing:3px; z-index:10; }
.villa-hero__scroll-line { width:1px; height:44px; background:linear-gradient(to bottom,transparent,rgba(255,255,255,.65)); animation:villa-scroll-line 2s ease-in-out infinite; }
@keyframes villa-scroll-line { 0%{opacity:0;transform:scaleY(0);transform-origin:top} 50%{opacity:1;transform:scaleY(1);transform-origin:top} 51%{transform:scaleY(1);transform-origin:bottom} 100%{opacity:0;transform:scaleY(0);transform-origin:bottom} }

/* ── Concept ── */
.villa-concept { display:grid; grid-template-columns:1fr 1fr; }
.villa-concept__photo { position:relative; min-height:620px; overflow:hidden; }
.villa-concept__photo-img { position:absolute; inset:0; width:100%; height:100%; }
.villa-concept__text-wrap { background:#faf8f2; display:flex; align-items:center; padding:88px 80px; }
.villa-concept__text { max-width:460px; }
.villa-concept__label { font-size:11px; letter-spacing:5px; color:#c9943a; font-weight:700; margin-bottom:20px; }
.villa-concept__h2 { margin:0 0 30px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:38px; color:#1e3820; line-height:1.45; letter-spacing:2px; }
.villa-concept__body { font-size:15px; color:#4a4a40; line-height:2.1; margin:0; }
.villa-concept__divider { width:40px; height:2px; background:#c9943a; margin:36px 0; }
.villa-concept__sub { font-size:13px; color:#6a6a60; line-height:2; }
.villa-concept__note { display:inline-flex; align-items:center; gap:8px; margin-top:28px; background:rgba(47,93,52,.08); border:1px solid rgba(47,93,52,.2); border-radius:8px; padding:12px 18px; font-size:13px; color:#2f5d34; font-weight:700; }

/* ── PV Video ── */
.villa-pv { background: #f2ede4; padding: 80px 40px; text-align: center; }
.villa-pv__inner { max-width: 860px; margin: 0 auto; }
.villa-pv__label { font-size: 11px; letter-spacing: 5px; font-weight: 700; color: #c9943a; margin: 0 0 10px; }
.villa-pv__h2 {
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-weight: 900;
  font-size: clamp(20px, 3vw, 28px);
  color: #2f3a28;
  margin: 0 0 32px;
}
.villa-pv__frame {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0,0,0,.16);
  background: #000;
}
.villa-pv__video {
  display: block;
  width: 100%;
  height: auto;
  max-height: 540px;
  object-fit: contain;
}
@media (max-width: 600px) {
  .villa-pv { padding: 48px 16px; }
  .villa-pv__video { max-height: 240px; }
}

/* ── Features ── */
.villa-features { background:#1e3820; padding:88px 60px; }
.villa-features__head { text-align:center; margin-bottom:60px; color:#fff; }
.villa-features__label { font-size:11px; letter-spacing:5px; color:#c9943a; font-weight:700; margin-bottom:14px; }
.villa-features__h2 { margin:0; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:38px; letter-spacing:3px; }
.villa-features__grid { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; max-width:1200px; margin:0 auto; }
.villa-feat-card { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.11); border-radius:18px; padding:40px 26px 36px; text-align:center; color:#fff; }
.villa-feat-card__icon { width:68px; height:68px; border-radius:50%; background:rgba(201,148,58,.2); border:1.5px solid rgba(201,148,58,.45); display:flex; align-items:center; justify-content:center; margin:0 auto 22px; font-size:30px; }
.villa-feat-card__name { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:17px; letter-spacing:1px; margin-bottom:14px; }
.villa-feat-card__jp { font-size:12px; letter-spacing:1px; color:#c9943a; font-weight:700; margin-bottom:12px; }
.villa-feat-card__desc { font-size:13px; line-height:1.85; opacity:.78; }

/* ── Gallery ── */
.villa-gallery { background:#f8f7f2; padding:72px 0 88px; }
.villa-gallery__head { text-align:center; padding:0 60px 52px; color:#33332c; }
.villa-gallery__label { font-size:11px; letter-spacing:5px; color:#c9943a; font-weight:700; margin-bottom:14px; }
.villa-gallery__h2 { margin:0; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:38px; letter-spacing:3px; }
.villa-gallery__grid { display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:280px; gap:3px; margin:0 0 3px; }
.villa-gallery__item { overflow:hidden; position:relative; cursor:pointer; }
.villa-gallery__item--tall { grid-row:span 2; }
.villa-gallery__item-img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease; display:block; }
.villa-gallery__item:hover .villa-gallery__item-img { transform:scale(1.06); }
.villa-gallery__item-label { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(to top,rgba(10,25,10,.75),transparent); color:#fff; font-family:'Zen Kaku Gothic New',sans-serif; font-size:13px; font-weight:700; padding:28px 18px 14px; letter-spacing:1px; }

/* ── Rooms ── */
.villa-rooms { background:#fff; padding:88px 60px; }
.villa-rooms__head { text-align:center; margin-bottom:60px; }
.villa-rooms__label { font-size:11px; letter-spacing:5px; color:#c9943a; font-weight:700; margin-bottom:14px; }
.villa-rooms__h2 { margin:0; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:38px; color:#1e3820; letter-spacing:3px; }
.villa-rooms__sub { font-size:14px; color:#7a7a6a; margin-top:12px; }
.villa-rooms__grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; max-width:980px; margin:0 auto; }
.villa-room-card { border-radius:16px; overflow:hidden; box-shadow:0 8px 32px rgba(0,0,0,.1); }
.villa-room-card__img { width:100%; height:260px; object-fit:cover; display:block; }
.villa-room-card__body { padding:30px 32px 36px; background:#faf8f2; }
.villa-room-card__type { font-size:11px; letter-spacing:3px; color:#c9943a; font-weight:700; margin-bottom:8px; }
.villa-room-card__name { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:26px; color:#1e3820; margin:0 0 18px; }
.villa-room-card__specs { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.villa-room-card__spec { display:flex; align-items:center; gap:10px; font-size:14px; color:#4a4a40; }
.villa-room-card__spec::before { content:''; width:6px; height:6px; border-radius:50%; background:#c9943a; flex:none; }
.villa-rooms__capacity { max-width:980px; margin:28px auto 0; background:#f3f0e6; border-radius:12px; padding:20px 28px; display:flex; align-items:center; gap:16px; font-size:14px; color:#4a4a40; }
.villa-rooms__capacity-icon { font-size:24px; }
.villa-rooms__capacity strong { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; color:#2f5d34; }

/* ── Amenities ── */
.villa-amenities { background:#f3f0e6; padding:88px 60px; }
.villa-amenities__head { text-align:center; margin-bottom:60px; }
.villa-amenities__label { font-size:11px; letter-spacing:5px; color:#c9943a; font-weight:700; margin-bottom:14px; }
.villa-amenities__h2 { margin:0; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:38px; color:#1e3820; letter-spacing:3px; }
.villa-amenities__grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; max-width:1060px; margin:0 auto; }
.villa-amenity-group { background:#fff; border-radius:16px; padding:28px 28px 32px; }
.villa-amenity-group__title { display:flex; align-items:center; gap:10px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:16px; color:#2f5d34; margin:0 0 18px; padding-bottom:14px; border-bottom:1.5px solid #ece8dc; }
.villa-amenity-group__icon { font-size:20px; }
.villa-amenity-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; }
.villa-amenity-item { display:flex; align-items:center; gap:10px; font-size:13px; color:#4a4a40; line-height:1.5; }
.villa-amenity-item::before { content:''; width:6px; height:6px; border-radius:50%; background:#c9943a; flex:none; }

/* ── Stay Info ── */
.villa-info { background:#fff; padding:88px 60px; }
.villa-info__head { text-align:center; margin-bottom:60px; }
.villa-info__label { font-size:11px; letter-spacing:5px; color:#c9943a; font-weight:700; margin-bottom:14px; }
.villa-info__h2 { margin:0; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:38px; color:#1e3820; letter-spacing:3px; }
.villa-info__inner { max-width:920px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.villa-info-table { background:#faf8f2; border-radius:16px; padding:28px 32px 32px; }
.villa-info-table__title { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:16px; color:#2f5d34; margin:0 0 18px; padding-bottom:14px; border-bottom:1.5px solid #e8e4d6; }
.villa-info-row { display:flex; align-items:flex-start; padding:12px 0; border-bottom:1px solid #eae6d8; font-size:14px; }
.villa-info-row:last-child { border-bottom:none; padding-bottom:0; }
.villa-info-row__key { flex:none; width:110px; color:#8a8a7a; font-size:12px; padding-top:2px; }
.villa-info-row__val { color:#33332c; font-weight:500; line-height:1.75; }
.villa-info-row__val strong { color:#2f5d34; }
.villa-rules { background:#faf8f2; border-radius:16px; padding:28px 32px 32px; grid-column:1 / 3; }
.villa-rules__title { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:16px; color:#2f5d34; margin:0 0 18px; padding-bottom:14px; border-bottom:1.5px solid #e8e4d6; }
.villa-rules__list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 32px; }
.villa-rules__item { display:flex; align-items:flex-start; gap:10px; font-size:13px; color:#4a4a40; line-height:1.65; }
.villa-rules__item--alert { color:#c0392b; font-weight:700; }
.villa-rules__icon { font-size:15px; flex:none; margin-top:1px; }
.villa-cancel { background:#fff8ee; border-radius:16px; padding:28px 32px; grid-column:1 / 3; border:1.5px solid #f0d9a8; }
.villa-cancel__title { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:16px; color:#c9943a; margin:0 0 16px; }
.villa-cancel__list { list-style:none; padding:0; margin:0; display:flex; gap:16px; flex-wrap:wrap; }
.villa-cancel__item { background:#fff; border:1px solid #f0d9a8; border-radius:9px; padding:14px 22px; display:flex; align-items:center; gap:12px; font-size:13px; color:#5a5a50; }
.villa-cancel__days { font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:17px; color:#c9943a; }

/* ── Reserve CTA ── */
.villa-reserve { position:relative; min-height:460px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.villa-reserve__bg { position:absolute; inset:0; width:100%; height:100%; }
.villa-reserve__overlay { position:absolute; inset:0; background:rgba(8,20,8,.52); }
.villa-reserve__body { position:relative; z-index:5; text-align:center; color:#fff; padding:88px 40px; }
.villa-reserve__label { font-size:11px; letter-spacing:5px; color:#c9943a; font-weight:700; margin-bottom:18px; }
.villa-reserve__h2 { margin:0 0 16px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:46px; letter-spacing:4px; }
.villa-reserve__note { font-size:14px; opacity:.8; margin:0 0 44px; line-height:1.9; }
.villa-reserve__btns { display:flex; align-items:stretch; justify-content:center; gap:20px; flex-wrap:wrap; }
.villa-btn-web { display:inline-flex; align-items:center; justify-content:center; gap:14px; background:#c9943a; color:#fff; text-decoration:none; padding:20px 52px; border-radius:10px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:18px; box-shadow:0 10px 32px rgba(0,0,0,.4); }
.villa-btn-web__arrow { display:flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; border:1.5px solid rgba(255,255,255,.5); }
.villa-btn-tel { display:inline-flex; flex-direction:column; align-items:center; justify-content:center; background:rgba(255,255,255,.1); border:1.5px solid rgba(255,255,255,.35); color:#fff; text-decoration:none; padding:16px 40px; border-radius:10px; font-family:'Zen Kaku Gothic New',sans-serif; gap:2px; }
.villa-btn-tel__small { font-size:11px; letter-spacing:1px; opacity:.8; }
.villa-btn-tel__num { font-weight:900; font-size:24px; letter-spacing:2px; }

/* ヴィラページではメインヘッダーを非表示（ドロワーはDOMに残す） */
.page-villa .site-header { display:none; }
.villa-btn-tel__hours { font-size:11px; opacity:.65; }

/* ─── ACCORDION ─── */
.villa-accordion {
  max-width: 860px;
  margin: 0 auto;
}
.villa-amenities__accordion,
.villa-info__accordion {
  margin-top: 40px;
}
.villa-accordion__item {
  border-bottom: 1px solid rgba(47,93,52,.15);
}
.villa-accordion__item:first-child {
  border-top: 1px solid rgba(47,93,52,.15);
}
.villa-accordion__trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 4px;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  color: #1a2e1c;
}
.villa-accordion__trigger:hover { color: #2f5d34; }
.villa-accordion__title {
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: .5px;
}
.villa-accordion__icon {
  flex-shrink: 0;
  color: #2f5d34;
  transition: transform .3s ease;
}
.villa-accordion__item.is-open .villa-accordion__icon {
  transform: rotate(180deg);
}
.villa-accordion__body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .3s ease;
  overflow: hidden;
}
.villa-accordion__item.is-open .villa-accordion__body {
  grid-template-rows: 1fr;
}
.villa-accordion__body-inner {
  overflow: hidden;
}
.villa-accordion__body-inner > * {
  padding-bottom: 24px;
}
.villa-amenities__accordion .villa-accordion__body-inner {
  background: #fff;
  padding: 0 20px;
  border-radius: 0 0 8px 8px;
}
.villa-amenities__accordion .villa-accordion__body-inner > * {
  padding-top: 16px;
}

/* ─── FLOOR MAP ─── */
.villa-floorplan { background: #f8faf6; padding: 88px 60px; }
.villa-floorplan__head { text-align: center; margin-bottom: 48px; }
.villa-floorplan__label { font-size: 11px; letter-spacing: 4px; font-weight: 700; color: #8aaf84; text-transform: uppercase; margin-bottom: 10px; }
.villa-floorplan__h2 { font-family: 'Zen Kaku Gothic New', sans-serif; font-weight: 900; font-size: clamp(26px, 3vw, 34px); color: #1a2e1c; margin: 0; }
.villa-floorplan__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; max-width: 1000px; margin: 0 auto; }
.villa-floorplan__card { background: #fff; border: 1px solid #dde8d8; border-radius: 14px; overflow: hidden; }
.villa-floorplan__floor { background: #2f5d34; color: #fff; font-family: 'Zen Kaku Gothic New', sans-serif; font-weight: 900; font-size: 15px; letter-spacing: 3px; padding: 10px 0; text-align: center; }
.villa-floorplan__img { width: 100%; height: auto; display: block; }

/* ─── RESPONSIVE ─── */
@media (max-width: 900px) {
  .villa-site-header { padding: 18px 24px; }
  .villa-site-nav { display: none; }
  .villa-header-sns { display: none; }
  .villa-btn-reserve-header { font-size: 12px; padding: 10px 16px; }

  .villa-concept { grid-template-columns: 1fr; }
  .villa-concept__photo { min-height: 320px; }
  .villa-concept__text-wrap { padding: 56px 40px; }
  .villa-concept__h2 { font-size: 30px; }

  .villa-features { padding: 64px 32px; }
  .villa-features__grid { grid-template-columns: repeat(3, 1fr); }
  .villa-features__h2 { font-size: 30px; }

  .villa-gallery { padding-bottom: 64px; }
  .villa-gallery__head { padding: 0 40px 44px; }

  .villa-rooms { padding: 64px 32px; }
  .villa-rooms__grid { grid-template-columns: 1fr; max-width: 580px; }
  .villa-rooms__h2 { font-size: 30px; }

  .villa-floorplan { padding: 64px 32px; }
  .villa-floorplan__grid { gap: 20px; }

  .villa-amenities { padding: 64px 32px; }
  .villa-amenities__grid { grid-template-columns: 1fr 1fr; }
  .villa-amenities__h2 { font-size: 30px; }

  .villa-info { padding: 64px 32px; }
  .villa-info__inner { grid-template-columns: 1fr; }
  .villa-rules { grid-column: 1; }
  .villa-cancel { grid-column: 1; }
  .villa-info__h2 { font-size: 30px; }

  .villa-reserve__body { padding: 64px 32px; }
  .villa-reserve__h2 { font-size: 36px; letter-spacing: 2px; }
}

@media (max-width: 600px) {
  .villa-site-header { padding: 14px 16px; }
  .villa-btn-reserve-header { display: none; }

  .villa-hero__h1 { font-size: 52px; letter-spacing: 4px; }
  .villa-hero__lead { font-size: 14px; margin: 18px 0 28px; }
  .villa-hero__cta { padding: 15px 32px; font-size: 15px; }

  .villa-concept__text-wrap { padding: 40px 24px; }
  .villa-concept__h2 { font-size: 26px; }

  .villa-features { padding: 48px 20px; }
  .villa-features__grid { grid-template-columns: repeat(2, 1fr); }
  .villa-features__h2 { font-size: 26px; }

  .villa-gallery__head { padding: 0 20px 36px; }
  .villa-gallery__h2 { font-size: 26px; }
  /* ギャラリーをスライダー化 */
  .villa-gallery__grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 8px;
    padding: 0 20px 16px;
    scrollbar-width: none;
    margin-bottom: 10px;
  }
  .villa-gallery__grid::-webkit-scrollbar { display: none; }
  .villa-gallery__item {
    flex: 0 0 78vw;
    height: 240px;
    scroll-snap-align: start;
    border-radius: 10px;
    grid-row: auto;
  }
  .villa-gallery__item--tall {
    flex: 0 0 78vw;
    height: 240px;
    grid-row: auto;
  }

  .villa-floorplan { padding: 48px 20px; }
  .villa-floorplan__grid { grid-template-columns: 1fr; gap: 16px; }

  .villa-rooms { padding: 48px 20px; }
  .villa-rooms__h2 { font-size: 26px; }
  .villa-room-card__img { height: 200px; }
  .villa-room-card__body { padding: 22px 22px 26px; }

  .villa-amenities { padding: 48px 20px; }
  .villa-amenities__grid { grid-template-columns: 1fr; }
  .villa-amenities__grid .villa-amenity-group:last-child { grid-column: span 1 !important; }
  .villa-amenities__h2 { font-size: 26px; }

  .villa-info { padding: 48px 20px; }
  .villa-info__h2 { font-size: 26px; }
  .villa-info-table { padding: 20px 20px 24px; }
  .villa-rules__list { grid-template-columns: 1fr; }
  .villa-cancel__list { flex-direction: column; }

  .villa-reserve__body { padding: 52px 20px; }
  .villa-reserve__h2 { font-size: 28px; letter-spacing: 1px; }
  .villa-reserve__btns { flex-direction: column; align-items: center; }
  .villa-btn-web { padding: 16px 36px; font-size: 15px; }
}

@media (max-width: 480px) {
  .villa-hero__h1 { font-size: 40px; letter-spacing: 2px; }
  .villa-features__grid { grid-template-columns: 1fr; }
  .villa-rooms__capacity { flex-direction: column; align-items: flex-start; gap: 8px; }
}
