/* Shared additions for the live site: accessibility, mobile menu, forms, footer */
img { max-width: 100%; height: auto; }
h1 { text-wrap: balance; }

.sr-only {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link {
  position: absolute; left: 12px; top: -60px; z-index: 100;
  background: #F0DBA0; color: #4A0E17; padding: 10px 18px;
  font-family: 'Playfair Display', serif; text-decoration: none;
}
.skip-link:focus { top: 12px; }

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #C9A24B; outline-offset: 3px;
}

.logo-link { display: block; line-height: 0; }

/* honeypot for form spam */
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* mobile menu */
.nav-toggle {
  display: none; background: none; border: 0; padding: 12px; cursor: pointer;
  position: relative; z-index: 40;
}
.nav-toggle .bar {
  display: block; width: 26px; height: 2px; margin: 6px 0; background: #F0DBA0;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); transition: transform 0.2s, opacity 0.2s;
}
/* never let a nav label wrap onto two lines */
.site-header #site-nav a { white-space: nowrap; }

/* menu icon at every screen size */
@media all {
  .nav-toggle { display: block; }
  .site-header #site-nav { display: none; }
  .site-header #site-nav.is-open {
    display: flex; position: fixed; inset: 0; z-index: 30;
    flex-direction: column; justify-content: center; align-items: center; gap: 30px;
    background: #2A1912;
  }
  .site-header #site-nav a { font-size: 22px; text-shadow: none; }
  .nav-toggle[aria-expanded="true"] .bar:nth-of-type(1) { transform: translateY(8px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] .bar:nth-of-type(2) { opacity: 0; }
  .nav-toggle[aria-expanded="true"] .bar:nth-of-type(3) { transform: translateY(-8px) rotate(-45deg); }
  body.nav-lock { overflow: hidden; }
}

/* keep each sentence of the home headline together when it wraps */
/* headline: one line when there is room, otherwise break only between sentences */
.hero h1 .ln { display: inline-block; }
@media (min-width: 1100px) {
  .hero h1 { margin-left: calc(50% - 50vw + 24px); margin-right: calc(50% - 50vw + 24px); text-wrap: nowrap; }
}
@media (max-width: 600px) {
  /* name stays on one line on phones */
  .hero .signature-name { font-size: 11.4vw; white-space: nowrap; }
  .photo-frame { max-width: 100%; }
}

/* footer links */
.site-footer .footer-links {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px; margin-bottom: 20px;
}
.site-footer .footer-links a {
  color: #e8d7b0; text-decoration: none; font-family: 'Playfair Display', serif; font-size: 14px;
}
.site-footer .footer-links a:hover { color: #fff; text-decoration: underline; }

/* thank-you and 404 pages */
.utility-cta { text-align: center; padding: 60px 6% 110px; }
.utility-cta a {
  font-family: 'Playfair Display', serif; font-weight: 700; font-size: 19px; color: #fff;
  text-decoration: none; background: #4A0E17; padding: 16px 40px; display: inline-block;
}
.utility-cta a:hover { background: #6B1622; }

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}
