/* Defaults deliberately have low specificity so Divi's per-module styles win. */
:where(.mmcf7_module) { width:100%; }
:where(.mmcf7-shell) { --mmcf7-gap:32px;--mmcf7-row-gap:20px;--mmcf7-height:52px;--mmcf7-textarea-height:150px;--mmcf7-cols:2;--mmcf7-tablet-cols:2;--mmcf7-align:right;--mmcf7-button-justify:flex-end;--mmcf7-button-hover-bg:#80651c;--mmcf7-button-hover-color:#fff;--mmcf7-button-hover-border:#80651c;--mmcf7-focus:#1f63c6;color:#111;font-size:15px;line-height:1.5; }
:where(.mmcf7-shell *) { box-sizing:border-box; }
:where(.mmcf7-shell p) { margin:0;padding:0; }
:where(.mmcf7-shell .mmcf7-grid) { display:grid;grid-template-columns:repeat(var(--mmcf7-cols),minmax(0,1fr));gap:var(--mmcf7-row-gap) var(--mmcf7-gap); }
:where(.mmcf7-shell .mmcf7-field) { min-width:0; }
:where(.mmcf7-shell .mmcf7-full) { grid-column:1 / -1; }
:where(.mmcf7-shell .contact-row) { display:grid;grid-template-columns:repeat(var(--mmcf7-cols),minmax(0,1fr));gap:var(--mmcf7-row-gap) var(--mmcf7-gap);margin-bottom:var(--mmcf7-row-gap); }
:where(.mmcf7-shell .contact-half) { width:auto;min-width:0; }
:where(.mmcf7-shell .contact-full) { width:100%;margin-bottom:var(--mmcf7-row-gap); }
:where(.mmcf7-shell label) { display:block;position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal;color:#111;line-height:1.4; }
:where(.mmcf7-shell .mmcf7-label) { display:block;margin-bottom:8px; }
:where(.mmcf7-shell .contact-form label) { margin-bottom:8px; }
:where(.mmcf7-shell .mmcf7-required) { color:#b40000;font-weight:600; }
:where(.mmcf7-shell .wpcf7-form-control-wrap) { display:block; }
:where(.mmcf7-shell input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]),.mmcf7-shell select,.mmcf7-shell textarea) { display:block;width:100%;max-width:100%;height:var(--mmcf7-height);border:1px solid #1a1a1a;border-radius:0;background:#fff;color:#111;font-size:15px;font-family:inherit;padding:0 17px;box-shadow:none; }
:where(.mmcf7-shell textarea) { height:var(--mmcf7-textarea-height);min-height:80px;padding-top:15px;resize:vertical; }
:where(.mmcf7-shell input::placeholder,.mmcf7-shell textarea::placeholder) { color:#666;opacity:1; }
:where(.mmcf7-shell input[type=file]) { height:auto;min-height:var(--mmcf7-height);padding:12px; }
:where(.mmcf7-shell input[type=checkbox],.mmcf7-shell input[type=radio]) { width:20px;height:20px;vertical-align:middle;accent-color:#80651c; }
:where(.mmcf7-shell .wpcf7-list-item) { margin:0 16px 0 0; }
:where(.mmcf7-shell .wpcf7-list-item label) { display:inline; }
:where(.mmcf7-shell .mmcf7-submit,.mmcf7-shell .contact-submit) { grid-column:1 / -1;width:100%;text-align:var(--mmcf7-align);margin-top:var(--mmcf7-row-gap); }
:where(.mmcf7-shell .mmcf7-grid .mmcf7-submit) { margin-top:0; }
:where(.mmcf7-shell .mmcf7-submit > p,.mmcf7-shell .contact-submit > p) { display:inline-flex;position:relative;align-items:center;justify-content:var(--mmcf7-button-justify);width:auto;margin:0!important; }
:where(.mmcf7-shell .wpcf7-submit) { width:auto;min-height:48px;padding:12px 20px;border:2px solid #80651c;border-radius:0;background:transparent;color:#80651c;font-family:inherit;font-size:16px;font-weight:600;line-height:1.3;cursor:pointer;transition:background-color .2s,color .2s; }
:where(.mmcf7-shell .wpcf7-submit:disabled) { opacity:.65;cursor:wait; }
.mmcf7-shell .mmcf7-submit > p > .wpcf7-spinner,.mmcf7-shell .contact-submit > p > .wpcf7-spinner { position:absolute;margin:0; }
.mmcf7-shell[data-loader-visible=off] .wpcf7-spinner { display:none!important; }
.mmcf7-shell[data-loader-position=left] .mmcf7-submit > p > .wpcf7-spinner,.mmcf7-shell[data-loader-position=left] .contact-submit > p > .wpcf7-spinner { right:calc(100% + 10px);top:50%;transform:translateY(-50%); }
.mmcf7-shell[data-loader-position=right] .mmcf7-submit > p > .wpcf7-spinner,.mmcf7-shell[data-loader-position=right] .contact-submit > p > .wpcf7-spinner { left:calc(100% + 10px);top:50%;transform:translateY(-50%); }
.mmcf7-shell[data-loader-position=top] .mmcf7-submit > p > .wpcf7-spinner,.mmcf7-shell[data-loader-position=top] .contact-submit > p > .wpcf7-spinner { left:50%;bottom:calc(100% + 8px);transform:translateX(-50%); }
.mmcf7-shell[data-loader-position=bottom] .mmcf7-submit > p > .wpcf7-spinner,.mmcf7-shell[data-loader-position=bottom] .contact-submit > p > .wpcf7-spinner { left:50%;top:calc(100% + 8px);transform:translateX(-50%); }
:where(.mmcf7-shell .mmcf7-info) { display:flex;align-items:flex-start;gap:10px;padding:16px 17px;margin-bottom:28px;border:1px solid #1f63c6;background:#f4f6f9;color:#111; }
:where(.mmcf7-info-icon) { display:inline-flex;flex:0 0 18px;align-items:center;justify-content:center;width:18px;height:18px;margin-top:2px;border-radius:50%;background:#111;color:#fff;font-size:12px;font-weight:700; }
:where(.mmcf7-shell .mmcf7-status) { padding:16px 18px;margin-top:24px;border:1px solid #1f63c6;background:#f4f6f9;color:#17395f;overflow-wrap:anywhere; }
:where(.mmcf7-shell .mmcf7-status[data-state=success]) { border-color:#24734a;background:#effaf2;color:#174c32; }
:where(.mmcf7-shell .mmcf7-status:is([data-state=invalid],[data-state=failure],[data-state=spam])) { border-color:#b42318;background:#fff3f1;color:#8b1c14; }
:where(.mmcf7-shell .wpcf7-not-valid-tip) { display:block;margin-top:6px;color:#b42318;font-size:14px; }
:where(.mmcf7-shell [aria-invalid=true]) { border-color:#b42318; }
:where(.mmcf7-shell .mmcf7-status a) { text-decoration:underline;color:inherit; }
:where(.mmcf7-shell .mmcf7-status ul) { margin:10px 0 0;padding-left:20px; }
:where(.mmcf7-shell .mmcf7-status p + p) { margin-top:8px; }
:where(.mmcf7-empty) { padding:24px;border:1px dashed #9299a2;background:#f6f7f9; }
/* Focus remains visible even with theme resets. */
.mmcf7-shell :is(input,select,textarea,button,a):focus-visible { outline:2px solid var(--mmcf7-focus);outline-offset:3px; }
.mmcf7-shell [hidden] { display:none !important; }
.mmcf7-shell.mmcf7-enhanced .wpcf7-response-output,.mmcf7-preview .wpcf7-response-output { display:none !important; }
.mmcf7-preview .screen-reader-response { display:none; }
.mmcf7-preview :is(input,select,textarea,button) { pointer-events:none; }
.mmcf7-preview[data-preview-state=loading] .wpcf7-submit { opacity:.65; }
.mmcf7-shell .mmcf7-sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
@media (max-width:980px) { :where(.mmcf7-shell .mmcf7-grid,.mmcf7-shell .contact-row) { grid-template-columns:repeat(var(--mmcf7-tablet-cols),minmax(0,1fr)); } }
@media (max-width:767px) { :where(.mmcf7-shell .mmcf7-grid,.mmcf7-shell .contact-row) { grid-template-columns:minmax(0,1fr); } }
@media (prefers-reduced-motion:reduce) { .mmcf7-shell * { transition:none !important;scroll-behavior:auto !important; } }

/* Replace the legacy notice only when the module supplies its own notice. */
.mmcf7-shell:has(> .mmcf7-info) .form-required-info { display:none; }

/* Notice controls, inherited text styles remain compatible with older modules. */
:where(.mmcf7-shell .mmcf7-info) { gap:var(--mmcf7-info-gap,10px);align-items:var(--mmcf7-info-align,center); }
:where(.mmcf7-shell .mmcf7-info-text) { display:block;flex:var(--mmcf7-info-grow,0) 1 auto;min-width:0;max-width:var(--mmcf7-info-text-width,none);overflow-wrap:anywhere; }
:where(.mmcf7-shell .mmcf7-info-icon) { flex:0 0 var(--mmcf7-icon-size,18px);width:var(--mmcf7-icon-size,18px);height:var(--mmcf7-icon-size,18px);border-radius:var(--mmcf7-icon-radius,50%);margin-top:0;overflow:hidden; }
:where(.mmcf7-shell .mmcf7-info[data-icon-position=right]) { flex-direction:row-reverse; }
:where(.mmcf7-shell .mmcf7-info[data-icon-position=top]) { flex-direction:column; }

/* Explicit flex layout wins over theme defaults; Divi decoration styles remain available. */
.mmcf7-shell .mmcf7-info { display:flex;align-items:var(--mmcf7-info-align,center);justify-content:var(--mmcf7-info-justify,flex-start);flex-wrap:var(--mmcf7-info-wrap,nowrap);gap:var(--mmcf7-info-gap,10px);min-height:var(--mmcf7-info-min-height,0px); }
.mmcf7-shell .mmcf7-info-icon { display:inline-flex;align-items:center;justify-content:center;align-self:auto; }

/* Hover values are emitted on the module root and override Divi/theme hover declarations. */
.mmcf7-preview .wpcf7-submit { pointer-events:auto; }

.mmcf7-shell .wpcf7-submit { transition-property:background-color,color,border-color,border-radius,border-width,box-shadow,scale,translate; }
