/* ── Static-port additions (Cloudflare rebuild, 2026-09) ──────────────
   Everything visual still comes from the original zeus stylesheets;
   this file only covers what the WP → static port changed. */

/* Thornwood footer credit — wordmark standard */
.foot-credit { text-align: center; margin: 14px 0 4px; }
.foot-credit-label { display: block; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.8); }
.foot-credit a { display: inline-block; margin-top: 8px; opacity: .85; transition: opacity .25s ease, transform .25s ease; }
.foot-credit a:hover, .foot-credit a:focus-visible { opacity: 1; transform: translateY(-1px); }
.foot-credit a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.foot-credit-logo { display: block; height: clamp(24px, 2vw, 30px); width: auto; margin: 0 auto; }

/* Form status line (replaces the CF7 response output) */
.form-status { display: none; margin-top: 16px; padding: 10px 14px; border: 2px solid; font-size: 16px; text-align: center; }
.form-status.ok { display: block; border-color: #46b450; color: inherit; background: #fff; }
.form-status.err { display: block; border-color: #dc3232; color: #dc3232; background: #fff; }
form.sending .wpcf7-submit { opacity: .5; }

/* Widescreen frame: constrain fixed chrome to the 1920px canvas */
@media (min-width: 1921px) {
  .header,
  .mobile-wrap { left: calc((100vw - 1920px) / 2); right: calc((100vw - 1920px) / 2); }
  #back-to-top { right: calc((100vw - 1920px) / 2 + 15px); }
  .cookie-banner { left: calc((100vw - 1920px) / 2); width: 1920px; }
}

/* Screen-reader-only utility (zeus never defines one) */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .animate, .animate-item { opacity: 1 !important; transform: none !important; }
}

/* Heading-outline fixes (port): visually identical clones of the old tags */
h2.lem-zh3, h2.lem-zpost { font-family: 'Playfair', sans-serif; font-size: 38px; font-weight: 400; line-height: 1.05; letter-spacing: .5px; text-transform: uppercase; color: #fff; margin: 0 0 15px; }
h2.lem-zpost { margin-top: 40px; }
@media (max-width: 1099px) { h2.lem-zh3, h2.lem-zpost { font-size: 32px; } }
h2.lem-zcard { font-family: 'Playfair', sans-serif; font-size: 38px; font-weight: 400; line-height: 1.05; letter-spacing: .5px; text-transform: uppercase; color: rgb(82,81,87); margin: 0 0 12px; }
@media (max-width: 1099px) { h2.lem-zcard { font-size: 32px; } }
h2.lem-zprop { font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: 400; line-height: 1.05; letter-spacing: .5px; text-transform: uppercase; color: #fff; margin: 0 0 15px; }
@media (max-width: 1099px) { h2.lem-zprop { text-align: center; } }
h2.lem-zlist { font-family: 'Playfair', sans-serif; font-size: 38px; font-weight: 400; line-height: 1; letter-spacing: .5px; text-transform: uppercase; color: rgb(209,207,206); margin: 0 0 5px; }
@media (max-width: 1099px) { h2.lem-zlist { font-size: 32px; } }
h2.lem-zauthorcard { font-family: 'Playfair', sans-serif; font-size: 57.6px; font-weight: 400; line-height: 1.25; letter-spacing: 1.4px; text-transform: uppercase; color: #fff; margin: 0 0 25px; text-align: center; }
@media (max-width: 1099px) { h2.lem-zauthorcard { font-size: 40px; margin-bottom: 0; } }

/* a11y: color-only links in text blocks */
.cookie-banner a, #cookie-banner a, .attribution a, footer a[href*="privacy-policy"], .post_content p a:not(.main-btn) { text-decoration: underline; }
/* a11y: the injected book-bar link sits in a text block — give it a non-color cue */
.lem-book-bar .bb-btn { text-decoration: underline; }
