/* Contact page: the intro column, contact rows and the Contact Form 7 form with floating labels. Loaded only where `adams-contact` is used.
   The form is Contact_Form's markup: each control sits in a `.wpcf7-form-control-wrap` span followed by its label, so the label state reads :has() and :focus-within. */
.adams-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
@media (max-width: 52rem) { .adams-contact { grid-template-columns: 1fr; } }
.adams-contact-side > * { margin: 0; }
.adams-contact-side > * + * { margin-top: 1.25rem; }
.adams-contact .adams-intro-p { max-width: 52rem; font-size: 1.375rem; line-height: 1.55; }
.adams-contact-side > .adams-cinfo { display: grid; gap: 1rem; margin-top: 1.75rem; }
.adams-cinfo-row { display: flex; align-items: center; gap: .9rem; }
.adams-cinfo-row > p { margin: 0; }
.adams-cinfo-row .adams-chip { width: 2.75rem; height: 2.75rem; font-size: 1rem; }

.adams-cform { background: var(--panel); border: 1px solid var(--line); border-top: .3rem solid var(--teal); border-radius: var(--radius); padding: clamp(1.5rem, 3vw, 2.25rem); display: grid; gap: 1.6rem; }
.adams-cform .adams-field { position: relative; }
.adams-cform .adams-field p { margin: 0; }
.adams-cform .rr-hp p { margin: 0; }
.adams-cform .wpcf7-form-control-wrap { display: block; }
.adams-cform input[type="text"], .adams-cform input[type="email"], .adams-cform select, .adams-cform textarea { width: 100%; font: inherit; font-size: 1.125rem; color: var(--ink); background: var(--panel); border: 1px solid var(--control-border); border-radius: var(--radius); padding: .95rem 1rem; outline: 0; box-shadow: none; transition: border-color .2s; }
.adams-cform textarea { min-height: 10rem; resize: vertical; }
.adams-cform input:focus, .adams-cform select:focus, .adams-cform textarea:focus { border-width: .15em; border-color: var(--teal); padding: calc(.95rem - .105rem) calc(1rem - .105rem); }
.adams-cform input:focus-visible, .adams-cform select:focus-visible, .adams-cform textarea:focus-visible { outline: .1875rem solid var(--teal); outline-offset: .125rem; }
.adams-cform .adams-field label { position: absolute; left: 1rem; top: 1.05rem; font-size: var(--fs-ui); line-height: 1.2; color: #6B7571; pointer-events: none; transition: top .15s ease, left .15s ease, font-size .15s ease, color .15s ease; background: var(--panel); }
.adams-cform .adams-field:focus-within label, .adams-cform .adams-field:has(input:not(:placeholder-shown)) label, .adams-cform .adams-field:has(textarea:not(:placeholder-shown)) label, .adams-cform .adams-field.is-select label { top: -.95rem; left: 1.1rem; font-size: .9375rem; font-weight: 700; padding: .1rem .5rem; color: var(--teal); }
.adams-cform .wpcf7-not-valid-tip { display: block; color: var(--error); font-size: var(--fs-ui); margin-top: .4rem; }
.adams-cform .wpcf7-not-valid { border-color: var(--error) !important; }
.adams-cform .adams-field:has(.wpcf7-not-valid) label { color: var(--error); }
.adams-cform .adams-fine { font-size: var(--fs-caption); margin: -.6rem 0 0; }
.adams-cform .rr-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.adams-cform .wpcf7-spinner { display: none; }
.adams-cform input[type="submit"] { justify-self: start; cursor: pointer; }
.adams-cform input[type="submit"][aria-disabled="true"] { opacity: .7; cursor: progress; }
/* Response: a failure sits above the Send button (contact-form.js moves it there); success replaces the form fields. */
.adams-cform .wpcf7-response-output { margin: 0; padding: 1rem 1.25rem; border: 1px solid var(--error); border-radius: var(--radius); color: var(--error); font-size: var(--fs-ui); }
.adams-cform .wpcf7-response-output:empty, .adams-cform:not(.invalid):not(.failed):not(.spam):not(.sent) .wpcf7-response-output { display: none; }
.adams-cform.sent .adams-field, .adams-cform.sent .rr-hp, .adams-cform.sent input[type="submit"], .adams-cform.sent .adams-fine { display: none; }
.adams-cform.sent .wpcf7-response-output { display: block; background: var(--tint); border-color: var(--teal); color: var(--ink); font-family: var(--font-display); font-weight: 700; font-size: 1.25rem; padding: 1.5rem; }
.adams-cform .screen-reader-response { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (prefers-reduced-motion: reduce) { .adams-cform .adams-field label, .adams-cform input, .adams-cform select, .adams-cform textarea { transition: none; } }
