/* =============================================================== */
/* Basic HTML Layout Elements                                      */
/* =============================================================== */

body {
  display: grid;
  width: 100%;
  height: 100dvh;
  overflow: hidden;
  grid-template-columns: 1fr;
  grid-template-rows: var(--header-height) 1fr;
  grid-template-areas:
    "header"
    "main";
}

body.has-admin-bar {
  grid-template-rows: var(--adminbar-height) var(--header-height) calc(100dvh - var(--adminbar-height) - var(--header-height));
  grid-template-areas:
    "adminbar"
    "header"
    "main";
}

body #wpadminbar {
  grid-area: adminbar;
  height: auto;
  position: relative;
  margin: 0;
  padding: 0;
}

header {
  grid-area: header;
  width: 100%;
  height: var(--header-height);
  padding: 0 var(--padding);
  box-shadow: var(--shadow-header);
  z-index: var(--z-index-header);
  display: flex;
  align-items: center;
  align-content: center;
  justify-content: space-between;
  font-size: var(--font-size-header);
  background-color: var(--header-bg);
  page-break-after: avoid;
  break-after: avoid;
}

header>.title {
  display: flex;
  align-items: center;
  align-content: center;
  color: var(--color-green-dark);
  font-weight: var(--font-weight-bold);
}

header>.title img {
  max-height: var(--header-height);
  height: var(--header-height);
  width: auto;
  align-self: center;
}

header>.title .tagline {
  font-size: var(--font-size-tagline);
  font-weight: var(--font-weight-normal);
}

header a:has(img),
header .custom-logo-link {
  align-self: center;
  padding: 0;
}

header a {
  line-height: 1;
}

main {
  grid-area: main;
  overflow-y: auto;
  overflow-x: hidden;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto auto;
  grid-template-areas:
    "content"
    "footer";
  height: 100%;
  width: 100%;
}

main>h1,
main:not(:has(>aside))>section {
  padding: 0 var(--padding-fix);
}

main:has(>aside)>section {
  padding: 0 0 0 var(--padding-fix);
}

main>*:first-child {
  padding-top: var(--padding-fix);
}

footer {
  grid-area: footer;
  padding: var(--padding);
  background-color: var(--footer-bg);
  color: var(--footer-fg);
  display: grid;
  grid-template-columns: repeat(auto-fit, 1fr);
  grid-template-rows: 1fr;
  margin: var(--padding) 0 0 0;
}

footer,
footer * {
  gap: var(--space-gap-large);
}

footer section {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
}

footer article img {
  margin: 0 0 0 var(--padding);
  border-radius: 0 var(--radius) 0 0;
}

footer section>* {
  flex: 1 0 clamp(min(100%, 30em), 30%, 100%);
  background-color: var(--footer-inner-bg);
  color: var(--footer-inner-fg);
  padding: var(--padding);
  border-radius: var(--radius);
}

footer section a:hover {
  background-color: var(--footer-link-bg);
  color: var(--footer-link-fg);
}

footer h1,
footer h2,
footer h3,
footer h4,
footer h5,
footer h6,
footer h1 *,
footer h2 *,
footer h3 *,
footer h4 *,
footer h5 *,
footer h6 * {
  color: inherit;
  -webkit-hyphens: auto;
  hyphens: auto;
  overflow-wrap: normal;
  word-break: normal;
}

main.single>section,
main.page>section {
  container: in-section / inline-size;
}

article {
  clear: both;
  container: in-article / inline-size;
  padding-bottom: var(--padding);
}

main.single>section>article img,
main.page>section>article img {
  width: calc(25% - 2 * var(--padding));
  float: right;
  margin: var(--padding);
  transition: transform var(--transition-medium);
}

main.single>section>article img:hover,
main.page>section>article img:hover {
  transform: translateX(-50%) scale(2);
}

main.single>section>article aside img:hover,
main.page>section>article aside img:hover {
  transform: none;
}

article img {
  width: 50%;
  float: right;
  margin: var(--padding);
}

@container in-section (width < 32em) {

  html main.single>section>article,
  html main.page>section>article {
    display: flex;
    flex-direction: column;
  }
}

@container in-article (width < 32em) {

  html main.page>section>article>aside,
  html main.single>section>article>aside {
    order: 9999;
    float: none;
    clear: both;
    width: 100%;
    min-width: none;
    max-width: none;
  }

  html article img {
    width: 100%;
    float: none;
    clear: both;
    padding: 0;
    margin: var(--padding) 0;
  }

  footer article img {
    margin: 0 0 var(--padding) 0;
    border-radius: var(--radius) var(--radius) 0 0;
  }

}

article img:has(+img) {
  float: left;
  clear: both;
}