/* Theme-aware Contact Form 7 presentation. Does not replace the theme palette. */
.wpcf7 form { max-width: 100%; }
.wpcf7 form p { margin: 0 0 1.1rem; }
.wpcf7 form label { display: block; font-weight: 600; line-height: 1.45; }
.wpcf7 form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.wpcf7 form select, .wpcf7 form textarea {
  box-sizing: border-box; display: block; width: 100%; max-width: 100%; margin-top: .4rem; padding: .8rem .9rem;
  color: inherit; font: inherit; line-height: 1.45; background: transparent; border: 1px solid currentColor;
  border-color: color-mix(in srgb, currentColor 28%, transparent); border-radius: .55rem; transition: border-color .18s ease, box-shadow .18s ease;
}
.wpcf7 form textarea { min-height: 9rem; resize: vertical; }
.wpcf7 form input:focus, .wpcf7 form select:focus, .wpcf7 form textarea:focus { outline: 2px solid var(--wp--preset--color--primary, var(--e-global-color-primary, currentColor)); outline-offset: 2px; }
.wpcf7 form input[type="checkbox"], .wpcf7 form input[type="radio"] { margin-inline-end: .45rem; }
.wpcf7 form input[type="submit"], .wpcf7 form button[type="submit"] { display: inline-flex; align-items: center; justify-content: center; min-height: 2.8rem; padding: .75rem 1.35rem; border: 1px solid currentColor; border-radius: .55rem; font: inherit; font-weight: 700; cursor: pointer; max-width: 100%; }
.wpcf7 form input[type="submit"]:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.wpcf7 form .wpcf7-not-valid-tip { display: block; margin-top: .35rem; font-size: .92em; }
.wpcf7 form .wpcf7-response-output { margin: 1rem 0 0; padding: .9rem 1rem; border-radius: .5rem; }
.wpcf7 form .wpcf7-spinner { vertical-align: middle; }
.wpcf7 form .wpcf7-list-item { margin: .35rem 1rem .35rem 0; }
@media (max-width: 640px) {
  .wpcf7 form input[type="submit"] { width: 100%; }
  .wpcf7 form p { margin-bottom: .9rem; }
  .wpcf7 form .wpcf7-response-output { margin-inline: 0; }
}
.cf7m-chat { width: 100%; max-width: 560px; overflow: hidden; border: 1px solid color-mix(in srgb, currentColor 20%, transparent); border-radius: 1rem; color: inherit; background: var(--wp--preset--color--base, var(--e-global-color-background, transparent)); box-shadow: 0 8px 28px rgb(0 0 0 / 8%); }
.cf7m-chat__header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.1rem; border-bottom:1px solid color-mix(in srgb,currentColor 16%,transparent); }
.cf7m-chat__status { font-size:.82rem; opacity:.75; }
.cf7m-chat__messages { display:flex; flex-direction:column; gap:.75rem; min-height:180px; max-height:360px; overflow-y:auto; padding:1rem; }
.cf7m-chat__bubble { max-width:88%; padding:.7rem .85rem; border-radius:.85rem; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.5; }
.cf7m-chat__bubble--assistant { align-self:flex-start; background:color-mix(in srgb,currentColor 8%,transparent); }
.cf7m-chat__bubble--user { align-self:flex-end; background:var(--wp--preset--color--primary, var(--e-global-color-primary, #0b6b43)); color:#fff; }
.cf7m-chat__form { display:flex; gap:.55rem; padding:.85rem; border-top:1px solid color-mix(in srgb,currentColor 16%,transparent); }
.cf7m-chat__form input { flex:1; min-width:0; padding:.75rem .8rem; color:inherit; background:transparent; border:1px solid color-mix(in srgb,currentColor 28%,transparent); border-radius:.5rem; font:inherit; }
.cf7m-chat__form button { padding:.7rem 1rem; border:0; border-radius:.5rem; color:#fff; background:var(--wp--preset--color--primary, var(--e-global-color-primary, #0b6b43)); font:inherit; font-weight:700; cursor:pointer; }
.cf7m-chat__form button:disabled { opacity:.6; cursor:wait; }
.cf7m-chat__disclaimer { margin:0; padding:0 .9rem .85rem; font-size:.78rem; opacity:.72; }
.cf7m-chat-notice { padding:.8rem 1rem; border:1px solid currentColor; border-radius:.5rem; }
.cf7m-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 1rem; }
.cf7m-form-grid > p { min-width:0; }
@media (max-width:640px) { .cf7m-form-grid { grid-template-columns:minmax(0,1fr); gap:0; } }
