.hero { height:auto; min-height:100svh; padding-top:120px; }
.hero-content { width:min(820px,70%); padding-bottom:48px; }
.hero-title { font-size:clamp(30px,3.4vw,45px); letter-spacing:.04em; }
.hero-sub { font:400 14px/1.9 'Noto Sans JP',sans-serif; letter-spacing:.02em; color:#f1e9df; margin-bottom:16px; }
.hero-points { margin-bottom:24px; }
.hero-price { margin:0 0 12px; line-height:1.8; }
.booking-availability { color:#fff; font-size:15px; line-height:1.7; margin-bottom:12px; }
.booking-availability span { display:block; font-size:12px; color:#e8dfd1; }
.booking-primary-actions { display:grid; grid-template-columns:1.35fr 1fr; gap:10px; max-width:620px; }
.booking-primary-actions a { box-sizing:border-box; margin:0; width:100%; min-height:64px; display:flex; flex-direction:column; gap:3px; align-items:center; justify-content:center; font-size:14px; letter-spacing:.02em; text-decoration:none; text-align:center; padding:10px 12px; }
.booking-primary-actions a span { font-size:11px; letter-spacing:0; }
.booking-primary-actions .hero-cta::after { display:none; }
.booking-primary-actions .hero-line-help { border:1px solid #e4dac7; color:#fff; background:#29241ed9; }
.booking-primary-actions .hero-staff-help { grid-column:2; }
.booking-primary-actions .hero-staff-help,
.booking-primary-actions .hero-staff-help:visited { border:1px solid #d8c397; color:#29241e; background:#e8dcc4; font-weight:600; }
.booking-primary-actions .hero-staff-help:hover { background:#f3ead9; }
.booking-time-help,.booking-nearby-info { margin-top:12px; color:#e8dfd1; font-size:12px; line-height:1.8; letter-spacing:0; }
.booking-nearby-info a { color:inherit; text-underline-offset:4px; display:inline-block; padding:6px 0; }
.menu-booking-facts { color:#ded0b7; font-size:12px; line-height:1.8; margin:12px 0; }
.menu-book { min-height:48px; display:inline-flex; align-items:center; }
.mobile-booking-hpb span { display:block; font-size:10px; letter-spacing:0; margin-top:3px; }
@media(max-width:960px) {
  .hero { display:block; min-height:0; padding-top:68px; background:#29241e; overflow:visible; }
  .hero-bg { position:relative; inset:auto; height:auto; aspect-ratio:1381 / 752; background-image:url('/hero-bg.jpg'); background-position:center; background-size:contain; background-repeat:no-repeat; animation:none; transform:none; will-change:auto; }
  .hero-content { width:100%; padding:24px 20px 30px; box-sizing:border-box; }
  .hero-en { display:none; }
  .hero-title { font-size:clamp(24px,6.1vw,31px); line-height:1.55; margin:0 0 12px; letter-spacing:.025em; }
  .hero-sub { font-size:13px; margin-bottom:12px; }
  .hero-points { gap:6px 12px; font-size:11px; margin-bottom:12px; }
  .hero-price { font-size:12px; margin:0 0 10px; }
  .hero-price strong { font-size:16px; }
  .booking-availability { font-size:14px; margin-bottom:10px; }
  .booking-primary-actions { grid-template-columns:1fr; gap:8px; }
  .booking-primary-actions .hero-staff-help { grid-column:1; }
  .booking-primary-actions a { min-height:54px; font-size:14px; padding:8px 10px; }
  .booking-primary-actions .hero-line-help { min-height:48px; }
  .booking-time-help { font-size:11px; }
  .hero-scroll-line { display:none; }
  .mobile-booking-bar { grid-template-columns:1fr 1.65fr; }
  .mobile-booking-bar a { font-size:12px; letter-spacing:0; min-height:52px; }
  .mobile-booking-hpb { flex-direction:column; }
  body { padding-bottom:calc(82px + env(safe-area-inset-bottom)); }
}
.about-img { min-height:0; display:flex; align-items:center; justify-content:center; padding:0; }
.about-img img { display:block; width:100%; max-width:none; height:auto; }
.about-img::after { display:none; }
.staff-home-feature { padding:64px 24px; text-align:center; background:#f3efe7; color:#29241e; }
.staff-home-feature h2 { font-family:'Noto Serif JP',serif; font-size:clamp(23px,4vw,32px); font-weight:400; margin:12px 0 18px; }
.staff-home-feature p { line-height:1.9; }
.staff-home-feature a { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:12px 24px; margin-top:22px; border:1px solid #a18a5d; background:#e8dcc4; color:#29241e; text-decoration:none; }
@media(max-width:960px) { .about-img { min-height:0; padding:0; } .about-img img { max-width:none; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
