/* Shared footer: normal document flow on every page, including narrow screens. */
.maccheroni-footer.maccheroni-footer {
  --footer-marquee-size: clamp(190px, 22vw, 360px);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: auto;
  min-height: 0;
  overflow: hidden;
  background: var(--black);
  color: var(--whitelight);
  font: 300 16px/1.4 var(--font-inter);
}
.maccheroni-footer.maccheroni-footer .maccheroni-footer__marquee {
  position: relative;
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  height: auto;
  padding: 50px 0;
  overflow: hidden;
}
.maccheroni-footer.maccheroni-footer .maccheroni-footer__track {
  display: flex;
  width: max-content;
  height: calc(var(--footer-marquee-size) * .713);
  animation: maccheroni-contact-scroll 26s linear infinite;
}
.maccheroni-footer.maccheroni-footer .maccheroni-footer__marquee-group {
  display: block;
  flex: 0 0 auto;
  white-space: nowrap;
  /* Melodrama capitals occupy .713em including the curved-letter overshoot.
     Trim font leading so padding measures from the visible letters. */
  position: relative;
  top: -.0035em;
  font: 300 var(--footer-marquee-size)/.713 var(--font-melodrama);
  letter-spacing: -.025em;
  color: transparent;
  -webkit-text-stroke: 1px var(--whitelight);
}
.maccheroni-footer__marquee-group > span { font-size: .8em; vertical-align: .04em; }
@keyframes maccheroni-contact-scroll { to { transform: translateX(-50%); } }
.maccheroni-footer.maccheroni-footer .maccheroni-footer__inner {
  box-sizing: border-box;
  position: static;
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  width: 100%;
  height: auto;
  min-height: 0;
  padding: 0 var(--guide-margin, 50px);
}
.maccheroni-footer.maccheroni-footer .maccheroni-footer__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: start;
  gap: var(--guide-gutter, 20px);
  flex: 0 0 auto;
  padding: 0 0 clamp(60px, 5.6vw, 80px);
}
.maccheroni-footer.maccheroni-footer :is(.maccheroni-footer__contact, .maccheroni-footer__experience) { min-width: 0; }
.maccheroni-footer.maccheroni-footer .maccheroni-footer__contact { grid-column: 1 / span 4; }
.maccheroni-footer.maccheroni-footer .maccheroni-footer__experience { grid-column: 5 / span 4; }
.maccheroni-footer.maccheroni-footer .maccheroni-footer__logo-link { position: static; display: block; width: 100%; }
.maccheroni-footer.maccheroni-footer .maccheroni-footer__logo { width: 100%; max-width: 405px; height: auto; }
.maccheroni-footer.maccheroni-footer .maccheroni-footer__info {
  position: static;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: auto;
  margin: 24px 0 0;
  padding: 0;
  gap: 2px;
  font: inherit;
}
.maccheroni-footer.maccheroni-footer .maccheroni-footer__info p { margin: 0; }
.maccheroni-footer.maccheroni-footer a { color: inherit; text-decoration: none; }
.maccheroni-footer.maccheroni-footer .maccheroni-footer__email { margin-top: 24px; overflow-wrap: anywhere; }
.maccheroni-footer.maccheroni-footer .maccheroni-footer__experience { padding-top: 70px; }
.maccheroni-footer.maccheroni-footer .maccheroni-footer__intro {
  position: static;
  width: auto;
  max-width: 440px;
  margin: 0;
  font-size: inherit;
  font-style: italic;
  line-height: 1.3;
}
body .maccheroni-footer.maccheroni-footer .maccheroni-footer__booking.site-button {
  position: static;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: max-content;
  max-width: 100%;
  min-width: 0;
  height: auto;
  min-height: 44px;
  margin: 28px 0 0;
  padding: 10px 14px;
  border: 0;
  border-radius: 4px;
  background: var(--orange-color);
  color: var(--whitelight);
  font: 400 18px/1.2 var(--font-cabin-condensed);
  white-space: normal;
}
.maccheroni-footer.maccheroni-footer .maccheroni-footer__nav {
  position: static;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: auto;
  padding: 70px 0 0;
  margin: 0;
  gap: 8px;
  font-size: inherit;
  grid-column: 11 / span 2;
  grid-row: 1;
  justify-self: end;
}
.maccheroni-footer.maccheroni-footer .maccheroni-footer__nav a { font-size: inherit; line-height: 1.35; }
.maccheroni-footer.maccheroni-footer .maccheroni-footer__social {
  position: static;
  display: flex;
  flex-direction: row;
  align-items: center;
  align-self: start;
  justify-content: flex-start;
  margin: 0;
  padding: 174px 0 0;
  gap: 0;
  grid-column: 9 / span 2;
  grid-row: 1;
}
.maccheroni-footer.maccheroni-footer .maccheroni-footer__social-links { display: flex; flex-wrap: wrap; gap: 13.8px; }
.maccheroni-footer.maccheroni-footer .maccheroni-footer__social-links a { width: 44px; height: 44px; }
.maccheroni-footer.maccheroni-footer .maccheroni-footer__social-links img { max-width: 27.6px; max-height: 27.6px; }
.maccheroni-footer.maccheroni-footer .maccheroni-footer__bottom {
  position: static;
  display: block;
  margin: 0;
  padding: 24px 0;
  border-top: 1px solid rgb(250 248 240 / .25);
  font-size: 12px;
}
.maccheroni-footer.maccheroni-footer .maccheroni-footer__credits {
  position: static;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin: 0;
  font-size: inherit;
  white-space: normal;
}
.maccheroni-footer.maccheroni-footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
/* Navigation already has one animated underline through ::after. */
.maccheroni-footer.maccheroni-footer .maccheroni-footer__nav a:hover { text-decoration: none; }
.maccheroni-footer.maccheroni-footer :focus-visible { outline: 2px solid var(--orange-color); outline-offset: 5px; }
@media (max-width: 1100px) {
  .maccheroni-footer.maccheroni-footer { min-height: 0; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 36px 8%; }
  .maccheroni-footer.maccheroni-footer :is(.maccheroni-footer__contact, .maccheroni-footer__experience) { grid-column: auto; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__experience { padding-top: 0; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__nav { padding-top: 0; grid-column: 2; grid-row: 2; justify-self: start; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__social { grid-column: 1; grid-row: 2; align-self: start; padding: 0; }
}
@media (max-width: 600px) {
  .maccheroni-footer.maccheroni-footer { --footer-marquee-size: clamp(110px, 29vw, 174px); font-size: 14px; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__inner { padding: 0 24px; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-bottom: 28px; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__logo { max-width: 330px; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__info { margin-top: 18px; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__email { margin-top: 16px; }
  .maccheroni-footer.maccheroni-footer :is(.maccheroni-footer__nav, .maccheroni-footer__social) { grid-column: auto; grid-row: auto; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__social-links { gap: 23px; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__nav { flex-direction: row; flex-wrap: wrap; gap: 12px 20px; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__credits { flex-wrap: wrap; gap: 8px 20px; }
  body .maccheroni-footer.maccheroni-footer .maccheroni-footer__booking.site-button { margin-top: 20px; font-size: 16px; gap: 12px; padding-inline: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__track { animation: none; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__social-links a { transition: none; }
}

/* Small phones: remove the decorative title and its reserved space. */
@media (max-width: 440px) {
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__marquee { display: none; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__track { animation: none; }
}

/* Phones: distribute content within the viewport below the fixed navbar. */
@media (max-width: 440px) {
  .maccheroni-footer.maccheroni-footer { min-height: calc(100vh - var(--header-height)); min-height: calc(100svh - var(--header-height)); }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: repeat(7, max-content);
    align-content: space-between;
    gap: clamp(6px, calc((100svh - var(--header-height) - 500px) / 6), 24px);
    min-height: calc(100vh - var(--header-height));
    min-height: calc(100svh - var(--header-height));
    padding: clamp(12px, 2svh, 24px) 25px 8px;
    flex: 1 0 auto;
  }
  .maccheroni-footer.maccheroni-footer :is(.maccheroni-footer__grid, .maccheroni-footer__contact, .maccheroni-footer__experience, .maccheroni-footer__bottom) { display: contents; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__logo-link { grid-row: 1; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__logo { max-width: none; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__info { grid-row: 2; margin: 0; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__intro { grid-row: 3; }
  body .maccheroni-footer.maccheroni-footer .maccheroni-footer__booking.site-button { grid-row: 4; justify-self: start; margin: 0; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__nav { grid-row: 5; flex-direction: column; flex-wrap: nowrap; gap: 8px; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__social { grid-row: 6; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__social-links { width: min(100%, 260px); justify-content: space-between; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__credits { grid-row: 7; align-self: end; }
}

/* Compact phone heights: keep every row visible without shrinking the whole footer. */
@media (max-width: 440px) and (max-height: 740px) {
  .maccheroni-footer.maccheroni-footer { font-size: 13px; line-height: 1.25; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__email { margin-top: 10px; }
  .maccheroni-footer.maccheroni-footer .maccheroni-footer__nav { gap: 4px; }
  body .maccheroni-footer.maccheroni-footer .maccheroni-footer__booking.site-button { min-height: 36px; padding-block: 8px; }
}
