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

/* 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; }

/* Thornwood footer credit — wordmark standard (the footer sits on the light page background) */
.foot-credit { text-align: center; margin: 14px 0 0; }
.foot-credit-label { display: block; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: #5f7fa3; }
.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 #3c4856; outline-offset: 3px; }
.foot-credit-logo { display: block; height: clamp(24px, 2vw, 30px); width: auto; margin: 0 auto; max-width: none; }

/* Footer hours were a dead <a href="#"> on WordPress — a span styled like its siblings */
.footer-contact-info .foot-hours { display: inline; }

/* Mobile menu button: the theme styled a <div>; keep the button unstyled */
button.menu-btn { background: none; border: 0; padding: 0; -webkit-appearance: none; appearance: none; font: inherit; color: inherit; cursor: pointer; display: inline-block; }
button.menu-btn:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

/* 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, form.sending button[type="submit"] { opacity: .5; }

/* Cookie banner is site chrome, not brand content: lift its link + Deny button to AA contrast */
.cookie-banner p a { color: #b9cde6; }
.cookie-banner .main-btn2, .cookie-banner .cookie-btn.deny { color: #2d3946; }

/* Lightbox arrows: inline SVG instead of the never-loaded Font Awesome glyphs */
#customLightbox .lightbox-nav svg { pointer-events: none; }
#customLightbox .lightbox-nav:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

/* Stock plan cards: the whole tile is one target (thumbnail + title both open the plan) */
.edd_download_image a { display: block; overflow: hidden; }
.edd_download_image img { transition: transform .5s ease; }
.edd_download:hover .edd_download_image img { transform: scale(1.03); }
.edd_download_title a:focus-visible { outline: 2px solid #3a4f6e; outline-offset: 3px; }
/* variable-priced plans (Bonneville) show the range the way EDD did ("From $x") */
.edd_price .from { font-size: .8em; letter-spacing: .04em; text-transform: uppercase; margin-right: .35em; }

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

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

/* a11y: colour-only links inside text blocks get an underline; keyboard focus ring everywhere */
.post_content p a:not(.main-btn), .attribution a, .hero-unit a:not(.main-btn), .cookie-banner p a, .contact-page-info a:not(.main-btn) { text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid #3a4f6e; outline-offset: 2px; }
.header a:focus-visible, .mobile-header a:focus-visible, .banner a:focus-visible { outline-color: #fff; }
#back-to-top { cursor: pointer; }
