/* ==================================================
  11. Footer
================================================== */

/* ==============================
  Footer Base
============================== */

.l-footer,
#footer,
.footer {
  position: relative;
  background:
    radial-gradient(circle at top left, rgba(255, 255, 255, .06) 0%, rgba(255, 255, 255, 0) 32%),
    linear-gradient(135deg, #23292c 0%, #1e2427 50%, #2a302f 100%);
  color: #f5f1e9;
  border-top: 0;
  font-family: var(--mna-serif);
}

.l-footer *,
#footer *,
.footer * {
  box-sizing: border-box;
}

.l-footer a,
#footer a,
.footer a {
  color: inherit;
  text-decoration: none;
}

/* ==============================
  Footer Inner
============================== */

.l-footer .w-footer,
.l-footer__inner .w-footer,
#footer .w-footer,
.footer .w-footer {
  width: min(calc(100% - 80px), 1180px);
  max-width: 1180px;
  margin: 0 auto;
  padding: 72px 0 56px;
  display: grid;
  grid-template-columns: .95fr 1.35fr .95fr;
  gap: 46px;
  align-items: start;
}

/* ==============================
  Left Column
============================== */

.l-footer .w-footer > *:first-child,
#footer .w-footer > *:first-child,
.footer .w-footer > *:first-child {
  min-width: 0;
}

.l-footer .c-headLogo,
.l-footer .footer-logo,
.l-footer .w-footer .wp-block-image,
#footer .c-headLogo,
#footer .footer-logo,
#footer .w-footer .wp-block-image,
.footer .c-headLogo,
.footer .footer-logo,
.footer .w-footer .wp-block-image {
  margin: 0 0 28px;
}

/* ロゴ画像 */
.l-footer .c-headLogo img,
.l-footer .footer-logo img,
.l-footer .w-footer .wp-block-image img,
.l-footer .w-footer > *:first-child img,
#footer .c-headLogo img,
#footer .footer-logo img,
#footer .w-footer .wp-block-image img,
#footer .w-footer > *:first-child img,
.footer .c-headLogo img,
.footer .footer-logo img,
.footer .w-footer .wp-block-image img,
.footer .w-footer > *:first-child img {
  width: auto;
  max-width: 250px;
  height: auto;
  filter: brightness(0) invert(1) grayscale(1) contrast(1.18) !important;
  opacity: .94 !important;
}

/* SVGロゴの場合 */
.l-footer .w-footer > *:first-child svg,
#footer .w-footer > *:first-child svg,
.footer .w-footer > *:first-child svg {
  filter: brightness(0) invert(1) grayscale(1) contrast(1.18) !important;
  opacity: .94 !important;
}

.l-footer p,
#footer p,
.footer p {
  margin: 0;
  color: rgba(255, 255, 255, .9);
  font-size: 14px;
  line-height: 2;
  letter-spacing: .05em;
}

/* ==============================
  Middle Column Menu
============================== */

.l-footer .menu,
#footer .menu,
.footer .menu,
.l-footer .w-footer ul,
#footer .w-footer ul,
.footer .w-footer ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* 中央メニューを2列に */
.l-footer .w-footer > *:nth-child(2) .menu,
.l-footer .w-footer > *:nth-child(2) ul,
#footer .w-footer > *:nth-child(2) .menu,
#footer .w-footer > *:nth-child(2) ul,
.footer .w-footer > *:nth-child(2) .menu,
.footer .w-footer > *:nth-child(2) ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 34px;
  row-gap: 0;
  align-items: start;
}

.l-footer .w-footer > *:nth-child(2) .menu li,
.l-footer .w-footer > *:nth-child(2) ul li,
#footer .w-footer > *:nth-child(2) .menu li,
#footer .w-footer > *:nth-child(2) ul li,
.footer .w-footer > *:nth-child(2) .menu li,
.footer .w-footer > *:nth-child(2) ul li {
  margin: 0;
  padding: 0;
  border-bottom: 0 !important;
}

.l-footer .w-footer > *:nth-child(2) .menu a,
.l-footer .w-footer > *:nth-child(2) ul li a,
#footer .w-footer > *:nth-child(2) .menu a,
#footer .w-footer > *:nth-child(2) ul li a,
.footer .w-footer > *:nth-child(2) .menu a,
.footer .w-footer > *:nth-child(2) ul li a {
  position: relative;
  display: block;
  padding: 12px 0 12px 16px !important;
  border-bottom: 1px solid rgba(199, 154, 75, .42) !important;
  color: rgba(255, 255, 255, .96);
  font-size: 12px !important;
  line-height: 1.45 !important;
  letter-spacing: .04em !important;
  white-space: nowrap !important;
  transition: color .2s ease;
}

.l-footer .w-footer > *:nth-child(2) .menu a::before,
.l-footer .w-footer > *:nth-child(2) ul li a::before,
#footer .w-footer > *:nth-child(2) .menu a::before,
#footer .w-footer > *:nth-child(2) ul li a::before,
.footer .w-footer > *:nth-child(2) .menu a::before,
.footer .w-footer > *:nth-child(2) ul li a::before {
  content: "›";
  position: absolute;
  left: 0 !important;
  top: 50%;
  color: #c79a4b;
  font-size: 12px !important;
  transform: translateY(-50%);
}

.l-footer .w-footer > *:nth-child(2) .menu a:hover,
.l-footer .w-footer > *:nth-child(2) ul li a:hover,
#footer .w-footer > *:nth-child(2) .menu a:hover,
#footer .w-footer > *:nth-child(2) ul li a:hover,
.footer .w-footer > *:nth-child(2) .menu a:hover,
.footer .w-footer > *:nth-child(2) ul li a:hover {
  color: #d7af67;
}

/* ==============================
  Right CTA Column
============================== */

.l-footer .w-footer > *:nth-child(3),
#footer .w-footer > *:nth-child(3),
.footer .w-footer > *:nth-child(3) {
  padding: 34px 30px 36px;
  border: 1px solid rgba(199, 154, 75, .75);
  background: rgba(255, 255, 255, .02);
}

.l-footer .w-footer > *:nth-child(3) h2,
.l-footer .w-footer > *:nth-child(3) h3,
#footer .w-footer > *:nth-child(3) h2,
#footer .w-footer > *:nth-child(3) h3,
.footer .w-footer > *:nth-child(3) h2,
.footer .w-footer > *:nth-child(3) h3 {
  margin: 0 0 16px;
  color: #fff;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: .08em;
  text-align: center;
}

.l-footer .w-footer > *:nth-child(3) p,
#footer .w-footer > *:nth-child(3) p,
.footer .w-footer > *:nth-child(3) p {
  margin: 0 0 22px;
  color: rgba(255, 255, 255, .88);
  font-size: 14px;
  line-height: 2;
  text-align: center;
}

/* CTAボタン */
.l-footer .wp-block-button,
#footer .wp-block-button,
.footer .wp-block-button {
  margin: 0;
}

.l-footer .wp-block-button__link,
.l-footer .w-footer > *:nth-child(3) a,
#footer .wp-block-button__link,
#footer .w-footer > *:nth-child(3) a,
.footer .wp-block-button__link,
.footer .w-footer > *:nth-child(3) a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 50px;
  padding: 0 20px;
  border: 1px solid #b98833;
  border-radius: 999px;
  background: transparent;
  color: #fff;
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: .08em;
  text-align: center;
  transition: all .25s ease;
}

.l-footer .wp-block-button__link::after,
.l-footer .w-footer > *:nth-child(3) a::after,
#footer .wp-block-button__link::after,
#footer .w-footer > *:nth-child(3) a::after,
.footer .wp-block-button__link::after,
.footer .w-footer > *:nth-child(3) a::after {
  content: "→";
  margin-left: 12px;
  color: #c79a4b;
  font-size: 14px;
}

.l-footer .wp-block-button__link:hover,
.l-footer .w-footer > *:nth-child(3) a:hover,
#footer .wp-block-button__link:hover,
#footer .w-footer > *:nth-child(3) a:hover,
.footer .wp-block-button__link:hover,
.footer .w-footer > *:nth-child(3) a:hover {
  background: rgba(199, 154, 75, .12);
  border-color: #d3a659;
  color: #fff;
}

/* ==============================
  Footer Bottom
============================== */

.l-footer__foot,
.l-footer .l-footer__foot,
#footer .l-footer__foot,
.footer .l-footer__foot {
  width: min(calc(100% - 80px), 1180px);
  max-width: 1180px;
  margin: 0 auto;
  padding: 24px 0 30px;
  border-top: 1px solid rgba(199, 154, 75, .35);
  text-align: center;
}

/* コピーライト上のメニューは非表示 */
.l-footer__nav,
.l-footer .l-footer__nav,
#footer .l-footer__nav,
.footer .l-footer__nav {
  display: none !important;
}

.l-footer__copyright,
.l-footer .l-footer__copyright,
#footer .l-footer__copyright,
.footer .l-footer__copyright,
.copyright {
  margin: 0;
  color: rgba(255, 255, 255, .75);
  font-size: 12px;
  line-height: 1.7;
  letter-spacing: .05em;
  text-align: center;
}

/* ==============================
  Page Top
============================== */

#pageTop,
.pagetop,
.c-fixBtn,
.c-fixBtn__item {
  border-color: #c79a4b !important;
  color: #c79a4b !important;
  background: rgba(255, 255, 255, .06);
}

#pageTop:hover,
.pagetop:hover,
.c-fixBtn:hover,
.c-fixBtn__item:hover {
  background: rgba(199, 154, 75, .12);
}

/* ==============================
  Widget Title Reset
============================== */

.l-footer .widget-title,
#footer .widget-title,
.footer .widget-title {
  margin: 0 0 14px;
  color: #fff;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: .08em;
}

/* ==============================
  Responsive
============================== */

@media (max-width: 1024px) {
  .l-footer .w-footer,
  .l-footer__inner .w-footer,
  #footer .w-footer,
  .footer .w-footer {
    width: min(calc(100% - 48px), 960px);
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    padding: 60px 0 48px;
  }

  .l-footer .w-footer > *:nth-child(3),
  #footer .w-footer > *:nth-child(3),
  .footer .w-footer > *:nth-child(3) {
    grid-column: 1 / -1;
    max-width: 420px;
    margin: 0 auto;
  }

  .l-footer__foot,
  .l-footer .l-footer__foot,
  #footer .l-footer__foot,
  .footer .l-footer__foot {
    width: min(calc(100% - 48px), 960px);
  }
}

@media (max-width: 640px) {
  .l-footer .w-footer,
  .l-footer__inner .w-footer,
  #footer .w-footer,
  .footer .w-footer {
    width: calc(100% - 32px);
    grid-template-columns: 1fr;
    gap: 34px;
    padding: 52px 0 40px;
  }

  .l-footer .c-headLogo img,
  .l-footer .footer-logo img,
  .l-footer .w-footer .wp-block-image img,
  .l-footer .w-footer > *:first-child img,
  #footer .c-headLogo img,
  #footer .footer-logo img,
  #footer .w-footer .wp-block-image img,
  #footer .w-footer > *:first-child img,
  .footer .c-headLogo img,
  .footer .footer-logo img,
  .footer .w-footer .wp-block-image img,
  .footer .w-footer > *:first-child img {
    max-width: 220px;
  }

  .l-footer .w-footer > *:nth-child(2) .menu,
  .l-footer .w-footer > *:nth-child(2) ul,
  #footer .w-footer > *:nth-child(2) .menu,
  #footer .w-footer > *:nth-child(2) ul,
  .footer .w-footer > *:nth-child(2) .menu,
  .footer .w-footer > *:nth-child(2) ul {
    grid-template-columns: 1fr;
  }

  .l-footer .w-footer > *:nth-child(2) .menu a,
  .l-footer .w-footer > *:nth-child(2) ul li a,
  #footer .w-footer > *:nth-child(2) .menu a,
  #footer .w-footer > *:nth-child(2) ul li a,
  .footer .w-footer > *:nth-child(2) .menu a,
  .footer .w-footer > *:nth-child(2) ul li a {
    white-space: normal !important;
    font-size: 13px !important;
  }

  .l-footer .w-footer > *:nth-child(3),
  #footer .w-footer > *:nth-child(3),
  .footer .w-footer > *:nth-child(3) {
    max-width: none;
    padding: 26px 22px 28px;
  }

  .l-footer__foot,
  .l-footer .l-footer__foot,
  #footer .l-footer__foot,
  .footer .l-footer__foot {
    width: calc(100% - 32px);
    padding: 24px 0 28px;
  }

  .l-footer p,
  #footer p,
  .footer p {
    font-size: 13px;
  }
}