/* Footer-only Twain experiment and approved desktop alignment of contact/legal. */
.foot {
  clip-path: inset(0 var(--footer-inset, 0px) round var(--footer-radius, 0px) var(--footer-radius, 0px) 0 0);
}
.foot .foot-giant {
  position: relative;
  /* Larger mark, capped by the footer's content width on small screens. */
  font-size: min(clamp(320px, 34vw, 608px), 68cqw);
  /* Keep room above the mark; its baseline can approach the footer edge. */
  --footer-flow-top: 24px;
  height: calc(.78em + var(--footer-flow-top));
  padding-block: var(--footer-flow-top) 0;
  align-items: center;
}
@media (hover: hover) and (pointer: fine) {
  .foot .foot-giant { --footer-flow-top: 112px; }
}
.foot .foot-giant.has-footer-flow > .display {
  visibility: hidden;
  animation: none;
  transform: none;
}
.foot .tov-footer-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.foot.has-footer-rules .foot-contact,
.foot.has-footer-rules .foot-legal {
  position: relative;
  border-top-color: transparent;
}
.foot .tov-footer-rule {
  position: absolute;
  z-index: 1;
  top: -20px;
  left: 0;
  width: 100%;
  height: 40px;
}
.foot .tov-footer-rule svg { width: 100%; height: 100%; overflow: visible; }
.foot .tov-footer-rule path { fill: none; stroke: var(--line-d); stroke-width: 1; }
/* Links retain priority over the decorative 40px pointer strip. */
.foot.has-footer-rules a,
.foot.has-footer-rules button { position: relative; z-index: 2; }
/* Contact and legal values share a baseline. Keep the DOM/focus order intact. */
@media (min-width: 1024px) {
  .foot {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    column-gap: clamp(28px, 3.4vw, 52px);
  }
  .foot .foot-main,
  .foot .foot-giant { grid-column: 1 / -1; }
  .foot .foot-contact {
    display: grid;
    grid-template-columns: minmax(140px, .6fr) minmax(0, 1.4fr);
    gap: 0 clamp(28px, 3.6vw, 60px);
    align-content: start;
    padding-block: 20px 0;
  }
  .foot .foot-contact > div:not(.tov-footer-rule) {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
  .foot .foot-legal {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-content: start;
    column-gap: 24px;
    line-height: 1.4;
    /* Match contact padding + its 13px/1.4 label + the 4px label/value gap. */
    padding-block: calc(20px + 13px * 1.4 + 4px) 0;
  }
  .foot .foot-legal > span { grid-column: 1; }
  .foot .foot-legal .foot-top { margin-left: 0; grid-column: 2; }
}
@media (prefers-reduced-motion: reduce) {
  .foot { clip-path: none; }
  .foot .tov-footer-canvas { transform: none !important; opacity: 1 !important; }
}
