/* Only the new contact page. Colors, fonts, inputs, box, and button inherit the site theme. */
.contact-page #contact { padding-bottom: 4em; background: linear-gradient(rgb(249 247 242 / 88%), rgb(249 247 242 / 94%)), url('../../images/woodhorizontal3.jpg') center top / cover; }
.contact-page #contact > .content { width: 48em; }
.contact-page #contact h1 { font-size: 2.25em; line-height: 1.25; letter-spacing: -.05em; }
.contact-page .eyebrow { margin: 0 0 .65em; font-size: .85em; font-weight: 600; }
.contact-page .contact-phone { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .65rem 1rem; margin: 1.5em 0; }
.contact-page .contact-phone span { font-weight: 600; }
.contact-page .contact-phone a { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .65rem 1.25rem; border: 2px solid #365b32; border-radius: .5rem; background: #365b32; color: #fff; font-size: 1.2rem; font-weight: 700; line-height: 1.3; text-decoration: none; white-space: nowrap; }
.contact-page .contact-phone a:hover { background: #294726; border-color: #294726; }
.contact-page .contact-phone a:focus-visible { outline: 3px solid #39454b; outline-offset: 4px; }
.contact-page .feedback a[href^="tel:"] { color: #365b32; font-weight: 700; }
@media (max-width: 736px) {
 .contact-page .contact-phone { flex-direction: column; gap: .65rem; }
 .contact-page .contact-phone a { font-size: 1.3rem; min-height: 52px; padding-inline: 1.5rem; }
}
.contact-page .contact-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 2em; text-align: left; margin: 2em 0; }
.contact-page .contact-notes h2 { font-size: 1.25em; letter-spacing: -.025em; }
.contact-page .contact-notes p, .contact-page .contact-notes ul { margin-bottom: 0; }
.contact-page .contact-notes ul { list-style: disc; padding-left: 1.2em; }
.contact-page #contact .box { text-align: left; margin-top: 2em; transform: none; transition: none; }
.contact-page fieldset { min-width: 0; border: 0; padding: 0; margin: 0 0 2em; }
.contact-page legend { font-size: 1.3em; font-weight: 900; margin-bottom: .25em; }
.contact-page .fieldset-description { margin-bottom: 1em; }
.contact-page .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.25em; }
.contact-page .form-grid .full { grid-column: 1/-1; }
.contact-page label { font-weight: 600; }
.contact-page label input, .contact-page label select, .contact-page label textarea { margin-top: .4em; min-width: 0; font-weight: 300; }
.contact-page input[type=date], .contact-page input[type=file] { width: 100%; max-width: 100%; border: solid 2px #e5e6e7; border-radius: .5em; background: none; color: inherit; padding: .65em .75em; font: inherit; }
.contact-page input[type=date] { min-height: 2.8em; }
.contact-page input[type=file] { font-size: .85em; }
.contact-page .field-help { display: block; font-size: .85em; font-weight: 300; line-height: 1.5; margin-top: .3em; }
.contact-page .required-note, .contact-page .form-privacy, .contact-page .form-footer { font-size: .85em; }
.contact-page .form-privacy { margin: 1.5em 0; }
.contact-page .form-footer { margin-top: 1em; }
.contact-page .honey { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.contact-page .feedback { border-left: 3px solid #98c593; background: #fff; padding: 1em 1.25em; margin-bottom: 1.5em; text-align: left; }
.contact-page .feedback.error { border-color: #ad4937; }
.contact-page [hidden] { display: none !important; }
.contact-page input:focus-visible, .contact-page select:focus-visible, .contact-page textarea:focus-visible, .contact-page button:focus-visible, .contact-page a:focus-visible { outline: 2px solid #98c593; outline-offset: 3px; }
.contact-page .submit { width: auto; max-width: 100%; white-space: normal; height: auto; min-height: 3.5em; line-height: 1.4; padding-block: .8em; }
.contact-page #form-status:empty { display: none; }
.contact-page .shop-glimpse { margin: 2.5em 0 0; }
.contact-page .shop-glimpse img, .contact-page .shop-glimpse video { display: block; width: 100%; height: auto; }
.contact-page .shop-video { max-width: 320px; aspect-ratio: 320 / 568; object-fit: contain; margin-inline: auto; background: #1f2823; border-radius: .5rem; }
.contact-page .shop-glimpse figcaption { font-size: .85em; margin-top: .5em; }
.contact-page .skip { position: fixed; left: 1em; top: -5em; z-index: 20000; background: #fff; padding: .5em 1em; }
.contact-page .skip:focus { top: 0; }
@media (max-width: 736px) {
  .contact-page .contact-notes, .contact-page .form-grid { grid-template-columns: 1fr; }
  .contact-page .contact-notes { gap: 1.25em; }
  .contact-page #contact { padding-bottom: 2em; }
  .contact-page #contact .box { padding: 1.5em; }
}
/* Contact-only emphasis keeps the existing site's colors and typography. */
.contact-page .submit { display: block; width: 100%; min-height: 4rem; padding: 1rem 1.5rem; font-size: 1.2em; font-weight: 900; box-shadow: 0 3px 0 rgba(0,0,0,.14); }
.contact-page .submit:disabled { cursor: wait; }
.contact-page .feedback.error { border: 3px solid #ad4937; background: #fff4f1; color: #792c20; font-weight: 600; padding: 1.25em; scroll-margin-top: 6rem; }
.contact-page .drop-zone { border: 2px dashed #687b70; border-radius: .5em; padding: 1.25em; background: #f7faf6; }
.contact-page .drop-zone p { margin: 0 0 .75em; }
.contact-page .drop-zone.drag-active { background: #e8f3e5; border-color: #365b32; }
.contact-page #upload-summary { font-size: .85em; margin: .75em 0; }
.contact-page .upload-list { list-style: none; padding: 0; margin: 0; }
.contact-page .upload-list li { display: flex; gap: 1em; align-items: center; justify-content: space-between; padding: .5em 0; border-bottom: 1px solid #e5e6e7; }
.contact-page .upload-list span { overflow-wrap: anywhere; min-width: 0; }
.contact-page .upload-list button { flex-shrink: 0; height: auto; line-height: 1.4; padding: .5em .8em; font-size: .8em; }
.contact-page .processing-dialog { position: fixed; inset: 50% auto auto 50%; transform: translate(-50%, -50%); margin: 0; width: min(90vw, 30rem); max-height: 90vh; max-height: 90dvh; overflow-y: auto; border: 0; border-radius: .75em; padding: 2em; text-align: center; color: #39454b; background: #fff; box-shadow: 0 1em 4em rgba(0,0,0,.25); }
.contact-page .processing-dialog::backdrop { background: rgba(25,35,29,.65); }
.contact-page .processing-dialog h2 { font-size: 1.5em; margin: 1em 0 .5em; }
.contact-page .processing-dialog p { margin-bottom: 0; }
.contact-page .processing-spinner { margin: auto; width: 3em; height: 3em; border: .3em solid #e5e6e7; border-top-color: #497640; border-radius: 50%; animation: contact-spin .8s linear infinite; }
@keyframes contact-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .contact-page .processing-spinner { animation: none; } }
.contact-page [aria-invalid="true"] { border-color: #ad4937 !important; background-color: #fff4f1 !important; }
.contact-page [aria-invalid="true"]:focus-visible { outline-color: #ad4937; }
.contact-page input, .contact-page select, .contact-page textarea { scroll-margin-top: 6rem; }
.contact-page .field-error { display: block; color: #792c20; font-size: .85em; font-weight: 600; margin-top: .4em; line-height: 1.5; }
.contact-page .feedback.error a { display: block; color: inherit; text-decoration: underline; margin-top: .4em; }

.contact-page #contact .confirmation-title { font-size: clamp(2.75rem, 6vw, 4rem); line-height: 1.15; margin-bottom: .3em; }
.contact-page #contact .confirmation-subtitle { font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 600; line-height: 1.4; margin-top: 0; }

.contact-page #contact > .content > p a, .contact-page .feedback:not(.error) a { color: #365b32; font-weight: 600; display: inline-flex; align-items: center; min-height: 44px; }
.contact-page #contact > .content > p a:hover, .contact-page .feedback:not(.error) a:hover { color: #294726; }
.contact-page .contact-notes p + p { margin-top: 1rem; }
