/* WordPress + Contact Form 7 additions to the mockup styles */

.wpcf7 form { margin: 0; }
.wpcf7-form-control-wrap { display: block; }
.wpcf7 .hidden-fields-container { display: none; border: 0; padding: 0; margin: 0; }

/* Radio groups shown as chips */
.chips .wpcf7-form-control-wrap { display: contents; }
.chips .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 8px; }
.chips .wpcf7-list-item { margin: 0; }
.chips .wpcf7-list-item label { position: relative; cursor: pointer; }
.chips .wpcf7-list-item input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chips .wpcf7-list-item-label { display: inline-flex; align-items: center; padding: 9px 14px; border-radius: 999px; border: 1.5px solid var(--line); background: #fff; font-size: .9rem; font-weight: 500; user-select: none; transition: background .15s, border-color .15s; }
.chips .wpcf7-list-item-label:hover { border-color: var(--green); }
.chips label:has(input:checked) .wpcf7-list-item-label { background: var(--ink); color: var(--cream); border-color: var(--ink); }
.chips label:has(input:focus-visible) .wpcf7-list-item-label { outline: 2px solid var(--green); outline-offset: 2px; }

/* Submit buttons */
.wpcf7-submit.btn { width: 100%; margin-top: 6px; border: 0; }
.qq .wpcf7-submit { width: 100%; }
.btn--block { width: 100%; }
.wpcf7-spinner { display: block; margin: 10px auto 0; }

/* File inputs inside the dashed upload box */
.upload { display: grid; gap: 10px; text-align: left; padding: 16px; }
.upload input[type="file"] { width: 100%; font: 500 .88rem var(--font-body); color: var(--muted); }
.upload input[type="file"]::file-selector-button { margin-right: 12px; padding: 8px 14px; border-radius: 999px; border: 1.5px solid var(--line); background: var(--cream); font: 600 .85rem var(--font-body); color: var(--ink); cursor: pointer; }
.upload input[type="file"]::file-selector-button:hover { border-color: var(--green); }
.upload.has-file { border-color: var(--green); }

/* Validation + response messages */
.wpcf7-not-valid-tip { display: block; margin-top: 6px; font-size: .82rem; font-weight: 500; color: #b4412b; }
.wpcf7-not-valid { border-color: #d27a63 !important; }
.wpcf7 form .wpcf7-response-output { margin: 16px 0 0; padding: 12px 16px; border-radius: var(--radius-sm); border: 1.5px solid var(--line); font-size: .92rem; }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--green); background: #f1f9e6; color: var(--ink); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output { border-color: #e2b25b; background: #fff8e8; }
.wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output { border-color: #d27a63; background: #fdf0ec; }
.wpcf7 form.init .wpcf7-response-output, .wpcf7 form.resetting .wpcf7-response-output, .wpcf7 form.submitting .wpcf7-response-output { display: none; }

/* Quote stepper: CF7 shows its own messages, the thanks pane handles success */
.gpw-form--quote form.sent .wpcf7-response-output { display: none; }

/* Booking: CF7 wraps the layout in a form */
.gpw-form--booking .book-layout { margin-top: 32px; }
.summary .field label { color: var(--ink-2); }

.gpw-form-missing { padding: 16px; border: 1.5px dashed var(--line); border-radius: var(--radius-sm); }

/* Admin bar offset for the sticky nav */
.admin-bar .nav { top: 32px; }
@media (max-width: 782px) { .admin-bar .nav { top: 0; } }

/* Generic page content (privacy policy etc.) */
.prose h2 { margin-top: 1.4em; }
.prose a { color: var(--green); text-decoration: underline; }

/* Logo image has width/height attributes for layout stability; keep its ratio */
.logo img { height: auto; }
