/* EasyWeb core — section & flex layout (theme-independent) */

section > .ew-section-container {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

section > .ew-section-container.ew-section-container-fill {
  min-height: 100%;
  height: 100%;
  box-sizing: border-box;
}

.ew-flex-width-full {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.ew-flex-fill-child {
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.ew-flex-align-stretch {
  align-self: stretch;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.row,
[class*="col-"],
.ew-layout-row,
.ew-layout-col {
  min-height: 0;
}

/* Feature-Box in a layout column: fill stretched sibling height, pin button to bottom */
.ew-layout-col > .card {
  height: 100%;
}

.ew-layout-col > .card > .card-body > .ew-btn-host {
  margin-top: auto;
}

/* Button core layout (theme-independent) */
a.btn.ew-btn,
.ew-btn,
button.btn.ew-btn,
a.btn.ew-btn-intrinsic,
.ew-btn.ew-btn-intrinsic,
button.btn.ew-btn-intrinsic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

a.btn.ew-btn-intrinsic,
.ew-btn.ew-btn-intrinsic,
button.btn.ew-btn-intrinsic {
  width: fit-content;
  max-width: 100%;
  min-width: 6.5rem;
  min-height: 2.375rem;
  /* Button stays shrink-wrapped; do not grow with the host. */
  flex: 0 0 auto;
}

/* Host fills a stretched flex column so the button can sit vertically centered. */
.ew-btn-host,
.wf-editable.ew-btn-host,
.ew-layout-col > .ew-btn-host,
.ew-section-container > .ew-btn-host {
  width: 100%;
  max-width: 100%;
  flex: 1 1 auto;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.ew-btn-host[data-ew-btn-host-align="center"],
.ew-btn-host:has(> .ew-btn[data-ew-btn-align="center"]),
.ew-btn-host:has(> a.btn.ew-btn[data-ew-btn-align="center"]),
.ew-btn-host:has(> button.btn.ew-btn[data-ew-btn-align="center"]) {
  align-items: center;
}

.ew-btn-host[data-ew-btn-host-align="end"],
.ew-btn-host:has(> .ew-btn[data-ew-btn-align="end"]),
.ew-btn-host:has(> a.btn.ew-btn[data-ew-btn-align="end"]),
.ew-btn-host:has(> button.btn.ew-btn[data-ew-btn-align="end"]) {
  align-items: flex-end;
}

.ew-btn-host[data-ew-btn-host-align="start"],
.ew-btn-host:has(> .ew-btn[data-ew-btn-align="start"]),
.ew-btn-host:has(> a.btn.ew-btn[data-ew-btn-align="start"]),
.ew-btn-host:has(> button.btn.ew-btn[data-ew-btn-align="start"]) {
  align-items: flex-start;
}

/* Button position inside parent container (trait: data-ew-btn-align) */
a.btn.ew-btn[data-ew-btn-align="center"],
a.btn.ew-btn.ew-btn-intrinsic[data-ew-btn-align="center"],
.ew-btn[data-ew-btn-align="center"],
button.btn.ew-btn[data-ew-btn-align="center"],
button.btn.ew-btn.ew-btn-intrinsic[data-ew-btn-align="center"] {
  display: flex;
  width: fit-content;
  max-width: 100%;
  margin-left: auto !important;
  margin-right: auto !important;
}

a.btn.ew-btn[data-ew-btn-align="end"],
a.btn.ew-btn.ew-btn-intrinsic[data-ew-btn-align="end"],
.ew-btn[data-ew-btn-align="end"],
button.btn.ew-btn[data-ew-btn-align="end"],
button.btn.ew-btn.ew-btn-intrinsic[data-ew-btn-align="end"] {
  display: flex;
  width: fit-content;
  max-width: 100%;
  margin-left: auto !important;
  margin-right: 0 !important;
}

a.btn.ew-btn[data-ew-btn-align="start"],
a.btn.ew-btn.ew-btn-intrinsic[data-ew-btn-align="start"],
.ew-btn[data-ew-btn-align="start"],
button.btn.ew-btn[data-ew-btn-align="start"],
button.btn.ew-btn.ew-btn-intrinsic[data-ew-btn-align="start"] {
  display: flex;
  width: fit-content;
  max-width: 100%;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.d-flex.flex-column > .ew-btn[data-ew-btn-align="center"],
.flex-column > .ew-btn[data-ew-btn-align="center"] {
  align-self: center;
  width: fit-content;
  max-width: 100%;
}

.d-flex.flex-column > .ew-btn[data-ew-btn-align="end"],
.flex-column > .ew-btn[data-ew-btn-align="end"] {
  align-self: flex-end;
  width: fit-content;
  max-width: 100%;
}

.d-flex.flex-column > .ew-btn[data-ew-btn-align="start"],
.flex-column > .ew-btn[data-ew-btn-align="start"] {
  align-self: flex-start;
  width: fit-content;
  max-width: 100%;
}
