Pen Settings

HTML

CSS

CSS Base

Vendor Prefixing

Add External Stylesheets/Pens

Any URL's added here will be added as <link>s in order, and before the CSS in the editor. If you link to another Pen, it will include the CSS from that Pen. If the preprocessor matches, it will attempt to combine them before processing.

+ add another resource

JavaScript

Babel includes JSX processing.

Add External Scripts/Pens

Any URL's added here will be added as <script>s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.

+ add another resource

Packages

Add Packages

Search for and use JavaScript packages from npm here. By selecting a package, an import statement will be added to the top of the JavaScript editor for this package.

Behavior

Save Automatically?

If active, Pens will autosave every 30 seconds after being saved once.

Auto-Updating Preview

If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.

Format on Save

If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.

Editor Settings

Code Indentation

Want to change your Syntax Highlighting theme, Fonts and more?

Visit your global Editor Settings.

HTML

              
                mixin card 
 a(href="#").c-card
  h4.c-card__title Title title
  p.c-card__subtitle Subtitle or tagline
  p.c-card__datetime 
    time Monday 10 Oct
  p.c-card__tags(title="categories.") 
    span.c-tag Tag 
    span.c-tag Tag 
  p.c-card__action Call to action!
  div.c-card__image
  
div.o-grid.o-container
  h3.h-accessibility A list of shows on Monday
  ol.h-list.h-ie.h-ie--321
    li.o-grid__item.h-colspan--321
      +card
    li.o-grid__item.h-colspan--321
      +card
    li.o-grid__item.h-colspan--321
      +card
    li.o-grid__item.h-colspan--321
      +card
    li.o-grid__item.h-colspan--321
      +card
    li.o-grid__item.h-colspan--321
      +card
    li.o-grid__item.h-colspan--321
      +card
    li.o-grid__item.h-colspan--321
      +card


              
            
!

CSS

              
                /**
 * Name         : IE11 321 GRID
 * Description  : This helper is available to fix autoplacement layout problems for ie11. It spoofs the 321 helpers in grid helpers but crucially aligns them correctly with the page grid gutters, as grid doesn't handle gutters in the old way. 
 * eg: for 3 grid cells we need 2 gutters so we need to subtract that from the cell width rather than adding it on
 * w = width, g = gutter width, c - columns, l = cells, 
 * width: (100% /c) - g * (c/l) );
 * width: calc(33.33% - #{$b*2/3})
 * State        : Green
 */
 .h-ie {
    width:100%;
    max-width: $container;
    margin:0 0 $b;
    display: flex;
    flex-flow: row wrap;

    > * {margin:  0 $b $b 0; width: 100%; max-width: 100%}

    &--221 {
        > *            { margin:  0 $b $b 0; max-width: calc(50% - #{$b/2})  }
        :nth-child(2n) { margin-right:0 }
        @include media(phone) { > * {margin-right: 0; max-width:100%;}}

    }
    &--321 {
        @include media(tablet)  { 
            > *            { max-width: calc(50% - #{$b/2});  }
            :nth-child(2n) { margin-right:0 }  
        }
        @include media(tablet--gt) { 
            > *            { margin:  0 $b $b 0; max-width: calc(33.33% - #{$b*2/3}) }
            :nth-child(3n) { margin-right:0 } 
        }
        @include media(phone) { > * {margin-right: 0; max-width: 100%;}}
        
        

    }
    &--431 {
        @include media(tablet)  { 
             > *            { margin:  0 $b $b 0; max-width: calc(33.33% - #{$b*2/3}) }
             :nth-child(3n) { margin-right:0 } 
         }

         @include media(tablet--gt) { 
            > *            { margin:  0 $b $b 0; max-width: calc(25% - #{$b*3/4}) }
            :nth-child(4n) { margin-right:0 } 
        }
        @include media(phone) { > * {margin-right: 0; max-width: 100%;}}
    }

}













// GRID OBJECT
.o-grid {
	@include grid(12, $b); 

	& .o-grid {
		width: 100%;
	}
  @media (max-width:50em) {grid-gap: $b*2 $b}

}
//---------------------------
// excerpt from my FASTER GRID HELPERS FOR COMMON PATTERNS
// 3 2 1 = thirds on desktop, halves on tablet, full on mobile - most common
//
.h-colspan--321, .h-colspan--331 {
	grid-column-end: span 4; // 3 = one third
}
// halves for tablets
@media(max-width:50em) {
	.h-colspan--321, .h-colspan--621, .h-colspan--221 {
		grid-column-end: span 6;  //  2 = half
	}
	.h-center--611 {
		grid-column: 1 / 13; //full
	}
}
//stack for mobile but allow halves
@media(max-width:37.5em) {
	.h-colspan--321, .h-colspan--331, .h-colspan--621, .h-colspan--221 {
		grid-column-end: span 12;  // 1 = full
	}
	.h-center--611 {
		grid-column: 1 / 13; //full
	}
}

//ELEMENTS OF CARD
.c-card {
  font:1.5em Futura, sans-serif;
  text-decoration:none; color: #222;
  
  &__title,&__subtitle, &__tags {margin:0}
  &__image {background: lightgrey; min-height:190px; }
  &__datetime{ align-self:center}
  &__tags {text-transform:uppercase; font-size:.75em; }
  &__action {background:#f50; color:white; padding:.5em;}
  
  &:hover, &:focus {
    outline: 2px solid lightgrey;
    .c-card__action {filter:hue-rotate(180deg)}
  }
}
//LAYOUT OF ELEMENTS
.c-card { 
  display: grid;
  grid-gap:$b/2 $b;
    //assign elements to areas, listing all possible contents of card including stuff not present
  @include template(image, title, subtitle, summary, tags, datetime, action);
  grid-template-columns: 0 1fr 1fr;
  grid-template-areas:
    "image image image"
    ". title title"
    ". subtitle subtitle"
    ". datetime action";
  
  &__tags {grid-area: image; z-index:1; justify-self:end} //overlap this
  
  @media (max-width:50em) {
    grid-template-columns: 1fr;
    grid-template-areas:
    "image"
    "title"
    "datetime"
    "action";
    &__subtitle {display:none}
  }
}

// functional stuff for this example
ol {list-style:none; margin:$b $b/2; padding:0; & li {margin:0; padding:0}}
@mixin screen($state) {
  @if $state == hide {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
  }
  @else if $state == show {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  white-space: normal;
  width: auto;
  @content;
  }
}
.h-accessibility {@include screen(hide)}

// AUTOPREFIXER WITH GRID FOR TESTING

@charset "UTF-8";
:root,
html {
  --theme: #603ab0;
  --theme-event-up: #987cd4;
  --theme-event-down: #5b37a7;
  --theme-text: #fff;
}

.theme--mono {
  --theme: white;
  --theme-text: black;
  background-color: var(--theme);
  color: var(--theme-text);
}

.theme--invert {
  color: var(--theme);
  background-color: var(--theme-text);
}

.theme-brand {
  --theme: #603ab0;
  --theme-text: #fff;
}

.o-button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  display: inline-block;
  margin: 0;
  padding: 9px 0.625rem;
  min-width: 120px;
  text-decoration: none;
  vertical-align: middle;
  white-space: nowrap;
  text-align: center;
  font-size: 100%;
  border: 2px solid currentColor;
  border-radius: 0;
  cursor: pointer;
  font-family: Futura, Helvetica, sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 19px;
  line-height: 1;
  background-color: var(--theme);
  color: var(--theme-text);
  border-color: var(--theme);
  transition: all 0.3s ease-in-out;
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .o-button {
    font-size: 16px;
  }
}
.is-active.o-button, .o-button:hover, .o-button:active, .o-button:focus {
  color: var(--theme-text);
  text-decoration: underline;
}
.o-button:focus {
  outline: none;
}
.o-button:focus .icon {
  animation: focus-pulse 3s infinite;
  animation-timing-function: cubic-bezier;
}
.o-button.o-button--secondary {
  background-color: #222222;
  color: white;
}
.is-active.o-button.o-button--secondary, .o-button.o-button--secondary:hover, .o-button.o-button--secondary:active, .o-button.o-button--secondary:focus {
  background-color: black;
  color: white;
}
.o-button.o-button--disabled {
  background-color: #d7d7d7;
}
.is-active.o-button.o-button--disabled, .o-button.o-button--disabled:hover, .o-button.o-button--disabled:active, .o-button.o-button--disabled:focus {
  text-decoration: none;
  cursor: not-allowed;
  background-color: #d7d7d7;
}
.o-button.o-button--mega {
  padding: 17px 30px;
  color: var(--theme);
  background-color: var(--theme-text);
  border-color: var(--theme-text);
  white-space: normal;
}
.is-active.o-button.o-button--mega, .o-button.o-button--mega:hover, .o-button.o-button--mega:active, .o-button.o-button--mega:focus {
  text-decoration: none;
  background-color: var(--theme);
  color: var(--theme-text);
}
.o-button.o-button--outline {
  background-color: transparent;
  color: var(--theme);
  border-color: var(--theme);
}
.is-active.o-button.o-button--outline, .o-button.o-button--outline:hover, .o-button.o-button--outline:active, .o-button.o-button--outline:focus {
  background-color: var(--theme);
  border-color: var(--theme);
  color: var(--theme-text);
}

@keyframes focus-pulse {
  0% {
    opacity: 0.95;
    filter: saturate(1);
    transform: scale(1);
  }
  50% {
    opacity: 0.7;
    filter: saturate(2);
    transform: scale(1.1);
  }
  100% {
    opacity: 1;
    filter: saturate(1);
    transform: scale(1);
  }
}
.c-form__input {
  color: #484848;
  border: 1px solid #d7d7d7;
  border-radius: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  font-family: Futura, Helvetica, sans-serif;
  font-size: 16px;
}
.c-form__input:focus {
  box-shadow: 0 1.5px 0 #999;
  outline: none;
}
[disabled].c-form__input {
  box-shadow: none !important;
  color: #797979 !important;
}

.c-form__input--search, .c-form__input [type=search] {
  width: 100%;
  padding: .25rem 32px .25rem .25rem;
  background-image: url("data:image/svg+xml;utf8,<svg version='1.1' xmlns='http://www.w3.org/2000/svg' x='0' y='0' width='32' height='32' viewBox='0 0 32 32' xml:space='preserve'><path fill='%23d7d7d7' d='M0 0h32v32H0z'/><path fill='%23fff' d='M26 22.2c1.5-2.2 2.3-4.8 2.3-7.6 0-3.7-1.4-7.1-4-9.7-2.6-2.6-6-4-9.7-4s-7.1 1.4-9.7 4c-2.6 2.6-4 6-4 9.7 0 3.7 1.4 7.1 4 9.7 2.6 2.6 6 4 9.7 4 2.7 0 5.4-.8 7.6-2.3l5 5.1 3.8-3.8-5-5.1zm-5.5-1.7c-1.6 1.6-3.7 2.4-5.9 2.4s-4.3-.9-5.9-2.4c-1.6-1.6-2.4-3.7-2.4-5.9s.9-4.3 2.4-5.9c1.6-1.6 3.7-2.4 5.9-2.4s4.3.9 5.9 2.4c1.6 1.6 2.4 3.7 2.4 5.9s-.8 4.3-2.4 5.9z'/></svg>"), linear-gradient(to left, #d7d7d7 32px, white 33px);
  background-position: calc(100% - 8px) center, center;
  background-size: 16px, 100%;
  background-repeat: no-repeat;
}

.o-grid {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: [full-start] 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem [full-end];
  grid-template-columns: [full-start] repeat(12, 1fr) [full-end];
  grid-gap: 1.25rem;
}
.o-grid > * {
  -ms-grid-column-span: 12;
  grid-column-end: span 12;
}
.o-grid .o-grid {
  width: 100%;
}

.o-grid__item--full {
  width: 100vw !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

.o-page-grid {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: [full-start] 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem [full-end];
  grid-template-columns: [full-start] repeat(12, 1fr) [full-end];
  grid-gap: 1.25rem;
}
.o-page-grid > * {
  -ms-grid-column-span: 12;
  grid-column-end: span 12;
}
.o-page-grid:not(.o-page-grid--flush) {
  margin-bottom: 1.25rem;
}
.o-page-grid--dense {
  grid-auto-flow: dense;
}

.o-page-grid__item {
  -ms-grid-column: 1;
  -ms-grid-column-span: 12;
  grid-column: 1 / 13;
}
@media (min-width: 37.5em) {
  .o-page-grid__item--sidebar {
    -ms-grid-column: 1;
    -ms-grid-column-span: 7;
    grid-column: 1 / 8;
  }
}

.o-page-grid__sidebar {
  position: relative;
}
.o-page-grid__sidebar > * {
  margin-bottom: 1.25rem;
}
.o-page-grid__sidebar > *::last-of-type {
  margin-bottom: 0;
}
@media (min-width: 37.5em) {
  .o-page-grid__sidebar {
    -ms-grid-column: 9;
    -ms-grid-column-span: 4;
    grid-column: 9 / 13;
  }
}

.o-container {
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 30px;
  padding-right: 30px;
}
@media (max-width: 1140px) {
  .o-container {
    width: 100%;
    padding-left: 15px;
    padding-right: 15px;
    margin-left: 0;
    margin-right: 0;
  }
}

/*------------------------------------*\
                $TEXT STYLING
\*------------------------------------*/
h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
  margin-bottom: 1.25rem;
  text-transform: uppercase;
  font-weight: 900;
}

@media (max-width: 37.5em) {
  .h-text--h1 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 29px;
    line-height: 0.93;
  }
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .h-text--h1 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 50px;
    line-height: 0.86;
  }
}
@media (min-width: 60em) {
  .h-text--h1 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 75px;
    line-height: 0.85;
  }
}

@media (max-width: 37.5em) {
  .h-text--h2 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 26px;
    line-height: 0.96;
  }
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .h-text--h2 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 35px;
    line-height: 0.79;
  }
}
@media (min-width: 60em) {
  .h-text--h2 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 45px;
    line-height: 0.88;
  }
}

@media (max-width: 37.5em) {
  .h-text--h3 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 23px;
    line-height: 1;
  }
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .h-text--h3 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 30px;
    line-height: 0.75;
  }
}
@media (min-width: 60em) {
  .h-text--h3 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 35px;
    line-height: 1;
  }
}

@media (max-width: 37.5em) {
  .h-text--h4 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 21px;
    line-height: 1;
  }
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .h-text--h4 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 25px;
    line-height: 0.86;
  }
}
@media (min-width: 60em) {
  .h-text--h4 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 30px;
    line-height: 1;
  }
}

@media (max-width: 37.5em) {
  .h-text--h5 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 18px;
    line-height: 1;
  }
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .h-text--h5 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 20px;
    line-height: 0.89;
  }
}
@media (min-width: 60em) {
  .h-text--h5 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 24px;
    line-height: 1;
  }
}

@media (max-width: 37.5em) {
  .h-text--h6 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 16px;
    line-height: 0.93;
  }
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .h-text--h6 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 16px;
    line-height: 0.93;
  }
}
@media (min-width: 60em) {
  .h-text--h6 {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 20px;
    line-height: 1;
  }
}

@media (max-width: 37.5em) {
  .h-text--extra-large {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 600;
    text-transform: none;
    font-size: 22px;
    line-height: 1.13;
  }
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .h-text--extra-large {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 600;
    text-transform: none;
    font-size: 24px;
    line-height: 1.19;
  }
}
@media (min-width: 60em) {
  .h-text--extra-large {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 600;
    text-transform: none;
    font-size: 30px;
    line-height: 1.17;
  }
}

@media (max-width: 37.5em) {
  .h-text--large {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 400;
    text-transform: none;
    font-size: 20px;
    line-height: 1.13;
  }
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .h-text--large {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 400;
    text-transform: none;
    font-size: 22px;
    line-height: 1.19;
  }
}
@media (min-width: 60em) {
  .h-text--large {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 400;
    text-transform: none;
    font-size: 24px;
    line-height: 1.17;
  }
}

.h-text--base {
  font-family: Futura, Helvetica, sans-serif;
  font-weight: 400;
  text-transform: none;
  font-size: 20px;
  line-height: 1.26;
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .h-text--base {
    font-size: 19px;
  }
}

@media (max-width: 37.5em) {
  .h-text--pretitle {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 14.5px;
    line-height: 1;
  }
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .h-text--pretitle {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 16px;
    line-height: 1;
  }
}
@media (min-width: 60em) {
  .h-text--pretitle {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 400;
    text-transform: uppercase;
    font-size: 17px;
    line-height: 1.06;
  }
}

.h-text--button {
  font-family: Futura, Helvetica, sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 19px;
  line-height: 1;
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .h-text--button {
    font-size: 16px;
  }
}

@media (max-width: 37.5em) {
  .h-text--badge {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 14.5px;
    line-height: 0.96;
  }
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .h-text--badge {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 15px;
    line-height: 1.06;
  }
}
@media (min-width: 60em) {
  .h-text--badge {
    font-family: Futura, Helvetica, sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 16px;
    line-height: 1.06;
  }
}

/*------------------------------------*\
                $TEXT STYLING
\*------------------------------------*/
.h-text--theme {
  color: #603ab0;
  color: var(----theme);
}

.h-text--brand {
  color: #603ab0;
  color: var(----theme);
}

.h-text--uppercase {
  text-transform: uppercase !important;
}

.h-text--black {
  font-weight: 900 !important;
  -webkit-font-smoothing: antialiased;
}

.h-text--bold {
  font-weight: bold !important;
  -webkit-font-smoothing: antialiased;
}

.h-text--normal {
  font-weight: normal !important;
}

.h-text--light {
  font-weight: lighter !important;
}

html, body {
  padding: 0;
  margin: 0;
  scroll-behavior: smooth;
}

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

.h-accessibility {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

@media (max-width: 72em) {
  .h-only-desktop {
    display: none;
  }
}

body {
  overflow-x: hidden;
}

main {
  min-height: 75vh;
}

body, html, a {
  color: currentColor;
}

a {
  text-decoration: none;
}
a:active, a:hover {
  color: currentColor;
  text-decoration: underline;
}
a:focus {
  outline: none;
}

svg {
  width: 1em;
  height: 1em;
  font-size: inherit;
}

.img {
  max-width: 100%;
  width: 100%;
  height: auto;
}

cite {
  font-style: normal;
}

/**
 * Name         : Nav
 * Description  : Nav components to drop in any place -- all these navigations are right aligned by default
 * State        : green
 */
.c-nav {
  text-transform: uppercase;
}
.c-nav__list {
  display: flex;
  list-style: none;
  padding: 0;
}
@media (max-width: 37.5em) {
  .c-nav__list {
    flex-flow: column nowrap;
  }
}
.c-nav__item + .c-nav__item {
  margin-left: 1.25rem;
}
@media (max-width: 37.5em) {
  .c-nav__item + .c-nav__item {
    margin-left: 0;
  }
}
.c-nav--primary .c-nav__item {
  margin-bottom: 0;
}
.c-nav__link {
  position: relative;
}
.c-nav__link:after {
  display: block;
  content: "";
  position: absolute;
  top: auto;
  right: 0;
  bottom: -0.125em;
  right: 0;
  height: 0.125em;
  width: 0;
  margin: auto;
  background-color: currentColor;
  transition: 0.3s;
  transform-origin: center center;
}
.c-nav__link.is-active, .c-nav__link:hover, .c-nav__link:active, .c-nav__link:focus {
  text-decoration: none;
}
.c-nav__link.is-active:after, .c-nav__link:hover:after, .c-nav__link:active:after, .c-nav__link:focus:after {
  width: 100%;
}
.c-nav__link.is-active {
  color: var(--theme);
}
.c-nav--columns {
  position: relative;
}
.c-nav--columns .c-nav__list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 1fr 1fr;
  grid-template-columns: 1fr 1fr 1fr;
  -ms-grid-rows: 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr;
}
.c-nav--columns .c-nav__list > *:nth-child(1) {
  -ms-grid-row: 1;
  -ms-grid-column: 1;
}
.c-nav--columns .c-nav__list > *:nth-child(2) {
  -ms-grid-row: 1;
  -ms-grid-column: 2;
}
.c-nav--columns .c-nav__list > *:nth-child(3) {
  -ms-grid-row: 1;
  -ms-grid-column: 3;
}
.c-nav--columns .c-nav__list > *:nth-child(4) {
  -ms-grid-row: 2;
  -ms-grid-column: 1;
}
.c-nav--columns .c-nav__list > *:nth-child(5) {
  -ms-grid-row: 2;
  -ms-grid-column: 2;
}
.c-nav--columns .c-nav__list > *:nth-child(6) {
  -ms-grid-row: 2;
  -ms-grid-column: 3;
}
.c-nav--columns .c-nav__list > *:nth-child(7) {
  -ms-grid-row: 3;
  -ms-grid-column: 1;
}
.c-nav--columns .c-nav__list > *:nth-child(8) {
  -ms-grid-row: 3;
  -ms-grid-column: 2;
}
.c-nav--columns .c-nav__list > *:nth-child(9) {
  -ms-grid-row: 3;
  -ms-grid-column: 3;
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .c-nav--columns .c-nav__list {
    -ms-grid-columns: 1fr 1fr;
    grid-template-columns: 1fr 1fr;
  }
}
.c-nav--columns .c-nav__item {
  margin-left: 0;
}

.c-quote {
  quotes: "“" "”" "‘" "’";
  text-align: center;
  background-color: var(--theme);
  color: var(--theme-text);
  padding: 0;
  margin: 0 auto 0;
  transition: color .3s;
}
.c-quote__text {
  display: inline;
  margin: 0 0 1.25rem;
}
.c-quote__text:before {
  display: inline-block;
  content: open-quote;
}
.c-quote__text:after {
  display: inline-block;
  content: close-quote;
}
.c-quote__footer {
  padding-top: 0.625rem;
}
.c-quote__attribution {
  font-style: normal;
  font-weight: normal;
}
.c-quote__rating {
  margin: 0.625rem auto;
  font-size: 2em;
}
.c-quote__rating:after, .c-quote__rating:before {
  content: '';
}
.c-quote__rating--text {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
.c-quote__rating--one:after {
  display: block;
  content: "\2605" !important;
}
.c-quote__rating--two:after {
  display: block;
  content: "\2605  \2605" !important;
}
.c-quote__rating--three:after {
  display: block;
  content: "\2605  \2605  \2605" !important;
}
.c-quote__rating--four:after {
  display: block;
  content: "\2605  \2605  \2605  \2605" !important;
}
.c-quote__rating--five:after {
  display: block;
  content: "\2605  \2605  \2605  \2605  \2605" !important;
}
.c-quote--featured {
  text-align: right;
}

/**
 * Name         : IE11 321 GRID
 * Description  : Drop this on to any index of autoplaced elements and it will make a 321 grid that lines up on the page grid
 * State        : Green
 */
.h-ie {
  display: flex;
  flex-flow: row wrap;
}
.h-ie > * {
  margin: 0 1.25rem 1.25rem 0;
}
.h-ie--221 > * {
  margin: 0 1.25rem 1.25rem 0;
  width: calc(50% - 0.625rem);
}
.h-ie--221 :nth-child(2n) {
  margin-right: 0;
}
@media (max-width: 37.5em) {
  .h-ie--221 {
    margin-right: 0;
    width: 100%;
  }
}
@media (min-width: 60em) {
  .h-ie--321 > * {
    margin: 0 1.25rem 1.25rem 0;
    width: calc(33% - 0.83375rem);
  }
  .h-ie--321 :nth-child(3n) {
    margin-right: 0;
  }
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .h-ie--321 > * {
    margin: 0 1.25rem 1.25rem 0;
    width: calc(50% - 0.625rem);
  }
  .h-ie--321 :nth-child(2n) {
    margin-right: 0;
  }
}
@media (max-width: 37.5em) {
  .h-ie--321 > * {
    margin: 0 0 1.25rem 0;
    width: 100%;
  }
}
@media (min-width: 60em) {
  .h-ie--431 > * {
    margin: 0 1.25rem 1.25rem 0;
    width: calc(25% - 0.9375rem);
  }
  .h-ie--431 :nth-child(4n) {
    margin-right: 0;
  }
}
@media (min-width: 37.5em) and (max-width: 60em) {
  .h-ie--431 > * {
    margin: 0 1.25rem 1.25rem 0;
    width: calc(33% - 0.83375rem);
  }
  .h-ie--431 :nth-child(3n) {
    margin-right: 0;
  }
}

.o-grid {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: [full-start] 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem 1fr 1.25rem [full-end];
  grid-template-columns: [full-start] repeat(12, 1fr) [full-end];
  grid-gap: 1.25rem;
}
.o-grid > * {
  -ms-grid-column-span: 12;
  grid-column-end: span 12;
}
.o-grid .o-grid {
  width: 100%;
}
@media (max-width: 50em) {
  .o-grid {
    grid-gap: 2.5rem 1.25rem;
  }
}

.h-colspan--321, .h-colspan--331 {
  -ms-grid-column-span: 4;
  grid-column-end: span 4;
}

@media (max-width: 50em) {
  .h-colspan--321, .h-colspan--621, .h-colspan--221 {
    -ms-grid-column-span: 6;
    grid-column-end: span 6;
  }

  .h-center--611 {
    -ms-grid-column: 1;
    -ms-grid-column-span: 12;
    grid-column: 1 / 13;
  }
}
@media (max-width: 37.5em) {
  .h-colspan--321, .h-colspan--331, .h-colspan--621, .h-colspan--221 {
    -ms-grid-column-span: 12;
    grid-column-end: span 12;
  }

  .h-center--611 {
    -ms-grid-column: 1;
    -ms-grid-column-span: 12;
    grid-column: 1 / 13;
  }
}
.c-card {
  font: 1.5em Futura, sans-serif;
  text-decoration: none;
  color: #222;
}
.c-card__title, .c-card__subtitle, .c-card__tags {
  margin: 0;
}
.c-card__image {
  background: lightgrey;
  min-height: 190px;
}
.c-card__datetime {
  -ms-grid-row-align: center;
      align-self: center;
}
.c-card__tags {
  text-transform: uppercase;
  font-size: .75em;
}
.c-card__action {
  background: #f50;
  color: white;
  padding: .5em;
}
.c-card:hover, .c-card:focus {
  outline: 2px solid lightgrey;
}
.c-card:hover .c-card__action, .c-card:focus .c-card__action {
  filter: hue-rotate(180deg);
}

.c-card {
  display: -ms-grid;
  display: grid;
  grid-gap: 0.625rem 1.25rem;
  -ms-grid-columns: 0 1.25rem 1fr 1.25rem 1fr;
  grid-template-columns: 0 1fr 1fr;
  -ms-grid-rows: auto 0.625rem auto 0.625rem auto 0.625rem auto;
      grid-template-areas: "image image image" ". title title" ". subtitle subtitle" ". datetime action";
}
.c-card__image {
  -ms-grid-row: 1;
  -ms-grid-column: 1;
  -ms-grid-column-span: 5;
  grid-area: image;
  margin: 0 0 0.625rem 0;
}
.c-card__title {
  -ms-grid-row: 3;
  -ms-grid-column: 3;
  -ms-grid-column-span: 3;
  grid-area: title;
  margin: 0 0 0.625rem 0;
}
.c-card__subtitle {
  -ms-grid-row: 5;
  -ms-grid-column: 3;
  -ms-grid-column-span: 3;
  grid-area: subtitle;
  margin: 0 0 0.625rem 0;
}
.c-card__summary {
  grid-area: summary;
  margin: 0 0 0.625rem 0;
}
.c-card__tags {
  grid-area: tags;
  margin: 0 0 0.625rem 0;
}
.c-card__datetime {
  -ms-grid-row: 7;
  -ms-grid-column: 3;
  grid-area: datetime;
  margin: 0 0 0.625rem 0;
}
.c-card__action {
  -ms-grid-row: 7;
  -ms-grid-column: 5;
  grid-area: action;
  margin: 0 0 0.625rem 0;
}
.c-card__tags {
  -ms-grid-row: 1;
  -ms-grid-column: 1;
  -ms-grid-column-span: 5;
  grid-area: image;
  z-index: 1;
  -ms-grid-column-align: end;
      justify-self: end;
}
@media (max-width: 50em) {
  .c-card {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    -ms-grid-rows: auto 0.625rem auto 0.625rem auto 0.625rem auto;
        grid-template-areas: "image" "title" "datetime" "action";
  }
  .c-card__subtitle {
    display: none;
  }
  .c-card__image {
    -ms-grid-row: 1;
    -ms-grid-column: 1;
    -ms-grid-column-span: 1;
  }
  .c-card__title {
    -ms-grid-row: 3;
    -ms-grid-column: 1;
    -ms-grid-column-span: 1;
  }
  .c-card__datetime {
    display:  block;
    -ms-grid-row: 5;
    -ms-grid-column: 1;
  }
  .c-card__action {
   
    -ms-grid-row: 7;
    -ms-grid-column: 1;
  }
  .c-card__tags {
    -ms-grid-row: 1;
    -ms-grid-column: 1;
    -ms-grid-column-span: 1;
  }
}

ol {
  list-style: none;
  margin: 1.25rem 0.625rem;
  padding: 0;
}
ol li {
  margin: 0;
  padding: 0;
}

.h-accessibility {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
              
            
!

JS

              
                
              
            
!
999px

Console