/* ==========================================================================
   Quahog Child - Contact Form 7 styled as Formidable "formidable-style-2"
   (owner: THEME-INNER). Values measured on the original site (headless Edge,
   1440px): sidebar .innerform, home .home-form, #popForm modal, careers,
   /feedback/client-response/. Every placement uses the same field look; only
   client-response restyles the submit button (as on the original).
   ========================================================================== */

.wpcf7 { margin: 0; padding: 0; max-width: 100%; }
.wpcf7 form { margin: 0; padding: 0 0 15px; max-width: 100%; font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, sans-serif; text-align: left; }
.wpcf7 .hidden-fields-container { display: none; border: 0; margin: 0; padding: 0; }

/* field container (CF7 wraps each line in <p>; DATA may also use div.frm-row) */
.wpcf7 form > p,
.wpcf7 form .frm-row > p,
.wpcf7 form .frm-row > label,
.wpcf7 form > div:not(.wpcf7-response-output):not(.frm-row) { margin: 0 0 20px; padding: 0; }
.wpcf7 form > p:empty { display: none; }

/* labels: Lucida Grande 14px bold, white (also on the light sidebar panel, as on the original) */
.wpcf7 label {
	display: block; margin: 0; padding: 0; max-width: 100%;
	font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, sans-serif; font-size: 14px; font-weight: bold; line-height: 21px;
	color: #fff; text-align: left; text-transform: none; letter-spacing: normal;
}
.wpcf7 label > br { display: none; }
.wpcf7 .frm_required { color: #b94a48; font-weight: bold; }
.wpcf7 .wpcf7-form-control-wrap { display: block; position: relative; margin-top: 3px; font-weight: normal; }

/* auto asterisk when the form template has no span.frm_required */
.wpcf7 label:has(.wpcf7-validates-as-required):not(:has(.frm_required)) { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: .3em; }
.wpcf7 label:has(.wpcf7-validates-as-required):not(:has(.frm_required))::after { content: "*"; order: 1; color: #b94a48; font-weight: bold; }
.wpcf7 label:has(.wpcf7-validates-as-required):not(:has(.frm_required)) > .wpcf7-form-control-wrap { order: 2; flex: 0 0 100%; }

/* inputs */
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 input[type=url],
.wpcf7 input[type=number], .wpcf7 input[type=date], .wpcf7 input[type=password], .wpcf7 select, .wpcf7 textarea {
	display: inline-block; width: 100%; max-width: 100%; height: auto; margin: 0; box-sizing: border-box;
	font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, sans-serif; font-size: 14px; font-weight: normal; line-height: 1.3;
	color: #555; background-color: #fff; background-image: none;
	border: 1px solid #ccc; border-radius: 4px; padding: 6px 10px; box-shadow: none; outline: 0; vertical-align: middle;
	-webkit-appearance: none; appearance: none;
}
.wpcf7 select { -webkit-appearance: auto; appearance: auto; }
.wpcf7 textarea { line-height: 1.5; resize: vertical; min-height: 0; }
.wpcf7 textarea:not([rows]), .wpcf7 textarea[rows="10"] { height: 119px; } /* 5 rows, as Formidable */
.wpcf7 input[type=file] { display: block; width: 100%; max-width: 100%; font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, sans-serif; font-size: 14px; font-weight: normal; color: #fff; padding: 6px 0; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus {
	background-color: #fff; border-color: #66afe9; color: #555; box-shadow: 0 0 5px 0 rgba(102, 175, 233, .6);
}
.wpcf7 input::placeholder, .wpcf7 textarea::placeholder { color: #a1a1a1; }

/* checkboxes / radios / acceptance */
.wpcf7 .wpcf7-list-item { margin: 0 1em 0 0; font-weight: normal; }
.wpcf7 .wpcf7-list-item-label { color: #fff; }

/* submit: white, 1px #ccc, radius 4px, padding 6px 11px, shadow 0 1px 1px #eee */
.wpcf7 form > p:has(.wpcf7-submit) { position: relative; margin: 0 0 20px; }
.wpcf7 input[type=submit], .wpcf7 .wpcf7-submit, .wpcf7 button[type=submit] {
	display: inline-block; width: auto; height: auto; margin: 10px 0; box-sizing: border-box;
	font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, sans-serif; font-size: 14px; font-weight: normal; line-height: normal;
	text-align: center; text-shadow: none; text-transform: none; letter-spacing: normal;
	color: #444; background: #fff; border: 1px solid #ccc; border-radius: 4px; padding: 6px 11px;
	box-shadow: 0 1px 1px #eee; cursor: pointer; vertical-align: middle;
}
.wpcf7 input[type=submit]:hover, .wpcf7 .wpcf7-submit:hover { background: #efefef; border-color: #ccc; color: #444; }
.wpcf7 input[type=submit]:focus, .wpcf7 input[type=submit]:active { background: #efefef; border-color: #ccc; color: #444; outline: none; }
.wpcf7 input[type=submit]:disabled { opacity: .5; cursor: not-allowed; }
.wpcf7 .wpcf7-spinner { position: absolute; top: 50%; margin: -12px 0 0 10px; }

/* validation (Formidable error look) */
.wpcf7 form .wpcf7-form-control.wpcf7-not-valid { color: #444; border-color: #b94a48; }
.wpcf7 .wpcf7-not-valid-tip {
	display: block; margin-top: 6px; padding: 0; font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, sans-serif;
	font-size: 12px; font-weight: bold; font-style: normal; line-height: 18px; color: #b94a48; text-align: left;
}

/* response output: success = Formidable .frm_message, problems = .frm_error_style */
/* inner.js moves the box to the top of the form and adds the linked error list (Formidable error summary) */
.wpcf7 form .wpcf7-response-output {
	margin: 0 0 20px; padding: 15px; border: 1px solid #ebccd1; border-radius: 4px;
	background-color: #f2dede; color: #b94a48; font-family: 'poppinsregular'; font-size: 14px; font-weight: normal; line-height: 21px; text-align: left;
}
.wpcf7 form.sent .wpcf7-response-output { margin: 5px 0 15px; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output { border-color: #ebccd1; }
.wpcf7 form .wpcf7-response-output > span { font-weight: 700; } /* Formidable summary heading (inline span, bold) */
.wpcf7 form .wpcf7-response-output .qh-error-list { margin: 3.5px 0 0; padding: 0 0 0 17.5px; list-style: disc; }
.wpcf7 form .wpcf7-response-output .qh-error-list li { margin: 0; padding: 0; }
.wpcf7 form .wpcf7-response-output .qh-error-list li + li { margin-top: 3.5px; }
.wpcf7 form .wpcf7-response-output .qh-error-list a { color: inherit; text-decoration: underline; }
.wpcf7 form.init .wpcf7-response-output, .wpcf7 form.resetting .wpcf7-response-output, .wpcf7 form.submitting .wpcf7-response-output { display: none; }
.wpcf7 form.sent .wpcf7-response-output { border-color: #d6e9c6; background-color: #dff0d8; color: #468847; }
/* Formidable replaced the form with its success message: hide the fields once sent */
.wpcf7 form.sent { padding-bottom: 0; }
.wpcf7 form.sent > :not(.wpcf7-response-output) { display: none; }

/* careers: two fields per row (Formidable frm_half, 2% gap) */
.wpcf7 .frm-row { display: grid; grid-template-columns: 1fr 1fr; column-gap: 2%; margin: 0; }
.wpcf7 .frm-row > p, .wpcf7 .frm-row > label { margin-bottom: 20px; }
@media (max-width: 600px) {
	.wpcf7 .frm-row { grid-template-columns: 1fr; }
}

/* file upload = Formidable single-file dropzone (white panel, dashed 1px #98a2b3 box) */
.wpcf7 .wpcf7-form-control-wrap:has(> input[type=file]) {
	margin-top: 8px; padding: 7px 0 14px; background: #fff; border: 1px solid transparent; border-radius: 4px;
}
.wpcf7 input[type=file] {
	display: block; width: 100%; height: 123.140625px; /* = Formidable dropzone message box (button 20 + small text 17.1 + margins) */ margin: 0; padding: 24px; box-sizing: border-box;
	background: #fff; border: 1px dashed #98a2b3; border-radius: 4px; color: #555; font-size: 14px; line-height: 20px; text-align: center; cursor: pointer;
}
.wpcf7 input[type=file]::file-selector-button { font-family: inherit; font-size: 14px; color: #444; background: #fff; border: 1px solid #ccc; border-radius: 4px; padding: 6px 11px; margin-right: 10px; cursor: pointer; }

/* employment application (careers): First/Last and Phone/Email side by side like Formidable frm_half */
.wpcf7 form.quahog-form--employment-application { display: grid; grid-template-columns: 1fr 1fr; column-gap: 2%; }
.wpcf7 form.quahog-form--employment-application > * { grid-column: 1 / -1; }
.wpcf7 form.quahog-form--employment-application > p:nth-of-type(-n+4) { grid-column: auto; }
.wpcf7 form.quahog-form--employment-application > p:has(.wpcf7-submit) { margin-bottom: 0; } /* this form had no honeypot row */
@media (max-width: 600px) {
	.wpcf7 form.quahog-form--employment-application > p:nth-of-type(-n+4) { grid-column: 1 / -1; }
}

/* ---- placement-specific (from the original custom.css) ---- */
/* /feedback/client-response/: full-width light-blue submit */
.client-response .wpcf7 { margin: auto; }
.client-response .bg-inner .wpcf7 form p { padding: 0; font-size: inherit; line-height: inherit; }
.client-response .wpcf7 input[type=submit], .client-response .wpcf7 .wpcf7-submit {
	display: block; width: 100%; padding: .85em 0; font-family: 'poppinsbold', sans-serif !important; font-size: 1rem;
	text-transform: uppercase; letter-spacing: .08em; color: #000; background-color: #85a4df;
}
.client-response .wpcf7 input[type=submit]:hover { background-color: #85a4df; color: #000; }
.client-response .wpcf7 form > p:has(.wpcf7-submit) { padding: 10px 0 16px; }
@media (max-width: 59.999em) { .client-response .wpcf7 form > p:has(.wpcf7-submit) { padding-bottom: 11px; } }
.client-response .wpcf7 form > p:has(.wpcf7-submit) .wpcf7-submit { margin: 0; }
.client-response .wpcf7 .wpcf7-spinner { top: auto; bottom: -8px; left: 50%; margin: 0 0 0 -12px; }
