/* Basic modal styles for TPW Gated Downloads */
.tpw-open-modal { cursor: pointer; }

.tpw-modal { display: none; position: fixed; inset: 0; z-index: 9999; overflow: auto; }
.tpw-modal[aria-hidden="false"] { display: block; }
.tpw-modal__overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.5); }
.tpw-modal__content { position: relative; margin: 8px auto; background: #fff; padding: 18px; max-width: 640px; width: calc(100% - 16px); border-radius: 8px; z-index: 1; max-height: calc(100vh - 16px); overflow: auto; -webkit-overflow-scrolling: touch; box-sizing: border-box; }
.tpw-modal__close { position: absolute; right: 12px; top: 12px; background: transparent; border: 0; font-size: 24px; cursor: pointer; }

.tpw-field { margin-bottom: 12px; }
/* Compact, theme-resistant label/input spacing */
.tpw-modal .tpw-field { display: flex; flex-direction: column; gap: 4px; }
.tpw-modal .tpw-field label { display: block; margin: 0 !important; margin-block-start: 0 !important; margin-block-end: 0 !important; line-height: 1.25; font-weight: 600; }
.tpw-modal .tpw-field input { width: 100%; padding: 6px; margin: 0 !important; margin-block-start: 0 !important; margin-block-end: 0 !important; box-sizing: border-box; }
.tpw-modal .tpw-required { color: #b32d2e; margin-left: 4px; }
.tpw-modal .screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Neutralize unexpected <br> and <p> inserted by editors/autop inside the modal form */
.tpw-modal .tpw-gated-form .tpw-field > br,
.tpw-modal .tpw-gated-form label + br,
.tpw-modal .tpw-gated-form input + br,
.tpw-modal .tpw-gated-form button + br,
.tpw-modal .tpw-gated-form br { display: none !important; }
.tpw-modal .tpw-gated-form p { margin: 0; }
.tpw-modal .tpw-gated-form p > br { display: none !important; }

/* Checkbox layout */
.tpw-modal .tpw-field--checkbox { display: block; }
.tpw-modal .tpw-field--checkbox label { display: flex; align-items: center; gap: 8px; font-weight: 400; }
.tpw-modal .tpw-field--checkbox input[type="checkbox"] { width: auto; }

.tpw-downloads-list { list-style: disc; padding-left: 20px; }

/* Errors */
.tpw-error { color: #b32d2e; font-size: 12px; margin-top: 4px; }
.tpw-input-error { border-color: #b32d2e; }
