.ip-quote { --ip-form-line: #d4cbbf; --ip-form-ink: #292b26; }
.ip-form { display: grid; gap: 1.4rem; position: relative; }
.ip-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; }
.ip-field { display: grid; gap: .5rem; min-width: 0; }
.ip-field label { font-size: .9rem; font-weight: 500; }
.ip-field input:not([type="checkbox"]), .ip-field select, .ip-field textarea { box-sizing: border-box; width: 100%; max-width: 100%; padding: .85rem 1rem; border: 1px solid var(--ip-form-line); border-radius: 0; color: var(--ip-form-ink); background: #fffdf8; font: inherit; font-size: 1rem; }
.ip-field textarea { resize: vertical; }
.ip-field input:focus-visible, .ip-field select:focus-visible, .ip-field textarea:focus-visible, .ip-form button:focus-visible, .ip-form a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.ip-field--privacy { display: flex; gap: .8rem; align-items: flex-start; }
.ip-field--privacy input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin-top: .2rem; accent-color: var(--ip-form-ink); }
.ip-field--privacy label { line-height: 1.55; font-weight: 400; }
.ip-field--privacy a { text-decoration: underline; text-underline-offset: .2em; }
.ip-form .ip-button { width: fit-content; padding: 1rem 1.5rem; border: 1px solid var(--ip-form-ink); background: var(--ip-form-ink); color: #fffdf8; font: inherit; cursor: pointer; }
.ip-form .ip-button:hover { background: #41463b; }
.ip-notice { margin-block: 1rem; padding: 1rem 1.25rem; border-left: 3px solid #5b6950; background: #eef0e8; color: #283224; line-height: 1.6; }
.ip-notice p:first-child { margin-top: 0; }
.ip-notice p:last-child { margin-bottom: 0; }
.ip-notice--error { border-color: #8e402c; background: #f6ebe5; color: #612b1d; }
.ip-notice--demo { border-color: #8c7350; background: #f3ece0; color: #584831; }
.ip-quote-summary { display: grid; grid-template-columns: max-content 1fr; gap: .35rem 1rem; }
.ip-quote-summary dt { font-weight: 600; }
.ip-quote-summary dd { margin: 0; }
.ip-form-fine { font-size: .85rem; line-height: 1.6; opacity: .8; }
.ip-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
@media (max-width: 600px) { .ip-fields { grid-template-columns: 1fr; } .ip-form .ip-button { width: 100%; } }
