/* Shared Contact Form 7 controls: the same blue, fine rules and spacing as the theme. */
.form-panel { max-width:980px; margin:48px auto 80px; }
.form-panel .wpcf7 form > p { margin:0; }
.wpcf7 .form-note { margin:0 0 20px !important; color:#526679; font-size:14px; }
.wpcf7 label { display:block; font-weight:600; }
.wpcf7 .form-field { display:grid; grid-template-columns:240px minmax(0,1fr); gap:32px; align-items:start; padding:26px 0; border-top:1px solid var(--line); }
.wpcf7 .form-label { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding-top:14px; font-size:15px; line-height:1.8; color:var(--ink); }
.wpcf7 .form-required,.wpcf7 .form-optional { display:inline-flex; align-items:center; flex-shrink:0; padding:2px 8px; border:1px solid transparent; border-radius:3px; font-size:11px; font-weight:600; line-height:1.6; letter-spacing:.05em; }
.wpcf7 .form-required { background:var(--blue); color:#fff; }
.wpcf7 .form-optional { border-color:var(--line); background:var(--pale); color:#526679; }
.wpcf7-form-control-wrap { display:block; min-width:0; margin-top:8px; }
.wpcf7 .form-field > .wpcf7-form-control-wrap { margin-top:0; }
.wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),.wpcf7 textarea,.wpcf7 select { display:block; width:100%; max-width:100%; min-height:54px; padding:14px 16px; border:1px solid var(--line); border-radius:3px; background:#f7f9fb; color:var(--ink); font:inherit; font-size:16px; font-weight:400; line-height:1.6; transition:border-color .2s,background-color .2s; }
.wpcf7 textarea { min-height:190px; resize:vertical; }
.wpcf7 select { appearance:none; -webkit-appearance:none; padding-right:48px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23164688' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 18px center; background-size:16px; }
.wpcf7 input::placeholder,.wpcf7 textarea::placeholder { color:#68798a; opacity:1; }
.wpcf7 :is(input,select,textarea):focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.wpcf7 :is(input,select,textarea):focus { border-color:var(--blue); }
.wpcf7 input[type="checkbox"],.wpcf7 input[type="radio"] { width:20px; height:20px; accent-color:var(--blue); vertical-align:middle; }
.wpcf7-list-item { margin:0 20px 8px 0; }
.wpcf7 .form-privacy { margin:18px 0 30px; padding:28px 32px; border:1px solid var(--line); background:var(--pale); color:var(--ink); font-size:14px; line-height:1.9; }
.wpcf7 .form-privacy p { margin:0 0 18px; }
.wpcf7 .form-policy-link { color:var(--blue); font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.wpcf7 .form-policy-link:hover { color:#10386d; opacity:1; }
.wpcf7 .form-policy-link:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }
.wpcf7 .wpcf7-acceptance .wpcf7-list-item { margin:0; }
.wpcf7 .wpcf7-acceptance label { display:flex; align-items:flex-start; gap:12px; }
.wpcf7 .wpcf7-acceptance input { flex:0 0 20px; margin:3px 0 0; }
.wpcf7 .form-submit { position:relative; text-align:center; }
.wpcf7 input[type="submit"] { min-height:58px; min-width:320px; max-width:100%; padding:17px 28px; border:1px solid var(--blue); border-radius:3px; background:var(--blue); color:#fff; font:inherit; font-size:15px; font-weight:700; line-height:1.6; cursor:pointer; }
.wpcf7 input[type="submit"]:hover:not(:disabled) { background:#10386d; border-color:#10386d; }
.wpcf7 input[type="submit"]:disabled { opacity:.6; cursor:not-allowed; }
.wpcf7 .form-submit .wpcf7-spinner { position:absolute; top:17px; margin:0 0 0 12px; }
.wpcf7 .wpcf7-not-valid-tip { margin-top:8px; color:#a01919; font-size:14px; font-weight:400; }
.wpcf7 .wpcf7-not-valid { border-color:#a01919 !important; }
.wpcf7 form .wpcf7-response-output { margin:24px 0; padding:18px 22px; background:var(--pale); color:var(--ink); font-size:14px; }
.wpcf7 form.sent .wpcf7-response-output { border-color:var(--blue); }
.privacy-content { max-width:850px; margin:0 auto 70px; }
.privacy-content h2 { margin:42px 0 20px; padding-bottom:16px; border-bottom:1px solid var(--line); font-size:clamp(20px,2.2vw,26px); line-height:1.7; }
.privacy-content p { font-size:15px; line-height:2; overflow-wrap:anywhere; }
@media(max-width:1000px) { .wpcf7 .form-field { grid-template-columns:190px minmax(0,1fr); gap:24px; } }
@media(max-width:700px) {
 .form-panel { margin:32px auto 55px; }
 .wpcf7 .form-field { grid-template-columns:minmax(0,1fr); gap:12px; padding:22px 0; }
 .wpcf7 .form-label { padding-top:0; font-size:14px; }
 .wpcf7 .form-privacy { padding:22px 20px; }
 .wpcf7 input[type="submit"] { min-width:0; width:100%; padding-inline:16px; font-size:14px; }
 .wpcf7 .form-submit .wpcf7-spinner { top:calc(100% + 8px); left:calc(50% - 12px); margin:0; }
 .privacy-content h2 { margin-top:32px; }
}
@media(forced-colors:active) { .wpcf7 select { appearance:auto; background-image:none; } }
@media(prefers-reduced-motion:reduce) { .wpcf7 :is(input,textarea,select) { transition:none; } }
