/* Template111 preserved. Review-only annotations and source-text wrapping. */
[data-source] { white-space: pre-line; overflow-wrap: anywhere; }
.draft-note { font-size: max(14px,1.6rem); line-height: 1.8; text-align: center; padding: 2rem; color: #514b43; }
.draft-link { display: block; width: fit-content; max-width: 100%; margin: 2rem auto; text-decoration: underline; font-size: max(14px,1.6rem); }
.underlayer .hero { background-image: url('../img/page-mv.jpg'); }
.nav-instagram, .nav-instagram a { display: flex; align-items: center; justify-content: center; }
.nav-instagram img { width: 26px; height: 26px; object-fit: contain; }
.footer .nav-instagram img { filter: invert(1); }
.header__logo img, .footer__logo img { object-fit: contain; height: auto; }

/* Missing decoration exists only in unused template white-heading/sister selectors. */
.common__ttl--wt::before, .common__ttl--wt::after { background-image: none; }
.sister { background-image: none; }

/* v0.4: keep the template's original photo-frame ratios; originals stay intact. */
.menu__img img[src="./img/menu_1.jpg"],
.menu__img img[src="./img/menu_2.jpg"] {
  aspect-ratio: 700 / 400;
  object-fit: cover;
}
.policy__img img[src="./img/special_2.jpg"] {
  aspect-ratio: 580 / 387;
  object-fit: cover;
}

/* v0.5: preserve the two existing 580:387 photo frames. */
.access__img img[src="./img/access.jpg"],
.policy__img img[src="./img/special_3.jpg"] {
  aspect-ratio: 580 / 387;
  object-fit: cover;
}

/* v0.6: retain the first TOP concept frame's original 400:240 ratio. */
.policy__img-list img[src="./img/policy_2.jpg"] {
  aspect-ratio: 400 / 240;
  object-fit: cover;
}

/* v0.7: retain the original course and concept photo-frame ratios. */
.menu__img img[src="./img/menu_4.jpg"] {
  aspect-ratio: 700 / 455;
  object-fit: cover;
}
.policy__img img[src="./img/special_1.jpg"] {
  aspect-ratio: 580 / 387;
  object-fit: cover;
}

/* v0.9: JITT request for this case's three menu tabs only.
   Preserve the template's four-column button width and 2rem gaps. */
.menu__btn-list--three-centered {
  grid-template-columns: repeat(3, minmax(0, calc((100% - 6rem) / 4)));
  justify-content: center;
}

/* v0.12: this template switches the fixed reservation bar at 768px.
   Keep only its two mobile links and reserve space below the copyright. */
@media screen and (max-width: 768px) {
  .fixed-btn a.pc { display: none !important; }
  .fixed-btn a.sp { display: flex; }
  .fixed-btn a[href^="tel:"] { pointer-events: auto; }
  .fixed-btn { padding-bottom: env(safe-area-inset-bottom, 0px); }
  .footer {
    padding-bottom: max(8rem, calc(max(50px, 6.4rem) + 16px + env(safe-area-inset-bottom, 0px)));
  }
  .pagetop {
    bottom: max(70px, calc(max(50px, 6.4rem) + 16px + env(safe-area-inset-bottom, 0px)));
  }
}

/* v0.13: constrain the mobile menu to the viewport so its last link is reachable.
   Auto margins retain vertical centering when the full menu fits. */
@media screen and (max-width: 767px), screen and (width < 768px) {
  .header__contents {
    min-height: 0;
    height: 100vh;
    height: 100dvh;
    justify-content: flex-start;
  }
  .header__contents > .header__nav {
    flex-shrink: 0;
    margin-block: auto;
  }
}
