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

.ensemble-footer { --ensemble-footer-label-size: 14.52px; --ensemble-footer-text-size: 16px; padding: 90px 0px 32px; background: rgb(244, 242, 236); color: rgb(24, 24, 23); font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }

.ensemble-footer__inner { width: min(100% - 64px, 1440px); margin: 0px auto; }

.ensemble-footer__top { display: grid; grid-template-columns: minmax(240px, 0.75fr) minmax(0px, 1.25fr); gap: 90px; padding-bottom: 90px; }

.ensemble-footer__logo { display: block; width: 250px; max-width: 100%; line-height: 0; text-decoration: none; }

.ensemble-footer__logo img { display: block; width: 100%; max-width: 100%; height: auto; }

.ensemble-footer__navigation { display: grid; grid-template-columns: repeat(4, minmax(0px, 1fr)); gap: 35px; }

.ensemble-footer__column { display: flex; flex-direction: column; align-items: flex-start; gap: 15px; }

.ensemble-footer__heading { margin: 0px 0px 9px; color: rgb(133, 129, 122); font-size: var(--ensemble-footer-label-size); font-weight: 700; letter-spacing: 0.03em; }

.ensemble-footer__column a { position: relative; color: rgb(39, 38, 35); font-size: calc(var(--ensemble-footer-text-size) * 0.9); font-weight: 500; line-height: 1.6; text-decoration: none; letter-spacing: 0.03em; }

.ensemble-footer__column a::after { content: ""; position: absolute; right: 0px; bottom: -3px; left: 0px; height: 1px; background: currentcolor; transform: scaleX(0); transform-origin: right center; transition: transform 0.2s; }
@media (any-hover: hover) and (any-pointer: fine) {

.ensemble-footer__column a:hover:where(html:not([data-ensemble-input="touch"]) *)::after { transform: scaleX(1); transform-origin: left center; }
}

.ensemble-footer__bottom { min-height: 70px; display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; border-top: 1px solid rgba(24, 24, 23, 0.16); }

.ensemble-footer__bottom p { margin: 28px 0px 0px; color: rgb(122, 119, 112); font-size: var(--ensemble-footer-text-size); font-weight: 500; letter-spacing: 0.03em; }

.ensemble-footer__bottom a { margin-top: 28px; color: rgb(73, 71, 65); font-size: var(--ensemble-footer-text-size); font-weight: 700; letter-spacing: 0.03em; text-decoration: none; }

@media (max-width: 900px) {
  .ensemble-footer__top { grid-template-columns: 1fr; gap: 65px; }
  .ensemble-footer__navigation { grid-template-columns: repeat(2, 1fr); row-gap: 50px; }
}

@media (max-width: 600px) {
  .ensemble-footer { --ensemble-footer-label-size: 10.8px; --ensemble-footer-text-size: 14px; padding: 72px 0px 25px; }
  .ensemble-footer__inner { width: calc(100% - 32px); }
  .ensemble-footer__top { gap: 55px; padding-bottom: 65px; }
  .ensemble-footer__navigation { grid-template-columns: 1fr 1fr; gap: 45px 25px; }
  .ensemble-footer__column { gap: 13px; }
  .ensemble-footer__bottom { align-items: flex-start; flex-direction: column; gap: 14px; padding-top: 25px; }
  .ensemble-footer__bottom p, .ensemble-footer__bottom a { margin: 0px; }
}