.cafe-masthead { padding-top: 27px; }
.cafe-identity { display: flex; align-items: center; justify-content: center; width: fit-content; min-height: 44px; margin-inline: auto; color: var(--accent); font-family: var(--display); font-size: clamp(34px, 4.1vw, 61px); font-weight: 500; letter-spacing: -.035em; line-height: 1.1; text-align: center; text-decoration: none; }
.cafe-nav-row { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; margin-top: 24px; border-block: 1px solid color-mix(in srgb, var(--accent) 30%, transparent); min-height: 63px; }
.cafe-nav { display: flex; gap: 26px; }
.cafe-nav a, .cafe-reserve-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; text-decoration: none; }
.cafe-nav a:hover, .cafe-reserve-link:hover { text-decoration: underline; }
.cafe-masthead-address { margin: 0; color: var(--muted); font-size: 12px; text-align: center; }
.cafe-reserve-link { justify-self: end; color: var(--accent); font-weight: 700; }
.cafe-welcome { padding-top: 53px; padding-bottom: 31px; }
.cafe-welcome-copy { max-width: 780px; margin-inline: auto; text-align: center; }
.cafe-welcome h1 { max-width: 15ch; margin-inline: auto; font-family: var(--display); font-size: clamp(58px, 6.1vw, 88px); font-weight: 400; line-height: .99; letter-spacing: -.045em; text-wrap: balance; }
.cafe-welcome-copy > p { max-width: 60ch; margin: 22px auto 0; color: var(--muted); font-size: 15px; line-height: 1.85; }
.cafe-welcome-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 25px; }
.cafe-welcome-actions .button { min-width: 162px; border-radius: 2px; }
.cafe-storefront { position: relative; width: min(1040px, 100%); margin: 44px auto 0; height: 520px; overflow: hidden; border-radius: 48% 48% 2px 2px / 30% 30% 2px 2px; background: var(--accent); }
.cafe-storefront-photo { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 44%; }
.cafe-storefront figcaption { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); padding: 8px 16px; color: var(--ink); background: var(--background); font-size: 12px; white-space: nowrap; }
.cafe-setting { margin-top: 20px; color: var(--muted); font-size: 12px; text-align: center; }
.cafe-menu-section { margin-top: 20px; padding: 70px 48px; background: var(--accent); }
.cafe-menu-paper { position: relative; width: min(880px, 100%); margin-inline: auto; padding: 56px 74px 49px; background: var(--background); outline: 1px solid color-mix(in srgb, var(--accent) 40%, transparent); outline-offset: -13px; }
.cafe-menu-heading { max-width: 60ch; margin-inline: auto; text-align: center; }
.cafe-menu-heading > p:first-child { margin-bottom: 16px; color: var(--accent); font-size: 12px; }
.cafe-menu-heading h2 { font-family: var(--display); font-size: clamp(37px, 3.8vw, 54px); font-weight: 400; line-height: 1.07; letter-spacing: -.025em; text-wrap: balance; }
.cafe-menu-heading > p:last-child { max-width: 49ch; margin: 17px auto 0; color: var(--muted); font-size: 15px; line-height: 1.85; }
.cafe-dishes { margin-top: 31px; }
.cafe-dish { text-align: center; padding-block: 18px 8px; }
.cafe-dish + .cafe-dish { border-top: 1px solid color-mix(in srgb, var(--accent) 19%, transparent); }
.cafe-dish h3 { font-family: var(--display); color: var(--accent); font-size: 29px; line-height: 1.2; font-weight: 400; }
.cafe-dish p { max-width: 54ch; margin: 9px auto 0; color: var(--muted); font-size: 15px; line-height: 1.8; }
.cafe-dish-link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; font-size: 12px; text-underline-offset: 4px; }
.cafe-menu-action { margin-top: 19px; text-align: center; }
.cafe-menu-action .button { border-radius: 2px; }
.cafe-visit { display: grid; grid-template-columns: 1fr 1.04fr; align-items: start; gap: 12%; padding-block: 84px 88px; }
.cafe-visit-intro > h2 { font-family: var(--display); font-size: clamp(39px, 4.2vw, 59px); font-weight: 400; line-height: 1.05; letter-spacing: -.025em; }
.cafe-visit-intro > p { max-width: 44ch; margin-top: 19px; color: var(--muted); font-size: 15px; line-height: 1.85; }
.cafe-visit-intro > .button { margin-top: 24px; border-radius: 2px; }
.cafe-services { margin-top: 32px; }
.cafe-service { padding-block: 19px 9px; border-top: 1px solid color-mix(in srgb, var(--accent) 22%, transparent); }
.cafe-service h3 { font-family: var(--display); font-size: 25px; font-weight: 400; line-height: 1.2; }
.cafe-service p { max-width: 47ch; margin-top: 8px; color: var(--muted); font-size: 15px; line-height: 1.8; }
.cafe-service .text-link { font-size: 12px; }
.cafe-visit-book { min-width: 0; padding-top: 5px; }
.cafe-visit-book .location-book { padding: 35px; border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent); border-radius: 0; background: var(--surface); }
.cafe-visit-book .location-panel h3 { color: var(--accent); font-family: var(--display); font-size: 34px; font-weight: 400; }
.cafe-visit-book .location-actions { flex-direction: column; align-items: flex-start; gap: 8px; }
.cafe-visit-book .button { border-radius: 2px; }
@media (max-width: 900px) {
  .cafe-nav-row { grid-template-columns: 1fr auto; }
  .cafe-masthead-address { display: none; }
  .cafe-storefront { height: 470px; }
  .cafe-visit { gap: 7%; }
  .cafe-visit-book .location-book { padding: 27px; }
}
@media (max-width: 640px) {
  .cafe-masthead { padding-top: 23px; }
  .cafe-identity { font-size: 37px; }
  .cafe-nav-row { min-height: 60px; gap: 13px; margin-top: 20px; }
  .cafe-nav { gap: 20px; }
  .cafe-nav a, .cafe-reserve-link { font-size: 12px; }
  .cafe-welcome { padding-top: 37px; padding-bottom: 24px; }
  .cafe-welcome h1 { font-size: clamp(50px, 10vw, 64px); max-width: 13ch; }
  .cafe-welcome-copy > p { max-width: 46ch; margin-top: 19px; font-size: 15px; }
  .cafe-welcome-actions { gap: 9px; margin-top: 22px; }
  .cafe-welcome-actions .button { min-width: 0; flex: 1 1 140px; padding-inline: 14px; font-size: 13px; }
  .cafe-storefront { margin-top: 29px; height: 355px; border-radius: 48% 48% 2px 2px / 20% 20% 2px 2px; }
  .cafe-storefront-photo { object-position: 53% 50%; }
  .cafe-storefront figcaption { bottom: 13px; padding: 7px 12px; font-size: 12px; }
  .cafe-setting { font-size: 12px; margin-top: 16px; }
  .cafe-menu-section { margin-top: 6px; padding: 32px 20px; }
  .cafe-menu-paper { padding: 39px 26px 36px; outline-offset: -9px; }
  .cafe-menu-heading > p:first-child { margin-bottom: 13px; font-size: 12px; }
  .cafe-menu-heading h2 { font-size: 36px; }
  .cafe-menu-heading > p:last-child { font-size: 15px; }
  .cafe-dishes { margin-top: 23px; }
  .cafe-dish h3 { font-size: 27px; }
  .cafe-dish p { font-size: 15px; }
  .cafe-menu-action .button { font-size: 13px; }
  .cafe-visit { grid-template-columns: 1fr; gap: 34px; padding-block: 48px 51px; }
  .cafe-visit-intro > h2 { font-size: 45px; }
  .cafe-services { margin-top: 27px; }
  .cafe-service { padding-block: 16px 7px; }
  .cafe-visit-book { padding-top: 0; }
  .cafe-visit-book .location-book { padding: 28px 25px; }
}
@media (max-width: 380px) {
  .cafe-identity { font-size: 34px; }
  .cafe-nav { gap: 14px; }
  .cafe-storefront { height: 325px; }
}
