:root {
  /* A muted, soft green that promotes harmony and a connection to nature. Background, large areas.*/
  --col-sage-green: #9CAF88;
  /* A gentle, pale blue that evokes the open sky and a sense of tranquility and peace. Backghround, accents.*/
  --col-airy-blue: #B0D7EB;
  /* A warm, light neutral that provides a stable and secure foundation. Background, main surfaces.*/
  --col-sandy-beige: #E3D4C0;
  /* A rich, earthy accent that adds a touch of vitality and grounding warmth. Accents, highlights.*/
  --col-warm-terracotta: #C76B5B;
  /* A clean, light colour to open up spaces and provide clarity and simplicity. Background, secondary text.*/
  --col-soft-white: #FDFDFF;
  /* Deep, natural grey for contrast, Fonts, outlines, dark accents.*/
  --col-charcoal-grey: #3F3F3F;
  --col-charcoal-dark: #2f2f2f;

  /* Lato for body text. */
  --font-size-body: 18px;
  --font-weight-body-bold: 700;

  /* Lora for headings. */
  --font-family-heading: "Lora", serif;

  --r-lg: 2rem;
  --r-sm: 0.2rem;
}

/* https://www.joshwcomeau.com/css/custom-css-reset/ */
*, *::before, *::after {
  box-sizing: border-box;
}
* {
  margin: 0;
}
@media (prefers-reduced-motion: no-preference) {
  html {
    interpolate-size: allow-keywords;
  }
}
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}
input, button, textarea, select {
  font: inherit;
}
p {
  overflow-wrap: break-word;
  text-wrap: pretty;
  margin-bottom: 0.8rem;
}
#root, #__next {
  isolation: isolate;
}

html, body {
  -webkit-font-smoothing: antialiased;
  font-family: "Lato", sans-serif;
  font-weight: 300;
  font-style: normal;
  font-size: 18px;
  color: var(--col-charcoal-grey);
  line-height: 1.6;
  background: var(--col-sage-green);
}
svg {
  fill: var(--col-charcoal-grey);
}
header svg {
  height: 6rem;
}
header {
  background-color: var(--col-airy-blue);
}
main {
  background: var(--col-soft-white);
}
footer {
  color: var(--col-charcoal-dark);
  font-weight: var(--font-weight-body-bold);
}
i, em {
  font-style: italic;
}
b, strong {
  font-weight: 700;
}
h1, h2, h3, h4, h5, h6, .heading {
  font-family: var(--font-family-heading);
  font-optical-sizing: auto;
  font-style: normal;
  text-wrap: balance;
  line-height: 1.2;
  margin-bottom: 1rem;
  overflow-wrap: break-word;
}
h1 { font-size: 3.555rem; } /* ~64px (Perfect Fourth scale) */
h2 { font-size: 2.666rem; } /* ~48px */
h3 { font-size: 2rem; } /* ~36px */
h4 { font-size: 1.5rem; } /* ~27px */
h5 { font-size: 1.125rem; font-weight: 700; } /* ~20px */

iframe {
  width: 100%;
  aspect-ratio: 16/9;
}

section.highlight {
  background-color: var(--col-sandy-beige);
}

.container {
  max-width: 1024px;
  padding: 1rem;
  margin: auto;
}

.cols {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin-bottom: 2rem;
}
.cols-text {
  flex-basis: 50%;
  background: var(--col-soft-white);
  padding: 2rem;
  border-radius: 2rem 0.2rem 2rem 2rem;

}
.cols-media {
  flex-basis: 50%;
}
.cols-media > div {
  background: var(--col-warm-terracotta);
  padding: 1rem;
  border-radius: 2rem 2rem 2rem 0.2rem;
}
.cols-media > img {
  border-radius: 2rem 2rem 0.2rem 2rem;
}
.cols-media iframe {
  border-radius: 1rem;
}
.cols.flip .cols-media > div {
  border-radius: 2rem 2rem 0.2rem 2rem;
}
.cols.flip .cols-text {
  border-radius: 0.2rem 2rem 2rem 2rem;
}

@media screen and (min-width: 720px) {
  .cols {
    flex-direction: row;
  }
  .cols.flip {
    flex-direction: row-reverse;
  }
}

.outline {
  border: 2px dashed var(--col-warm-terracotta);
}
