/* =============================================================
   Foundation Contact (/foundation/contact/), prototypes/13/30-foundation-contact.css
   part B (fc-*). Part A (the Foundation register: open, closer, legal line)
   comes from foundation-v13.css and foundation-about.css, which the page
   shares by carrying .rhinory-foundation-about on its main. Every selector
   here is rooted on .rhinory-foundation-contact.
   The form is Commerce7's custom-form widget (form code foundation-contact;
   Erik 2026-11-05: Commerce7 after all, not a site-built form), painted by
   c7-form.css like the site's other Commerce7 forms. Only prototype 30's
   rhythm is added (B2), by structure: no inner .c7-* class (contract.md).
   ============================================================= */
.rhinory-foundation-contact .fc-open-grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); column-gap: clamp(40px, 6vw, 96px); row-gap: clamp(36px, 5vw, 56px); align-items: start; }
.rhinory-foundation-contact .fc-open h1 { margin: 0; }
.rhinory-foundation-contact .fc-open .lede { margin: clamp(20px, 2.4vw, 32px) 0 0; max-width: 34ch; }
.rhinory-foundation-contact .fc-formcol { position: relative; max-width: 640px; min-width: 0; width: 100%; justify-self: end; padding-top: clamp(8px, 1.4vw, 20px); }
.rhinory-foundation-contact .fc-alt { margin: 0; font-family: "Lora", Georgia, serif; font-size: 15px; line-height: 1.6; color: #4A443D; }
.rhinory-foundation-contact .fc-alt a { color: #2D2926; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; text-decoration-color: rgba(45, 41, 38, .35); }
.rhinory-foundation-contact .fc-alt a:hover { color: #520000; text-decoration-color: currentColor; }
.rhinory-foundation-contact .fc-open-email { margin-top: clamp(24px, 2.6vw, 32px); font-size: 17px; }
.rhinory-foundation-contact .fc-open-photo { margin-top: clamp(40px, 5vw, 72px); aspect-ratio: 2.18 / 1; overflow: hidden; }
.rhinory-foundation-contact .fc-open-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 30% 50%; filter: saturate(.92) contrast(1.04); transform: scale(1.02); transform-origin: 40% 50%; }
.rhinory-foundation-contact .fc-open-photo.is-in img,
.rhinory-foundation-contact .fc-open-photo.visible img { animation: fcKenBurns 22s cubic-bezier(.2, .7, .2, 1) forwards; }
@keyframes fcKenBurns { from { transform: scale(1.02); } to { transform: scale(1.12); } }
@media (max-width: 900px) {
	.rhinory-foundation-contact .fc-open-grid { grid-template-columns: minmax(0, 1fr); }
	.rhinory-foundation-contact .fc-formcol { justify-self: start; }
}
@media (max-width: 640px) {
	.rhinory-foundation-contact .fc-open-photo { aspect-ratio: 4 / 3; }
	.rhinory-foundation-contact .fc-open-photo img { object-position: 15% 50%; }
}
@media (prefers-reduced-motion: reduce) {
	.rhinory-foundation-contact .fc-open-photo img,
	.rhinory-foundation-contact .fc-open-photo.is-in img,
	.rhinory-foundation-contact .fc-open-photo.visible img { animation: none; transform: none; }
}
/* B2 · Prototype 30's form column rhythm: 26px between fields, then the rule
   and 28px above the button (c7-form.css spaces fields 30px and puts 40px +
   32px around that rule). */
.rhinory-foundation-contact .fc-formcol .winery-c7-form .c7-custom-form form > fieldset > div { margin-bottom: 26px; }
.rhinory-foundation-contact .fc-formcol .winery-c7-form .c7-custom-form form > fieldset > div:last-child { margin-bottom: 0; }
.rhinory-foundation-contact .fc-formcol .winery-c7-form .c7-custom-form form div:has(> button[type="submit"]) { margin-top: 26px; padding-top: 28px; }
/* Until the Commerce7 form `foundation-contact` exists, its widget prints a bare
   "Form does not exist" alert; the email line above carries the page instead.
   Keyed on the alert role, so Commerce7's thank-you (not an alert) still shows. */
.rhinory-foundation-contact .fc-formcol .c7-custom-form:not(:has(form)):has(> [role="alert"]) { display: none; }

/* The website form (inc/foundation-contact-form.php; prototype 30, follow-ups round 2 § 11). */
.rhinory-foundation-contact .fc-form { display: flex; flex-direction: column; gap: 26px; margin: 0; }
.rhinory-foundation-contact .fc-field { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.rhinory-foundation-contact .fc-form label { font-family: "Lora", Georgia, serif; font-size: 17px; font-weight: 600; line-height: 1.5; color: var(--ink-warm); }
.rhinory-foundation-contact .fc-req { font-family: "Lora", Georgia, serif; font-style: italic; font-size: 16px; font-weight: 400; color: var(--burgundy); margin-left: 8px; }
.rhinory-foundation-contact .fc-form input, .rhinory-foundation-contact .fc-form textarea { font-family: "Lora", Georgia, serif; font-size: 17px; line-height: 1.5; color: var(--ink-warm); background: var(--paper); border: 1px solid rgba(45, 41, 38, .28); border-radius: 2px; padding: 13px 16px; min-height: 52px; width: 100%; box-sizing: border-box; transition: border-color .2s, box-shadow .2s; }
.rhinory-foundation-contact .fc-form textarea { resize: vertical; min-height: 152px; }
.rhinory-foundation-contact .fc-form input:hover, .rhinory-foundation-contact .fc-form textarea:hover { border-color: rgba(45, 41, 38, .5); }
.rhinory-foundation-contact .fc-form input:focus, .rhinory-foundation-contact .fc-form textarea:focus { outline: none; border-color: var(--burgundy); box-shadow: 0 0 0 3px rgba(82, 0, 0, .14); }
.rhinory-foundation-contact .fc-form [aria-invalid="true"] { border-color: var(--burgundy); }
.rhinory-foundation-contact .fc-err { margin: 0; font-family: "Lora", Georgia, serif; font-style: italic; font-size: 15px; line-height: 1.5; color: var(--burgundy); }
.rhinory-foundation-contact .fc-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.rhinory-foundation-contact .fc-captcha-field:has(.fc-captcha:not(.is-shown)):has(.fc-err[hidden]) { height: 0; overflow: hidden; margin-top: -26px; }
.rhinory-foundation-contact .fc-submit { border-top: 1px solid var(--rule-warm-2); padding-top: 28px; }
.rhinory-foundation-contact .fc-submit .btn { min-height: 52px; font-size: 13px; letter-spacing: .16em; cursor: pointer; }
.rhinory-foundation-contact .fc-submit .btn[aria-busy="true"] { opacity: .72; cursor: progress; }
.rhinory-foundation-contact .fc-done { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: clamp(32px, 4vw, 48px); background: color-mix(in oklab, var(--paper) 90%, transparent); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); outline: none; opacity: 0; transition: opacity .45s cubic-bezier(.2, .7, .2, 1); }
.rhinory-foundation-contact .fc-done[hidden] { display: none; }
.rhinory-foundation-contact .fc-done.is-on { opacity: 1; }
.rhinory-foundation-contact .fc-done-line { margin: 0; max-width: 18ch; text-wrap: balance; font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(28px, 2.6vw, 36px); line-height: 1.15; color: var(--ink-warm); }
.rhinory-foundation-contact .fc-done-line em { font-style: italic; color: var(--burgundy); }
@media (prefers-reduced-motion: reduce) { .rhinory-foundation-contact .fc-done, .rhinory-foundation-contact .fc-form input, .rhinory-foundation-contact .fc-form textarea { transition: none; } }

