@media only screen and (min-width: 40em) {
  @supports (display: flex) {
    .c-row-sm {
      display: flex;
      flex-wrap: wrap;
    }
  }

  @supports not (display: flex) {

    .c-row-sm:before,
    .c-row-sm:after {
      content: "";
      display: table;
    }

    .c-row-sm:after {
      clear: both;
    }

    [class*=c-col-sm-] {
      float: left;
    }
  }

  .c-row-sm {
    margin-left: -0.5em;
    margin-right: -0.5em;
  }

  .c-row-sm [class*=c-col-] {
    padding-left: 0.5em;
    padding-right: 0.5em;
  }

  [class*=c-col-sm-] {
    width: 100%;
    min-height: 1px;
  }

  .c-col-sm-1 {
    width: 8.3333333333% !important;
  }

  .c-col-sm-2 {
    width: 16.6666666667% !important;
  }

  .c-col-sm-3 {
    width: 25% !important;
  }

  .c-col-sm-4 {
    width: 33.3333333333% !important;
  }

  .c-col-sm-5 {
    width: 41.6666666667% !important;
  }

  .c-col-sm-6 {
    width: 50% !important;
  }

  .c-col-sm-7 {
    width: 58.3333333333% !important;
  }

  .c-col-sm-8 {
    width: 66.6666666667% !important;
  }

  .c-col-sm-9 {
    width: 75% !important;
  }

  .c-col-sm-10 {
    width: 83.3333333333% !important;
  }

  .c-col-sm-11 {
    width: 91.6666666667% !important;
  }

  .c-col-sm-12 {
    width: 100% !important;
  }

  .c-col-sm-6:nth-child(2) {
    margin-top: 0;
  }

  .c-gutter-sm {
    margin-left: -0.5em;
    margin-right: -0.5em;
  }

  .c-gutter-sm [class*=c-col-] {
    padding-left: 0.5em;
    padding-right: 0.5em;
  }
}

@media only screen and (min-width: 55em) {
  @supports (display: flex) {
    .c-row {
      display: flex;
      flex-wrap: wrap;
    }
  }

  @supports not (display: flex) {

    .c-row:before,
    .c-row:after {
      content: "";
      display: table;
    }

    .c-row:after {
      clear: both;
    }

    [class*=c-col-] {
      float: left;
    }
  }

  .c-row {
    margin-left: -1em;
    margin-right: -1em;
  }

  .c-row [class*=c-col-] {
    padding-left: 1em;
    padding-right: 1em;
  }

  [class*=c-col-] {
    width: 100%;
    min-height: 1px;
  }

  .c-col-1 {
    width: 8.3333333333%;
  }

  .c-col-2 {
    width: 16.6666666667%;
  }

  .c-col-3 {
    width: 25%;
  }

  .c-col-4 {
    width: 33.3333333333%;
  }

  .c-col-5 {
    width: 41.6666666667%;
  }

  .c-col-6 {
    width: 50%;
  }

  .c-col-7 {
    width: 58.3333333333%;
  }

  .c-col-8 {
    width: 66.6666666667%;
  }

  .c-col-9 {
    width: 75%;
  }

  .c-col-10 {
    width: 83.3333333333%;
  }

  .c-col-11 {
    width: 91.6666666667%;
  }

  .c-col-12 {
    width: 100%;
  }

  .c-col-6:nth-child(2),
  .c-col-4:nth-child(2),
  .c-col-4:nth-child(3),
  .c-col-3:nth-child(2),
  .c-col-3:nth-child(3),
  .c-col-3:nth-child(4) {
    margin-top: 0;
  }

  .c-pullright {
    order: 2;
  }

  .c-pullright+* {
    order: 1;
  }

  .c-gutter {
    margin-left: -1em;
    margin-right: -1em;
  }

  .c-gutter [class*=c-col-] {
    padding-left: 1em;
    padding-right: 1em;
  }
}

.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}

.slick-list:focus {
  outline: none;
}

.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-loading .slick-list {
  background: #fff url("../img/ajax-loader.gif") center center no-repeat;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
  display: flex;
}

.slick-track:before,
.slick-track:after {
  content: "";
  display: table;
}

.slick-track:after {
  clear: both;
}

.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  margin-top: 0;
  height: auto;
  flex-grow: 0;
}

.slick-slide img {
  display: block;
}

.slick-slide.slick-loading img {
  display: none;
}

.slick-slide.dragging img {
  pointer-events: none;
}

.slick-initialized .slick-slide {
  display: block;
}

.slick-loading .slick-slide {
  visibility: hidden;
}

.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

.slick-prev,
.slick-next {
  position: absolute;
  display: block;
  z-index: 2;
  height: 44px;
  width: 44px;
  cursor: pointer;
  top: 45%;
  -webkit-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  transform: translate(0, -50%);
  padding: 0;
  border: none;
  outline: none;
  opacity: 1;
  overflow: hidden;
  text-indent: 200%;
  white-space: nowrap;
  background-color: transparent !important;
  background-size: contain;
  background-repeat: no-repeat;
}

.slick-prev:hover,
.slick-next:hover {
  outline: none;
  opacity: 0.5;
}

.slick-prev.slick-disabled,
.slick-next.slick-disabled {
  opacity: 0.25;
}

.slick-prev {
  left: -5px;
  background-image: url("../img/arrow-prev.png");
}

.slick-next {
  right: -5px;
  background-image: url("../img/arrow-next.png");
  margin-top: 0;
}

/* Dots */
.slick-dots {
  position: absolute;
  bottom: 0;
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  margin: 0;
  width: 100%;
}

.slick-dots li {
  position: relative;
  display: inline-block;
  height: 20px;
  width: 20px;
  margin: 0 6px;
  padding: 0;
  cursor: pointer;
}

.slick-dots li button {
  border: 0;
  background: #9b172c;
  display: block;
  height: 13px;
  width: 13px;
  border-radius: 50%;
  outline: none;
  cursor: pointer;
  overflow: hidden;
  text-indent: 200%;
  white-space: nowrap;
  color: transparent;
}

.slick-dots li button:hover {
  outline: none;
  opacity: 0.5;
}

.slick-dots li.slick-active button {
  background-color: #003366;
  opacity: 1;
}

.slick-dots li.slick-active button:hover {
  opacity: 0.5;
}



hr {
  height: 1px;
  border: none;
  background: #003366;
}


.modal-open {
  overflow: hidden;
}

.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}

.modal {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  display: none;
  overflow: hidden;
  outline: 0;
}

.modal button {
  border: none;
  margin-top: 1.5em;
}

.modal button.close {
  -webkit-appearance: none;
  padding: 0;
  cursor: pointer;
  background: 0 0;
  border: 0;
  float: right;
  font-size: 40px;
  font-weight: 700;
  line-height: 5px;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  filter: alpha(opacity=20);
  opacity: 0.2;
}

.modal button.close:focus,
.modal button.close:hover {
  color: #000;
  text-decoration: none;
  cursor: pointer;
  filter: alpha(opacity=50);
  opacity: 0.5;
}

.modal-dialog {
  position: relative;
  width: auto;
  margin: 0.5rem;
  pointer-events: none;
  top: 180px;
}

.modal.fade .modal-dialog {
  transition: -webkit-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
  margin-top: -140px;
}

.modal.show .modal-dialog {
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
}

.modal-dialog-centered {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  min-height: calc(100% - (0.5rem * 2));
}

.modal-content {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  width: 100%;
  pointer-events: auto;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 0.3rem;
  outline: 0;
}

.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000;
}

.modal-backdrop.fade {
  opacity: 0;
}

.modal-backdrop.show {
  opacity: 0.5;
}

.modal-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  padding: 1rem;
  border-bottom: 1px solid #e9ecef;
  border-top-left-radius: 0.3rem;
  border-top-right-radius: 0.3rem;
}

.modal-header .close {
  padding: 1rem;
  margin: 0 0 0 auto;
}

.modal-title {
  margin-bottom: 0;
  line-height: 1.5;
}

.modal-body {
  position: relative;
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  padding: 1rem;
}

.modal-footer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  padding: 1rem;
  border-top: 1px solid #e9ecef;
}

.modal-footer> :not(:first-child) {
  margin-left: 0.25rem;
}

.modal-footer> :not(:last-child) {
  margin-right: 0.25rem;
}

.modal-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}

@media (min-width: 576px) {
  .modal-dialog {
    max-width: 500px;
    margin: 1.75rem auto 1.75rem;
    top: 150px;
  }

  .modal-dialog-centered {
    min-height: calc(100% - (1.75rem * 2));
  }

  .modal-sm {
    max-width: 300px;
  }
}

@media (min-width: 992px) {
  .modal-lg {
    max-width: 800px;
  }
}

.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000;
  transition: 0.2s ease-in-out;
}

.modal-backdrop.fade {
  opacity: 0;
}

.modal-backdrop.in {
  opacity: 0.5;
}

[class*=c-bg] {
  background-size: 100% auto;
  background-size: cover;
  background-position: 50%;
}


h1,
.c-heading {
  font-size: 1.5em;
}

h1 span,
.c-heading span {
  color: #9b172c;
}

@media (min-width: 40em) {

  h1,
  .c-heading {
    font-size: 2em;
  }
}

h2,
.c-subheading {
  font-size: 1.125em;
}

@media (min-width: 40em) {

  h2,
  .c-subheading {
    font-size: 1.25em;
  }
}

@media (min-width: 40em) {
  h3 {
    font-size: 1.125em;
  }
}

main a:not([class]) {
  text-decoration: underline;
}

main a:not([class]):hover {
  color: #003366;
}

.c-leading {
  font-size: 1.125em;
  font-weight: 700;
}

.c-subheading {
  font-weight: 700;
  margin-top: 0;
  color: #9b172c;
}

@supports (counter-reset: ol-counter) {
  ol {
    list-style: none;
    counter-reset: ol-counter;
  }

  ol li {
    padding-left: 1.5em;
    position: relative;
  }

  ol li:before {
    content: counter(ol-counter);
    position: absolute;
    left: 0;
    top: 0;
    font-weight: 700;
    color: #003366;
  }

  ol>li {
    padding-left: 3em;
    padding-top: 0.25em;
    counter-increment: ol-counter;
  }

  ol>li:before {
    padding: 4px;
    height: 2em;
    width: 2em;
    line-height: 1.125;
    text-align: center;
    border: 2px solid #003366;
    box-shadow: 3px 3px 0 #003366;
    transition: 0.15s ease-in-out;
  }

  ol:not(.c-no-hover)>li:hover:before {
    box-shadow: 0 0 0 #003366;
  }

  ol ol li:before {
    content: counter(ol-counter, lower-roman);
  }
}

.c-dots {
  list-style: none;
}

.c-dots li {
  padding-left: 12px;
  margin-top: 2px;
  position: relative;
}

.c-dots li::before {
  content: "";
  height: 4px;
  width: 4px;
  border-radius: 4px;
  background-color: #003366;
  position: absolute;
  top: 10px;
  left: 0;
}

.c-dots ul {
  list-style: none;
}

.c-sitemap {
  max-width: 15em;
  margin-left: auto;
  margin-right: auto;
}

.c-featured {
  margin-top: .5em;
}

.c-featured li {
  margin-top: 0;
  font-size: 14px;
}

@media only screen and (min-width: 40em) {
  .c-featured {
    display: flex;
    flex-wrap: wrap;
  }

  .c-featured li {
    flex-basis: 50%;
  }
}

.c-tick {
  list-style: none;
}

.c-tick.c-tick--secondary.padded {
  padding-left: 16px;
}

.c-tick.c-tick--secondary li {
  padding-left: 0;
}

.c-tick.c-tick--secondary li::before {
  border-color: #9b172c;
  display: inline-block;
  position: relative;
  left: -8px;
  top: -2px;
}

.c-tick li {
  padding-left: 24px;
  margin-top: 1px;
  position: relative;
}

.c-tick li::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 12px;
  border: solid #d3a412;
  border-width: 0 3px 3px 0;
  transform: rotate(45deg);
  position: absolute;
  top: 6px;
  left: 2px;
}

.c-tick.c-ib li {
  margin-left: 1em;
  margin-right: 1em;
  font-weight: 700;
}

/*------------
Utility classes
------------*/
[class*=u-mw-],
[class*=u-wrapper] {
  margin-left: auto;
  margin-right: auto;
}

[class*=u-wrapper] {
  padding-left: 1em;
  padding-right: 1em;
}

.c-bordered {
  display: inline-block;
  position: relative;
}

.c-bordered img {
  display: block;
}

.c-bordered::after {
  content: "";
  position: absolute;
  top: 15px;
  left: 15px;
  bottom: 15px;
  right: 15px;
  border: 1px solid #fff;
}

.u-wrapper {
  max-width: 75em;
}

.u-mw-left {
  margin-left: 0;
}

.u-mw-33 {
  max-width: 33em;
}

.u-mw-45 {
  max-width: 45em;
}

.u-mw-60 {
  max-width: 60em;
}

.u-mw-62 {
  max-width: 62.5em;
}

.u-flat {
  margin-top: 0 !important;
}

.u-mt-2 {
  margin-top: 2em;
}

.u-mt-3 {
  margin-top: 3em;
}

.u-mt-4 {
  margin-top: 4em;
}

.u-mt-5 {
  margin-top: 5em;
}

.u-t-a-c {
  text-align: center;
}

.u-tt-n {
  text-transform: none;
}

.u-strong {
  font-weight: 700;
}

.u-lh-2 {
  line-height: 2;
}

.u-c-p {
  color: #003366;
}

.u-c-s {
  color: #9b172c;
}

.u-p-r {
  position: relative;
}

.u-skip-link {
  position: absolute;
  top: 0;
  right: 100%;
}

.u-skip-link:focus {
  right: auto;
}

.c-button {
  padding: 0.75em 2em;
  color: #fff;
  background-color: #003366;
  border: solid 1px #003366;
  transition: 0.3s ease-out;
  text-transform: uppercase;
  text-align: center;
  display: inline-block;
  cursor: pointer;
}

.c-button:hover {
  color: #fff;
  background-color: #9b172c;
  border-color: #9b172c;
}

.c-button--outline {
  background-color: transparent;
  border-color: #efc441 !important;
  color: #efc441;
}

.c-button--outline:hover {
  background-color: #efc441;
  color: #fff !important;
}

.c-button--outline-red {
  background-color: #fff;
  color: #9b172c;
  border: 2px solid #9b172c !important;
}

.c-button--outline-red :hover {
  background-color: #9b172c;
}

form button,
form .button {
  position: relative;
}

label {
  display: block;
}

label+input,
label+textarea,
label+select {
  margin-top: 0;
}

input,
textarea,
select {
  padding: 0.75em 1em;
  border: 2px solid #ddd;
  width: 100%;
  -webkit-appearance: none;
}

select {
  -webkit-appearance: listbox;
}

input.u-half,
textarea.u-half {
  width: 50%;
}

input.input-error,
textarea.input-error,
select.input-error {
  border-color: #e4655f !important;
}

textarea {
  height: 9em;
}

.c-checkbox {
  opacity: 0;
  height: 0;
  padding: 0;
  border: none;
  display: none;
  margin: 0 !important;
}

.c-checkbox:checked+label::after {
  content: "";
}

.c-checkbox:focus+label::before {
  outline: #3b99fc auto 5px;
}

.c-checkbox.input-error+label::before {
  border-color: #e4655f !important;
}

.c-checkbox+label {
  margin-top: -12px !important;
  position: relative;
  display: inline-block;
  cursor: pointer;
  /*16px width of fake .c-gdpr + 6px distance between fake .c-gdpr and text*/
  padding-left: 22px;
}

.c-checkbox+label::before,
.c-checkbox+label::after {
  position: absolute;
  content: "";
  /*Needed for the line-height to take effect*/
  display: inline-block;
}

.c-checkbox+label::before {
  height: 16px;
  width: 16px;
  border: 2px solid #003366;
  left: 0px;
  top: 3px;
}

.c-checkbox+label::after {
  height: 5px;
  width: 9px;
  border-left: 2px solid;
  border-bottom: 2px solid;
  border-color: #003366;
  transform: rotate(-45deg);
  left: 4px;
  top: 7px;
  content: none;
}

.c-select {
  width: 18em;
  max-width: 100%;
  overflow: hidden;
  position: relative;
  border: 2px solid #ddd;
  background-color: #fff;
}

.c-select.input-error {
  border-color: #e4655f !important;
}

.c-select::after {
  content: "";
  width: 0;
  height: 0;
  display: block;
  position: absolute;
  z-index: 1;
  border: 0;
  top: 50%;
  right: 10px;
  margin-top: -3px;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid #003366;
  bottom: -8px;
}

.c-select select {
  margin-top: 0;
  margin-left: 0;
  padding: 0.75em 1em;
  width: 110%;
  border: none;
  box-shadow: none;
  background-color: transparent;
  background-image: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  position: relative;
  z-index: 2;
  cursor: pointer;
}

.c-select select:focus {
  outline: none;
}

.c-select select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}

.c-line {
  position: relative;
}

.c-line::before {
  content: "";
  z-index: 2;
  position: absolute;
  top: 0.5em;
  left: 0;
  right: 0;
  border-top: 1px solid #fff;
}

.c-line--secondary::before {
  border-color: #9b172c;
}

.c-line-bottom::after {
  content: "";
  z-index: 2;
  position: absolute;
  bottom: 0.5em;
  left: 0;
  right: 0;
  border-bottom: 1px solid #fff;
}

@media (min-width: 55em) {
  .c-card-row {
    justify-content: center;
  }

  .c-card-row+.c-card-row {
    margin-top: 3em;
  }
}

.c-card-row--flex .c-col-4 {
  display: flex;
}

.c-card-row--flex .c-card {
  display: flex;
  flex-direction: column;
}

.c-card-row--flex .c-card div {
  flex-grow: 1;
}

.c-card {
  position: relative;
  background-color: #9f2b4b;
  padding: 0.75em;
  color: #fff;
}

.c-card .c-card__content {
  padding: 1em;
  position: relative;
  z-index: 2;
  border: 1px solid #fff;
}

.c-card--white {
  background-color: #fff;
  color: #333;
  box-shadow: 0 0 12px rgba(0, 0, 0, .64);
  transition: .25s ease-in-out;
}

.c-card--white:hover {
  box-shadow: 0 0 6px rgba(0, 0, 0, .32);
}

.c-card--small::before,
.c-card--small::after {
  content: "";
  position: absolute;
  z-index: 1;
  height: 100%;
  width: 100%;
  background-size: 100% auto;
  background-repeat: no-repeat;
  background-position: bottom;
  background-image: url(../img/triangle.svg);
  max-width: 200px;
}

.c-card--small::before {
  bottom: 0;
  left: 0;
}

.c-card--small::after {
  top: 0;
  right: 0;
  transform: rotate(180deg);
}

.c-card--button .c-card__content {
  padding-bottom: 2em;
}

.c-card--button .c-button {
  font-weight: 700;
  background-color: #fff;
  border-color: #fff;
  color: #9b172c;
}

.c-card--button .c-button:hover {
  background-color: #003366;
  border-color: #003366;
  color: #fff;
}

.c-card--small h3 {
  font-size: 1.125em;
}

.c-card--small p {
  margin-top: 1em;
}

.c-card--small p+p {
  margin-top: 0;
}

@media (min-width: 37.5em) {
  .c-card--small .c-button {
    position: absolute;
    bottom: -2em;
    margin: 0;
    left: 50%;
    transform: translateX(-50%);
  }
}

@media (min-width: 65em) {
  .c-card--big .c-button {
    position: absolute;
    bottom: -2em;
    margin: 0;
  }

  .c-card--big:not(.c-card--button--two) .c-button {
    left: 50%;
    transform: translateX(-50%);
  }

  .c-card--big.c-card--button--two .c-button:first-of-type {
    left: 1em;
  }

  .c-card--big.c-card--button--two .c-button:last-of-type {
    right: 1em;
  }
}

.c-card-grow {
  display: flex;
  flex-direction: column;
}

.c-card-grow .c-card {
  flex-grow: 1;
  display: flex;
}

.c-card-grow .c-card__content {
  width: 100%;
}

.c-property-card {
  max-width: 539px;
  margin-left: auto;
  margin-right: auto;
}

.c-property-card a {
  text-decoration: none;
}

.c-property-card a:hover span {
  background-color: #9b172c;
}

.c-property-card a,
.c-property-card figure,
.c-property-card img,
.c-property-card span {
  display: block;
}

.c-property-card span {
  text-transform: uppercase;
  background-color: #003366;
  margin-top: 0;
  color: #fff;
  font-weight: 700;
  font-size: 1.125em;
  padding: 0.75em 0.5em;
}

.c-video img {
  display: inline-block;
  margin-right: 1.25em;
  transition: 0.3s ease-out;
}

.c-video p {
  display: inline-block;
  text-transform: uppercase;
  font-weight: 700;
  color: #efc441;
  text-align: left;
  margin-top: 0.5625em;
  line-height: 1.25;
}

.c-video a {
  display: inline-block;
  text-decoration: none;
}

.c-video a:hover img {
  opacity: 0.7;
}

.c-video a:hover span {
  text-decoration: underline;
}

.c-video span {
  transition: 0.3s ease-out;
}

.c-video span:first-child {
  color: #fff;
  display: block;
}

.c-video span:last-child {
  font-size: 1.125em;
}

.c-video--red p {
  color: #9b172c;
}

.c-video--red span:first-child {
  color: #333;
}

.c-video--no-img {
  padding-left: 5.25em;
  padding-left: calc(64px + 1.25em);
}

.c-ib>* {
  display: inline-block;
}

.c-logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.c-logos img {
  margin: 0 30px;
}

.c-map {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.c-intro>* {
  max-width: 37.5em;
}

.c-accreditations img {
  margin-left: 1em;
  margin-right: 1em;
}

.c-search-form {
  background-color: #fff;
  padding: 2em;
  position: relative;
}

.c-search-form:before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 0.5em;
  right: 0.5em;
  bottom: 0.5em;
  left: 0.5em;
  border: 1px solid #003366;
}

.c-search-form>* {
  position: relative;
  z-index: 1;
}

/* ----------------------------------------------------------- */
/* == Property results card (vertical layout)                  */
/* Markup: search/partials/search.php                          */
/* ----------------------------------------------------------- */

#results {
  margin: 24px 0;
}

.c-results-item + .c-results-item {
  margin-top: 1.75rem;
}

.c-results-item {
  position: relative;
  display: grid;
  grid-template-columns: minmax(280px, 38%) 1fr;
  grid-template-rows: auto auto;
  grid-template-areas:
    "media body"
    "media footer";
  min-height: 240px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 10px;
  overflow: hidden;
  box-shadow:
    0 0.9px 1.5px rgba(0, 0, 0, 0.03),
    0 3.1px 5.5px rgba(0, 0, 0, 0.06),
    0 8px 16px rgba(0, 0, 0, 0.06);
  transition: transform .25s cubic-bezier(0.215, 0.61, 0.355, 1),
              box-shadow .25s cubic-bezier(0.215, 0.61, 0.355, 1);
}

@media (max-width: 40em) {
  .c-results-item {
    grid-template-columns: 1fr;
    grid-template-areas:
      "media"
      "body"
      "footer";
  }
}

.c-results-item::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 3px;
  background-color: #EFC53F;
  transition: width .3s cubic-bezier(0.215, 0.61, 0.355, 1);
  z-index: 2;
  pointer-events: none;
}

.c-results-item:hover {
  transform: translateY(-4px);
  box-shadow:
    0 1.2px 1.9px rgba(0, 0, 0, 0.02),
    0 3.3px 5.3px rgba(0, 0, 0, 0.05),
    0 8.5px 12.7px rgba(0, 0, 0, 0.09),
    0 22px 32px rgba(0, 0, 0, 0.12);
}

.c-results-item:hover::after {
  width: 100%;
}

/* Media (image / carousel) */
.c-results-item__media {
  grid-area: media;
  position: relative;
  overflow: hidden;
  background: #f4f4f4;
  min-height: 0;
}

/* Take the gallery out of layout flow so it can't drive card height.
   Body + footer determine total height; image fills via 100% on chain.
   Excludes slick prev/next buttons (which slick adds as direct children). */
.c-results-item__media > *:not(button) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* Centered text overlay on the image (STC / UNDER OFFER / LET AGREED).
   Sits OUTSIDE .c-results-item__media so slick doesn't wrap it as a slide. */
.c-results-item__overlay {
  display: none;
  grid-area: media;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 4;
  padding: 0.625rem 1.5rem;
  background: rgba(147, 40, 70, 0.8);
  color: #fff;
  font-family: 'Open Sans', sans-serif;
  font-size: 1.125rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
  border-radius: 4px;
  pointer-events: none;
  /* Spelled out in full the label is wide, so it has to be allowed to wrap
     rather than overflow the photo. Capped just short of the card so it
     always reads as a badge sitting on the image. */
  white-space: normal;
  max-width: calc(100% - 2rem);
}

.c-results-item__overlay--offer-accepted,
.c-results-item__overlay--under-offer,
.c-results-item__overlay--let-agreed {
  display: block;
}

.c-results-item__overlay--offer-accepted::before { content: 'Sold Subject to Contract'; }
.c-results-item__overlay--under-offer::before { content: 'Under Offer'; }
.c-results-item__overlay--let-agreed::before { content: 'Let Agreed'; }

/* Status (Sold STC / Under Offer / Let Agreed) — small line below the address */
.c-results-item__status {
  margin: -0.625rem 0 0.875rem;
  color: #932846;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.005em;
  line-height: 1.3;
}

.c-results-item__status:empty {
  display: none;
}

.c-results-item__status .large {
  display: inline;
  font-size: inherit;
  font-weight: 700;
  letter-spacing: inherit;
  line-height: inherit;
  margin: 0;
}

@media (max-width: 40em) {
  .c-results-item__media {
    aspect-ratio: 16 / 10;
  }
}

.c-results-item__media a {
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
}

.c-results-item__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Slick carousel — fill the media cell */
.c-results-item__media .slick-slider,
.c-results-item__media .slick-list,
.c-results-item__media .slick-track {
  height: 100% !important;
}
.c-results-item__media .slick-slide {
  height: 100% !important;
}
.c-results-item__media .slick-slide > div,
.c-results-item__media .slick-slide a {
  height: 100%;
}

.c-results-item .slick-prev,
.c-results-item .slick-next {
  top: 50% !important;
  margin: 0 !important;
  z-index: 3;
  width: 48px;
  height: 48px;
  background-color: rgba(0, 0, 0, 0.45);
  background-size: 24px 24px;
  background-repeat: no-repeat;
  background-position: center;
  border: none;
  border-radius: 50%;
  opacity: 1;
  transition: background-color .2s ease;
}

.c-results-item .slick-prev:hover,
.c-results-item .slick-next:hover {
  background-color: rgba(0, 0, 0, 0.7);
  opacity: 1;
}

.c-results-item .slick-prev {
  left: 0.75rem !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='17 4 7 12 17 20'/></svg>");
}

.c-results-item .slick-next {
  right: 0.75rem !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='7 4 17 12 7 20'/></svg>");
}

/* Body */
.c-results-item__body {
  grid-area: body;
  display: block;
  padding: 1.25rem 1.5rem 1rem;
  color: inherit;
  text-decoration: none;
}

.c-results-item__body:hover {
  color: inherit;
  text-decoration: none;
}

.c-results-item__type {
  margin: 0 0 0.5rem;
  color: #6b7280;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.c-results-item__address {
  margin: 0 0 1rem;
  color: #1f2933;
  font-family: 'Open Sans', sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.005em;
}

/* Icons row */
.c-results-icons {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin: 0 0 1rem;
  padding: 0.75rem 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  color: #1f2933;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
}

.c-results-icons:empty {
  display: none;
}

/* Description and features */
.c-results-item__description {
  margin: 0;
  color: #5a5a5a;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.9375rem;
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 6;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.c-results-item__description h4 {
  margin: 0 0 0.5rem;
  color: #6b7280;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.c-results-item__description ul {
  margin: 0;
  padding: 0;
}

.c-results-item__description ul.c-featured {
  columns: 2;
  column-gap: 1.5rem;
}

/* Override inherited link/visited colors that bleed into list items */
.c-results-item__description li,
.c-results-item__description li::marker {
  color: #5a5a5a;
}

.c-results-item__description li {
  margin: 0 0 0.25rem;
  font-size: 0.875rem;
  line-height: 1.45;
  break-inside: avoid;
}

/* Footer (price + CTA) */
.c-results-item__footer {
  grid-area: footer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  padding: 1rem 1.5rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  background: #fafbfc;
}

.c-results-item__price {
  margin: 0;
  color: #173C7F;
  font-family: 'Open Sans', sans-serif;
  font-size: 1.375rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.1;
}

.c-results-item__price__fees {
  display: inline-block;
  margin-left: 0.5rem;
  color: #932846;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  vertical-align: middle;
  position: static;
  top: auto;
  right: auto;
  transform: none;
}

.c-results-item__price__fees:hover {
  text-decoration: underline;
}

.c-results-item__cta.c-button {
  display: inline-block;
  margin: 0;
  padding: 0.75rem 1.5rem;
  background-color: #932846;
  border: 1px solid #932846;
  color: #fff;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color .25s ease-out,
              border-color .25s ease-out,
              transform .15s ease-out;
}

.c-results-item__cta.c-button:hover {
  background-color: #7a1f3a;
  border-color: #7a1f3a;
  color: #fff;
  transform: translateY(-1px);
}

.c-results-item__cta.c-button:active {
  transform: translateY(0);
}

/* Mobile: stack price and CTA */
@media (max-width: 32em) {
  .c-results-item__footer {
    flex-direction: column;
    align-items: stretch;
  }
  .c-results-item__price {
    text-align: center;
  }
  .c-results-item__cta.c-button {
    width: 100%;
  }
}

/* Branch info (used by some details views) */
.c-results-item__branch {
  margin: 0;
  padding: 0.75rem 1.5rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  font-family: 'Open Sans', sans-serif;
  font-size: 0.8125rem;
  color: #696969;
}

.c-pagination {
  display: flex;
  justify-content: space-between;
}

.c-pagination>div {
  display: inline-block;
  margin-top: 0;
}

.c-pagination .c-pagination__prev,
.c-pagination .c-pagination__next {
  height: 2.5em;
  flex-grow: 0;
  flex-basis: 5.75em;
  text-align: center;
}

.c-pagination .c-pagination__prev {
  border-right: 1px solid #ddd;
  padding-right: 1em;
}

.c-pagination .c-pagination__next {
  border-left: 1px solid #ddd;
  padding-left: 1em;
}

.c-pagination .c-select {
  width: 4em;
}

.c-pagination .c-select select {
  padding: 0.375em 0.5em;
}

.c-pagination .c-pagination__pages {
  padding: 0 1em;
}

.c-pagination .c-pagination__pages>* {
  display: inline-block;
  margin-top: 0;
  vertical-align: middle;
}

.c-pagination .c-pagination__pages span {
  line-height: 2.5;
}

.c-pagination button {
  line-height: 2.5;
}

.c-pagination button:disabled {
  opacity: 0.64;
  cursor: default !important;
}

/* ----------------------------------------------------------- */
/* == Property details (single listing page)                   */
/* Markup: details.php                                          */
/* ----------------------------------------------------------- */

.c-property-details {
  padding: 0 !important;
  box-shadow: none;
  font-family: 'Open Sans', sans-serif;
  color: #1f2933;
}

/* The width override that used to live here is gone: the details grid now
   uses .container, the same wrapper the generated pages use, which is already
   87.5rem / 1400px. */

.c-details-back {
  margin: 0 0 1.25rem;
}

.c-details-back:empty {
  display: none;
}

.c-details-back__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 1rem;
  background: #fff;
  color: #1f2933;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 999px;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.c-details-back__link:hover {
  background: #173C7F;
  color: #fff;
  border-color: #173C7F;
  text-decoration: none;
}

.c-details-back__link span {
  font-size: 1rem;
  line-height: 1;
}

.c-details-header {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 1.5rem 2rem;
  margin: 0 0 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

@media (max-width: 40em) {
  .c-details-header {
    grid-template-columns: 1fr;
    align-items: start;
  }
}

.c-details-header__type {
  margin: 0 0 0.5rem;
  color: #6b7280;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* The type, title and price are filled in by JS once the property JSON is
   parsed. Left to collapse they take the whole page down with them when they
   appear, so each reserves a single line of its own text up front. Sized in em
   so it tracks the clamped font sizes across breakpoints rather than pinning a
   pixel height that is only correct on desktop. */
.c-details-header__type,
.c-details-header__title,
.c-details-header__price {
  min-height: 1.2em;
}

/* On narrow screens the address almost always wraps to two lines, so reserve
   both. min-height never shrinks the element, so the occasional short address
   simply keeps the taller box instead of shifting the page. */
@media (max-width: 48em) {
  .c-details-header__title {
    min-height: 2.4em;
  }
}

.c-details-header__type:empty {
  display: block;
}

.c-details-header__title {
  margin: 0;
  color: #1f2933;
  font-family: 'Open Sans', sans-serif;
  font-size: clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem);
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.2;
  text-transform: none;
}

.c-details-header__status {
  margin: 0.625rem 0 0;
  color: #932846;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: 0.005em;
  line-height: 1.3;
}

.c-details-header__status:empty {
  display: none;
}

.c-details-header__status .large {
  font-weight: 700;
}

.c-details-header__price {
  margin: 0;
  color: #173C7F;
  font-family: 'Open Sans', sans-serif;
  font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2rem);
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.1;
  white-space: nowrap;
}

@media (max-width: 40em) {
  .c-details-header__price {
    font-size: 1.5rem;
    white-space: normal;
  }
}

.c-details-header__price-fees {
  display: inline-block;
  margin-left: 0.5rem;
  color: #932846;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  vertical-align: middle;
}

.c-details-header__price-fees:hover {
  text-decoration: underline;
}

/* Two-column layout: main + sticky aside */
.c-details-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 2rem;
  align-items: start;
}

@media (max-width: 60em) {
  .c-details-grid {
    grid-template-columns: 1fr;
  }
}

.c-details-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}

/* Gallery */
.c-details-gallery {
  position: relative;
  background: #f4f4f4;
  overflow: hidden;
  aspect-ratio: 16 / 9;
}

.c-details-gallery #galleryMain,
.c-details-gallery .slick-slider,
.c-details-gallery .slick-list,
.c-details-gallery .slick-track {
  height: 100% !important;
}

.c-details-gallery .slick-slide {
  height: 100% !important;
}

.c-details-gallery .slick-slide > div,
.c-details-gallery .slick-slide a,
.c-details-gallery .slick-slide > a {
  display: block;
  height: 100%;
}

/* Swiper conversion: #galleryMain is now a .swiper-wrapper nested inside a
   generated .swiper root, so the height:100% rule above resolves against that
   root (auto height) rather than this 16/9 box. Left unpinned the slider ran
   ~200px taller than its container, which pushed the pagination out of sight
   below the crop and dropped the arrows ~100px under the visible centre. */
.c-details-gallery .c-details-gallery__swiper {
  position: absolute;
  inset: 0;
}

.c-details-gallery .c-details-gallery__swiper .swiper-wrapper,
.c-details-gallery .c-details-gallery__swiper .swiper-slide {
  height: 100%;
}

/* The floorplan slide is an <a>, not a <div>. */
.c-details-gallery .c-details-gallery__swiper a.swiper-slide {
  display: block;
}

/* Float the dots over the image instead of adding height beneath it, which is
   what pushed the arrows off centre. */
.c-details-gallery .sat-swiper__pagination.swiper-pagination-bullets {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.75rem;
  margin-top: 0;
  z-index: 3;
}

/* Full screen toggle, bottom left. Same circular treatment as the prev/next
   arrows, on the same 10px left inset, and sharing the pagination's 0.75rem
   bottom inset so the three controls read as one row. */
.c-details-gallery__expand {
  position: absolute;
  left: 10px;
  bottom: 0.75rem;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 1px solid rgba(0, 0, 0, 0.18);
  border-radius: 50%;
  background: #fff;
  color: #173C7F;
  cursor: pointer;
  transition: background .2s cubic-bezier(0.215, 0.61, 0.355, 1),
              border-color .2s cubic-bezier(0.215, 0.61, 0.355, 1),
              color .2s cubic-bezier(0.215, 0.61, 0.355, 1);
}

.c-details-gallery__expand:hover,
.c-details-gallery__expand:focus-visible {
  background: #173C7F;
  border-color: #173C7F;
  color: #fff;
}

/* Fancybox letterboxes its own images; the gallery keeps its 16/9 crop. */

/* ── Utilities replacing former inline style attributes ──────────────── */

/* Results and commercial listing wrappers. */
.dezrez-container {
  text-align: left;
  margin-top: 20px;
}

/* Intro paragraph on the commercial pages - held to a comfortable measure. */
.u-measure {
  max-width: 64ch;
}

/* The page selector inside the client-built pagination. */
.c-pagination__pages {
  display: flex;
  gap: 4px;
}

.c-details-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.c-details-gallery .slick-prev,
.c-details-gallery .slick-next {
  top: 50% !important;
  margin: 0 !important;
  z-index: 3;
  width: 56px;
  height: 56px;
  background-color: rgba(0, 0, 0, 0.45);
  background-size: 28px 28px;
  background-repeat: no-repeat;
  background-position: center;
  border: none;
  border-radius: 50%;
  opacity: 1;
  transition: background-color .2s ease;
}

.c-details-gallery .slick-prev:hover,
.c-details-gallery .slick-next:hover {
  background-color: rgba(0, 0, 0, 0.7);
  opacity: 1;
}

.c-details-gallery .slick-prev {
  left: 1rem !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='17 4 7 12 17 20'/></svg>");
}

.c-details-gallery .slick-next {
  right: 1rem !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='7 4 17 12 7 20'/></svg>");
}

.c-details-gallery .c-results-item__overlay {
  position: absolute;
  font-size: 1.375rem;
  padding: 0.75rem 1.75rem;
}

/* Card-style content blocks (description, branch) */
.c-details-card {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  padding: 1.75rem;
}

.c-details-card h3 {
  margin: 0 0 1rem;
  color: #1f2933;
  font-family: 'Open Sans', sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: -0.005em;
  text-transform: none;
}

.c-details-description .c-results-icons {
  margin: 0 0 1.5rem;
  padding: 0.875rem 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.c-details-description p {
  color: #5a5a5a;
  font-size: 0.9375rem;
  line-height: 1.65;
  margin: 0 0 1rem;
}

.c-details-description #key:empty {
  display: none;
}

.c-details-description #key h4 {
  margin: 1.25rem 0 0.75rem;
  color: #6b7280;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.c-details-description #key ul.c-featured {
  columns: 2;
  column-gap: 1.5rem;
  margin: 0;
  padding: 0;
}

@media (max-width: 32em) {
  .c-details-description #key ul.c-featured {
    columns: 1;
  }
}

.c-details-description #key li {
  break-inside: avoid;
  font-size: 0.875rem;
  line-height: 1.5;
  margin-bottom: 0.25rem;
  color: #5a5a5a;
}

.c-details-description .roomParticulars:not(:empty) {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.c-details-description .roomParticulars h3 {
  margin: 1rem 0 0.375rem;
  font-size: 0.95rem;
  color: #173C7F;
}

.c-details-description .roomParticulars h3:first-child {
  margin-top: 0;
}

.c-details-description .roomParticulars p {
  font-size: 0.9375rem;
  margin: 0 0 0.75rem;
}

/* Branch card */
.c-details-branch__list {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.c-details-branch__row {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 1rem;
  align-items: start;
  font-size: 0.9375rem;
}

.c-details-branch__row dt {
  color: #6b7280;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0.2rem 0 0;
}

.c-details-branch__row dd {
  margin: 0;
  color: #1f2933;
  /* An email address is one unbreakable word. In a narrow column it would
     otherwise run straight out of the card. */
  overflow-wrap: anywhere;
}

.c-details-branch__row dd a {
  color: #173C7F;
  text-decoration: none;
  font-weight: 600;
}

.c-details-branch__row dd a:hover {
  text-decoration: underline;
}

@media (max-width: 32em) {
  .c-details-branch__row {
    grid-template-columns: 1fr;
    gap: 0.125rem;
  }
}

/* Sidebar (sticky CTA + actions) */
.c-details-aside {
  /* Must stretch to the full grid row. With align-self: start the aside
     collapses to the height of its own inner, leaving the sticky child no
     room to travel, so it just scrolls away with the page. */
  align-self: stretch;
}

/* The sticky element is this wrapper rather than a single card, so the CTA
   panel and the branch panel travel together as separate boxes. */
.c-details-aside__sticky {
  position: sticky;
  /* Clears the fixed header in its scrolled state (.header--scrolled is 88px
     tall and pinned to the top - the 36px subnav has scrolled away by then),
     plus a 2rem gap. */
  top: calc(88px + 2rem);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.c-details-aside__inner {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  padding: 1.25rem;
}

/* The sidebar copy of the branch card: same card, tighter than the one in the
   main column so it sits comfortably in a 320px rail. */
.c-details-aside__branch {
  padding: 1.25rem;
}

.c-details-aside__branch h3 {
  font-size: 1rem;
}

/* No room for the 80px label column in the rail - stack each row instead, the
   same way the main card behaves on a phone. */
.c-details-aside__branch .c-details-branch__row {
  grid-template-columns: 1fr;
  gap: 0.125rem;
}

.c-details-aside__branch .c-details-branch__row dt {
  margin: 0;
}

@media (max-width: 60em) {
  .c-details-aside__sticky {
    position: static;
  }

  /* Single column: lift "Book a viewing" and the action buttons up to sit
     directly under the gallery, instead of leaving them below the description,
     floorplan, map and branch card - which on a phone is a very long way down.

     The aside is a sibling of .c-details-main, so its children cannot be
     reordered into the middle of that column by order alone. Dropping
     .c-details-main to display:contents promotes the gallery and the cards to
     direct children of the grid, which puts them and the aside on the same
     flex line and makes order work across the lot.

     Every child needs an explicit order once one of them has it - the default
     is 0, so anything left unset would jump ahead of the gallery. The branch
     card in the aside keeps to the bottom, where it was. */
  .c-details-grid {
    display: flex;
    flex-direction: column;
    gap: 1.75rem;
    /* The base rule sets align-items: start for the two column grid. Left in
       place on a column flex container it becomes a cross-axis (horizontal)
       rule, and every child shrinks to its content width - which took the
       gallery, whose slides are absolutely positioned, to zero. */
    align-items: stretch;
  }

  /* The aside and its sticky wrapper flatten too, so the CTA panel can be
     placed on its own without dragging the branch card up with it - that card
     stays down with its twin in the main column, which is where it sits
     today. */
  .c-details-main,
  .c-details-aside,
  .c-details-aside__sticky {
    display: contents;
  }

  .c-details-gallery { order: 1; }
  .c-details-aside__inner { order: 2; }
  .c-details-description { order: 3; }
  .c-details-floorplan { order: 4; }
  .c-details-location { order: 5; }
  .c-details-grid .c-details-branch:not(.c-details-aside__branch) { order: 6; }
  .c-details-aside__branch { order: 7; }
}

/* Primary CTA: book a viewing */
.c-details-cta.c-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 0.625rem;
  width: 100%;
  margin: 0;
  padding: 0.875rem 1.25rem;
  background-color: #932846;
  border: 1px solid #932846;
  color: #fff;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .25s ease-out,
              border-color .25s ease-out,
              transform .15s ease-out;
}

.c-details-cta.c-button:hover {
  background-color: #7a1f3a;
  border-color: #7a1f3a;
  color: #fff;
  text-decoration: none;
  transform: translateY(-1px);
}

.c-details-cta.c-button svg {
  width: 18px;
  height: 18px;
}

/* Secondary action list */
.c-details-actions {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.c-details-actions:empty {
  display: none;
}

.c-details-action {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.625rem 0.75rem;
  background: transparent;
  border: 1px solid rgba(0, 0, 0, 0.08);
  color: #1f2933;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.c-details-action:hover {
  background-color: #f5f7fa;
  border-color: rgba(0, 0, 0, 0.16);
  color: #173C7F;
  text-decoration: none;
}

.c-details-action__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: rgba(23, 60, 127, 0.08);
  color: #173C7F;
  flex-shrink: 0;
}

.c-details-action__icon svg {
  width: 18px;
  height: 18px;
}

.c-image-shine {
  position: relative;
  display: inline-block;
  overflow: hidden;
}

.c-image-shine::before {
  position: absolute;
  top: 0;
  left: -75%;
  z-index: 2;
  display: block;
  content: "";
  width: 50%;
  height: 100%;
  background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
  -webkit-transform: skewX(-25deg);
  transform: skewX(-25deg);
}

.c-image-shine img {
  display: block;
}

.c-image-shine:hover::before {
  -webkit-animation: shine 0.75s;
  animation: shine 0.75s;
}

@-webkit-keyframes shine {
  100% {
    left: 125%;
  }
}

@keyframes shine {
  100% {
    left: 125%;
  }
}

.c-header {
  text-align: center;
  padding-top: 1.5em;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background-color: #fff;
  background-color: rgba(255, 255, 255, 0.8);
  transition: 0.3s ease-out;
}

.c-header+.c-slider {
  margin-top: 15em;
}

@media (min-width: 40em) {
  .c-header+.c-slider {
    margin-top: 13.625em;
  }
}

@media (min-width: 960px) {
  .c-header {
    padding: 2em 0;
  }

  .c-header .u-wrapper:before,
  .c-header .u-wrapper:after {
    content: "";
    display: table;
  }

  .c-header .u-wrapper:after {
    clear: both;
  }

  .c-header+.c-slider {
    margin-top: 10.875em;
  }
}

.c-header__logo a {
  display: block;
}

.c-header__logo img {
  height: 52px;
  display: inline-block;
  transition: 0.3s ease-out;
}

@media (min-width: 960px) {
  .c-header__logo {
    float: left;
    z-index: 2;
  }
}

@media (min-width: 65em) {
  .c-header__logo img {
    height: 69px;
  }
}

.c-header__contact__phone,
.c-header__contact__email,
.c-header__contact__opening {
  margin-top: 0.5em;
}

.c-header__contact__phone p,
.c-header__contact__email p,
.c-header__contact__opening p {
  color: #9b172c;
  font-weight: 700;
  text-transform: uppercase;
}

.c-header__contact__phone a,
.c-header__contact__email a,
.c-header__contact__opening a {
  color: #9b172c;
  text-decoration: none;
}

.c-header__contact__phone a:hover,
.c-header__contact__email a:hover,
.c-header__contact__opening a:hover {
  color: #003366;
}

@media (min-width: 960px) {

  .c-header__contact__phone,
  .c-header__contact__email,
  .c-header__contact__opening {
    margin-top: 0;
    text-align: left;
    display: inline-block;
  }
}

@media (min-width: 960px) {
  .c-header__contact {
    float: right;
  }

  .c-header__contact__phone,
  .c-header__contact__email {
    margin-right: 3.5em;
  }
}

.c-header__contact p {
  line-height: 24px;
  display: inline-block;
  vertical-align: top;
}

.c-header__contact__phone,
.c-header__contact__email,
.c-header__contact__opening {
  height: 24px;
}

.c-header__contact__phone:before,
.c-header__contact__email:before,
.c-header__contact__opening:before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  margin-right: 12px;
  background-position: 0;
  background-size: 100%;
  background-repeat: no-repeat;
}

.c-header__contact__phone:before {
  background-image: url(../img/icon-call.png);
}

.c-header__contact__email:before {
  background-image: url(../img/icon-mail.png);
}

.c-header__contact__opening:before {
  background-image: url(../img/icon-clock.png);
}

.c-sticky {
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
  animation: slideDown 0.75s;
  padding: 0.75em 0 0;
}

.c-sticky .c-header__logo img {
  height: 30px;
}

@media (max-width: 55em) {
  .c-sticky .c-header__contact {
    display: none;
  }
}

@media (min-width: 55em) {
  .c-sticky .c-header__logo img {
    height: 40px;
  }

  .c-sticky .c-header__contact {
    font-size: 14px;
  }

  .c-sticky .c-header__contact p {
    line-height: 20px;
  }

  .c-sticky .c-header__contact__phone,
  .c-sticky .c-header__contact__email,
  .c-sticky .c-header__contact__opening {
    height: 20px;
  }

  .c-sticky .c-header__contact__phone:before,
  .c-sticky .c-header__contact__email:before,
  .c-sticky .c-header__contact__opening:before {
    width: 20px;
    height: 20px;
  }

  .c-sticky nav {
    padding-top: 0;
  }
}

@-webkit-keyframes slideDown {
  0% {
    transform: translateY(-150%);
  }

  100% {
    transform: translateY(0);
  }
}

@keyframes slideDown {
  0% {
    transform: translateY(-150%);
  }

  100% {
    transform: translateY(0);
  }
}

.c-menu-main {
  padding: 0.5em 0;
  text-transform: uppercase;
  text-align: center;
}

@media (min-width: 960px) {
  .c-menu-main {
    float: right;
    text-align: right;
    z-index: 1;
  }
}

.c-menu-main ul {
  max-height: 0;
  transition: 0.3s ease-out;
  overflow: hidden;
}

@media (min-width: 960px) {
  .c-menu-main ul.c-menu-main__top {
    max-height: 500px;
    overflow: visible;
    position: relative;
    z-index: 999;
    margin-right: -0.5em;
  }

  .c-menu-main ul.c-menu-main__top>li {
    display: inline-block;
  }

  .c-menu-main ul.c-menu-main__top>li>a {
    padding: 0.5em;
  }

  .c-menu-main ul.c-menu-main__top .c-active:after {
    left: 0;
    width: auto;
    right: 0;
    margin-left: 0;
    bottom: 2px;
    height: 1px;
  }

  .c-menu-main ul.c-menu-main__top ul {
    width: 12em;
    position: absolute;
    left: 0;
    top: 2.125em;
    overflow: hidden;
    text-align: left;
    padding-left: 1em;
    padding-right: 1em;
  }
}

.c-menu-main li.c-menu-main__parent ul {
  background-color: #003366;
}

.c-menu-main li.c-menu-main__parent ul a {
  color: #efc441;
  font-weight: 300;
}

.c-menu-main li.c-menu-main__parent ul a:hover {
  color: #fff;
}

.c-menu-main li.c-menu-main__parent ul .c-active {
  color: #fff;
}

.c-menu-main li.c-menu-main__parent ul .c-active:after {
  background-color: #fff;
}

.c-menu-main li.c-menu-main__parent ul .c-active:hover {
  color: #fff;
}

.c-menu-main li.c-menu-main__parent ul .c-active:hover::after {
  background-color: #fff;
}

.c-menu-main li.c-menu-main__parent ul.open {
  max-height: 500px;
  padding: 0.5em;
}

.c-menu-main li.c-menu-main__parent>ul.open,
.c-menu-main li.c-menu-main__parent:hover>ul {
  border: 1px solid #fff;
}

@media (min-width: 960px) {
  .c-menu-main li.c-menu-main__parent {
    position: relative;
  }

  .c-menu-main li.c-menu-main__parent:hover ul,
  .c-menu-main li.c-menu-main__parent:hover ul.open {
    max-height: 500px;
    padding-top: 1em;
    padding-bottom: 1em;
  }
}

.c-menu-main a {
  display: block;
  color: #003366;
  text-decoration: none;
  font-weight: 700;
  margin: 0.5em 0;
  font-size: 13px;
}

.c-menu-main a:hover {
  color: #9b172c;
}

.c-menu-main .c-active {
  color: #9b172c;
  position: relative;
}

.c-menu-main .c-active:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 56px;
  height: 2px;
  margin-left: -28px;
  background-color: #9b172c;
  transition: 0.3s ease-out;
}

.c-menu-main .c-active:hover {
  color: #003366;
}

.c-menu-main .c-active:hover::after {
  background-color: #003366;
}

.c-menu-main--check {
  display: none;
}

.hamburger-svg {
  width: 36px;
  height: 24px;
}

.hamburger-svg line {
  stroke: #003366;
  stroke-width: 4px;
  transform-origin: 50% 50%;
  transition: transform 0.25s;
}

.hamburger-svg line:nth-child(1) {
  transform: translateY(-28px) rotate(0deg);
}

.hamburger-svg line:nth-child(3) {
  transform: translateY(28px) rotate(0deg);
}

.c-menu-main--check:checked+label .hamburger-svg line:nth-child(1) {
  transform: rotate(45deg);
}

.c-menu-main--check:checked+label .hamburger-svg line:nth-child(2) {
  transform: scale(0);
}

.c-menu-main--check:checked+label .hamburger-svg line:nth-child(3) {
  transform: rotate(-45deg);
}

.c-menu-main--check:checked~ul {
  max-height: 1000px;
}

.c-menu-main--trigger {
  cursor: pointer;
  margin: 0;
  height: 24px;
}

.c-menu-main--trigger span {
  line-height: 24px;
  color: #003366;
  vertical-align: top;
  display: inline-block;
  font-weight: 700;
}

.c-menu-main--trigger:hover span {
  color: #9b172c;
}

.c-menu-main--trigger:hover line {
  stroke: #9b172c;
}

@media (min-width: 960px) {

  .c-menu-main--trigger,
  .c-menu-main--check {
    display: none;
  }
}

.c-footer {
  background-color: #003366;
  border-bottom: 6px solid #9b172c;
  color: #fff;
  padding-top: 2.25em;
  padding-bottom: 0.75em;
}

@media (min-width: 40em) {

  .c-footer a,
  .c-footer p,
  .c-footer span {
    font-size: 0.875em;
  }
}

.c-footer li li {
  margin-top: 0.5em;
}

.c-footer a {
  text-decoration: none;
}

.c-footer a:hover {
  color: #9b172c;
}

.c-footer-logo {
  margin-top: 2.25em;
}

@supports (display: flex) {
  @media (min-width: 55em) {
    .c-footer-menu>ul {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
    }

    @supports (display: flex) {
      .c-footer-menu>ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
      }
    }

    @supports not (display: flex) {
      .c-footer-menu>ul>li {
        padding-right: 1em;
      }
    }
  }
}

.c-copyright {
  padding: 0.5em 0;
}

.c-copyright p {
  margin: 0;
}

.c-copyright p:last-child {
  height: 28px;
  margin-top: 1em;
}

.c-copyright span {
  line-height: 28px;
  display: inline-block;
  vertical-align: top;
  margin-right: 0.5em;
}

.c-copyright p {
  font-size: 0.875em;
}

@media (min-width: 45em) {

  .c-copyright:before,
  .c-copyright:after {
    content: "";
    display: table;
  }

  .c-copyright:after {
    clear: both;
  }

  .c-copyright p {
    display: inline-block;
  }

  .c-copyright p:first-child {
    float: left;
    line-height: 28px;
  }

  .c-copyright p:last-child:not(:first-child) {
    clear: left;
    display: block;
  }
}

@media (min-width: 50em) {
  .c-copyright p:last-child:not(:first-child) {
    clear: none;
    float: right;
    margin-top: 0;
  }
}

.c-dbwd-link {
  overflow: hidden;
  text-indent: 200%;
  white-space: nowrap;
  width: 50px;
  height: 28px;
  background-image: url("../img/dbwd.png");
  background-repeat: no-repeat;
  background-size: 100%;
  display: inline-block;
}

.c-quick-contact {
  padding-top: 0 !important;
}

.c-contact-info ul {
  list-style: none;
}

.c-contact-info li:not(:first-child) {
  margin-top: 2em;
}

.c-contact-info li a {
  word-break: break-word;
  line-height: 1;
}

.c-contact-info li p {
  margin-top: 0.75em;
}

@media (min-width: 55em) {
  .c-contact-form {
    /* order: 1; */
    margin-top: 0;
  }

  .c-contact-info {
    /* order: 2; */
  }
}

.c-slider {
  color: #fff;
}

.c-slide {
  margin-top: 0 !important;
  background-position: 50%;
  background-size: 100%;
  background-size: cover;
  position: relative;
}

.c-slide:not(:first-of-type):not(.slick-slide) {
  display: none;
}

.c-slide.c-slide--box::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 52%;
  background-color: #003366;
  opacity: 0.94;
}

.c-hero {
  background-size: 100%;
  background-size: cover;
  background-position: 50%;
  padding: 1em 0;
  position: relative;
  margin-top: 15.375em;
}

.main-inner .c-hero {
  min-height: 280px;
}

.main-inner .c-hero--blank {
  min-height: 0;
  padding: 0;
}

@media (min-width: 40em) {
  .c-hero {
    margin-top: 14em;
  }
}

@media (min-width: 960px) {
  .c-hero {
    margin-top: 8.875em;
  }
}

.c-slide__content {
  position: relative;
  max-width: 43em;
  margin-left: auto;
  margin-right: auto;
  padding: 2.5em 1em 24em;
  text-align: center;
}

.c-slide__content h2 span {
  color: #efc441;
}

.c-slide__content p {
  text-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
}

.c-slide__content p a {
  text-transform: uppercase;
  font-weight: 700;
  color: #efc441 !important;
  word-break: break-word;
}

.c-slide__content p a:hover {
  text-decoration: none;
}

.c-slide__content--inner {
  position: relative;
  margin: 5em auto;
  padding: 2em 2em 3em;
  background-color: #fff;
  background-color: rgba(255, 255, 255, .9);
  max-width: 46em;
  position: relative;
}

.c-slide__content--inner h2 span {
  color: #efc441;
}

.c-slide__content--inner p {
  margin-top: 1.5em;
}

.c-slide__content--inner .c-button {
  background-color: #9b172c;
}

.c-slide__content--inner .c-button:hover {
  background-color: #003366;
}

.c-button--bottom {
  position: absolute;
  bottom: -1.5em;
  left: 50%;
  border: none;
  width: 14em;
  margin-left: -7em;
  font-weight: 700;
}

.c-slide__buttons .c-button {
  margin: 1.5em 1em 0;
}

@media (min-width: 40em) {
  h2 {
    margin-bottom: 0.5em;
  }

  .slick-prev,
  .slick-next {
    top: 40%;
  }

  .c-slide__content--inner {
    margin: 10em auto;
  }
}

@media (min-width: 42.5em) {
  .c-slide.c-slide--box::before {
    height: 45%;
  }
}

@media (min-width: 55em) {

  .slick-prev,
  .slick-next {
    top: 100px;
  }

  .slick-prev {
    left: 30px;
  }

  .slick-next {
    right: 30px;
  }
}

@media (min-width: 80em) {
  .slick-prev {
    left: 50%;
    margin-left: -36.75em;
  }

  .slick-next {
    right: 50%;
    margin-right: -36.75em;
  }

  .c-slide__content--inner {
    margin: 13.5em auto;
  }
}


.slider-form-tab {
  top: 190px;
  position: fixed;
  right: -4.25em;
  transform: rotate(270deg);
  background-color: #9b172c;
  padding: 0.75em 2em;
  text-align: center;
  z-index: 100;
  box-shadow: 0px 0px 4px 1px rgba(0, 0, 0, 0.15);
}

.slider-form-tab:hover {
  cursor: pointer;
}

.slider-form-tab h3 {
  letter-spacing: 0.5px;
  line-height: 20px;
  color: #fff;
  font-size: 14px !important;
  font-weight: 400;
}

.c-side-contact .modal-header {
  border-bottom: none;
  padding-bottom: 0;
}

.c-side-contact .modal-body {
  padding-top: 0.5em;
}

.c-cta {
  background-color: #9b172c;
  color: #fff;
  padding: 1.125em 0 !important;
}

.c-cta--alt {
  background-color: #003366;
}

.c-cta strong {
  text-transform: uppercase;
}

.c-cta p {
  font-size: 1.125em;
  text-transform: uppercase;
  font-weight: 700;
}

@media (min-width: 55em) {
  .c-cta p {
    font-size: 1.3125em;
    letter-spacing: 0.35px;
  }
}

.c-results-icons span {
  display: inline-block;
  height: 32px;
  padding-left: 40px;
  background-repeat: no-repeat;
  line-height: 32px;
  font-size: 24px;
  font-weight: 700;
  vertical-align: top;
  color: #003366;
  margin-top: 0;
}

.c-results-icons span:not(:last-child) {
  margin-right: 16px;
}

.c-results-icons__bedrooms {
  background-image: url(../img/icon-bed.png?v=2);
}

.c-results-icons__parking {
  background-image: url(../img/icon-parking.png?v=2);
}

.c-results-icons__garage {
  background-image: url(../img/icon-garage.png?v=2);
}

.c-results-icons__garden {
  background-image: url(../img/icon-garden.png);
}

.c-results-icons__sofa {
  background-image: url(../img/icon-sofa.png);
}

/* The Rezi "Virtual Tour" slot nearly always holds an Esign - a flip-page
   brochure - rather than a video, so the icon is a brochure, not a clapper. */
.c-results-icons__video {
  background-image: url(../img/icon-brochure.svg);
  background-size: 32px 32px;
}

.c-sell-icons p {
  padding-left: 70px;
  background-repeat: no-repeat;
  min-height: 50px;
}

.c-sell-icons__advice {
  background-image: url(../img/icon-advice.png);
}

.c-sell-icons__selling {
  background-image: url(../img/icon-selling.png);
}

.c-sell-icons__plans {
  background-image: url(../img/icon-plans.png);
}

.c-sell-icons__network {
  background-image: url(../img/icon-network.png);
}

@media print {

  body>*:not(main),
  .c-slider,
  .c-button {
    display: none;
  }

  * {
    text-align: left;
  }
}

.c-social {
  margin-top: 1em;
}

.c-social a {
  text-indent: 200%;
  overflow: hidden;
  background-repeat: no-repeat;
  height: 32px;
  width: 32px;
  display: inline-block;
}

.c-social a:not(:last-child) {
  margin-right: 18px;
}

.c-social a:hover {
  opacity: .8;
}

.c-social__facebook {
  background-image: url(../img/facebook.png);
}

.c-social__twitter {
  background-image: url(../img/twitter.png);
}

.c-social__instagram {
  background-image: url(../img/instagram.png);
}

.c-social__linkedin {
  background-image: url(../img/linkedin.png);
}

.c-social a.c-social__blog {
  text-indent: 0;
  border-radius: 50%;
  background-color: #9b172c;
  color: #fff;
  text-align: center;
  line-height: 32px;
}

@media (min-width: 30em) {
  .c-footer-logo {
    display: flex;
    justify-content: space-between;
  }

  .c-social {
    margin-top: 0;
  }
}


.c-supernav-block {
  display: none;
}

@media (min-width: 960px) {
  .c-header>.u-wrapper {
    position: relative;
  }

  .c-supernav,
  .c-menu-main ul.c-menu-main__top {
    /* position: static !important; */
  }

  .c-supernav>ul:first-of-type {
    /* display: none; */
    width: 16.25em !important;
  }

  .c-supernav>ul:first-of-type a {
    font-size: 14px !important;
    line-height: 1.5 !important;
  }

  .c-supernav>ul:first-of-type li+li {
    margin-top: 14px;
  }

  .c-menu-main ul.c-menu-main__top ul.c-supernav-block {
    background-color: #003366;
    /* display: flex; */
    width: 890px;
    position: absolute;
    right: 0;
    left: auto;
    top: 80px;
  }

  .c-menu-main ul.c-menu-main__top>li:nth-child(3) ul.c-supernav-block {
    width: 780px;
  }

  .c-sticky .c-menu-main ul.c-menu-main__top ul.c-supernav-block {
    top: 59px;
  }

  .c-supernav-block a {
    color: #efc441 !important;
  }

  .c-supernav-block a:hover {
    color: #fff !important;
  }

  .c-supernav__circles {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  .c-supernav__circles li {
    display: inline-block;
    flex-grow: 0;
    width: 100px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: 6px !important;
  }

  .c-supernav__circles a {
    color: #fff !important;
    display: block;
    width: 100px;
    height: 100px;
    /* border-radius: 50%;
    border: 1px solid #efc441;
    background-image: url(../img/bg-supernav-circle.png);
    background-repeat: no-repeat;
    background-position: 50%; */
  }

  .c-menu-main ul.c-menu-main__top .c-supernav__circles .c-active:after {
    display: none;
  }

  .c-supernav__circles a:hover {
    color: #efc441 !important;
  }

  .c-supernav__circles span {
    font-size: 26px;
    font-weight: 600;
    line-height: 1;
    margin-top: -6px;
  }


  .c-menu-main ul.c-menu-main__top .c-supernav-block>ul {
    background-color: transparent;
    position: relative;
    margin: 0;
    top: 0;
    width: auto;
  }

  .c-menu-main ul.c-menu-main__top .c-supernav-block>ul:first-child {
    flex-grow: 1;
  }

  .c-menu-main ul.c-menu-main__top .c-supernav-block>ul:first-child a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    text-transform: none;
    line-height: 1.25;
  }

  .c-menu-main ul.c-menu-main__top .c-supernav-block>ul:last-child {
    flex-direction: column;
    width: 260px;
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 1em;
    margin-bottom: 1em;
    border-left: 1px solid #fff;
  }

  .c-menu-main ul.c-menu-main__top .c-supernav-block li:not(:first-child) {
    margin-top: 14px;
  }

  .c-menu-main ul.c-menu-main__top .c-supernav-block li a {
    font-size: 14px;
    font-weight: 300;
  }
}

@media (min-width: 1140px) {
  .c-menu-main ul.c-menu-main__top>li:nth-child(6) ul.c-supernav-block {
    width: 1116px;
  }
}

.tns-outer {
  padding: 0 !important
}

.tns-outer [hidden] {
  display: none !important
}

.tns-outer [aria-controls],
.tns-outer [data-action] {
  cursor: pointer
}

.tns-slider {
  -webkit-transition: all 0s;
  -moz-transition: all 0s;
  transition: all 0s
}

.tns-slider>.tns-item {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box
}

.tns-horizontal.tns-subpixel {
  white-space: nowrap
}

.tns-horizontal.tns-subpixel>.tns-item {
  display: inline-block;
  vertical-align: top;
  white-space: normal
}

.tns-horizontal.tns-no-subpixel:after {
  content: '';
  display: table;
  clear: both
}

.tns-horizontal.tns-no-subpixel>.tns-item {
  float: left
}

.tns-horizontal.tns-carousel.tns-no-subpixel>.tns-item {
  margin-right: -100%
}

.tns-no-calc {
  position: relative;
  left: 0
}

.tns-gallery {
  position: relative;
  left: 0;
  min-height: 1px
}

.tns-gallery>.tns-item {
  position: absolute;
  left: -100%;
  -webkit-transition: transform 0s, opacity 0s;
  -moz-transition: transform 0s, opacity 0s;
  transition: transform 0s, opacity 0s
}

.tns-gallery>.tns-slide-active {
  position: relative;
  left: auto !important
}

.tns-gallery>.tns-moving {
  -webkit-transition: all 0.25s;
  -moz-transition: all 0.25s;
  transition: all 0.25s
}

.tns-autowidth:not(.footer__badges) {
  display: inline-block
}

.tns-lazy-img {
  -webkit-transition: opacity 0.6s;
  -moz-transition: opacity 0.6s;
  transition: opacity 0.6s;
  opacity: 0.6
}

.tns-lazy-img.tns-complete {
  opacity: 1
}

.tns-ah {
  -webkit-transition: height 0s;
  -moz-transition: height 0s;
  transition: height 0s
}

.tns-ovh {
  overflow: hidden
}

.tns-visually-hidden {
  position: absolute;
  left: -10000em
}

.tns-transparent {
  opacity: 0;
  visibility: hidden
}

.tns-fadeIn {
  opacity: 1;
  filter: alpha(opacity=100);
  z-index: 0
}

.tns-normal,
.tns-fadeOut {
  opacity: 0;
  filter: alpha(opacity=0);
  z-index: -1
}

.tns-vpfix {
  white-space: nowrap
}

.tns-vpfix>div,
.tns-vpfix>li {
  display: inline-block
}

.tns-t-subp2 {
  margin: 0 auto;
  width: 310px;
  position: relative;
  height: 10px;
  overflow: hidden
}

.tns-t-ct {
  width: 2333.3333333%;
  width: -webkit-calc(100% * 70 / 3);
  width: -moz-calc(100% * 70 / 3);
  width: calc(100% * 70 / 3);
  position: absolute;
  right: 0
}

.tns-t-ct:after {
  content: '';
  display: table;
  clear: both
}

.tns-t-ct>div {
  width: 1.4285714%;
  width: -webkit-calc(100% / 70);
  width: -moz-calc(100% / 70);
  width: calc(100% / 70);
  height: 10px;
  float: left
}

.tns-outer {
  position: relative;
}

.tns-item {
  padding: 0 0 80px;
}

.tns-controls {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
}

.tns-controls button {
  padding: 0;
  overflow: hidden;
  text-indent: 200%;
  white-space: nowrap;
  background-repeat: no-repeat;
  width: 64px;
  height: 64px;
  transition: .25s ease-in-out;
  margin: 0 1em;
}

.tns-controls button:hover {
  opacity: .64;
}

.tns-controls button:first-child {
  background-image: url(../img/arrow-prev-blue.png);
}

.tns-controls button:last-child {
  background-image: url(../img/arrow-next-blue.png);
}

@media (min-width: 35em) {
  .tns-outer {
    position: relative;
    padding-bottom: 0;
  }

  .tns-item {
    padding: 0 64px;
  }

  .tns-controls {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
  }

  .tns-controls button {
    position: absolute;
    margin: 0;
  }

  .tns-controls button:first-child {
    left: 0;
  }

  .tns-controls button:last-child {
    right: 0;
  }
}

@media (min-width: 960px) {
  .tns-ovh {
    margin: 0 40px;
    overflow: hidden;
  }

  .tns-item {
    padding: 0 24px;
  }
}

.c-testimonials div {
  margin-top: 0;
}

.c-testimonials ul {
  list-style: none;
  display: flex;
}

.c-testimonials li:not(:nth-child(n + 3)):not(.tns-item) {
  display: none;
}

.c-testimonials q {
  margin-top: 1.5em;
  display: block;
}

.c-testimonials q::before,
.c-testimonials q::after {
  display: none;
}

.c-testimonials cite {
  font-style: normal;
  font-weight: 700;
}

.c-testimonials cite::after {
  content: "";
  display: block;
  margin: 6px auto 0;
  width: 70px;
  height: 13px;
  background-size: 14px 13px;
  background-repeat: repeat-x;
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAANCAYAAACZ3F9/AAAAZklEQVR4AWL4uYWZCdAJHVMBAIJAAG1DoAtjGarYxxjqwHADnA8HFuWL3E8puH8gAqILPaB34Qq4FAQ1yoo+8ES7NRWKe6u+Ogo0XjtaCmlSd6K/4OQQOF0JKYTsMasgOIRkBfDZATita/85jgoHAAAAAElFTkSuQmCC);
}

.inform_widget .color-2 {
  --inform_widget-color-2: #efc441;
}

.inform_widget {
  --inform_widget-font: "Titillium Web", sans-serif;
  --inform_widget-color-2: #efc441;
}

.inform_widget .head.wider,
.inform_widget .stat.wider {
  flex-basis: calc(100% * .31);
}

.c-menu-main__parent h3 {
  color: #fff;
}

.super-offices li:first-child {
  width: 100%;
  margin-bottom: 12px;
}

.super-offices li:not(:first-child) {
  display: inline-block;
  width: calc(16.666% - 3px);
}

.super-offices li:not(:first-child) a {
  padding-top: 56px;
  background-image: url(../img/icon-office.png);
  background-size: 48px;
  background-repeat: no-repeat;
  background-position: 50% 0;
}

.super-offices2 li:first-child {
  width: 100%;
  margin-bottom: 4px;
}

.super-offices2 li:not(:first-child) {
  display: inline-block;
  width: calc(16.666% - 3px);
}

.super-offices2 li:not(:first-child) a {
  padding-top: 56px;
  background-image: url(../img/bg-supernav-circle.png);
  background-size: 36px 48px;
  background-repeat: no-repeat;
  background-position: 50% 0;
}

.inform_widget {
  --inform_widget-font: "Titillium Web", sans-serif !important;
}

.inform_widget .color-2 {
  --inform_widget-color-2: #efc441;
}

.c-menu-main__parent h3 {
  color: #fff;
}

.inform_widget .head,
.inform_widget .stat {
  margin-top: 0 !important;
}

@media (min-width: 1024px) {

  .inform_widget .head.wider,
  .inform_widget .stat.wider,
  .inform_widget .stat.wide.o13 {
    -webkit-flex-basis: calc(100% * .31) !important;
    -ms-flex-preferred-size: calc(100% * .31) !important;
    flex-basis: calc(100% * .31) !important;
  }

  .inform_widget .head.mo-1 .padd {
    padding: 1em 0;
  }

  .inform_widget .head.widest,
  .inform_widget .stat.widest {
    -webkit-flex-basis: calc(100% / 1.5) !important;
    -ms-flex-preferred-size: calc(100% / 1.5) !important;
    flex-basis: calc(100% / 1.5) !important;
  }

  .inform_widget .rental .container {
    justify-content: flex-start;
  }
}

@media (min-width: 1140px) {

  .c-menu-main ul.c-menu-main__top>li:nth-child(7) ul.c-supernav-block,
  .c-menu-main ul.c-menu-main__top>li:nth-child(8) ul.c-supernav-block {
    width: 1000px;
  }
}

.c-results-item>.c-col-sm-6 {
  position: relative;
}

.c-results-item__price {
  z-index: 99;
}

.dezImgSlide {
  margin-top: 0 !important;
}

.offer-accepted .text-overlay,
.under-offer .text-overlay,
.let-agreed .text-overlay {
  position: absolute;
  content: '';
  z-index: 15;
  width: 100%;
  height: calc(100% - 50px);
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 0 !important;
}

.offer-accepted::before,
.under-offer::before,
.let-agreed::before {
  position: absolute;
  content: '';
  z-index: 10;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: #FFFFFF;
  opacity: 0.5;
}

.offer-accepted .text-overlay p,
.under-offer .text-overlay p,
.let-agreed .text-overlay p {
  text-align: center;
  font-size: 18px;
  color: red;
  line-height: .9;
  text-transform: uppercase;
}

.offer-accepted .text-overlay p span,
.under-offer .text-overlay p span,
.let-agreed .text-overlay p span {
  font-size: 80px;
  display: block;
  font-weight: 400;
}

@media only screen and (max-width: 900px) {

  .offer-accepted::before,
  .under-offer::before,
  .let-agreed::before {
    height: calc(100% - 44px);
  }

  .offer-accepted .text-overlay,
  .under-offer .text-overlay,
  .let-agreed .text-overlay {
    height: calc(100% - 44px);
  }
}

.pad-0 {
  padding: 0 !important;
  margin-top: -1.5rem !important;
}

.geo-facts .tns-controls {
  bottom: -96px;
}

.footer .tns-ovh {
  margin: 0 !important;
}

/* ── Results pagination ──────────────────────────────────────────────
   Moved out of a <style> block in results.php. */

/* Hidden while the page count is still being filled in, but it keeps its box -
   display:none would collapse the row and shift the whole results list, once on
   hide and again on show. */
.c-pagination.is-pending {
  visibility: hidden;
}

/* The first page is rendered server side, so there is no empty #results to
   reserve height for on load. The reserve is still needed when paging, because
   the list is emptied while the next page is fetched - JS adds this class for
   the duration of that request.

   Keyed off data-page-size rather than an inline style: PHP knows the page size
   and there are only four permitted values, so the rules can live here. */
#results.is-awaiting { min-height: 300rem; }
#results.is-awaiting[data-page-size="10"] { min-height: 300rem; }
#results.is-awaiting[data-page-size="25"] { min-height: 750rem; }
#results.is-awaiting[data-page-size="50"] { min-height: 1500rem; }
#results.is-awaiting[data-page-size="100"] { min-height: 3000rem; }

.c-pagination {
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  padding: 0.75rem 0;
  margin: 1.25rem 0;
  font-family: 'Open Sans', sans-serif;
  color: #1f2933;
}

.c-pagination .c-pagination__prev,
.c-pagination .c-pagination__next {
  border: none;
  padding: 0;
  height: auto;
  flex-basis: auto;
}

.c-pagination button {
  padding: 0.5em 1em;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 4px;
  color: #1f2933;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease;
}

.c-pagination button:hover:not(:disabled) {
  background: #f4f4f4;
  border-color: rgba(0, 0, 0, 0.3);
}

.c-pagination button:disabled {
  opacity: 0.35;
  cursor: not-allowed !important;
}

.c-pagination .c-pagination__pages {
  font-size: 0.875rem;
}

.c-pagination .c-pagination__pages span {
  line-height: 2;
}

.c-pagination .c-select {
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 4px;
  background: #fff;
}

.c-pagination .c-select::after {
  border-top-color: #173C7F;
}

.c-pagination .c-select select {
  font-family: 'Open Sans', sans-serif;
  font-size: 0.8125rem;
  color: #1f2933;
  width: 100%;
  padding: 0.375em 1.75em 0.375em 0.625em;
}

/* ── Fancybox ────────────────────────────────────────────────────────
   Moved out of a <style> block in details.php. */
.fancybox__content {
  min-height: 80vh !important;
  max-width: 90vw !important;
}

/* ── Floorplan section ───────────────────────────────────────────────
   Shown in the page like the map rather than only in a lightbox. The image
   still opens full size on click, because a floorplan has to be zoomable. */
.c-details-floorplan {
  scroll-margin-top: calc(88px + 2rem);
}

.c-details-floorplan[hidden] {
  display: none;
}

.c-details-floorplan__link {
  display: block;
  overflow: hidden;
  background: #fff;
  cursor: zoom-in;
}

.c-details-floorplan__image {
  display: block;
  width: 100%;
  height: auto;
  /* Floorplans are usually portrait; cap so one does not fill the column. */
  max-height: 40rem;
  object-fit: contain;
}

/* ── Location section ────────────────────────────────────────────────
   The map is part of the page now, not a lightbox. */

.c-details-location {
  /* Clears the fixed header when the sidebar's View Map action jumps here. */
  scroll-margin-top: calc(88px + 2rem);
}

.c-details-map {
  height: 30rem;
  overflow: hidden;
  background: #eef0f3;
}

@media (max-width: 40em) {
  .c-details-map {
    height: 21rem;
  }
}

.c-details-map__fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  margin: 0;
  font-family: 'Open Sans', sans-serif;
}

/* ── Map marker ──────────────────────────────────────────────────────
   The Satchells S in a pin, with the property address on a card above.
   MapLibre anchors the element by its bottom edge, which is the pin tip. */
.c-map-pin {
  display: flex;
  flex-direction: column;
  align-items: center;
  /* The label can be wider than the pin; keep the pin itself centred on the
     coordinate rather than the whole block. */
  width: 44px;
}

.c-map-pin__label {
  position: relative;
  width: max-content;
  max-width: 40rem;
  margin-bottom: 0.5rem;
  padding: 0.4rem 0.7rem;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15), 0 4px 12px rgba(0, 0, 0, 0.18);
  font-family: 'Open Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.35;
  color: #1f2933;
  text-align: center;
}

/* Small notch joining the card to the pin. */
.c-map-pin__label::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  width: 8px;
  height: 8px;
  transform: translateX(-50%) rotate(45deg);
  background: #fff;
}

.c-map-pin__pin {
  display: block;
  filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.35));
}

.c-map-pin__pin svg {
  display: block;
}

/* ── Enquiry CTA inside the lightbox ─────────────────────────────────
   Sits above Fancybox's own toolbar and thumbnail strip. */
.c-fancybox-cta {
  /* Placed against the photograph's own box - see details.php. */
  position: absolute;
  top: var(--cta-top, 2rem);
  left: var(--cta-left, 50%);
  transform: translateX(-50%);
  z-index: 1050;
  display: inline-flex;
  align-items: center;
  padding: 0.75rem 1.5rem;
  background: #932846;
  border: 1px solid #932846;
  color: #fff;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-decoration: none;
  text-transform: uppercase;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
  transition: background-color .2s ease, border-color .2s ease;
}

.c-fancybox-cta:hover,
.c-fancybox-cta:focus-visible {
  background: #173C7F;
  border-color: #173C7F;
  color: #fff;
}

@media (max-width: 40em) {
  .c-fancybox-cta {
    padding: 0.625rem 1rem;
    font-size: 0.75rem;
  }
}

/* ── Squared corners on the property details page ─────────────────────────
   Two of the radii on this page come from rules that are not the details
   page's to change: the sold/under-offer overlay is shared with the search
   results cards, and the map controls are MapLibre's own stylesheet, which is
   vendored and would lose the edit on the next upgrade. Both are overridden
   here instead, scoped so nothing outside this page moves. */
.c-details-gallery .c-results-item__overlay {
  border-radius: 0;
}

.c-details-map .maplibregl-ctrl-group,
.c-details-map .maplibregl-ctrl-attrib-button {
  border-radius: 0;
}

/* Fancybox builds its lightbox as a direct child of <body>, so it cannot be
   scoped to the page - but details.php is the only page that loads Fancybox at
   all, so an unscoped rule reaches nothing else. Its round buttons are left
   round; only the filmstrip thumbnails are rounded rectangles. */
.fancybox__thumb {
  border-radius: 0;
}
