/* HubSpot embedded forms, styled to match the design.
   Wrap every embed in <div class="ld-hubspot">. On dark sections the wrapper sits inside a white form card. */
.ld-hubspot .hs-form { display: flex; flex-direction: column; gap: var(--ld-sp-16); font-family: var(--ld-font-brand); color: var(--ld-navy); }
.ld-hubspot fieldset { max-width: none !important; margin: 0; padding: 0; border: 0; }
.ld-hubspot fieldset.form-columns-2 { display: grid; grid-template-columns: 1fr; gap: var(--ld-sp-16); }
@media (min-width: 480px) { .ld-hubspot fieldset.form-columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ld-hubspot fieldset .hs-form-field { inline-size: auto !important; float: none !important; padding: 0 !important; }
.ld-hubspot .hs-form-field { display: flex; flex-direction: column; gap: var(--ld-sp-6); }
.ld-hubspot .hs-form-field > label, .ld-hubspot legend { font-size: var(--ld-fs-small); font-weight: var(--ld-fw-semibold); color: var(--ld-navy); }
.ld-hubspot .hs-form-required { margin-inline-start: var(--ld-sp-2); color: var(--ld-red); }
.ld-hubspot .hs-field-desc { font-size: var(--ld-fs-eyebrow); color: var(--ld-grey-600); }

/* Inputs, selects and text areas */
.ld-hubspot .hs-input:not([type="checkbox"]):not([type="radio"]) { inline-size: 100% !important; min-height: var(--ld-size-46); padding: var(--ld-sp-10) var(--ld-sp-12); border: var(--ld-border-1) solid var(--ld-grey); border-radius: var(--ld-radius-sm); background: var(--ld-white); color: var(--ld-navy); font: var(--ld-fs-body)/1.4 var(--ld-font-brand); transition: border-color var(--ld-dur) var(--ld-ease); }
.ld-hubspot textarea.hs-input { min-height: var(--ld-size-92); resize: vertical; }
.ld-hubspot select.hs-input:not([type="checkbox"]):not([type="radio"]) { appearance: none; padding-inline-end: var(--ld-sp-40); background: var(--ld-white) url("../assets/icons/ld-icon-arrow-down.svg") right var(--ld-sp-12) center / var(--ld-size-16) no-repeat; }
.ld-hubspot .hs-input::placeholder { color: var(--ld-grey-600); }
.ld-hubspot .hs-input:hover { border-color: var(--ld-navy); }
.ld-hubspot .hs-input:focus-visible { outline: var(--ld-border-2) solid var(--ld-focus); outline-offset: var(--ld-sp-2); border-color: var(--ld-navy); }
.ld-hubspot .hs-input:disabled { background: var(--ld-grey-100); color: var(--ld-grey-600); cursor: not-allowed; }
.ld-hubspot input[type="file"].hs-input { border-style: dashed; background: var(--ld-grey-100); font-size: var(--ld-fs-small); cursor: pointer; }

/* Checkboxes, radios and consent */
.ld-hubspot .inputs-list { display: flex; flex-direction: column; gap: var(--ld-sp-8); margin: 0; padding: 0; list-style: none; }
.ld-hubspot .hs-form-checkbox-display, .ld-hubspot .hs-form-booleancheckbox-display, .ld-hubspot .hs-form-radio-display { display: flex; align-items: flex-start; gap: var(--ld-sp-10); font-size: var(--ld-fs-15); color: var(--ld-navy); cursor: pointer; }
.ld-hubspot input[type="checkbox"], .ld-hubspot input[type="radio"] { flex: none; inline-size: var(--ld-size-20); block-size: var(--ld-size-20); margin: var(--ld-sp-2) 0 0; accent-color: var(--ld-blue-600); }
.ld-hubspot input[type="checkbox"]:focus-visible, .ld-hubspot input[type="radio"]:focus-visible { outline: var(--ld-border-2) solid var(--ld-focus); outline-offset: var(--ld-sp-2); }
.ld-hubspot .legal-consent-container, .ld-hubspot .hs-richtext { font-size: var(--ld-fs-xs); line-height: 1.5; color: var(--ld-grey-600); }
.ld-hubspot .legal-consent-container a, .ld-hubspot .hs-richtext a { color: var(--ld-blue-700); }

/* Errors */
.ld-hubspot .hs-input.invalid.error, .ld-hubspot .hs-input.error { border: var(--ld-border-2) solid var(--ld-red); }
.ld-hubspot .hs-error-msgs { margin: 0; padding: 0; list-style: none; }
.ld-hubspot .hs-error-msg, .ld-hubspot .hs_error_rollup .hs-main-font-element { font-size: var(--ld-fs-eyebrow); color: var(--ld-red); }

/* Submit button: default, hover, focus, active, disabled */
.ld-hubspot .hs_submit .actions { margin: 0; padding: 0; }
.ld-hubspot .hs-button { inline-size: 100%; min-height: var(--ld-size-52); padding: 0 var(--ld-sp-28); border: 0; border-radius: var(--ld-radius-sm); background: var(--ld-btn-primary-bg); color: var(--ld-btn-primary-fg); font: var(--ld-fw-semibold) var(--ld-fs-body)/1 var(--ld-font-brand); letter-spacing: 0.02em; cursor: pointer; transition: background-color var(--ld-dur) var(--ld-ease); }
.ld-hubspot .hs-button:hover { background: var(--ld-btn-primary-bg-hover); }
.ld-hubspot .hs-button:active { background: var(--ld-btn-primary-bg-active); }
.ld-hubspot .hs-button:focus-visible { outline: var(--ld-border-2) solid var(--ld-focus); outline-offset: var(--ld-sp-3); }
.ld-hubspot .hs-button:disabled { background: var(--ld-btn-disabled-bg); color: var(--ld-btn-disabled-fg); cursor: not-allowed; }

/* Success message */
.ld-hubspot .submitted-message { display: flex; flex-direction: column; gap: var(--ld-sp-10); padding: var(--ld-sp-8) 0; font-size: var(--ld-fs-15); line-height: var(--ld-lh-body); color: var(--ld-light-navy); }
.ld-hubspot .submitted-message strong, .ld-hubspot .submitted-message p:first-child { font-size: var(--ld-fs-22); font-weight: var(--ld-fw-extrabold); color: var(--ld-navy); }

/* Inline email field on dark bands (email alerts, footer customer updates) */
.ld-is-dark .ld-hubspot--inline .hs-form { flex-direction: row; flex-wrap: wrap; align-items: flex-end; }
.ld-is-dark .ld-hubspot--inline .hs-form > :is(fieldset, .hs-form-field) { flex: 1 1 14rem; }
.ld-is-dark .ld-hubspot--inline .hs-form-field > label { color: var(--ld-ice); }
.ld-is-dark .ld-hubspot--inline .hs-button { inline-size: auto; background: var(--ld-btn-dark-bg); color: var(--ld-btn-dark-fg); }
.ld-is-dark .ld-hubspot--inline .hs-button:hover { background: var(--ld-btn-dark-bg-hover); }
.ld-is-dark .ld-hubspot--inline .submitted-message { color: var(--ld-ice); }
