/* Bricks Newsletter Elements - CONSOLIDATED STYLES (root-targeting) */
/* Keep minimal defaults and provide root flex layouts so Bricks applies styles to element root */

/* Box-sizing reset for elements */
.snl-newsletter-form,
.snl-newsletter-form *,
.snl-confirm,
.snl-confirm *,
.snl-manage,
.snl-manage *,
.snl-unsubscribe,
.snl-unsubscribe * {
  box-sizing: border-box;
}

/* Generic resets for text blocks inside elements (do not reset buttons) */
.snl-newsletter-form__title,
.snl-newsletter-form__description,
.snl-newsletter-form__field,
.snl-newsletter-form__input,
.snl-newsletter-form__message {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  color: inherit;
}

/* Enable flex + gap at the element root so Bricks' root-targeted controls work reliably */
/* Include Bricks wrapper classes to ensure builder-applied styles (with empty selector) take effect */
/* Using !important to ensure these critical layout styles aren't overridden by theme CSS */
.snl-newsletter-form,
.brxe-snl-newsletter-form,
.snl-confirm,
.brxe-snl-confirm,
.snl-manage,
.brxe-snl-manage,
.snl-unsubscribe,
.brxe-snl-unsubscribe {
  display: flex !important;
  flex-direction: column !important;
}

/* Inner containers also need flex for proper layout */
.snl-newsletter-form__form,
.snl-confirm__container,
.snl-manage__container,
.snl-unsubscribe__container {
  display: flex;
  flex-direction: column;
}

/* Newsletter form specifics */
.snl-newsletter-form__input,
.snl-newsletter-form__button {
  width: auto;
  display: inline-block;
}

.snl-newsletter-form__input:focus {
  outline: none;
}

.snl-newsletter-form__button {
  cursor: pointer;
}

.snl-newsletter-form__button:disabled {
  cursor: not-allowed;
}

.snl-newsletter-form__message {
  display: none;
}

.snl-newsletter-form__message--success,
.snl-newsletter-form__message--error {
  display: block;
}

/* Manage element structural details */
.snl_manage__email-section,
.snl_manage__results-section {
  display: block;
}

.snl_manage__email {
  display: flex;
  flex-direction: column;
}

.snl_manage__form {
  display: flex;
  flex-direction: column;
}

.snl_manage__lists {
  display: flex;
  flex-direction: column;
}

.snl_manage__list-item {
  display: flex;
  align-items: center;
  gap: 8px;
}

.snl_manage__posts {
  display: flex;
  flex-direction: column;
}

.snl_manage__post-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.snl_manage__actions {
  display: flex;
  gap: 8px;
}

/* Buttons: allow Bricks to emit all styles on root/selectors rather than fighting CSS resets */
.snl-newsletter-form__button,
.snl_manage__button,
.snl-unsubscribe__button,
.snl_manage__post-unsub {
  cursor: pointer;
}

/* Message blocks */
.snl-newsletter-form__message,
.snl_manage__message,
.snl-unsubscribe__message {
  display: none;
}

.snl-newsletter-form__message--success,
.snl-newsletter-form__message--error,
.snl_manage__message.snl_message--success,
.snl_manage__message.snl_message--error,
.snl-unsubscribe__message.snl_message--success,
.snl-unsubscribe__message.snl_message--error {
  display: block;
}

/* Helpful defaults for list items & actions */
.snl_manage__list-item {
  display: flex;
  align-items: center;
  gap: 8px;
}
.snl_manage__actions {
  display: flex;
  gap: 8px;
}

/* Accessibility tweaks */
.snl-newsletter-form__input:focus,
.snl_manage__input:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

/* End */