.cpcol-form {
    --cp-navy: #1d2142;
    --cp-deep: #10142c;
    --cp-magenta: #aa3f70;
    --cp-green: #276e4e;
    --cp-gold: #bbaa81;
    --cp-white: #fcfaf7;
    --cp-ink: #30354a;
    --cp-muted: #666b7a;
    width: min(1040px, calc(100% - 32px));
    margin: 40px auto;
    overflow: hidden;
    color: var(--cp-ink);
    border: 1px solid #e5e1d8;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 20px 70px rgba(16,20,44,.09);
    font: 15px/1.6 ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    text-align: left;
}
.cpcol-form *, .cpcol-form *::before, .cpcol-form *::after { box-sizing: border-box; }
.cpcol-form [hidden] { display: none !important; }
.cpcol-form button, .cpcol-form input, .cpcol-form textarea { font-family: inherit; }
.cpcol-form button { text-transform: none; letter-spacing: normal; }
.cpcol-form__header { position: relative; padding: 30px 44px 42px; overflow: hidden; color: var(--cp-white); background: radial-gradient(ellipse at 100% 100%, #49304b 0, transparent 58%), var(--cp-navy); }
.cpcol-form__header::after { content: ""; position: absolute; right: -84px; bottom: -165px; width: 470px; height: 470px; border: 1px solid rgba(187,170,129,.18); border-radius: 50%; box-shadow: 0 0 0 38px rgba(187,170,129,.035), 0 0 0 78px rgba(187,170,129,.025); pointer-events: none; }
.cpcol-form__brand { position: relative; z-index: 1; display: flex; align-items: center; gap: 14px; padding-bottom: 25px; border-bottom: 1px solid rgba(255,255,255,.13); }
.cpcol-form__logo { display: block; flex: 0 0 auto; width: 56px; height: 56px; padding: 2px; border-radius: 50%; background: var(--cp-white); object-fit: contain; }
.cpcol-form__brand p { margin: 0; color: var(--cp-white); font: 18px/1.3 Georgia,serif; }
.cpcol-form__brand p span { display: block; margin-top: 4px; color: #d0ccda; font: 11px/1.5 ui-sans-serif,system-ui,sans-serif; letter-spacing: .06em; }
.cpcol-form__online { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; padding: 6px 11px; border: 1px solid rgba(255,255,255,.17); border-radius: 30px; color: #eee9df; font-size: 11px; white-space: nowrap; }
.cpcol-form__online::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #aed1bb; }
.cpcol-form__intro { position: relative; z-index: 1; max-width: 65%; padding-top: 33px; }
.cpcol-form__eyebrow { display: block; margin-bottom: 13px; color: #dbcba5; font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.cpcol-form__header h2 { margin: 0; color: var(--cp-white); font: normal clamp(32px,4.2vw,48px)/1.12 Georgia,"Times New Roman",serif; letter-spacing: -.025em; }
.cpcol-form__intro p { max-width: 490px; margin: 16px 0 0; color: #d5d1de; font-size: 14px; line-height: 1.8; }
.cpcol-form__motto { position: absolute; z-index: 1; right: 45px; bottom: 40px; padding: 0 0 2px 27px; border-left: 1px solid rgba(187,170,129,.3); color: #f2e9dd; font: 30px/1.2 Georgia,serif; }
.cpcol-form__motto > span { display: block; margin-bottom: 13px; color: #d0c1a0; font: 8px/1.5 ui-sans-serif,system-ui,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.cpcol-form__motto em { color: #dec3cc; font-weight: normal; }
.cpcol-form__motto i { display: block; width: 32px; height: 2px; margin-top: 15px; background: var(--cp-gold); }
.cpcol-form__body { margin: 0; padding: 35px 44px 40px; background: #f9f8f5; }
.cpcol-welcome { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 26px; }
.cpcol-kicker { display: block; margin-bottom: 6px; color: var(--cp-magenta); font-size: 10px; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.cpcol-welcome h3 { margin: 0 0 8px; color: var(--cp-navy); font: normal 29px/1.2 Georgia,serif; }
.cpcol-welcome p { margin: 0; color: var(--cp-muted); font-size: 12px; }
.cpcol-welcome b { color: var(--cp-magenta); }
.cpcol-welcome .cpcol-welcome__tip { flex: 0 0 280px; padding: 13px 16px; border-left: 2px solid var(--cp-gold); font-size: 11px; line-height: 1.8; }
.cpcol-welcome__tip strong { display: block; margin-bottom: 2px; color: var(--cp-navy); font-size: 12px; font-weight: 650; }
.cpcol-progress { padding: 17px 20px 14px; border: 1px solid #e7e3da; border-radius: 12px; background: #fff; }
.cpcol-progress__label { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 11px; color: var(--cp-navy); font-size: 12px; font-weight: 650; }
.cpcol-progress__label strong { color: var(--cp-magenta); font-size: 13px; }
.cpcol-progress__track { height: 5px; overflow: hidden; border-radius: 99px; background: #edeae4; }
.cpcol-progress__track span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--cp-magenta), #c7839d); transition: width .25s ease; }
.cpcol-progress__caption { margin: 9px 0 0; color: var(--cp-muted); font-size: 10px; }
.cpcol-steps { display: flex; flex-wrap: wrap; gap: 9px 16px; margin: 17px 0 27px; }
.cpcol-steps a { display: inline-flex; align-items: center; gap: 6px; color: var(--cp-muted); text-decoration: none; font-size: 10px; }
.cpcol-steps a > span { display: grid; place-items: center; width: 21px; height: 21px; border: 1px solid #dfdad1; border-radius: 50%; background: #fff; font-size: 8px; }
.cpcol-steps a[aria-current="step"] { color: var(--cp-magenta); font-weight: 700; }
.cpcol-steps a[aria-current="step"] > span { border-color: var(--cp-magenta); background: #f9ebf1; }
.cpcol-steps a.is-complete { color: var(--cp-green); }
.cpcol-steps a.is-complete > span { color: #fff; border-color: var(--cp-green); background: var(--cp-green); }
.is-wizard .cpcol-steps a[aria-current="step"] { color: var(--cp-magenta); font-weight: 750; }
.is-wizard .cpcol-steps a[aria-current="step"] > span { box-shadow: 0 0 0 3px rgba(170,63,112,.1); }
.cpcol-form fieldset { min-width: 0; margin: 0 0 23px; padding: 25px 28px 28px; scroll-margin-top: 35px; border: 1px solid #e5e1d8; border-radius: 15px; background: #fff; box-shadow: 0 3px 7px rgba(29,33,66,.025); transition: border-color .2s, box-shadow .2s; }
.cpcol-form fieldset:focus-within { border-color: #d7b6c5; box-shadow: 0 5px 24px rgba(29,33,66,.04); }
.cpcol-form .is-wizard fieldset:focus { outline: 2px solid rgba(170,63,112,.16); outline-offset: 2px; }
.cpcol-form legend { display: flex; align-items: center; gap: 11px; float: left; width: 100%; margin: 0; padding: 0; color: var(--cp-navy); font: normal 23px/1.3 Georgia,serif; }
.cpcol-form legend > span { display: grid; place-items: center; flex: 0 0 auto; width: 31px; height: 31px; color: var(--cp-magenta); border: 1px solid #efdce5; border-radius: 9px; background: #fbf2f6; font: 700 10px/1 ui-sans-serif,system-ui,sans-serif; }
.cpcol-section-note { clear: both; margin: 0 0 23px; padding: 8px 0 17px 42px; border-bottom: 1px solid #eeece7; color: var(--cp-muted); font-size: 12px; line-height: 1.7; }
.cpcol-grid { display: grid; gap: 20px; clear: both; }
.cpcol-grid--2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.cpcol-field { display: grid; gap: 7px; min-width: 0; margin: 0; }
.cpcol-field--wide { grid-column: 1 / -1; }
.cpcol-form .cpcol-label { display: block; margin: 0; color: var(--cp-navy); font-size: 12px; font-weight: 650; line-height: 1.6; }
.cpcol-label b, .cpcol-file b { color: var(--cp-magenta); }
.cpcol-form input[type="text"], .cpcol-form input[type="email"], .cpcol-form input[type="tel"], .cpcol-form input[type="date"], .cpcol-form textarea { width: 100%; min-width: 0; min-height: 47px; margin: 0; padding: 11px 13px; color: var(--cp-ink); border: 1px solid #dadce2; border-radius: 8px; outline: 0; background: #fcfcfd; font: inherit; font-size: 14px; line-height: 1.6; box-shadow: 0 1px 2px rgba(29,33,66,.02); transition: border-color .18s, box-shadow .18s, background .18s; }
.cpcol-form textarea { resize: vertical; }
.cpcol-form input:focus, .cpcol-form textarea:focus { border-color: var(--cp-magenta); outline: 0; background: #fff; box-shadow: 0 0 0 3px rgba(170,63,112,.1); }
.cpcol-form input[type="checkbox"] { accent-color: var(--cp-magenta); }
.cpcol-checks { display: flex; flex-wrap: wrap; gap: 9px; padding-top: 3px; }
.cpcol-checks label { position: relative; margin: 0; cursor: pointer; }
.cpcol-checks input { position: absolute; top: 11px; left: 10px; width: 1px; height: 1px; opacity: 0; }
.cpcol-checks span { display: block; padding: 9px 13px; border: 1px solid #e0dfe5; border-radius: 7px; background: #fbfbfc; color: var(--cp-ink); font-size: 12px; font-weight: 500; transition: background .15s, border-color .15s; }
.cpcol-checks input:checked + span { color: #7c2850; border-color: #bd7294; background: #fbecf3; }
.cpcol-checks input:checked + span::before { content: "✓ "; }
.cpcol-checks input:focus-visible + span { outline: 2px solid var(--cp-magenta); outline-offset: 3px; }
.cpcol-help { clear: both; margin: 0 0 20px; padding-top: 12px; color: var(--cp-muted); font-size: 12px; }
.cpcol-files { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.cpcol-file { position: relative; display: flex; flex-direction: column; gap: 6px; min-width: 0; min-height: 177px; margin: 0; padding: 19px; border: 1px dashed #d2cabc; border-radius: 11px; background: #fcfbf8; cursor: pointer; transition: border-color .18s, background .18s; }
.cpcol-file:hover { border-color: var(--cp-magenta); background: #fdf6f9; }
.cpcol-file:focus-within { outline: 2px solid var(--cp-magenta); outline-offset: 3px; }
.cpcol-file.is-ready { border-style: solid; border-color: #a0bfac; background: #f6faf7; }
.cpcol-file.is-error { border-color: #b94358; background: #fff5f6; }
.cpcol-file__top { display: flex; align-items: center; justify-content: space-between; gap: 9px; margin-bottom: 5px; }
.cpcol-file__icon { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid #eae4d9; border-radius: 8px; background: #fff; color: #85744c; }
.cpcol-file__icon svg { width: 19px; height: 19px; }
.cpcol-file .cpcol-file__state { color: var(--cp-muted); font-size: 10px; font-weight: 500; }
.cpcol-file.is-ready .cpcol-file__state { color: var(--cp-green); }
.cpcol-file.is-ready .cpcol-file__state::before { content: "✓ "; }
.cpcol-file .cpcol-file__title { color: var(--cp-navy); font-size: 12px; font-weight: 650; }
.cpcol-file input { position: absolute; top: 16px; left: 16px; width: 1px; height: 1px; opacity: 0; }
.cpcol-file em { color: var(--cp-muted); font-size: 11px; font-style: normal; }
.cpcol-file small { display: block; width: 100%; margin-top: auto; padding-top: 9px; overflow: hidden; color: #92345f; font-size: 12px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.cpcol-file__preview { display: block; width: 70px; height: 78px; margin-top: 4px; border-radius: 6px; object-fit: cover; }
.cpcol-file .cpcol-file__error { color: #94243a; font-size: 11px; font-weight: 500; line-height: 1.5; }
.cpcol-file__error:empty { display: none; }
.cpcol-consent { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: start; margin: 8px 0 27px; padding: 18px 20px; border: 1px solid #e6e0d1; border-radius: 10px; background: #f2efe7; color: #555865; font-size: 12px; line-height: 1.8; }
.cpcol-consent input { width: 16px; height: 16px; margin: 4px 0 0; }
.cpcol-final-note { margin: 0 0 22px; color: var(--cp-muted); font-size: 11px; }
.cpcol-final-note strong { display: block; margin-bottom: 4px; color: var(--cp-navy); font-size: 13px; font-weight: 650; }
.cpcol-wizard-actions { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; padding-top: 4px; }
.cpcol-wizard-actions__forward { min-width: 0; grid-column: 3; }
.cpcol-wizard-status { grid-column: 2; color: var(--cp-muted); font-size: 12px; text-align: center; }
.cpcol-form .cpcol-previous { display: inline-flex; grid-column: 1; align-items: center; justify-content: center; gap: 9px; min-height: 50px; margin: 0; padding: 12px 18px; border: 1px solid #dcd5c7; border-radius: 9px; background: #fff; color: var(--cp-navy); font-size: 13px; font-weight: 650; cursor: pointer; }
.cpcol-form .cpcol-previous:hover { border-color: var(--cp-magenta); background: #fdf6f9; }
.cpcol-form .cpcol-submit, .cpcol-form .cpcol-next { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 50px; margin: 0; padding: 14px 22px; border: 1px solid transparent; border-radius: 9px; background: var(--cp-magenta); color: #fff; box-shadow: 0 5px 16px rgba(170,63,112,.14); font: 650 13px/1.5 ui-sans-serif,system-ui,sans-serif; text-decoration: none; cursor: pointer; transition: background .15s, transform .15s; }
.cpcol-form .cpcol-submit svg, .cpcol-form .cpcol-next svg { flex: 0 0 auto; width: 19px; height: 19px; }
.cpcol-form .cpcol-submit:hover, .cpcol-form .cpcol-next:hover { background: #8c2e5a; transform: translateY(-1px); }
.cpcol-form .cpcol-submit:disabled { opacity: .7; cursor: wait; transform: none; }
.cpcol-submit[disabled] svg { animation: cpcol-send 1s ease-in-out infinite alternate; }
.cpcol-form button:focus-visible, .cpcol-steps a:focus-visible { outline: 2px solid var(--cp-magenta); outline-offset: 4px; }
.cpcol-alert { margin: 25px 44px 0; padding: 17px 20px; border: 1px solid transparent; border-radius: 10px; font-size: 13px; overflow-wrap: anywhere; }
.cpcol-alert strong { display: block; margin-bottom: 3px; }
.cpcol-alert--success { color: #194a34; border-color: #b8d4c1; background: #edf6ef; }
.cpcol-alert--error { color: #7d2439; border-color: #e4b8c2; background: #fff0f3; }
.cpcol-draft-notice { padding: 12px 15px; border: 1px solid #e4d8b7; border-radius: 8px; background: #faf5e7; color: #6d592b; font-size: 12px; }
.cpcol-form .cpcol-success { position: fixed; inset: 0; width: min(540px, calc(100% - 32px)); max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); margin: auto; padding: 43px 35px 30px; overflow-y: auto; border: 1px solid #e5ded0; border-radius: 21px; background: #fcfaf7; color: var(--cp-ink); box-shadow: 0 35px 100px rgba(16,20,44,.25); font: inherit; text-align: center; }
.cpcol-success:not([open]) { display: none; }
.cpcol-success::backdrop { background: rgba(16,20,44,.65); backdrop-filter: blur(5px); }
.cpcol-form.cpcol-modal-fallback::after { content: ""; position: fixed; inset: 0; z-index: 99998; background: rgba(16,20,44,.65); }
.cpcol-modal-fallback .cpcol-success { z-index: 99999; }
.cpcol-form .cpcol-success__close { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 34px; height: 34px; margin: 0; padding: 0; border: 1px solid #e7e1d6; border-radius: 50%; background: transparent; color: var(--cp-muted); font-size: 23px; line-height: 1; cursor: pointer; }
.cpcol-success__mark { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 22px; border: 1px solid #bdd5c6; border-radius: 50%; background: #eaf3ed; color: var(--cp-green); box-shadow: 0 0 0 8px #f1f5ef; }
.cpcol-success__mark svg { width: 34px; height: 34px; stroke-width: 2; }
.cpcol-success[open] .cpcol-success__mark { animation: cpcol-confirm .4s ease-out; }
.cpcol-form .cpcol-success h2 { margin: 10px 0 14px; color: var(--cp-navy); font: normal 35px/1.15 Georgia,serif; }
.cpcol-success > p { margin: 0; color: var(--cp-muted); font-size: 13px; line-height: 1.8; }
.cpcol-success__folio { margin: 24px 0 16px; padding: 18px 12px 10px; border: 1px solid #e3dac6; border-radius: 12px; background: #f4f0e6; }
.cpcol-success__folio label { display: block; color: #706349; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.cpcol-form .cpcol-success__folio input { min-height: 35px; margin-top: 3px; padding: 5px 0; border: 0; border-radius: 0; background: transparent; color: var(--cp-navy); box-shadow: none; font: 700 clamp(14px,3.5vw,21px)/1.5 ui-monospace,Consolas,monospace; text-align: center; }
.cpcol-form .cpcol-copy { padding: 5px 11px; border: 1px solid #d6c9ae; border-radius: 6px; background: #fffdf9; color: var(--cp-navy); font-size: 11px; cursor: pointer; }
.cpcol-copy-status { display: block; min-height: 19px; padding-top: 2px; color: var(--cp-green); font-size: 10px; }
.cpcol-success .cpcol-success__status { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 15px; color: var(--cp-green); font-size: 11px; font-weight: 650; }
.cpcol-success__status > span { width: 6px; height: 6px; border-radius: 50%; background: var(--cp-green); }
.cpcol-success .cpcol-success__next { margin-bottom: 23px; font-size: 12px; }
.cpcol-form .cpcol-success__done { width: 100%; }
@keyframes cpcol-confirm { from { opacity: 0; transform: scale(.8); } to { opacity: 1; transform: scale(1); } }
@keyframes cpcol-send { to { transform: translateX(4px); opacity: .4; } }
@media (max-width: 760px) {
    .cpcol-form__header { padding: 24px 27px 32px; }
    .cpcol-form__body { padding: 29px 26px 32px; }
    .cpcol-form__intro { max-width: 100%; }
    .cpcol-form__motto { display: none; }
    .cpcol-welcome { align-items: start; }
    .cpcol-welcome .cpcol-welcome__tip { flex-basis: 220px; }
    .cpcol-alert { margin-right: 26px; margin-left: 26px; }
}
@media (max-width: 580px) {
    .cpcol-form { width: calc(100% - 20px); margin: 15px auto; border-radius: 16px; }
    .cpcol-form__header { padding: 22px 20px 29px; }
    .cpcol-form__brand { gap: 10px; padding-bottom: 20px; }
    .cpcol-form__logo { width: 44px; height: 44px; }
    .cpcol-form__brand p { font-size: 15px; }
    .cpcol-form__brand p span { font-size: 10px; }
    .cpcol-form__online { display: none; }
    .cpcol-form__intro { padding-top: 25px; }
    .cpcol-form__eyebrow { font-size: 9px; }
    .cpcol-form__header h2 { font-size: 36px; }
    .cpcol-form__intro p { font-size: 13px; }
    .cpcol-form__body { padding: 25px 15px; }
    .cpcol-welcome { display: block; }
    .cpcol-welcome .cpcol-welcome__tip { margin-top: 17px; padding: 9px 12px; }
    .cpcol-welcome h3 { font-size: 26px; }
    .cpcol-progress { padding: 15px; }
    .cpcol-steps { gap: 10px 12px; }
    .cpcol-form fieldset { padding: 20px 16px; border-radius: 11px; }
    .cpcol-form legend { gap: 8px; font-size: 21px; }
    .cpcol-section-note { padding-left: 0; font-size: 11px; }
    .cpcol-grid--2, .cpcol-files { grid-template-columns: 1fr; }
    .cpcol-field--wide { grid-column: auto; }
    .cpcol-form input[type="text"], .cpcol-form input[type="email"], .cpcol-form input[type="tel"], .cpcol-form input[type="date"], .cpcol-form textarea { font-size: 16px; }
    .cpcol-file { min-height: 162px; }
    .cpcol-consent { padding: 15px; font-size: 11px; }
    .cpcol-wizard-actions { grid-template-columns: auto minmax(0,1fr); gap: 12px; }
    .cpcol-wizard-status { grid-column: 1 / -1; grid-row: 1; }
    .cpcol-form .cpcol-previous { grid-row: 2; padding: 12px 13px; font-size: 12px; }
    .cpcol-wizard-actions__forward { grid-column: 2; grid-row: 2; }
    .cpcol-previous[hidden] ~ .cpcol-wizard-actions__forward { grid-column: 1 / -1; }
    .cpcol-wizard-actions__forward .cpcol-submit, .cpcol-wizard-actions__forward .cpcol-next { width: 100%; gap: 10px; padding: 12px 14px; font-size: 12px; }
    .cpcol-form .cpcol-submit { width: 100%; }
    .cpcol-alert { margin-right: 15px; margin-left: 15px; }
    .cpcol-form .cpcol-success { padding: 38px 21px 23px; }
    .cpcol-form .cpcol-success h2 { font-size: 30px; }
    .cpcol-success .cpcol-kicker { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
    .cpcol-form *, .cpcol-form *::before, .cpcol-form *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
