.cor-media__img {
  grid-area: img;
}

.cor-media__title {
  grid-area: title;
}

.cor-media__content {
  grid-area: bd;
}

.cor-media__footer {
  grid-area: ft;
}

.cor-media {
  display: grid;
  gap: var(--space-3xs);
  grid-template-areas:
    "title"
    "img"
    "bd"
    "ft";
}

@media (min-width: 600px) {
  .cor-media {
    grid-template-columns: var(--img-width, var(--space-2xl)) 3fr;
    grid-template-rows: auto 1fr auto;
    grid-template-areas:
      "img title"
      "img bd"
      "ft ft";
  }

  .cor-media__image {
    width: var(--img-width);
  }
}






@media (min-width: 600px) {

  /* clearfix*/
  .cor-media:after {
    content: "";
    display: block;
    clear: both;
  }

  .cor-media>.media {
    margin-left: 160px;
    clear: both;
  }

  .cor-media .img {
    float: left;
    margin: 0 10px 0 0;
    width: var(--img-width);
  }

  .cor-media .footer {
    background-color: #eee;
    padding: 10px;
  }

  .cor-media--flip .img {
    float: right;
    margin: 0 0 0 10px;
  }

  .cor-media>* {
    margin: 0 0 0 160px;
  }

  .cor-media--flip>* {
    margin: 0 160px 0 0;
  }

  @supports(display: grid) {

    /* override */
    .cor-media>*,
    .cor-media--flip>* {
      margin: 0;
    }

    .cor-media .img,
    .cor-media--flip .img {
      width: auto;
      margin: 0;
    }

    .cor-media:after {
      content: none;
    }

    .cor-media {
      display: grid;
      grid-column-gap: 20px;
      grid-template-columns: var(--img-width, var(--space-2xl)) 3fr;
      grid-template-rows: auto 1fr auto;
      grid-template-areas:
        "img title"
        "img bd"
        "ft ft";
    }

    .cor-media--flip {
      grid-template-columns: 3fr var(--img-width, var(--space-2xl));
      grid-template-areas:
        "title img"
        "bd img"
        "ft ft";
    }

    .cor-media--img-flexie {
      grid-template-columns: minmax(var(--img-width, var(--space-2xl)), 1fr) 3fr;
    }

    .cor-media--flip.cor-media--img-flexie {
      grid-template-columns: 3fr minmax(var(--img-width, var(--space-2xl)), 1fr);
    }

    /* nested */
    .cor-media>.cor-media {
      grid-column: 2 / -1;
      margin: 0;
      /* override */
      margin-top: 1em;
    }
  }


}


.cor-media--president .cor-media__title {
  display: flex;
  gap: var(--space-xs);
  flex-wrap: wrap;
}

.cor-media--president__title {
  flex: 1 0 0;
}

.cor-media--president__flags {
  margin-left: auto;
  display: grid;
  gap: var(--space-xs);
  grid-template-columns: 50px 75px;
}