/* =============================================================
   共通フッター
   独自テンプレートでも読み込めるよう、ページ本体のCSSとは分離する。
   ============================================================= */
.m-footer {
  --footer-paper: #f4f1ec;
  --footer-ease: cubic-bezier(.22, 1, .36, 1);
  background: linear-gradient(135deg, #211e1a 0%, #191714 58%, #1d1a17 100%);
  color: rgba(244, 241, 236, .82);
}
.m-footer *, .m-footer *::before, .m-footer *::after { box-sizing: border-box; }
.m-footer__inner { padding: clamp(96px, 14vh, 160px) 6vw clamp(40px, 6vh, 64px); }
.m-footer__en {
  margin: 0 0 28px; color: rgba(244, 241, 236, .6);
  font-family: "Cormorant Garamond", Georgia, serif; font-size: 11px; line-height: 1;
  letter-spacing: .42em; text-transform: uppercase;
}
.m-footer__copy {
  margin: 0 0 44px; color: var(--footer-paper);
  font-family: "Zen Old Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: clamp(28px, 4vw, 44px); font-weight: 500; letter-spacing: .12em;
}
.m-footer__contact {
  position: relative; display: inline-flex; align-items: baseline; gap: 1em;
  padding-bottom: .18em; color: var(--footer-paper); text-decoration: none;
}
.m-footer__contact::after {
  content: ""; position: absolute; right: 0; bottom: 0; left: 0; width: 0; height: 1px;
  background: currentColor; transition: width .45s var(--footer-ease);
}
.m-footer__contact:hover::after { width: 100%; }
.m-footer__contact span {
  display: inline-block; color: inherit; font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 12px; letter-spacing: .28em; text-transform: uppercase;
}
.m-footer__contact em {
  color: rgba(244, 241, 236, .82); font-family: "Zen Old Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 14px; font-style: normal; letter-spacing: .08em;
}
.m-footer__grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(48px, 8vw, 120px); margin-top: clamp(72px, 10vh, 120px); }
.m-footer__nav ul { margin: 0; padding: 0; list-style: none; }
/* ナビのリンクが小さく押しにくかったため 12px → 15px（オーナー指示 2026-07-30）。
   m-footer.css は margin.css より後に読み込まれるため、ここが最終値になる */
.m-footer__nav a {
  position: relative; display: inline-block; color: rgba(244, 241, 236, .82);
  font-family: "Cormorant Garamond", Georgia, serif; font-size: 15px; line-height: 2.4;
  letter-spacing: .28em; text-decoration: none; text-transform: uppercase;
}
.m-footer__nav a::after {
  content: ""; position: absolute; bottom: -.1em; left: 0; width: 0; height: 1px;
  background: currentColor; transition: width .45s var(--footer-ease);
}
.m-footer__nav a:hover::after { width: 100%; }
.m-footer__info {
  color: rgba(244, 241, 236, .82); font-family: "Zen Old Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  line-height: 2.1; letter-spacing: .06em;
}
.m-footer__info p { margin: 0 0 1em; }
.m-footer__company a { color: var(--footer-paper); text-decoration: none; }
.m-footer__tel a, .m-footer__sns a { color: rgba(244, 241, 236, .82); text-decoration: none; }
.m-footer__sns a { font-family: "Cormorant Garamond", Georgia, serif; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; }
.m-footer__bottom {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  margin-top: clamp(64px, 8vh, 96px); padding-top: 28px;
  border-top: 1px solid rgba(244, 241, 236, .16);
}
.m-footer__top, .m-footer__copyright {
  color: rgba(244, 241, 236, .82); font-family: "Cormorant Garamond", Georgia, serif;
  text-decoration: none; text-transform: uppercase;
}
.m-footer__top { font-size: 11px; letter-spacing: .28em; }
.m-footer__copyright { color: rgba(244, 241, 236, .6); font-size: 10px; letter-spacing: .14em; }
@media (max-width: 768px) {
  .m-footer__inner { padding-right: 7vw; padding-left: 7vw; }
  .m-footer__grid { grid-template-columns: 1fr; gap: 48px; }
  .m-footer__bottom { flex-direction: column-reverse; align-items: flex-start; gap: 16px; }
}
