/* Shared footer — Figma 12249:42397 (Variant2).
 * Natural block sizes preserve the desktop composition and allow translated
 * navigation, additional groups and enlarged text to grow without clipping. */
.koshi-footer {
  container: koshi-footer / inline-size;
  width: 100%;
  margin: 0;
  padding: 0;
  background: var(--koshi-ink, #322a22);
  color: var(--koshi-paper, #fffcf4);
  font-family: var(--koshi-sans, "Instrument Sans", sans-serif);
  font-size: var(--koshi-footer-font-size, 1rem);
  font-weight: 400;
  line-height: 1.5;
}
.koshi-footer, .koshi-footer * { box-sizing: border-box; }
.koshi-footer__container {
  width: min(100%, 90em);
  margin-inline: auto;
  padding: 5em clamp(1.5em, 5.5556cqi, 5em) 2.8571em;
}
.koshi-footer__content, .koshi-footer__signature {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5%;
}
.koshi-footer p, .koshi-footer ul { margin: 0; }
.koshi-footer p, .koshi-footer a, .koshi-footer__meta {
  color: inherit;
  font-family: inherit;
  font-size: .875em;
  line-height: 1.5;
}
/* Links inside a paragraph keep its type size (not .875 squared). */
.koshi-footer p a { font-size: inherit; }
.koshi-footer a, .koshi-footer a:visited { color: inherit; text-decoration: none; }
.koshi-footer a:hover { color: inherit; text-decoration: none; }
.koshi-footer a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.koshi-footer .koshi-footer__title {
  margin: 0 0 1.7143em;
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.koshi-footer .koshi-footer__title--contact { text-transform: none; }
.koshi-footer__contact > p > a[href^="tel:"] { display: inline; }
.koshi-footer__navigation, .koshi-footer__contact { min-width: 0; }
.koshi-footer__columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 10em), 1fr));
  gap: 1.5em;
  min-height: 13.875em;
}
.koshi-footer__columns > div { min-width: 0; }
.koshi-footer .koshi-footer__links { padding: 0; list-style: none; }
.koshi-footer__links li { margin: 0; padding: 0; }
.koshi-footer__links a {
  display: block;
  margin-bottom: 1.1429em;
  font-weight: 400;
  overflow-wrap: anywhere;
}
.koshi-footer__links li:last-child a { margin-bottom: 0; }
.koshi-footer .koshi-footer__social { display: flex; gap: .75em; margin-top: 2em; font-size: 1em; }
.koshi-footer__social a { display: inline-flex; align-items: center; justify-content: center; width: 1.5em; height: 1.5em; font-size: 1em; }
.koshi-footer__social svg { display: block; width: 1.5em; height: 1.5em; fill: none; stroke: currentColor; stroke-width: 1.7; }
.koshi-footer__social path, .koshi-footer__social-dot { fill: currentColor; stroke: none; }
.koshi-footer__payments { display: flex; flex-wrap: wrap; align-items: center; gap: 0; margin-top: 4em; }
.koshi-footer__payments img { display: block; flex: 0 0 auto; object-fit: contain; max-width: 100%; }
.koshi-footer__payments img:nth-child(1) { width: 3.6875em; height: 3em; }
.koshi-footer__payments img:nth-child(2) { width: 4.4189em; height: 3.0804em; }
.koshi-footer__payments img:nth-child(3) { width: 3.0625em; height: 3em; }
.koshi-footer__signature { align-items: end; margin-top: 2em; }
.koshi-footer .koshi-footer__logo { display: block; width: 100%; max-width: 38em; font-size: 1em; line-height: 0; }
.koshi-footer__logo-image { display: block; width: 100%; height: auto; aspect-ratio: 608 / 260; object-fit: contain; }
.koshi-footer__signature-aside { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5em; min-width: 0; }
.koshi-footer__signature-aside p { max-width: 19.2143em; overflow-wrap: anywhere; }
.koshi-footer__origin { display: block; flex: 0 0 auto; width: 5.8125em; height: 5.4375em; object-fit: contain; filter: brightness(0) invert(1); }
.koshi-footer__meta { margin-top: 2.2857em; padding-top: 2.2857em; border-top: 1px solid rgb(255 255 255 / 20%); overflow-wrap: anywhere; }
.koshi-footer__consent { display:block; min-height:2.75rem; max-width:100%; margin:0 0 1em; padding:0; border:0; background:none; color:inherit; font:inherit; text-align:start; text-decoration:underline; text-underline-offset:.2em; cursor:pointer; }
.koshi-footer__consent[hidden] { display:none; }
.koshi-footer__consent:focus-visible { outline:2px solid currentColor; outline-offset:.25rem; }
@container koshi-footer (width < 80em) {
  .koshi-footer__container { padding-block: 4em 2.5em; }
  .koshi-footer__content { grid-template-columns: 1fr; gap: 3.5em; }
  .koshi-footer__columns { min-height: 0; }
  .koshi-footer__signature { gap: 2em; }
  .koshi-footer__links a { display: flex; align-items: center; min-height: 3.1429em; margin-bottom: .5em; }
  .koshi-footer__social a { width: 2.75em; height: 2.75em; }
  .koshi-footer .koshi-footer__social { gap: .25em; }
}
@container koshi-footer (width < 44em) {
  .koshi-footer__container { padding-block: 3em 1.875em; }
  .koshi-footer__columns { grid-template-columns: repeat(auto-fit, minmax(min(100%, 12em), 1fr)); gap: 2.125em; }
  .koshi-footer__signature { grid-template-columns: 1fr; gap: 1.75em; margin-top: 2.625em; }
  .koshi-footer .koshi-footer__logo { max-width: 22.5em; }
  .koshi-footer__payments { margin-top: 2.625em; }
  .koshi-footer__signature-aside { justify-content: flex-start; }
  .koshi-footer__meta { padding-top: 1.7143em; }
}
