html {
  font-size: 16px;
}

@media screen and (min-width: 1020px) {
  html {
    font-size: 20px;
  }
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--color-text);
  font-family: Abel, Arial, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: 300;
  line-height: 1rem;
  min-height: 100vh;
  min-width: var(--min-width);
  overflow-x: hidden;
  position: relative;
  width: 100vw;
}

@media screen and (min-width: 1020px) {
  body {
    font-size: 20px;
  }
}

.ck-content * {
  font-family: Abel, Arial, Helvetica, sans-serif;
}

@media screen and (min-width: 1020px) {
  .ck-content ol, .ck-content p, .ck-content ul {
    font-size: 20px;
    font-weight: 300;
  }
}

.main-content {
  margin: 0 auto;
  max-width: var(--max-width-content);
  padding: calc(100px + 1rem) 1rem 3rem;
}

@media screen and (min-width: 1020px) {
  .main-content {
    max-width: calc(var(--max-width-content) + 4.8rem);
    padding: calc(100px + 1rem) 2.4rem 6rem;
  }
}

.main-content [id] {
  scroll-margin-top: var(--scroll-margin-top-small);
}

body[data-type=location] .main-content, body[data-type=specialism] .main-content {
  padding-top: 0;
}

.is-front .article--full, .is-front .main-content, .is-homepage:not(.palette-hospital) .article--full, .is-homepage:not(.palette-hospital) .main-content {
  margin-top: 0;
  padding-top: 0;
}

@media screen and (min-width: 761px) {
  .has-sidebar .main-content-wrapper {
    display: flex;
    gap: 2rem;
    justify-content: center;
    padding-bottom: 8rem;
  }

  .has-sidebar .main-content-inner {
    flex: 2 1 0;
  }

  .has-sidebar .sidebar {
    flex: 1 1 0;
    margin-top: 1rem;
  }

  .has-sidebar .pager {max-width: calc(100vw - 2rem);
    position: absolute;
    width: var(--max-width-content);
  }
}

a {
  color: var(--color-primary);
}

a:hover {
  text-decoration: none;
}

a:hover, h1, h2, h3, h4 {
  color: var(--color-primary-darker);
}

h1, h2, h3, h4 {
  font-weight: var(--font-weight-bold);
  line-height: 1;
  margin: 0;
}

h1 {
  font-size: 2rem;
}

h1, h2 {
  padding: 1rem 0;
}

h2 {
  font-size: 1.6rem;
}

h3 {
  font-size: 1.2rem;
  padding: 1rem 0;
}

strong {
  font-weight: var(--font-weight-bold);
}

img {
  max-width: 100%;
}

p {
  margin: 0;
}

p + h3 {
  padding-top: 0;
}

.content-section, .grid, .media-audio, .media-document, .media-image, .media-video, .quicklinks, .text, blockquote, figure, ol, p, table, ul, ul.list {
  line-height: 1.5rem;
  margin-bottom: 2rem;
  margin-top: 0;
}

.content-section--first {
  margin-top: 1rem;
}

.content-section--no-margin, .content-section:last-child, .grid:last-child, .media-audio:last-child, .media-document:last-child, .media-image:last-child, .media-video:last-child, .quicklinks:last-child, .text:last-child, blockquote:last-child, figure:last-child, ol:last-child, p:last-child, table:last-child, ul.list:last-child, ul:last-child {
  margin-bottom: 0;
}

.content-section--full {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: 100vw;
  padding: 2em 2em 0 2em;
}

/** Prevent the contextual links button from moving off the screen. */
.content-section--full .contextual {
  right: 2em;
}

.content-section--top {
  /* TODO: Make header height a variable */
  margin-top: calc(-148px - 1rem);
}

/** Prevent the section from overflowing the Layout Builder action buttons and links. */
.layout-builder__section .content-section--top {
  margin-top: 0;
}

.content-section--background {
  padding: 2rem;
}

.content-section--no-padding {
  padding: 0;
}

.layout-builder-block > .text, a > .media-image, a > figure {
  margin-bottom: 2rem;
}

.layout-builder-block:last-child > .text, a:last-child > .media-image, a:last-child > figure, figure > .media-image {
  margin-bottom: 0;
}

.page-title {
  margin: 0 auto;
  max-width: var(--max-width-content);
  padding: 2rem 0;
}

.page-title--small {
  max-width: var(--max-width-content-small);
}

.page-title--extra-small {
  max-width: var(--max-width-content-extra-small);
}

.content-section + .content-section > h2 {
  padding-top: 1rem;
}

.visually-hidden {
  clip: rect(.1rem, .1rem, .1rem, .1rem);
  word-wrap: normal;
  bottom: auto;
  height: .1rem;
  left: auto;
  overflow: hidden;
  position: absolute !important;
  right: auto;
  top: auto;
  width: .1rem;
}

.visually-hidden.focusable:active, .visually-hidden.focusable:focus {
  clip: auto;
  height: auto;
  overflow: visible;
  position: static !important;
  width: auto;
}

.hidden, .js-hide {
  display: none;
}

a:focus, button:focus, summary:focus {
  outline-color: var(--color-primary);
  outline-offset: .1rem;
  outline-style: dotted;
  outline-width: .1rem;
  transition: outline-offset .05s ease-in-out;
}

a:focus:not(:focus-visible), button:focus:not(:focus-visible), summary:focus:not(:focus-visible) {
  outline: 0;
}

.text-small {
  font-size: .8rem;
}

.text-medium {
  font-size: 1.2rem;
}

.text-large {
  font-size: 1.6rem;
}

.text-extra-large {
  font-size: 2rem;
}

.text-align-left {
  text-align: left;
}

.text-align-right {
  text-align: right;
}

.text-align-center {
  text-align: center;
}

.text-align-justify {
  text-align: justify;
}

.text-emergency {
  align-items: center;
  color: var(--color-secondary-darker);
  display: flex;
  font-size: 1.2rem;
  font-weight: var(--font-weight-bold);
  margin: 1rem 0;
}

.text-emergency .icon {
  height: 1.2rem;
  margin-right: .5rem;
  width: 1.2rem;
}

.align-left {
  display: block;
  float: left;
  margin-bottom: .5rem;
  margin-right: 1rem;
  max-width: calc(50% - .5rem);
  width: 100%;
}

@media screen and (min-width: 1020px) {
  .align-left {
    margin-right: 1.5rem;
    max-width: calc(50% - .75rem);
  }
}

.align-right {
  display: block;
  float: right;
  margin-bottom: 2rem;
  margin-left: 1rem;
  max-width: calc(50% - .5rem);
  width: 100%;
}

@media screen and (min-width: 1020px) {
  .align-right {
    max-width: calc(50% - .75rem);
  }
}

.align-center {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.w-10 {
  width: 10%;
}

.w-20 {
  width: 20%;
}

.w-30 {
  width: 30%;
}

.w-40 {
  width: 40%;
}

.w-50 {
  width: 50%;
}

.w-60 {
  width: 60%;
}

.w-70 {
  width: 70%;
}

.w-80 {
  width: 80%;
}

.w-90 {
  width: 90%;
}

.w-100 {
  width: 100%;
}

.list--reset {
  list-style: none outside none;
  margin: 0;
  padding: 0;
}

.list--reset li {
  padding: 0;
}

.list--inline {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

.list--lines li {
  border-bottom: 1px solid var(--color-grey-lighter);
}

.list--lines li:last-child {
  border-bottom: 0;
}

.list--columns {
  column-count: 1;
}

@media screen and (min-width: 481px) {
  .list--columns {
    column-count: 2;
  }
}

.list--margin-bottom {
  margin-bottom: 1rem;
}

.text-block {
  padding: 1rem;
}

@media screen and (min-width: 761px) {
  .text-block {
    padding: 2rem;
  }
}

.text-block--no-padding {
  padding-left: 0;
  padding-right: 0;
}

.text-block--light-grey {
  background-color: var(--color-grey-lighter);
}

.text-block--border {
  border-top: 1px solid var(--color-grey-lighter);
}

.text-block--full {
  width: calc(var(--max-width-content) - 2rem);
}

@media screen and (min-width: 761px) {
  .text-block--full {
    width: calc(var(--max-width-content) - 4.8rem);
  }
}

hr {
  background-color: var(--color-grey-lighter);
  border: 0;
  height: 1px;
  margin: 2rem 0;
}

.content-section--brandbox, .content-section--top-tasks, .layout-builder__section--layout__brandbox {
  margin-left: calc(50% - var(--width) / 2);
  margin-right: calc(50% - var(--width) / 2);
  padding: 0;
}

@media screen and (min-width: 1500px) {
  .content-section--brandbox, .content-section--top-tasks, .layout-builder__section--layout__brandbox {
    margin-left: calc(50% - var(--max-width) / 2);
    margin-right: calc(50% - var(--max-width) / 2);
    max-width: var(--max-width);
  }
}

.content-section--top-tasks {
  background-color: var(--color-grey-lighter);
  padding: 2rem 0;
}

.content-section--top-tasks ul {
  margin: 0 auto;
  max-width: var(--max-width-content);
  padding: 0 1rem;
}

@media screen and (min-width: 1020px) {
  .content-section--top-tasks ul {
    max-width: calc(var(--max-width-content) + 4.8rem);
    padding: 0 2.4rem;
  }
}

.content-section--brandbox {
  margin-bottom: 0;
}

.content-section--brandbox + .content-section {
  margin-top: 0;
}

.js-dialog-prevent-scroll {
  height: 100vh;
  overflow: hidden;
  width: 100vw;
}

.ajax-progress {
  display: none;
}

.bg-white {
  background-color: var(--color-white);
}

.bg-primary-light {
  background-color: var(--color-primary-light);
}

.bg-primary {
  background-color: var(--color-primary);
}

.bg-primary-dark {
  background-color: var(--color-primary-darker);
}

.bg-secondary-light {
  background-color: var(--color-secondary-light);
}

.bg-secondary {
  background-color: var(--color-secondary);
}

.bg-secondary-dark {
  background-color: var(--color-secondary-darker);
}

.bg-grey-light {
  background-color: var(--color-grey-light);
}

.bg-grey {
  background-color: var(--color-grey);

}

.bg-grey-dark {
  background-color: var(--color-grey-darker);
}

.bg-black {
  background-color: var(--color-black);
}

/* Whatsapp */
.whatsapp--floating-button .whatsapp__button {
  align-items: center;
  background-color: var(--color-whatsapp-green);
  border-radius: 50px !important;
  -moz-border-radius: 50px !important;
  -webkit-border-radius: 50px !important;
  bottom: 20px;
  color: var(--color-white);
  display: flex;
  font-size: 30px;
  height: 60px;
  justify-content: center;
  position: fixed;
  right: 20px;
  text-decoration: none;
  transition: all .2s ease-in-out;
  width: 60px;
  z-index: 5;
}

.whatsapp--floating-button .whatsapp__button:hover .whatsapp__icon {
  transform: scale(1.1);
}

.page-node-type-car .splide__slide img {
  height: auto;
}

/* @TODO Move to component once we have support for links with icons. */
.social-links--list {
  display: grid;
  grid-gap: 1rem;
  grid-template-columns: repeat(5, 2rem);
  height: 4rem;
  list-style: none;
  padding-top: 1rem;
}

.social-links__link {
  border: solid 3px var(--color-primary);
  color: var(--color-primary);
  display: block;
  font-size: 1.25rem;
  height: 2rem;
  line-height: 2rem;
  text-align: center;
  width: 2rem;
}

.facets-widget-dropdown ul {
  display: none;
}

/* Button bar */
/* @TODO Move button bar to component. */
.button-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  margin: 2rem 0;
}

.button-bar--overview {
  padding-bottom: 2rem;
}

.button-bar--left {
  justify-content: flex-start;
}
