:root {
  --border-radius: 6px;
}

body {
  line-height: 1.4;
}

header, main, .region-highlighted > div, .region-help {
  padding: 1em;
  overflow: hidden;
}

footer {
  overflow: hidden;
}

.region-header, .region-primary-menu {
  float: left;
}

.site-logo img {
  min-width: 10em;
  max-height: 6em;
  max-width: 100%;
  text-align: left;
}

.region-user-menu {
  float: right;
}

.region-highlighted, .region-help, main {
  clear: both;
}

/* Main menu */

.region-primary-menu {
  grid-row: 1;
  grid-column: 2;
}

.region-primary-menu .menu--main {
  height: 100%;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.region-primary-menu .menu--main ul.menu {
  display: flex;
  flex-grow: 1;
  gap: 1em;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  margin: 0;
  z-index: 10;
}

.region-primary-menu .menu--main ul.menu li {
  flex: 1;
  flex-basis: 6em;
  text-align: center;
  position: relative; /* for submenu width */
  border-radius: var(--border-radius);
}

.region-primary-menu .menu--main ul.menu li a {
  display: block;
  padding: 0.5em 0;
}

.region-primary-menu .menu--main ul.menu ul {
  display: none;
  height: auto;
  margin: 0;
  padding: 0;
}

.region-primary-menu .menu--main .menu-item--expanded {
  list-style: none;
}

.region-primary-menu .menu--main ul.menu li:hover ul {
  display: block;
  position: absolute;
  top: 2.8em;
  width: 100%;
}

/* User menu */

.region-user-menu {
  grid-row: 1;
  grid-column: 3;
}

.menu--account ul.menu {
  text-align: right;
  margin: 0;
}

.menu--account ul.menu li {
  padding: 0;
}

/* Other menus */

.region-sidebar-first .menu--main ul.menu {
  margin-left: 0;
}

.region-sidebar-first .menu--main li a {
  display: block;
  padding: 0.5em 0 0.5em 2em;
}

.region-sidebar-first .menu--main ul ul li a {
  display: block;
  padding: 0.25em 0 0.25em 4em;
}

/* Content and sidebars */

.layout-container {
  display: grid;
  gap: 1em;
  padding: 1em;
  grid-template-columns: 1fr 4fr 1fr;
}

header {
  display: contents;
}


/* Grid row 2: title bar. */
.region-title-bar {
  grid-row: 2;
  grid-column: 2;
}

.block-page-title-block {
  padding: 0.5em 1em;
  margin: 0 -1em;
}
.block-page-title-block:before {
  grid-row: 2;
  grid-column: 1;
  content: '';
}

.title-bar-left {
  grid-row: 2;
  grid-column: 1;
  margin-left: -1em;
}

.title-bar-right {
  grid-row: 2;
  grid-column: 3;
  margin-right: -1em;
}

main {
  display: contents;
}

/* Grid row 3: messages. */

.region-highlighted {
  grid-row: 3;
  grid-column: 2;
}

/* Grid row 4: content and sidebars. */

.layout-content {
  grid-row: 4;
  grid-column: 2;
  flex: 3;
  flex-wrap: wrap;
}

.path-gallery .layout-content {
  grid-column-start: 2;
  grid-column-end: 4;
}

.layout-sidebar-first {
  grid-row: 4;
  grid-column: 1;
}

.layout-sidebar-second {
  grid-row: 4;
  grid-column: 3;
}

aside {
  flex: 1;
}

/* Grid row 5: footer. */

#footer-bar-left {
  grid-row: 5;
  grid-column: 1;
}

footer {
  grid-row: 5;
  grid-column: 2;
}

#footer-bar-right {
  grid-row: 5;
  grid-column: 3;
}

/* Facets */

.facets-widget-checkbox ul {
  list-style-type: none;
  padding: 0;
}

.facets-widget-checkbox label {
  font-family: "Source sans pro", Helvetica, Arial, sans-serif;
  font-weight: normal;
  color: #444;
  padding-left: 0.25em;
  margin-bottom: 0;
}

li.facets-reset .facet-item__count {
  display: none;
}

/* Tabs */

.tabs.primary {
  box-sizing: border-box;
}

.tabs.primary > li {
  position: relative;
}

.tabs.primary > li a {
  border-radius: 0.25em 0.25em 0 0;
}

/* Fields */

.node__content .clearfix:after {
  clear: left;
}

.field--label-inline .field__label, .field--label-inline > .field__item, .field--label-inline .field__items {
  padding-right: 0;
}

.node--view-mode-full .field {
  margin-bottom: 2em;
}

.node--view-mode-full .field--label-inline .field__label {
  width: 11em;
}

.node--view-mode-full .field--label-inline .field__item {
  margin-left: 11em;
}

.node--view-mode-full .field--label-inline .field__items .field__item {
  margin-left: 0;
}

.node--view-mode-teaser .node__links {
  clear: both;
  margin-top: 1em;
  text-align: right;
}

/* Teasers */

.view-header {
  overflow: hidden;
}

.view.cards .view-content {
  margin-top: 1em;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(22em, 1fr));
  gap: 1em;
}

.view.cards .view-content .views-row {
  display: flex;
}

.view.cards .view-content .views-row article {
  flex: 1;
}

.view.cards article {
  background: #fcfcfc;
  padding: 1rem;
  border-radius: var(--border-radius);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}

.view.cards article h2 {
  border-radius: var(--border-radius);
  margin: -1rem -1rem 0 -1rem;
  padding: 1rem;
}

/* Pager */

.pager__items {
  display: flex;
  flex-wrap: wrap;
  background: hsl(var(--blue-hue), 100%, 95%);
  border-radius: var(--border-radius);
}

.pager__item {
  flex-basis: 2em;
}

.pager__item a {
  display: block;
  line-height: 2em;
  white-space: nowrap;
  border-radius: var(--border-radius);
}

.pager__item a:hover,
.pager__item.is-active a {
  background: hsl(var(--blue-hue), 100%, 80%);
}

/* Commerce */

.view-commerce-checkout-order-summary table {
  width: 100%;
}
.view-commerce-cart-form .views-field-total-price__number,
.view-commerce-checkout-order-summary .views-field-total-price__number {
  padding: 0;
  text-align: right;
}
.order-total-line {
  padding: 0;
}
