/* Body and Soul Publishing: page styles */

@font-face { font-family: "Nunito"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("fonts/nunito-normal.woff2") format("woff2"); }
@font-face { font-family: "Nunito"; font-style: italic; font-weight: 400 700; font-display: swap; src: url("fonts/nunito-italic.woff2") format("woff2"); }
@font-face { font-family: "Libre Baskerville"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("fonts/libre-baskerville-normal.woff2") format("woff2"); }
@font-face { font-family: "Libre Baskerville"; font-style: italic; font-weight: 400; font-display: swap; src: url("fonts/libre-baskerville-italic.woff2") format("woff2"); }

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  background: #fff;
  color: #000;
  font-family: "Nunito", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
}

a { color: inherit; }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4, p { font-weight: inherit; }
h2[style], h3[style] { font-weight: 400; }
strong, b { font-weight: 700; }

.sec { width: 100%; background-repeat: no-repeat; }
.wrap { max-width: 1140px; margin: 0 auto; padding: 0 16px; }

/* Columns mirror the original page's grid */
.cols { display: flex; align-items: flex-start; }
.col { min-width: 0; padding: 0 11px; }
.band { width: 100%; }

.sp { height: var(--h); }

.txt { padding: 11px 0; overflow-wrap: break-word; }
.txt a { text-decoration: underline; }

.img { padding: 11px 0; line-height: 0; }
.img--center { text-align: center; }
.img--right { text-align: right; }
.img img { display: inline-block; }

.video { margin: 11px auto; width: 100%; }
.video__ratio { position: relative; height: 0; }
.video__ratio iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.btn-wrap { padding: 11px 0; }
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  padding: 6px 16px;
  text-decoration: none;
  line-height: 1.2;
  text-align: center;
  transition: filter 0.15s ease;
}
.btn:hover, .btn:focus-visible { filter: brightness(1.08); }

hr { border: 0; border-top: 2px solid #000; margin: 12px auto; }

/* Phone and small tablet: stack columns, drop empty spacer columns */
@media (max-width: 767px) {
  .cols { flex-direction: column; align-items: stretch !important; }
  .col { flex: 1 1 auto !important; width: 100%; padding: 0; }
  .col--empty { display: none; }
  .sp { height: calc(var(--h) * 0.4); }
  .txt [style*="font-size:32px"] { font-size: 26px !important; line-height: 1.2 !important; }
  .txt ul, .txt ol { padding-left: 22px !important; }
  .btn { min-height: 0 !important; padding: 18px 28px; }
  .band--art { display: none; }
  .sec--hero { background: rgb(64, 68, 93) !important; }
  .txt [style*="font-size:40px"] { font-size: 32px !important; line-height: 1.1 !important; }
}
