/* LS Wonen — Contact Form 7 styled wrapper */
.lsw-cf7-section { --white:#FFFFFF; --bone:#F8F6F2; --ink:#14151A; --body:#6E707A; --rule:#ECECEA; --accent:#C89F49; --accent-soft:#FCEFE8; font-family:'Manrope',system-ui,sans-serif; background:var(--white); color:var(--ink); }
.lsw-cf7-section *, .lsw-cf7-section *::before, .lsw-cf7-section *::after { box-sizing:border-box; }
.lsw-cf7 { max-width:1080px; margin:0 auto; padding:96px 32px; }
.lsw-cf7__head { text-align:center; max-width:640px; margin:0 auto 40px; }
.lsw-cf7__eyebrow { display:inline-flex; align-items:center; gap:10px; padding:5px 14px 5px 5px; background:#fff; border:1px solid var(--rule); border-radius:999px; font-size:12.5px; font-weight:600; color:var(--ink); margin-bottom:18px; box-shadow:0 6px 18px -10px rgba(15,15,15,.12), 0 1px 2px rgba(15,15,15,.04); letter-spacing:-.005em; }
.lsw-cf7__eyebrow-icon { width:28px; height:28px; border-radius:9px; background:linear-gradient(135deg, var(--accent-soft) 0%, #F6DDD0 100%); color:var(--accent); display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }
.lsw-cf7__eyebrow-icon svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.lsw-cf7__h2 { font-size:clamp(28px, 3.2vw, 40px); line-height:1.1; letter-spacing:-.02em; font-weight:700; margin:0 0 12px; color:var(--ink); }
.lsw-cf7__intro { font-size:15px; line-height:1.6; color:var(--body); margin:0; }
.lsw-cf7__card { background:#fff; border:1px solid var(--rule); border-radius:24px; padding:40px 44px; box-shadow:0 30px 60px -28px rgba(15,15,15,.16); }

/* CF7 form internals */
.lsw-cf7__grid { display:grid; grid-template-columns:1fr 1fr; gap:18px 20px; }
.lsw-cf7__field { margin:0; display:flex; flex-direction:column; gap:8px; }
.lsw-cf7__field--full { grid-column:1 / -1; }
.lsw-cf7__row { grid-column:1 / -1; display:grid; grid-template-columns:1fr 1fr; gap:18px 20px; }
.lsw-cf7__field label { font-size:12.5px; font-weight:700; color:var(--ink); letter-spacing:-.005em; }
.lsw-cf7__field label span { color:var(--accent); }
.lsw-cf7__card .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-radio):not(.wpcf7-checkbox) { width:100%; padding:13px 16px; background:var(--bone); border:1px solid transparent; border-radius:12px; font-family:inherit; font-size:14.5px; color:var(--ink); transition:background .25s ease, border-color .25s ease, box-shadow .25s ease; }
.lsw-cf7__card .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-radio):not(.wpcf7-checkbox):hover { background:#fff; border-color:var(--rule); }
.lsw-cf7__card .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-radio):not(.wpcf7-checkbox):focus { outline:0; background:#fff; border-color:var(--accent); box-shadow:0 0 0 4px rgba(200,159,73,.18); }
.lsw-cf7__card .wpcf7-form-control::placeholder { color:#A0A0A8; }
.lsw-cf7__card .wpcf7-form-control.wpcf7-textarea { resize:vertical; min-height:120px; line-height:1.5; }
.lsw-cf7__card .wpcf7-form-control.wpcf7-select { appearance:none; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2314151A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>"); background-repeat:no-repeat; background-position:right 16px center; padding-right:42px; cursor:pointer; }
.lsw-cf7__card .wpcf7-form-control.wpcf7-radio { display:flex; flex-wrap:wrap; gap:8px; }
.lsw-cf7__card .wpcf7-form-control.wpcf7-radio .wpcf7-list-item { margin:0; }
.lsw-cf7__card .wpcf7-form-control.wpcf7-radio label { display:inline-flex; align-items:center; gap:8px; padding:10px 16px 10px 12px; background:var(--bone); border:1px solid transparent; border-radius:999px; font-size:13px; font-weight:600; color:var(--ink); cursor:pointer; transition:background .25s ease, border-color .25s ease, color .25s ease; }
.lsw-cf7__card .wpcf7-form-control.wpcf7-radio label:hover { background:#fff; border-color:var(--rule); }
.lsw-cf7__card .wpcf7-form-control.wpcf7-radio input[type="radio"] { appearance:none; width:16px; height:16px; border-radius:50%; border:1.5px solid var(--rule); margin:0; cursor:pointer; position:relative; transition:border-color .25s ease, background .25s ease; }
.lsw-cf7__card .wpcf7-form-control.wpcf7-radio input[type="radio"]:checked { border-color:var(--accent); background:var(--accent); }
.lsw-cf7__card .wpcf7-form-control.wpcf7-radio input[type="radio"]:checked::after { content:""; position:absolute; inset:3px; border-radius:50%; background:#fff; }
.lsw-cf7__card .wpcf7-form-control.wpcf7-radio .wpcf7-list-item:has(input:checked) label { background:var(--ink); color:#fff; border-color:var(--ink); }

/* Submit button — pill with arrow */
.lsw-cf7__submit { grid-column:1 / -1; display:flex; justify-content:flex-end; margin:8px 0 0; }
.lsw-cf7__card .wpcf7-submit { position:relative; display:inline-flex; align-items:center; gap:10px; padding:14px 24px; background:var(--ink); color:#fff; border:0; border-radius:999px; font-family:inherit; font-size:14px; font-weight:600; letter-spacing:-.005em; cursor:pointer; transition:background .3s ease, transform .35s cubic-bezier(.2,.7,.2,1); }
.lsw-cf7__card .wpcf7-submit::after { content:""; width:8px; height:8px; border-top:2px solid #fff; border-right:2px solid #fff; transform:rotate(45deg); margin-left:2px; }
.lsw-cf7__card .wpcf7-submit:hover { background:var(--accent); transform:translateY(-2px); }

/* Validation + response messages */
.lsw-cf7__card .wpcf7-not-valid-tip { display:block; margin-top:6px; font-size:12px; color:#C8654B; font-weight:600; }
.lsw-cf7__card .wpcf7-response-output { margin:20px 0 0 !important; padding:14px 18px !important; border-radius:12px !important; font-size:13.5px !important; border:0 !important; }
.lsw-cf7__card .wpcf7-mail-sent-ok { background:#E8F7EE !important; color:#2D7A4B !important; }
.lsw-cf7__card .wpcf7-validation-errors, .lsw-cf7__card .wpcf7-acceptance-missing, .lsw-cf7__card .wpcf7-mail-sent-ng { background:#FBEDE5 !important; color:#9C4A2C !important; }
.lsw-cf7__card .wpcf7-spinner { background:var(--accent); }
.lsw-cf7__card form.invalid .wpcf7-form-control.wpcf7-not-valid { border-color:#C8654B; box-shadow:0 0 0 4px rgba(200,101,75,.12); }

@media (max-width: 720px) {
    .lsw-cf7 { padding:64px 16px; }
    .lsw-cf7__card { padding:24px 22px; border-radius:18px; }
    .lsw-cf7__grid { grid-template-columns:1fr; gap:14px; }
    .lsw-cf7__row { grid-template-columns:1fr; gap:14px; }
    .lsw-cf7__submit { justify-content:stretch; }
    .lsw-cf7__card .wpcf7-submit { width:100%; justify-content:center; }
}
