/* Newsletter starter and progressive full form. */
#newsletter-start[hidden] { display: none !important; }
#newsletter-start { display: flex; align-items: center; justify-content: center; gap: 1rem; width: min(100%, 840px); margin: 0 auto; }
#newsletter-start input { box-sizing: border-box; flex: 1; min-width: 0; width: 100%; height: 56px; margin: 0; padding: 0 1rem; border: 2px solid #fff; border-radius: 3px; background: #fff; color: #171717; font: inherit; font-size: 1rem; text-align: center; }
#newsletter-start button { box-sizing: border-box; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; height: 56px; margin: 0; padding: 0 1.5rem; border: 2px solid #2048ed; border-radius: 3px; background: #2048ed; color: #fff; font: inherit; font-size: 1rem; cursor: pointer; }
#newsletter-start button:hover { background: #1538ce; border-color: #1538ce; }
#newsletter-start :focus-visible, #newsletter-dialog :focus-visible { outline: 3px solid #ffcf3d; outline-offset: 3px; }
#newsletter-dialog { box-sizing: border-box; width: min(540px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); margin: auto; padding: 2rem; border: 0; border-radius: 12px; background: #fff; color: #171717; box-shadow: 0 20px 80px #0005; text-align: left; font-family: inherit; overflow-y: auto; }
#newsletter-dialog::backdrop { background: #0009; }
#newsletter-dialog h2 { margin: 0 2rem 0.75rem 0; font-size: clamp(1.65rem, 5vw, 2rem); line-height: 1.15; color: #171717; }
#newsletter-dialog .newsletter-dialog__intro { margin: 0 0 1.5rem; color: #51515b; line-height: 1.5; font-size: 1rem; }
#newsletter-dialog .newsletter-dialog__close { position: absolute; top: 0.7rem; right: 0.7rem; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: #f1f1f4; color: #171717; font: inherit; font-size: 1.75rem; cursor: pointer; }
#newsletter-full-form form, #newsletter-full-form .gform_body, #newsletter-full-form .gform_footer { display: block !important; width: 100% !important; inline-size: 100% !important; max-inline-size: none !important; }
#newsletter-full-form form { margin: 0; }
#newsletter-full-form .gform_fields { display: grid !important; grid-template-columns: 1fr !important; gap: 1rem !important; }
#newsletter-full-form .gfield { width: 100% !important; grid-column: 1 / -1 !important; padding: 0 !important; margin: 0 !important; }
#newsletter-full-form .gfield_label { display: block !important; margin-bottom: 0.45rem; color: inherit; font-size: 1rem; font-weight: 600; }
#newsletter-full-form input[type="email"], #newsletter-full-form input[type="text"] { box-sizing: border-box; width: 100% !important; min-width: 0 !important; max-width: none; height: 52px !important; padding: 0 0.85rem !important; border: 1px solid #b9bac4 !important; border-radius: 4px !important; background: #fff !important; color: #171717 !important; font: inherit; font-size: 16px; }
#newsletter-full-form .gform_footer { margin: 1.25rem 0 0 !important; padding: 0 !important; }
#newsletter-full-form .gform_button { box-sizing: border-box; display: inline-flex !important; width: 100% !important; height: 52px !important; margin: 0 !important; padding: 0 1rem !important; border: 0 !important; border-radius: 4px !important; background: #2048ed !important; color: #fff !important; font: inherit; font-size: 1rem !important; cursor: pointer; }
#newsletter-full-form .gform_validation_errors { display: block !important; }
#newsletter-full-form .validation_message { color: #b32035; text-align: left; }
#newsletter-full-form .gform_confirmation_message { line-height: 1.5; }
.footer-subscribe #newsletter-full-form { max-width: 540px; width: 100%; margin: auto; color: #fff; text-align: left; }
@media (max-width: 600px) { #newsletter-start { flex-direction: column; gap: 0.75rem; } #newsletter-start input, #newsletter-start button { width: 100%; flex: auto; } #newsletter-dialog { padding: 1.5rem; } }

#newsletter-full-form .gfield:not(.gform_validation_container) .gfield_label { position: static !important; width: auto !important; height: auto !important; clip-path: none !important; overflow: visible !important; }

/* Keep the follow-up personal and spare, with accessible field names. */
#newsletter-dialog .newsletter-dialog__intro { margin-bottom: 1.5rem; font-size: 1.2rem; color: #171717; }
#newsletter-dialog #newsletter-full-form .gfield_label { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
#newsletter-dialog .ginput_counter { display: none !important; }
#newsletter-dialog #newsletter-full-form input[readonly] { background: #f2f2f5 !important; border-color: #f2f2f5 !important; color: #686874 !important; }

/* Match the venue's bold colour and typography. */
#newsletter-dialog { width: min(500px, calc(100vw - 32px)); padding: 40px; border-radius: 20px; background: #2444f2; color: #fff; box-shadow: 0 24px 100px #080b4059; }
#newsletter-dialog::backdrop { background: #090d32b8; backdrop-filter: blur(5px); }
#newsletter-dialog h2 { margin: 0 24px 16px 0; max-width: 10ch; color: #fff; font-size: clamp(36px, 6vw, 46px); font-weight: 800; line-height: 1.03; letter-spacing: -0.045em; }
#newsletter-dialog .newsletter-dialog__intro { margin: 0 0 28px; color: #fff; font-size: 20px; line-height: 1.4; letter-spacing: -0.02em; }
#newsletter-dialog .newsletter-dialog__close { top: 16px; right: 16px; width: 36px; height: 36px; color: #fff; background: #ffffff1f; font-size: 24px; }
#newsletter-dialog .newsletter-dialog__close:hover { background: #ffffff38; }
#newsletter-dialog #newsletter-full-form .gform_fields { gap: 12px !important; }
#newsletter-dialog #newsletter-full-form input[readonly] { height: 48px !important; padding: 0 18px !important; background: #ffffff0d !important; border: 1px solid #ffffff40 !important; border-radius: 10px !important; color: #ffffffbf !important; font-size: 15px; }
#newsletter-dialog #newsletter-full-form #input_1_2 { height: 62px !important; padding: 0 18px !important; border: 2px solid #fff !important; border-radius: 10px !important; font-size: 18px; box-shadow: none !important; }
#newsletter-dialog #input_1_2::placeholder { color: #767688; opacity: 1; }
#newsletter-dialog #newsletter-full-form .gform_footer { margin-top: 20px !important; }
#newsletter-dialog #newsletter-full-form .gform_button { height: 58px !important; border-radius: 10px !important; background: #14142b !important; color: #fff !important; font-size: 18px !important; font-weight: 600 !important; box-shadow: none !important; transition: background .15s ease; }
#newsletter-dialog #newsletter-full-form .gform_button:hover { background: #252544 !important; }
#newsletter-dialog :focus-visible { outline: 3px solid #c4cdff; outline-offset: 4px; }
#newsletter-dialog #newsletter-full-form .validation_message { color: #fff; }
#newsletter-dialog #newsletter-full-form .gform_confirmation_message { color: #fff; }
@media (max-width: 600px) { #newsletter-dialog { padding: 32px 24px 24px; border-radius: 16px; } #newsletter-dialog h2 { font-size: 38px; } }

/* Final name-only step. Email remains part of the form submission. */
#newsletter-dialog #field_1_1 { display: none !important; }
#newsletter-dialog #newsletter-full-form #field_1_2 .gfield_label { position: static !important; width: auto !important; height: auto !important; margin: 0 0 8px !important; padding: 0 !important; overflow: visible !important; clip-path: none !important; white-space: normal !important; color: #fff; font-size: 12px; font-weight: 500; line-height: 1.3; }
#newsletter-dialog #newsletter-full-form .gform_footer { margin: 12px 0 0 !important; padding: 0 !important; }
#newsletter-dialog #newsletter-full-form .gform_body { margin: 0 !important; padding: 0 !important; }
#newsletter-dialog #newsletter-full-form #gform_1 { row-gap: 0 !important; gap: 0 !important; }
#newsletter-dialog #newsletter-full-form #input_1_2 { border-radius: 10px !important; }
#newsletter-dialog #newsletter-full-form .gform_button { border-radius: 10px !important; }

#newsletter-dialog #newsletter-full-form .gform_footer { display: flex !important; flex-direction: column; gap: 0 !important; }
#newsletter-dialog .gf-turnstile-container { line-height: 0; }
#newsletter-dialog .cf-turnstile-failed-text { line-height: 1.4; }

/* White card with blue type and a blue action. */
#newsletter-dialog { background: #fff; color: #2444f2; }
#newsletter-dialog h2 { max-width: none; margin: 0 20px 28px 0; color: #2444f2; font-size: clamp(32px, 5vw, 40px); }
#newsletter-dialog #newsletter-full-form #field_1_2 .gfield_label { color: #2444f2; }
#newsletter-dialog #newsletter-full-form #input_1_2 { background: #f1f2f7 !important; border: 0 !important; outline: none !important; box-shadow: none !important; }
#newsletter-dialog #newsletter-full-form #input_1_2:focus-visible { background: #e9ecff !important; outline: none !important; box-shadow: none !important; }
#newsletter-dialog #newsletter-full-form .gform_button { background: #2444f2 !important; color: #fff !important; }
#newsletter-dialog #newsletter-full-form .gform_button:hover { background: #1834d5 !important; }
#newsletter-dialog .newsletter-dialog__close { display: grid; place-items: center; line-height: 1; font-family: Arial, sans-serif; font-size: 26px; color: #2444f2; background: #f0f2ff; }
#newsletter-dialog .newsletter-dialog__close:hover { background: #e3e7ff; }
#newsletter-dialog #newsletter-full-form .validation_message { color: #b32035; }
#newsletter-dialog #newsletter-full-form .gform_confirmation_message { color: #2444f2; }

#newsletter-dialog h2 { color: #171717; }

#newsletter-dialog #newsletter-full-form #field_1_2 .gfield_label { color: #6b6b73; }
