/* Final responsive layer — intentionally loaded after the main stylesheet. */

@media (max-width: 720px) {
  html, body { max-width: 100%; overflow-x: hidden; }
  .container { width: min(100% - 32px, 1180px); }
  .section-pad { padding-block: 68px; }
  .eyebrow { margin-bottom: 14px; text-align: center; }

  /* Header and navigation */
  .nav-wrap { height: 74px; }
  .brand { width: 142px; }
  .main-nav { width: 100%; max-width: 100%; align-items: center; text-align: center; }
  .main-nav a { width: fit-content; }

  /* Hero */
  .poster-hero { padding-top: 88px; text-align: center; }
  .poster-masthead { min-height: 246px; }
  .poster-logo { width: min(78%, 330px); }
  .scribble-note { left: 8px; bottom: 2px; text-align: left; }
  .poster-hero .opening-badge { right: 8px; top: 104px; }
  .poster-main { display: flex; flex-direction: column; }
  .poster-hero .hero-content { width: 100%; text-align: center; }
  .poster-hero h1 { margin-inline: auto; font-size: clamp(3rem, 14vw, 4.6rem); }
  .gold-stroke { margin-inline: auto; }
  .poster-hero .hero-copy { margin-inline: auto; }
  .poster-hero .hero-actions { justify-content: center; }
  .hero-collage { width: 100%; max-width: 540px; margin-inline: auto; text-align: left; }
  .poster-services { width: 100%; }
  .poster-services > div { padding-inline: 8px; }

  /* Welcome */
  .intro-editorial { display: block; text-align: center; }
  .intro-heading { display: block; max-width: 100%; }
  .intro-heading .section-number,
  .kitchen-titleblock .section-number {
    width: 64px;
    margin: 0 auto 18px;
    text-align: center;
  }
  .intro-heading h2 { font-size: clamp(2.6rem, 11.5vw, 3.8rem); }
  .intro-heading h2 .keep-line { white-space: normal; }
  .intro-story { width: 100%; margin: 30px auto 0; padding: 0; border-left: 0; text-align: center; }
  .intro-story .lead { margin-inline: auto; }
  .intro-handwriting { width: fit-content; margin: 24px auto 0; }
  .intro-collage { width: 100%; max-width: 520px; margin-inline: auto; text-align: left; }
  .intro-values { text-align: center; }
  .intro-values > div { padding: 24px 20px; }
  .intro-values span { position: static; display: block; margin-bottom: 5px; }

  /* Kitchen */
  .kitchen .section-head { display: block; text-align: center; }
  .kitchen-titleblock { display: block; }
  .kitchen-titleblock h2 { font-size: clamp(2.7rem, 11.5vw, 3.9rem); }
  .kitchen .section-head > p { max-width: 560px; margin: 24px auto 0; text-align: center; }
  .kitchen .food-grid { width: 100%; max-width: 540px; margin-inline: auto; }
  .kitchen-seal { right: 6px; }
  .kitchen .menu-note { text-align: center; align-items: center; }
  .kitchen .menu-note .button { align-self: center; }

  /* Host */
  .host-grid { text-align: center; }
  .host-portrait { width: min(100%, 430px); margin-inline: auto; }
  .host-copy h2 { font-size: clamp(3.7rem, 17vw, 5.2rem); }
  .host-copy blockquote { padding: 20px 0 0; border-left: 0; border-top: 2px solid var(--gold); }
  .host-copy > p:last-of-type { margin-inline: auto; }
  .host-copy .button { margin-inline: auto; }

  /* Celebrations */
  .celebrations-copy { text-align: center; }
  .celebrations-copy > p:not(.eyebrow) { margin-inline: auto; }
  .occasion-list { text-align: left; }
  .celebrations-copy .button { margin-inline: auto; }
  .room-collage { max-width: 520px; margin-inline: auto; }

  /* Visit */
  .visit { text-align: center; }
  .visit::before {
    left: 0;
    right: 0;
    bottom: 12px;
    width: 100%;
    padding-inline: 10px;
    color: rgba(23,60,45,.13);
    font-size: clamp(1.05rem, 4.8vw, 1.4rem);
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
    transform: none;
  }
  .visit-photo { width: calc(100% - 12px); max-width: 560px; margin-inline: auto; }
  .visit-heading { display: block; text-align: center; }
  .visit-number { display: block; width: 54px; margin: 0 auto 18px; }
  .visit-panel h2 { font-size: clamp(3rem, 14vw, 4.3rem); }
  .visit-detail { text-align: center; }
  .visit-detail-icon { margin-inline: auto; }
  .visit-details a:not(.phone) { margin-inline: auto; }
  .visit-panel > .button { align-self: center; }

  /* Footer */
  .site-footer { text-align: center; }
  .footer-invite { text-align: center; }
  .footer-logo-card { width: 100%; max-width: 500px; margin-inline: auto; }
  .footer-invite-copy > p:not(.eyebrow) { margin-inline: auto; }
  .footer-invite-copy .button { margin-inline: auto; }
  .footer-divider span { white-space: normal; }
  .site-footer .footer-grid { grid-template-columns: 1fr; text-align: center; }
  .site-footer .footer-grid > div,
  .site-footer .footer-grid > div:first-child,
  .site-footer .footer-grid > div:last-child { grid-column: 1; }
  .site-footer .footer-grid a { margin-inline: auto; }
  .site-footer .footer-grid address { text-align: center; }
  .site-footer .footer-bottom { grid-template-columns: 1fr; justify-items: center; gap: 10px; }
  .footer-handwriting,
  .site-footer .footer-bottom > span:first-child,
  .site-footer .footer-bottom > a { grid-column: 1; grid-row: auto; justify-self: center; }

  /* Legal pages */
  .legal-main { padding: 64px 0 88px; text-align: center; }
  .legal-main article { margin-inline: auto; }
}

@media (max-width: 390px) {
  .container { width: min(100% - 24px, 1180px); }
  .poster-hero h1 { font-size: 2.85rem; }
  .poster-hero .hero-actions { flex-direction: column; }
  .poster-services strong { font-size: .62rem; }
  .intro-heading h2 .keep-line { white-space: normal; }
  .visit-panel { padding-inline: 18px; }
}

/* Mobile readability */
@media (max-width: 720px) {
  body { font-size: 16px; line-height: 1.65; }
  .nav-wrap { height: 84px; }
  .brand { width: 200px; flex: 0 0 200px; }
  .brand img { width: 100%; height: 70px; }
  .menu-toggle { margin-left: auto; }

  .eyebrow,
  .visit-details h3,
  .site-footer .footer-grid h3 {
    font-size: .76rem;
    line-height: 1.45;
    letter-spacing: .14em;
  }

  .hero-copy,
  .intro-story p,
  .kitchen .section-head > p,
  .host-copy > p,
  .celebrations-copy > p,
  .visit-details p,
  .visit-details address,
  .site-footer .footer-grid p,
  .site-footer .footer-grid address,
  .site-footer .footer-grid a {
    font-size: 1rem;
    line-height: 1.65;
  }

  .poster-services strong { font-size: .72rem; line-height: 1.35; }
  .visit-details .phone { font-size: 1.65rem; }
  .visit-detail-icon { width: 34px; height: 34px; }
  .button { min-height: 56px; padding-inline: 22px; font-size: .76rem; }

  .footer-logo-card img { width: min(100%, 350px); }
  .footer-logo-card p { max-width: 320px; font-size: .78rem; line-height: 1.5; letter-spacing: .1em; }
  .footer-phone { font-size: 1.65rem !important; }
  .footer-handwriting { font-size: 1.25rem; }
  .site-footer .footer-bottom { font-size: .85rem; }
}

@media (max-width: 390px) {
  .brand { width: 185px; flex-basis: 185px; }
  .brand img { height: 66px; }
  .poster-services strong { font-size: .7rem; }
}
