/* A compact invitation and a single reusable contact form. */
.contact-invite { display:flex; justify-content:space-between; align-items:center; gap:36px; padding:54px max(24px,5vw); background:#f3f6fb; color:#152342; border-top:1px solid #e2e8f1; }
.contact-invite .eyebrow { color:#5b6b83; font-size:11px; letter-spacing:.12em; margin:0 0 14px; }
.contact-invite h2 { font-size:clamp(25px,3vw,38px); line-height:1.15; letter-spacing:-.04em; max-width:24ch; margin:0; }
.contact-invite p:not(.eyebrow) { margin:14px 0 0; color:#596a80; font-size:15px; line-height:1.5; }
.contact-invite__actions { display:grid; gap:16px; flex:none; text-align:center; }
.contact-invite__actions .button { border-radius:9px; background:#171b49; color:#fff; padding:16px 22px; }
.contact-invite__whatsapp { font-size:13px; color:#293b5c; text-decoration:none; }
html.contact-dialog-open { overflow:hidden; scrollbar-gutter:stable; }
#contact-dialog { box-sizing:border-box; width:min(600px,calc(100% - 32px)); max-width:none; max-height:calc(100dvh - 32px); margin:auto; padding:28px 30px; border:1px solid #dbe3ed; border-radius:20px; background:#fff; color:#17233c; box-shadow:0 24px 90px #0e16364d; overflow:auto; overscroll-behavior:contain; font-family:Inter,Arial,sans-serif; }
#contact-dialog:not([open]), .has-js #contact-dialog:not([data-ready]) { display:none; }
#contact-dialog::backdrop { background:#0b153bb3; backdrop-filter:blur(5px); }
#contact-dialog[open][data-ready] { animation:contact-enter .2s ease-out; }
.contact-dialog__close { position:absolute; top:12px; right:12px; width:44px; height:44px; border:0; border-radius:50%; background:#f0f3f8; color:#273958; font-size:27px; cursor:pointer; }
.contact-dialog__header { padding-right:28px; margin-bottom:20px; }
.contact-dialog__header>p { margin:0 0 9px; color:#63748a; font-size:10px; font-weight:600; letter-spacing:.14em; }
.contact-dialog__header h2 { margin:0 0 8px; font-size:28px; line-height:1.15; letter-spacing:-.04em; color:#17233c; }
.contact-dialog__header>span { font-size:13px; line-height:1.5; color:#596a80; display:block; }
#contact-dialog .lead-form { margin:0; padding:0; border:0; box-shadow:none; background:transparent; color:inherit; }
#contact-dialog .field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px 16px; }
#contact-dialog .field { min-width:0; gap:6px; font-size:12px; font-weight:500; }
#contact-dialog .field-wide { grid-column:1/-1; }
#contact-dialog .field em { color:#6e7e92; font-size:11px; font-weight:400; font-style:normal; }
#contact-dialog .field :is(input,select,textarea) { box-sizing:border-box; min-width:0; width:100%; min-height:44px; padding:10px 12px; border:1px solid #c4cfde; border-radius:8px; background:#fff; color:#17233c; font:400 16px/1.35 Inter,Arial,sans-serif; }
#contact-dialog .field textarea { height:70px; min-height:70px; resize:vertical; }
#contact-dialog .field small:empty,#contact-dialog .consent-error:empty { display:none; }
#contact-dialog .field [aria-invalid=true] { border-color:#b13232; }
#contact-dialog .consent-field { margin:16px 0 0; gap:9px; font-size:11px; line-height:1.5; font-weight:400; color:#596a80; }
#contact-dialog .consent-field input { accent-color:#171b49; }
#contact-dialog .consent-field a { color:#174d99; }
#contact-dialog .form-submit { min-height:46px; margin:17px 0 0; border-radius:8px; background:#171b49; color:#fff; font-size:14px; font-weight:600; display:flex; justify-content:space-between; padding:12px 18px; }
#contact-dialog :is(button,a,input,select,textarea):focus-visible { outline:2px solid #174d99; outline-offset:3px; }
#contact-dialog .form-status { margin:0 0 14px; padding:10px 12px; }
html:not(.has-js) #contact-dialog { position:relative; margin:24px auto; }
html:not(.has-js) .contact-dialog__close { display:none; }
@keyframes contact-enter { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:600px) {
  .contact-invite { flex-direction:column; align-items:flex-start; padding:36px 24px; gap:24px; }
  #contact-dialog { padding:25px 20px 22px; border-radius:16px; }
  .contact-dialog__header h2 { font-size:25px; }
  #contact-dialog .field-grid { gap:12px; }
}
@media(max-width:420px) { #contact-dialog .field-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { #contact-dialog[open][data-ready] { animation:none; } }
