/* Custom Contact Forms — modern, self-contained styling (scoped to .ccf-form). */
.ccf-form{
    --ccf-accent:#BF4426;
    --ccf-ink:#2B2018;
    --ccf-muted:#7c6f63;
    --ccf-line:#e2d8c8;
    --ccf-bg:#fff;
    --ccf-radius:12px;
    max-width:720px;
    margin:8px auto;
    padding:0 4px;
    box-sizing:border-box;
    text-align:left;
}
.ccf-form *{ box-sizing:border-box; }

/* Rows → responsive flex columns (2-up on wide, stack on mobile) — no Bootstrap grid needed. */
.ccf-form .row{ display:flex; flex-wrap:wrap; width:100%!important; margin:0 -8px; }
.ccf-form .row > div{ flex:1 1 240px; min-width:0; padding:8px!important; }

/* Labels */
.ccf-form .form-label,
.ccf-form label:not(.form-check-label){
    display:block; margin:0 0 6px; padding:0!important;
    font-size:14px; font-weight:600; color:var(--ccf-ink);
}
.ccf-form .required::after{ content:" *"; color:var(--ccf-accent); font-weight:700; }

/* Inputs / textarea / select */
.ccf-form input[type=text],
.ccf-form input[type=email],
.ccf-form input[type=tel],
.ccf-form input[type=number],
.ccf-form input[type=date],
.ccf-form input[type=file],
.ccf-form textarea,
.ccf-form select,
.ccf-form .form-control{
    display:block; width:100%!important;
    padding:12px 14px; margin:0;
    font-size:15px; line-height:1.4; color:var(--ccf-ink);
    background:var(--ccf-bg); border:1px solid var(--ccf-line); border-radius:var(--ccf-radius);
    transition:border-color .15s, box-shadow .15s; appearance:none;
}
.ccf-form textarea{ min-height:150px; resize:vertical; }
.ccf-form input::placeholder,
.ccf-form textarea::placeholder{ color:#b3a696; }
.ccf-form input:focus,
.ccf-form textarea:focus,
.ccf-form select:focus,
.ccf-form .form-control:focus{
    outline:none; border-color:var(--ccf-accent);
    box-shadow:0 0 0 3px rgba(191,68,38,.16);
}
.ccf-form select{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%237c6f63' d='M6 8 0 2l1.4-1.4L6 5.2 10.6.6 12 2z'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 14px center; padding-right:36px;
}
.ccf-form input[type=file]{ padding:10px 14px; }

/* Checkbox / radio (e.g. the consent row) */
.ccf-form .form-check{ display:flex!important; align-items:flex-start; gap:10px; padding:0!important; margin:4px 0; }
.ccf-form .form-check-input{
    width:20px!important; height:20px; margin:2px 0 0!important; flex:0 0 auto;
    accent-color:var(--ccf-accent); cursor:pointer;
}
.ccf-form .form-check-label{ margin:0; font-size:14.5px; color:var(--ccf-ink); line-height:1.5; font-weight:400; }

/* "required" note + captcha spacing */
.ccf-form .ccf-captcha-wrap{ padding:8px; margin-top:4px; }
.ccf-form p{ font-size:13px; color:var(--ccf-muted); margin:10px 8px 0; }

/* Submit button */
.ccf-form button[type=submit],
.ccf-form button.btn{
    appearance:none; cursor:pointer; border:0;
    min-width:180px; padding:13px 30px; margin-top:8px;
    font-size:15px; font-weight:700; color:#fff;
    background:var(--ccf-accent)!important; border-radius:999px;
    transition:filter .15s, transform .08s;
}
.ccf-form button[type=submit]:hover,
.ccf-form button.btn:hover{ filter:brightness(1.06); }
.ccf-form button[type=submit]:active,
.ccf-form button.btn:active{ transform:translateY(1px); }
.ccf-form button[disabled]{ opacity:.65; cursor:default; }

/* Honeypot stays hidden regardless of theme */
.ccf-form .ccf-hp{ position:absolute!important; left:-9999px!important; top:-9999px!important; width:1px; height:1px; overflow:hidden; }

/* Retain the old required-highlight helper (placeholder-only fields) */
.ccf-form .placeholder-required{ border-left:3px solid var(--ccf-accent)!important; }

@media (max-width:575px){
    .ccf-form .row > div{ flex:1 1 100%; }
    .ccf-form button[type=submit]{ width:100%; }
}
