/* Amalie's catering invitation: an open, typographic interlude. */
.catering.section {
  padding-top: clamp(72px, 8vw, 144px);
  padding-bottom: clamp(76px, 8.5vw, 152px);
  border-bottom: 1px solid var(--line, #d7d8cf);
  color: var(--ink, #23231f);
  background: var(--paper, #faf9f6);
  scroll-margin-top: 20px;
}

.catering-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: clamp(34px, 4vw, 64px);
}

.catering-topline .eyebrow { margin: 0; }

.catering-flourish {
  font: 400 35px/1 var(--serif, Georgia, serif);
  color: var(--ink, #23231f);
}

.catering-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(260px, .75fr);
  align-items: end;
  gap: clamp(40px, 7vw, 120px);
}

.catering #catering-title {
  margin: 0;
  font: 400 clamp(3.25rem, 6.4vw, 7.2rem)/1.06 var(--serif, Georgia, serif);
  letter-spacing: -.052em;
  text-wrap: balance;
}

.catering #catering-title em {
  font-weight: 400;
  color: inherit;
}

.catering-invitation {
  max-width: 370px;
  padding-bottom: 6px;
}

.catering-intro {
  margin: 0 0 20px;
  font: 400 clamp(1.55rem, 2vw, 2rem)/1.35 var(--serif, Georgia, serif);
  letter-spacing: -.02em;
}

.catering-copy {
  margin: 0;
  max-width: 32ch;
  font-size: .92rem;
  line-height: 1.8;
  color: var(--muted, #6e6f65);
}

.catering-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 54px;
  margin-top: 34px;
  padding: 12px 0;
  border-bottom: 1px solid currentColor;
  font-size: .88rem;
}

.catering-cta > span:last-child {
  font-size: 1.3rem;
  line-height: 1;
  transition: transform 280ms cubic-bezier(.2, .7, .2, 1);
}

.catering-cta:hover > span:last-child,
.catering-cta:focus-visible > span:last-child {
  transform: translate(3px, -3px);
}

.catering-phone {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-top: 9px;
  font-size: .77rem;
  color: var(--muted, #6e6f65);
  text-underline-offset: 4px;
}

.catering-phone:hover { text-decoration: underline; }

.catering a:focus-visible {
  outline: 2px solid var(--ink, #23231f);
  outline-offset: 6px;
}

@media (max-width: 900px) {
  .catering-layout { grid-template-columns: minmax(0, 1.25fr) minmax(240px, .85fr); gap: 38px; }
  .catering #catering-title { font-size: clamp(3.15rem, 6.3vw, 5rem); }
}

@media (max-width: 650px) {
  .catering-layout { display: block; }
  .catering-topline { margin-bottom: 32px; }
  .catering-flourish { font-size: 28px; }
  .catering #catering-title { max-width: 12ch; font-size: clamp(2.9rem, 11.2vw, 4.5rem); line-height: 1.09; }
  .catering-desktop-break { display: none; }
  .catering-invitation { max-width: none; margin-top: 40px; padding-bottom: 0; }
  .catering-copy { max-width: 38ch; }
  .catering-cta { margin-top: 25px; }
}

@media (prefers-reduced-motion: reduce) {
  .catering-cta > span:last-child { transition: none; }
  .catering-cta:hover > span:last-child,
  .catering-cta:focus-visible > span:last-child { transform: none; }
}
