/* Contact form: existing editorial palette, native controls and responsive grouping. */
.contact-request { padding-block: clamp(4rem, 8vw, 8rem); }
.contact-intro { max-width: 46rem; margin-bottom: 3rem; }
.contact-intro h2 { font-size: clamp(2.2rem, 4.5vw, 4.5rem); line-height: 1.12; font-weight: 400; letter-spacing: -.04em; margin: 1rem 0 1.5rem; }
.contact-intro h2 em, .contact-aside h3 em { font-style: normal; color: #596356; }
.contact-intro > p:last-child { max-width: 39rem; font-size: 1.1rem; line-height: 1.75; color: #57554f; }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
[data-contact-form] { display: grid; gap: 2.75rem; min-width: 0; margin: 0; color: #292b26; }
.contact-group { border: 0; min-width: 0; padding: 0; margin: 0; }
.contact-group legend { display: flex; align-items: center; gap: .8rem; font-size: 1.15rem; font-weight: 500; margin-bottom: 1.5rem; padding: 0; }
.contact-step { display: inline-grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 auto; border: 1px solid #a5ab9f; border-radius: 50%; font-size: .75rem; color: #56604e; }
.contact-options { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
[data-contact-form] .contact-option { display: flex; gap: .8rem; align-items: flex-start; border: 1px solid #b6b9af; padding: 1.2rem; cursor: pointer; background: #faf9f5; transition: background .15s, border-color .15s; }
[data-contact-form] .contact-option:has(input:checked) { border-color: #4f5a49; background: #e9ece3; box-shadow: inset 0 0 0 1px #4f5a49; }
.contact-option input { margin: .2rem 0 0; flex: 0 0 auto; width: 1.1rem; height: 1.1rem; accent-color: #3c4b35; }
.contact-option strong { display: block; font-size: 1rem; font-weight: 500; }
.contact-option small { display: block; margin-top: .5rem; font-size: .85rem; line-height: 1.5; color: #565b50; }
.contact-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1.35rem 1rem; }
[data-contact-form] .contact-field { display: flex; flex-wrap: wrap; align-content: start; gap: .5rem .3rem; font-size: .9rem; line-height: 1.5; }
[data-contact-form] input:not([type="checkbox"]):not([type="radio"]), [data-contact-form] select { box-sizing: border-box; width: 100%; min-height: 54px; padding: .85rem 1rem; border: 1px solid #a5aa9c; border-radius: 0; background: #fffefa; color: #292b26; font: inherit; font-size: 1rem; }
[data-contact-form] select { padding-right: 1.8rem; }
.contact-field small, .contact-help { font-size: .8rem; color: #62645c; line-height: 1.6; }
.contact-help { margin: -.5rem 0 1rem; }
.contact-send { display: grid; gap: 1.15rem; padding-top: 1.75rem; border-top: 1px solid #c8cabe; }
[data-contact-form] .contact-consent { display: flex; align-items: flex-start; gap: .75rem; font-size: .85rem; line-height: 1.65; }
.contact-consent a { text-decoration: underline; text-underline-offset: 3px; }
[data-contact-form] input[type="checkbox"] { flex: 0 0 auto; width: 1.2rem; height: 1.2rem; margin-top: .2rem; accent-color: #3c4b35; }
[data-contact-form] button { display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 56px; width: 100%; padding: 1.1rem 1.4rem; border: 1px solid #303c2c; background: #303c2c; color: #fffefa; font: inherit; cursor: pointer; }
[data-contact-form] button:hover { background: #46553f; }
[data-contact-form] button:disabled { opacity: .65; cursor: wait; }
[data-contact-form] :focus-visible { outline: 2px solid #536b44; outline-offset: 4px; }
[data-contact-form] input[aria-invalid="true"] { border-color: #983d2d; }
.contact-send > .contact-help { margin: -.5rem 0 0; }
[data-contact-status] { margin: 0; font-size: .9rem; line-height: 1.65; overflow-wrap: anywhere; }
[data-contact-status]:empty { display: none; }
[data-contact-status]:not(:empty) { padding: 1rem; border-left: 3px solid #626d56; background: #e9ece3; }
[data-contact-form][data-state="error"] [data-contact-status] { border-color: #983d2d; background: #f2e8e1; }
.contact-aside { background: #e8eadf; padding: clamp(1.5rem, 3vw, 3rem); color: #30362c; }
.contact-aside .t-kicker { color: #59634e; }
.contact-aside h3 { font-size: clamp(1.5rem, 2.3vw, 2.3rem); font-weight: 400; letter-spacing: -.03em; line-height: 1.2; margin: 1.2rem 0 2rem; }
.contact-direct-link { position: relative; display: block; padding: 1.2rem 1.5rem 1.2rem 0; border-top: 1px solid #b8c0ad; color: inherit; text-decoration: none; overflow-wrap: anywhere; }
.contact-direct-link > span:first-child { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: .5rem; }
.contact-direct-link strong { font-weight: 500; font-size: clamp(.9rem, 1.3vw, 1.15rem); }
.contact-direct-link > span:last-child { position: absolute; right: 0; top: 50%; }
.contact-direct-link:hover strong { text-decoration: underline; text-underline-offset: 4px; }
.contact-aside-note { display: flex; gap: 1rem; border-top: 1px solid #b8c0ad; margin-top: .2rem; padding-top: 1.75rem; font-size: .9rem; line-height: 1.65; }
.contact-aside-note p { margin: 0; }
.contact-aside-mark { font-size: 1.6rem; line-height: 1; }
.contact-location { margin: 2rem 0 0; font-size: .8rem; line-height: 1.8; color: #59634e; }
.contact-location strong { font-weight: 500; }
@media (max-width: 900px) { .contact-layout { grid-template-columns: 1fr; gap: 2.5rem; } .contact-aside { max-width: none; } }
@media (max-width: 540px) { .contact-options, .contact-fields { grid-template-columns: 1fr; } .contact-intro { margin-bottom: 2rem; } .contact-group legend { font-size: 1rem; } .contact-option { padding: 1rem; } }
@media (prefers-reduced-motion: reduce) { .contact-option { transition: none; } }

/* Optional message and privately received photo attachments. */
.contact-group legend .contact-optional { font-size: .8rem; font-weight: 400; }
[data-contact-form] textarea { width: 100%; box-sizing: border-box; min-height: 155px; resize: vertical; padding: 1rem; border: 1px solid #a5aa9c; border-radius: 0; background: #fffefa; color: #292b26; font: inherit; line-height: 1.6; }
[data-contact-form] textarea::placeholder { color: #6a6e62; }
.contact-message-meta { display: flex; align-items: start; gap: 1rem; justify-content: space-between; margin-top: .6rem; color: #62645c; font-size: .75rem; line-height: 1.6; }
.contact-message-meta small { font: inherit; max-width: 32rem; }
[data-message-count] { white-space: nowrap; }
.contact-photo-area { margin-top: 1.8rem; padding: 1.3rem; border: 1px dashed #9ca58f; background: #f0f0e9; }
.contact-photo-title { margin: 0 0 .7rem; font-size: .95rem; font-weight: 500; }
.contact-photo-title span { font-size: .8rem; font-weight: 400; }
.contact-photo-area .contact-help { margin: 0 0 1rem; }
.contact-photo-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; }
[data-contact-form] .contact-photo-actions button { width: auto; min-height: 44px; padding: .6rem .9rem; gap: .4rem; border: 1px solid #75816b; background: #fffefa; color: #34432d; font-size: .85rem; }
[data-contact-form] .contact-photo-actions button:hover { background: #e0e6d8; }
[data-photo-count] { font-size: .75rem; color: #62645c; margin-left: auto; }
.contact-photo-previews { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; list-style: none; padding: 0; margin: 1.2rem 0 0; }
.contact-photo-previews:empty { display: none; }
.contact-photo-previews li { min-width: 0; }
.contact-photo-previews img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border: 1px solid #c1c9b7; }
.contact-photo-previews .contact-photo-name { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .72rem; margin: .4rem 0; }
[data-contact-form] .contact-photo-previews button { min-height: 44px; padding: .45rem .2rem; justify-content: center; border: 0; background: transparent; color: #34432d; font-size: .8rem; text-decoration: underline; text-underline-offset: 3px; }
.contact-content-consent { margin-top: 1.3rem; }
.contact-content-consent[hidden] { display: none !important; }
@media (max-width: 540px) { .contact-details legend { flex-wrap: wrap; } .contact-details .contact-optional { margin-left: 2.8rem; } .contact-photo-area { padding: 1rem; } .contact-photo-previews { gap: .5rem; } [data-photo-count] { margin-left: 0; } }
