:root {
  --bg: #f7f3ed;
  --paper: #fbf9f5;
  --ink: #352a22;
  --sub: #695c50;
  --gold: #806b49;
  --gold-deep: #625135;
  --line: #ddd3c7;
  --dark: #24201d;
  --white: #fff;
  --wrapper: 1180px;
  --content: 1140px;
  --section: 120px;
  --shadow: 0 20px 50px rgba(39, 29, 20, .08);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: "Shippori Mincho", serif; font-weight: 400; line-height: 1.7; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 12px; top: -60px; z-index: 9999; background: #fff; padding: 10px 16px; }
.skip-link:focus { top: 12px; }
.wrapper { width: min(var(--wrapper), calc(100% - 40px)); margin-inline: auto; padding-inline: 20px; }
.section { padding-block: var(--section); }
.section--before-footer { padding-bottom: 180px; }
.eyebrow { margin: 0 0 12px; color: var(--gold); font-size: 14px; letter-spacing: .1em; line-height: 1.4; }
h1,h2,h3,p { margin-top: 0; }
h2 { margin-bottom: 30px; font-size: 36px; line-height: 1.4; font-weight: 600; letter-spacing: .05em; }
p { font-size: 16px; }
.opening-bar { height: 36px; display: grid; place-items: center; padding: 0 20px; background: linear-gradient(90deg,#54452d,#81704d,#54452d); color: #fff; font-size: 14px; letter-spacing: .05em; text-align: center; }
.opening-bar span { margin-inline: 12px; opacity: .55; }
.site-header { position: sticky; top: 0; z-index: 100; height: 86px; background: rgba(250,248,244,.96); border-bottom: 1px solid rgba(98,81,53,.12); backdrop-filter: blur(10px); }
.site-header__inner { height: 100%; display: flex; align-items: center; justify-content: space-between; }
.brand { width: 250px; height: 56px; overflow: hidden; display: flex; align-items: center; }
.brand img { width: 220px; mix-blend-mode: multiply; }
.desktop-nav { display: flex; align-items: center; gap: 40px; font-size: 16px; font-weight: 500; }
.desktop-nav a { position: relative; padding-block: 10px; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:5px; height:1px; background:var(--gold); transition:.35s ease; }
.desktop-nav a:hover::after { right:0; }
.menu-toggle { display: none; }
.mobile-menu { display: none; }
.hero { position: relative; min-height: 650px; overflow: hidden; color: #fff; }
.hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(21,16,12,.66) 0%, rgba(21,16,12,.26) 52%, rgba(21,16,12,.05) 100%); }
.hero__inner { position: relative; z-index: 1; padding-top: 132px; padding-bottom: 90px; }
.hero__open { margin-bottom: 28px; font-size: 16px; letter-spacing: .1em; }
.hero h1 { margin: 0 0 26px; font-size: 52px; line-height: 1.4; font-weight: 500; letter-spacing: .05em; }
.hero__lead { max-width: 620px; margin-bottom: 40px; font-size: 20px; line-height: 1.7; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 20px; }
.btn { min-height: 56px; padding: 0 30px; display: inline-flex; align-items: center; justify-content: center; gap: 18px; font-size: 16px; font-weight: 600; letter-spacing: .03em; transition: transform .25s ease, background .25s ease, color .25s ease; }
.btn:hover { transform: translateY(-2px); }
.btn--gold { background: var(--gold); color:#fff; }
.btn--white { background:#fff; color:var(--ink); }
.btn--outline { border:1px solid var(--gold); background:transparent; color:var(--ink); }
.about { background: var(--paper); }
.about__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.about__copy { max-width: 500px; }
.about__image { margin: 0; }
.about__image img { width: 100%; aspect-ratio: 1.618 / 1; object-fit: cover; }
.image-frame { position: relative; }
.image-frame::before { content:""; position:absolute; inset:20px -20px -20px 20px; z-index:0; border:1px solid rgba(128,107,73,.28); }
.image-frame img { position: relative; z-index:1; }
.group-stay { padding-block: 0; background: linear-gradient(180deg,#f4efe7,#fbf9f5); }
.group-stay__grid { max-width: 1400px; margin:0 auto; display:grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.group-stay__image { margin:0; min-height: 650px; }
.group-stay__image img { width:100%; height:100%; object-fit:cover; }
.group-stay__copy { padding: 100px 70px; display:flex; flex-direction:column; justify-content:center; }
.group-stay__copy h2 { font-size: 42px; }
.group-stay__copy > p { max-width: 560px; }
.stay-types { display:grid; grid-template-columns: repeat(4,1fr); gap:20px; margin-top:30px; }
.stay-types span { min-height:72px; display:grid; place-items:center; padding:20px; background:#fff; border:1px solid #eee6db; font-size:14px; font-weight:600; text-align:center; box-shadow:0 7px 20px rgba(44,34,26,.04); }
.group-stay__note { margin-top:20px; font-size:14px; color:var(--sub); }
.section-heading { text-align:center; margin-bottom:60px; }
.section-heading h2 { margin-bottom:0; }
.section-heading--left { text-align:left; margin-bottom:30px; }
.features { background: var(--bg); }
.features__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.feature { background:#fff; border:1px solid #ebe3d8; box-shadow: var(--shadow); }
.feature img { width:100%; aspect-ratio:1.618/1; object-fit:cover; }
.feature__body { padding:30px; }
.feature h3 { margin-bottom:12px; font-size:22px; font-weight:600; }
.feature p { margin-bottom:0; font-size:14px; }
.gallery { overflow:hidden; background:#fbf9f5; }
.gallery__head { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:50px; }
.gallery__head h2 { margin-bottom:0; }
.gallery__head > p { margin-bottom:4px; color:var(--sub); }
.gallery-slider { overflow:visible; padding-left:max(20px, calc((100vw - 1140px)/2)); padding-right:20px; padding-bottom:50px; }
.gallery-slider img { width:100%; aspect-ratio:1.618/1; object-fit:cover; }
.reservation { background:#f0ebe3; }
.reservation__inner > p { max-width:700px; margin-bottom:40px; }
.reservation__buttons { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.reserve-card { position:relative; min-height:130px; padding:30px; display:flex; flex-direction:column; justify-content:center; background:#fff; border:1px solid #dfd5c8; transition:.25s ease; }
.reserve-card:hover { transform:translateY(-3px); box-shadow:var(--shadow); }
.reserve-card span { color:var(--sub); font-size:14px; }
.reserve-card b { margin-top:8px; font-size:20px; font-weight:600; }
.reserve-card i { position:absolute; right:30px; top:50%; transform:translateY(-50%); font-style:normal; font-size:30px; color:var(--gold); }
.travel-agency { position:relative; overflow:hidden; padding:80px 0; background:var(--gold-deep); color:#fff; }
.travel-agency__bg { position:absolute; inset:0 0 0 52%; }
.travel-agency__bg::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,var(--gold-deep),transparent 60%); }
.travel-agency__bg img { width:100%; height:100%; object-fit:cover; opacity:.78; }
.travel-agency__inner { position:relative; z-index:1; display:grid; grid-template-columns:260px 1fr 260px; gap:40px; align-items:center; }
.travel-agency h2 { margin:0; }
.travel-agency p { margin:0; }
.access { background:var(--paper); }
.access__grid { display:grid; grid-template-columns: .85fr 1.15fr; gap:60px; align-items:center; }
.access__copy h2 { margin-bottom:40px; }
.access__copy h3 { margin-bottom:20px; font-size:24px; }
.access__copy address { margin-bottom:30px; font-size:16px; font-style:normal; }
.access__facts { margin:0 0 35px; }
.access__facts div { display:grid; grid-template-columns:70px 1fr; gap:15px; padding:12px 0; border-top:1px solid var(--line); }
.access__facts div:last-child { border-bottom:1px solid var(--line); }
.access__facts dt { font-weight:600; }
.access__facts dd { margin:0; }
.contact-line { margin-top:30px; display:flex; flex-direction:column; gap:5px; }
.contact-line span { font-size:14px; color:var(--sub); }
.contact-line a { font-size:28px; font-weight:600; letter-spacing:.03em; }
.access__map { min-height:440px; box-shadow:var(--shadow); }
.access__map iframe { width:100%; height:440px; border:0; display:block; filter:saturate(.72) sepia(.08); }
.footer { background:var(--dark); color:#e7e0d6; padding:70px 0 50px; }
.footer__inner { display:grid; grid-template-columns:260px 1fr 300px; gap:30px 50px; align-items:start; }
.footer__logo { width:240px; overflow:hidden; }
.footer__logo img { width:220px; filter:invert(1) grayscale(1); mix-blend-mode:screen; }
.footer__nav { display:flex; flex-wrap:wrap; gap:20px 30px; font-size:14px; }
.footer__contact { display:flex; flex-direction:column; align-items:flex-end; }
.footer__contact span { font-size:12px; color:#aaa39b; }
.footer__contact a { font-size:24px; }
.footer__operator { margin:0; grid-column:2; font-size:14px; color:#aaa39b; }
.footer small { grid-column:3; text-align:right; font-size:12px; color:#7f7973; }
.mobile-reserve { display:none; }
@media (max-width: 900px) {
  :root { --section: 90px; }
  .wrapper { width:100%; padding-inline:15px; }
  .section--before-footer { padding-bottom:135px; }
  .opening-bar { min-height:32px; height:auto; padding:7px 15px; font-size:10px; }
  .opening-bar span { display:none; }
  .site-header { height:68px; }
  .brand { width:170px; height:40px; }
  .brand img { width:154px; }
  .desktop-nav { display:none; }
  .menu-toggle { display:flex; width:44px; height:44px; padding:10px; border:0; background:transparent; flex-direction:column; justify-content:center; gap:5px; }
  .menu-toggle span:not(.sr-only) { height:1px; width:24px; background:var(--ink); }
  .mobile-menu { display:block; position:fixed; inset:0; z-index:300; visibility:hidden; pointer-events:none; background:rgba(0,0,0,.22); opacity:0; transition:.25s ease; }
  .mobile-menu.is-open { visibility:visible; pointer-events:auto; opacity:1; }
  .mobile-menu__panel { margin-left:auto; width:min(100%,375px); height:100%; padding:20px 15px 30px; background:#faf8f4; transform:translateX(100%); transition:.35s cubic-bezier(.25,.8,.25,1); overflow:auto; }
  .mobile-menu.is-open .mobile-menu__panel { transform:translateX(0); }
  .mobile-menu__head { display:flex; justify-content:space-between; align-items:center; padding-bottom:22px; border-bottom:1px solid var(--line); }
  .mobile-menu__head img { width:150px; mix-blend-mode:multiply; }
  .menu-close { width:40px; height:40px; border:0; background:transparent; font-size:32px; color:var(--ink); }
  .mobile-menu__nav a { display:flex; align-items:center; min-height:58px; border-bottom:1px solid var(--line); font-size:18px; font-weight:600; }
  .mobile-menu__tel { display:block; padding:28px 0; border-bottom:1px solid var(--line); font-size:13px; }
  .mobile-menu__tel strong { display:inline-block; margin-top:7px; font-size:26px; }
  .mobile-menu__company { margin:25px 0 0; font-size:12px; color:var(--sub); }
  .mobile-menu__copy { margin-top:35px; font-size:12px; color:#999; }
  h2 { font-size:28px; }
  .hero { min-height:560px; }
  .hero__bg { object-position:65% 50%; }
  .hero__shade { background:linear-gradient(90deg,rgba(18,14,11,.66),rgba(18,14,11,.25)); }
  .hero__inner { padding-top:95px; padding-bottom:90px; }
  .hero__open { margin-bottom:20px; font-size:12px; }
  .hero h1 { max-width:310px; font-size:36px; }
  .hero__lead { max-width:320px; font-size:15px; }
  .hero__actions { gap:10px; }
  .about__grid { grid-template-columns:1fr; gap:40px; }
  .about__copy { max-width:none; }
  .about__image img { aspect-ratio: 340/210; }
  .image-frame::before { inset:12px -8px -12px 8px; }
  .group-stay__grid { grid-template-columns:1fr; }
  .group-stay__image { min-height:260px; }
  .group-stay__copy { padding:90px 15px; }
  .group-stay__copy h2 { font-size:30px; }
  .stay-types { grid-template-columns:repeat(3,1fr); gap:10px; }
  .stay-types span { min-height:70px; padding:12px 8px; font-size:12px; }
  .section-heading { margin-bottom:40px; }
  .features__grid { grid-template-columns:1fr; gap:30px; }
  .feature img { aspect-ratio:340/180; }
  .feature__body { padding:20px; }
  .gallery__head { align-items:start; flex-direction:column; gap:10px; margin-bottom:35px; }
  .gallery__head > p { font-size:14px; }
  .gallery-slider { padding-left:15px; padding-right:15px; }
  .reservation__buttons { grid-template-columns:1fr; gap:15px; }
  .reserve-card { min-height:100px; padding:20px; }
  .travel-agency__bg { inset:0; opacity:.28; }
  .travel-agency__bg::after { background:rgba(63,49,31,.7); }
  .travel-agency__inner { grid-template-columns:1fr; gap:25px; }
  .access__grid { grid-template-columns:1fr; gap:45px; }
  .access__map, .access__map iframe { min-height:280px; height:280px; }
  .footer { padding:60px 0 100px; }
  .footer__inner { grid-template-columns:1fr; gap:30px; }
  .footer__nav { gap:14px 20px; }
  .footer__contact { align-items:flex-start; }
  .footer__operator, .footer small { grid-column:auto; text-align:left; }
  .mobile-reserve { display:flex; position:fixed; z-index:200; left:0; right:0; bottom:0; min-height:58px; align-items:center; justify-content:center; gap:16px; background:var(--gold-deep); color:#fff; font-weight:600; box-shadow:0 -6px 30px rgba(0,0,0,.15); }
}
@media (max-width: 374px) {
  .hero__actions { flex-direction:column; align-items:flex-start; }
  .hero .btn { width:230px; }
  .stay-types { grid-template-columns:repeat(2,1fr); }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* ==================================================
   2026-09-28 フォルダ構造 / Font Awesome / Splide 対応
   ================================================== */
.opening-bar {
  min-height: 58px;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 12px 20px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .08em;
}
.opening-bar > i { font-size: 20px; }
.opening-bar strong { font-weight: 700; }

.brand,
.footer__logo { height: auto; overflow: visible; }
.brand img { width: 220px; height: 56px; object-fit: contain; object-position: left center; mix-blend-mode: normal; }
.footer__logo img { width: 220px; height: 96px; object-fit: contain; object-position: left center; mix-blend-mode: normal; }

.menu-toggle,
.menu-close {
  align-items: center;
  justify-content: center;
}
.menu-toggle > i { font-size: 24px; }
.menu-close > i { font-size: 28px; }

.hero__open {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 30px;
  padding: 12px 18px;
  border: 1px solid rgba(255,255,255,.55);
  background: rgba(98,81,53,.84);
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .07em;
  box-shadow: 0 10px 30px rgba(0,0,0,.16);
}
.hero__open i {
  font-size: 1em;
  height: 1em;
  line-height: 1em;
  margin-top: 0.1em;
}
.btn > i:last-child { font-size: 1em; }
.btn--ota {
  min-width: 205px;
  gap: 14px;
}
.btn--ota img {
  width: auto;
  height: 26px;
  max-width: 142px;
  object-fit: contain;
}

.stay-types span {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 9px;
}
.stay-types span > i {
  color: var(--gold);
  font-size: 23px;
}

/* Splide gallery */
.gallery-slider {
  overflow: visible;
  padding-left: max(20px, calc((100vw - 1140px) / 2));
  padding-right: 20px;
  padding-bottom: 58px;
}
.gallery-slider .splide__track { overflow: visible; }
.gallery-slider .splide__slide { width: 360px; }
.gallery-slider .splide__slide img {
  width: 100%;
  aspect-ratio: 1.618 / 1;
  object-fit: cover;
}
.gallery-slider .splide__arrow {
  width: 46px;
  height: 46px;
  background: rgba(255,255,255,.94);
  border: 1px solid var(--line);
  box-shadow: 0 8px 24px rgba(39,29,20,.09);
  opacity: 1;
}
.gallery-slider .splide__arrow i { color: var(--gold-deep); font-size: 15px; }
.gallery-slider .splide__arrow--prev { left: max(20px, calc((100vw - 1140px) / 2)); }
.gallery-slider .splide__arrow--next { right: 30px; }

.reserve-card { padding-right: 70px; }
.reserve-card__brand {
  min-height: 30px;
  display: flex;
  align-items: center;
}
.reserve-card__brand img {
  display: block;
  width: auto;
  height: 30px;
  max-width: 165px;
  object-fit: contain;
}
.reserve-card__brand--text {
  gap: 8px;
  color: var(--sub);
  font-size: 16px;
  font-weight: 600;
}
.reserve-card__arrow {
  position: absolute;
  right: 30px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--gold);
  font-size: 16px;
}

.access__facts dt i { width: 20px; color: var(--gold); text-align: center; }
.contact-line span i,
.footer__contact span i,
.mobile-menu__tel > i { margin-right: 5px; }
.mobile-reserve > i:last-child { font-size: 12px; }

@media (max-width: 900px) {
  .opening-bar {
    min-height: 46px;
    padding: 10px 15px;
    gap: 9px;
    font-size: 14px;
    letter-spacing: .05em;
  }
  .opening-bar > i { font-size: 15px; }
  .brand img { width: 154px; height: 40px; }
  .mobile-menu__head img { width: 150px; height: 60px; object-fit: contain; object-position: left center; mix-blend-mode: normal; }
  .hero__open {
    margin-bottom: 22px;
    padding: 10px 12px;
    gap: 8px;
    font-size: 16px;
    letter-spacing: .04em;
  }
  .hero__actions { align-items: stretch; }
  .hero .btn--ota { min-width: 155px; }
  .btn--ota img { height: 22px; max-width: 120px; }
  .stay-types span { padding: 12px 6px; }
  .stay-types span > i { font-size: 20px; }
  .gallery-slider {
    padding-left: 15px;
    padding-right: 15px;
    padding-bottom: 28px;
  }
  .gallery-slider .splide__slide { width: 280px; }
  .reserve-card { padding: 20px 60px 20px 20px; }
  .reserve-card__brand img { height: 26px; max-width: 150px; }
  .reserve-card__arrow { right: 22px; }
  .footer__logo img { width: 190px; height: 84px; }
}


/* 2026-09-28 user revision */
:root { --ink:#000000; }
body, p, li, dd, dt, address, small { color: var(--ink); }
.desktop-nav a, .mobile-menu__nav a, .footer__nav a, .footer__operator, .mobile-menu__company, .mobile-menu__copy, .contact-line a, .footer__contact a { color: var(--ink); }
.hero, .travel-agency, .opening-bar, .footer { color:#fff; }
.hero p, .hero h1, .travel-agency p, .travel-agency h2, .travel-agency .eyebrow, .opening-bar strong, .footer a, .footer p, .footer small { color: inherit; }
.opening-bar { min-height: 68px; font-size: 28px; letter-spacing: .09em; }
.opening-bar > i { font-size: 26px; }
.opening-bar strong { font-size: clamp(24px, 2.2vw, 36px); }
.hero__open { font-size: clamp(18px, 1.7vw, 28px); padding: 14px 20px; }
.btn-ota__brand { display:inline-flex; align-items:center; gap:10px; }
.btn-ota__brand span { white-space:nowrap; }
.btn--ota { justify-content:space-between; min-width: 230px; }
.btn--ota img { max-width: 110px; height: 24px; }
.btn--gold > i:first-child, .mobile-reserve > i:first-child { font-size: 16px; }
.gallery-slider { overflow: hidden; padding-left: max(20px, calc((100vw - 1140px) / 2)); padding-right: max(20px, calc((100vw - 1140px) / 2)); padding-bottom: 0; }
.gallery-slider .splide__track { overflow: hidden; }
.gallery-slider .splide__list { align-items: stretch; }
.gallery-slider .splide__slide { width: auto; }
.gallery-slider .splide__slide img { width: 100%; aspect-ratio: 1.618 / 1; object-fit: cover; }
.gallery-slider .splide__arrow, .splide__arrows { display:none !important; }
.reserve-card { padding: 26px 24px; }
.reserve-card__brand { min-height: 30px; display:flex; align-items:center; }
.reserve-card__brand--logo-text { gap: 10px; }
.reserve-card__brand--logo-text span { font-size: 16px; color: var(--ink); line-height: 1.4; }
.reserve-card__brand img { height: 28px; width:auto; max-width: 120px; }
.reserve-card b { margin-top: 12px; }
.reserve-card__arrow { display:none !important; }
.contact-line, .footer__contact { display:flex; flex-direction:row; align-items:center; gap:12px; }
.contact-line i, .footer__contact > i { color: var(--gold); font-size: 22px; }
.contact-line a, .footer__contact a { font-size: 28px; font-weight: 600; letter-spacing: .03em; }
.footer__contact { justify-self:end; }
.access address { font-style: normal; }
#about, #stay, #reservation, #access { scroll-margin-top: 110px; }
@media (max-width: 900px) {
  .opening-bar { min-height: 58px; font-size: 18px; padding: 10px 15px; }
  .opening-bar > i { font-size: 16px; }
  .opening-bar strong { font-size: 20px; }
  .hero__open { font-size: 14px; }
  .btn--ota { min-width: 160px; }
  .btn-ota__brand { gap: 8px; }
  .btn--ota img { height: 20px; max-width: 88px; }
  .gallery-slider { padding-left: 15px; padding-right: 15px; }
  .contact-line, .footer__contact { align-items:center; }
  .contact-line a, .footer__contact a { font-size: 22px; }
}


/* 2026-09-28 follow-up revision */
/* Booking.com is logo + arrow only */
.btn--ota[data-reservation="booking"] .btn-ota__brand { gap: 0; }
.btn--ota[data-reservation="booking"] .btn-ota__brand img { max-width: 132px; height: 26px; }

/* Reservation cards: arrow restored, no calendar icon */
.reserve-card { padding-right: 70px; }
.reserve-card__arrow {
  display: block !important;
  position: absolute;
  right: 28px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--gold);
  font-size: 18px;
}
.reserve-card__brand--text { gap: 0; }

/* Travel PDF: PDF icon in place of the right arrow */
.travel-pdf-btn { gap: 18px; }
.travel-pdf-btn > i:last-child { font-size: 18px; }

/* Mobile drawer top-right control aligns with header menu button */
@media (max-width: 900px) {
  .site-header__inner { padding-left: 15px; padding-right: 15px; }
  .menu-toggle,
  .menu-close {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
  }
  .mobile-menu__panel { padding: 20px 15px 30px; }
  .mobile-menu__head {
    min-height: 64px;
    padding: 0;
    align-items: center;
    border-bottom: 1px solid var(--line);
  }
  .menu-toggle > i,
  .menu-close > i {
    display: block;
    width: 24px;
    text-align: center;
    line-height: 1;
  }
  .menu-close > i { font-size: 28px; }
  .reserve-card { padding-right: 58px; }
  .reserve-card__arrow { right: 22px; }
}


/* 2026-09-28 contact / reservation URL revision */
.reservation__manage { margin-top: 24px; display: flex; justify-content: flex-end; }
.reservation__manage a { display: inline-flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 600; color: #000; border-bottom: 1px solid var(--gold); padding: 8px 2px; }
.reservation__manage a i { font-size: 12px; color: var(--gold); }
.contact-block { margin-top: 30px; display: grid; gap: 8px; }
.contact-block .contact-line { margin-top: 0; }
.contact-line--fax span { font-size: 24px; font-weight: 600; letter-spacing: .03em; }
.mobile-menu__contact { padding: 28px 0; border-bottom: 1px solid var(--line); }
.mobile-menu__contact .mobile-menu__tel { padding: 0; border-bottom: 0; }
.mobile-menu__fax { margin: 14px 0 0; font-size: 14px; color: #000; }
.mobile-menu__fax i { width: 20px; color: var(--gold); }
.footer__contact { display: grid; gap: 6px; justify-items: end; }
.footer__contact > div { display: flex; align-items: center; gap: 10px; }
.footer__contact i { width: 20px; color: var(--gold); text-align: center; }
.footer__contact span { font-size: 16px; color: inherit; }
@media (max-width: 900px) {
  .reservation__manage { justify-content: flex-start; }
  .footer__contact { justify-items: start; }
  .contact-line--fax span { font-size: 20px; }
}


/* 2026-09-28 booking/footer revision */
.reservation__buttons {
  grid-template-columns: minmax(280px, 420px);
  justify-content: start;
}
.footer__contact {
  display: grid;
  gap: 8px;
  justify-items: end;
}
.footer__contact > div {
  display: grid;
  grid-template-columns: 38px auto;
  align-items: baseline;
  gap: 10px;
}
.footer__contact-label,
.footer__contact a,
.footer__contact-number {
  font-size: 18px;
  line-height: 1.4;
  font-weight: 500;
  color: inherit;
  letter-spacing: .03em;
}
.footer__contact-label { text-align: left; }
@media (max-width: 900px) {
  .reservation__buttons { grid-template-columns: 1fr; }
  .footer__contact { justify-items: start; }
  .footer__contact-label,
  .footer__contact a,
  .footer__contact-number { font-size: 16px; }
}


/* 2026-09-28 map / footer / analytics revision */
.btn--map {
  display: inline-flex;
  align-items: center;
  gap: 14px;
}
.btn--map > i {
  margin-left: 2px;
  font-size: 18px;
  color: var(--gold);
}
.footer__contact .footer__contact-label,
.footer__contact a,
.footer__contact .footer__contact-number {
  font-size: 18px;
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: .03em;
}
@media (max-width: 900px) {
  .footer__contact .footer__contact-label,
  .footer__contact a,
  .footer__contact .footer__contact-number {
    font-size: 16px;
  }
}


/* 2026-09-28 booking button revision */
.reservation__buttons {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.reservation__booking-btn {
  min-width: 230px;
}
@media (max-width: 900px) {
  .reservation__buttons { display:flex; }
  .reservation__booking-btn { width:100%; min-width:0; }
}
