/* AIKI Terrasa: Suisse Intl Medium headlines with Georgia Italic accents. */
@font-face {
  font-family: "Suisse Intl";
  src: url("/fonts/SuisseIntl-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Suisse Intl";
  src: url("/fonts/SuisseIntl-RegularItalic.otf") format("opentype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Suisse Intl";
  src: url("/fonts/SuisseIntl-Medium.otf") format("opentype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Suisse Intl";
  src: url("/fonts/SuisseIntl-SemiBold.otf") format("opentype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Suisse Intl";
  src: url("/fonts/SuisseIntl-Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root {
  --aiki-font-text: "Suisse Intl", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --aiki-font-display: var(--aiki-font-text);
  --aiki-font-italic: Georgia, "Times New Roman", serif;
  /* 1920px reference: 90pt = 120px at the default 16px root size. */
  --aiki-heading-size: clamp(2rem, 6.25vw, 7.5rem);
  --aiki-heading-leading: 0.88888889; /* 80pt / 90pt */
  --aiki-italic-leading: 0.66666667; /* 60pt / 90pt */
}

/* Body copy, captions, navigation, prices and form controls share the brand face. */
body, button, input, select, textarea, .font-sans {
  font-family: var(--aiki-font-text);
}
input::file-selector-button { font-family: var(--aiki-font-text); }

h1, h2, h3, h4, h5, h6,
.agenda-ribbon strong,
.agenda-modal__list time strong,
.agenda-modal__close strong,
.booking-modal__close strong,
.event-request-modal__close strong,
.art-current figcaption strong,
.art-mark,
.route-map,
.quote-section blockquote,
.community-empty > span {
  font-family: var(--aiki-font-display);
}

h1, h2, h3, h4, h5, h6 { font-weight: 500; }
:is(h1, h2, h3, h4, h5, h6) :is(em, i),
.event-request-modal__intro h2 em,
.quote-section em {
  font-family: var(--aiki-font-italic);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -.06em;
  text-transform: none;
}

/* One section-heading scale; separate blocks keep both leading values exact. */
h1.section-title, h2.section-title,
.community-hero h1, .community-section-head h2, .community-form__intro h2 {
  max-width: 100%;
  font-family: var(--aiki-font-display);
  font-size: var(--aiki-heading-size);
  font-style: normal;
  font-weight: 500;
  line-height: var(--aiki-heading-leading);
  letter-spacing: -.03em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
  word-break: normal;
  text-wrap: pretty;
}
.section-title .section-title__sans {
  display: block;
  line-height: var(--aiki-heading-leading);
}
.section-title .section-title__italic {
  display: block;
  margin: 0;
  font-family: var(--aiki-font-italic);
  font-size: 1em;
  font-style: italic;
  font-weight: 400;
  line-height: var(--aiki-italic-leading);
  letter-spacing: -.06em;
  text-transform: none;
}
.section-title .section-title__line {
  display: block;
  line-height: var(--aiki-heading-leading);
}
.section-title__line .section-title__sans,
.section-title__line .section-title__italic { display: inline; }
.hero h1 .section-title__italic { margin-left: 9vw; text-transform: none; }
.section-title .title-brand { display: inline-flex; }
.occasion-card h2.section-title {
  /* The same style scales to the narrower, paired card containers. */
  font-size: clamp(2rem, 4.5vw, 5.727273rem);
  min-height: 0;
  max-width: 100%;
  margin-top: 0;
}
.art-section {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: clamp(32px, 3.75vw, 72px);
}
.place-section { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.community-form__intro { max-width: 60rem; }
.quote-section blockquote { font-weight: 500; line-height: var(--aiki-heading-leading); letter-spacing: -.03em; }

/* These presentational labels are also hidden in hydrated community content. */
.eyebrow, .section-kicker, .community-kicker,
.agenda-modal__head > p:first-child,
.booking-modal__intro > p:first-child,
.event-request-modal__intro > p:first-child,
.quote-section > p { display: none; }

@media (max-width: 980px) {
  .art-section, .place-section { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  :root { --aiki-heading-size: clamp(2.25rem, 11.4vw, 5rem); }
  .hero h1 .section-title__italic { margin-left: 0; }
  .occasion-card h2.section-title { font-size: var(--aiki-heading-size); }
}

/* Menu names and small captions nested in display elements still use Suisse. */
.dish h3,
.title-brand small,
.quote-brand small,
#sunset-time {
  font-family: var(--aiki-font-text);
}
