/* PPS Print: repairs to the existing responsive theme, 29 October 2026. */
#button a:focus-visible,
#ftr a:focus-visible,
#test a:focus-visible,
.pps-table-scroll:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

/* The existing arrow sprites are 19px high; text line boxes can be shorter. */
#button a {min-height:19px;}

/* Keep dropdowns closed before Superfish adds its initial hidden classes.
   Preserve hover and keyboard access if scripts are slow or unavailable. */
#superfish-1:not(.sf-js-enabled) li > ul {visibility:hidden;}
#superfish-1:not(.sf-js-enabled) li:hover > ul,
#superfish-1:not(.sf-js-enabled) li:focus-within > ul {visibility:visible;}

/* Oversized editorial images must also fit the original desktop content column. */
#content img {max-width:100%; height:auto !important; box-sizing:border-box;}

/* Keep the original desktop artwork, colours and type. */
@media only screen and (max-width:959px) {
  #wrap {width:calc(100% - 26px); margin-left:auto; margin-right:auto;}
  #slider, #ftr, #copy {width:100%; margin-left:0; margin-right:0; box-sizing:border-box;}
  #leftcol {margin-left:0;}
  #rightcol {width:calc(100% - 180px); margin:0;}
  .not-front #content {width:100%; margin-right:0; box-sizing:border-box;}

  /* Both footer templates use their existing navigation blocks. */
  #ftr {height:auto; background-color:#40b4e7; background-size:auto 100%; clear:both;}
  #ftr #space {display:flex; flex-wrap:wrap; gap:20px; float:none; padding:20px;}
  #ftr #one {display:none;} /* Empty "At a glance" column. */
  #ftr #two, #ftr #three {display:block; float:none; flex:1 1 0; width:auto; min-width:0;}
  #ftr #twitter {float:none; flex:1 1 180px; width:auto; height:auto; min-width:0;}
  #ftr #twitterlinks {float:none; display:flex; gap:20px; flex:2 1 300px; width:auto; min-width:0;}
  #ftr .block-menu {float:none; padding-left:0; flex:1 1 0; min-width:0;}
  #ftr h2 {padding-bottom:10px;}
  #ftr ul li a {display:inline-block; padding:4px 0;}
  #ftr .twitter-timeline {color:#fff;}
  #copy {display:flow-root; padding-bottom:10px;}
  #copy img[src*="accreditations-new-2.png"] {max-width:100%; height:auto;}

  /* Constrain editorial images, retaining their original aspect ratio. */
  #content img {max-width:100%; height:auto !important; box-sizing:border-box;}
  #content iframe, #content object, #content embed {max-width:100%; box-sizing:border-box;}
  #content {overflow-wrap:anywhere;}
  #content .field-name-field-image-pg .field-item,
  #content .field-name-field-image-pg .sb-image {max-width:100%;}
  #content button {max-width:calc(100% - 10px); box-sizing:border-box; white-space:normal;}
  .page-taxonomy #content .views-field-field-image-news,
  .page-taxonomy #content .views-field-title,
  .page-taxonomy #content .views-field-body {float:none; width:100%;}
  .page-taxonomy #content .views-field-field-image-news {margin-bottom:12px;}
  .page-taxonomy #content .views-row {height:auto; display:flow-root;}
  .page-taxonomy #content .views-field-view-node a {float:none;}
  #content input, #content textarea, #content select {max-width:100%; box-sizing:border-box;}
  #content input[type="checkbox"], #content input[type="radio"] {width:auto; margin:0 6px 0 0; vertical-align:middle;}
}

@media only screen and (min-width:686px) and (max-width:959px) {
  .front #wrap {display:grid; grid-template-columns:minmax(0,1fr) 265px; gap:10px;}
  .front #wrap > .clear {display:none;}
  .front #slider {grid-column:1 / -1; margin:0; min-width:0;}
  .front #help {grid-column:1; grid-row:2; float:none; width:auto; height:auto; min-height:38px; margin:0; padding:0 10px; line-height:38px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;}
  .front #help img {display:block; float:none;}
  .front #cards {grid-column:2; grid-row:2; float:none; width:auto; height:auto; margin:0; display:flex; align-items:center; justify-content:center;}
  .front #test {grid-column:1; grid-row:3; float:none; width:auto; min-width:0; height:auto; margin:0; padding-bottom:65px;}
  .front #why {grid-column:2; grid-row:3; float:none; width:auto; height:auto; min-height:387px; margin:0; background-size:100% 100%;}
  .front #sectors {grid-column:1 / -1; grid-row:4; float:none; width:auto; height:auto; margin:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px;}
  .front #sector {float:none; width:auto; margin:0; background-size:cover;}
  .front #sectors .box {margin-right:0;}
  .front #ftr, .front #copy {grid-column:1 / -1; margin-top:0;}
  #test .review-link {top:auto; bottom:12px; right:12px;}
  #test #block-views-testimonials-block-1 {width:100%; margin:0;}
  #test #block-views-testimonials-block-1 .jcarousel-container,
  #test #block-views-testimonials-block-1 .jcarousel-clip {width:100%; height:auto;}
  #test #block-views-testimonials-block-1 .jcarousel-list {display:flex; align-items:stretch;}
  #test #block-views-testimonials-block-1 .jcarousel-item {flex-shrink:0; height:auto; margin-left:0; margin-right:0;}
  #test #block-views-testimonials-block-1 .jcarousel-prev,
  #test #block-views-testimonials-block-1 .jcarousel-next {top:auto; bottom:-45px;}
  #test .views-field-view-node a {margin-bottom:10px;}
}

@media only screen and (max-width:685px) {
  a.logo {max-width:calc(100% - 20px);}
  #logo {max-width:100%; height:auto;}
  #wrap {width:calc(100% - 20px);}
  #leftcol, #rightcol {width:100%; margin-left:0; margin-right:0;}
  #leftcol {margin-bottom:10px;}
  #sectors {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; width:100%; height:auto; margin:0;}
  #sector {width:auto; margin:0; background-size:cover;}
  #sectors .box {margin-right:0;}
  #but3 {grid-column:1 / -1; margin:0;}
  #cards {position:static; float:none; width:100%; margin:0 0 10px;}
  .front #ftr {margin-top:10px;}
  #ftr #space {padding:15px; gap:15px;}
  #ftr #twitter {order:2; flex-basis:100%;}
  #ftr #twitterlinks {flex-basis:100%; gap:15px;}
  #copy {text-align:center;}
  #copy img[src*="accreditations-new-2.png"] {display:block; float:none; margin:10px auto;}
  #content .ui-tabs-panel img[src*="Quote_Button.jpg"] {display:inline-block;}
}

/* The carousel arrows must stay inside the viewport at the desktop boundary. */
@media only screen and (min-width:960px) and (max-width:1030px) {
  #block-views-product-slider-block .jcarousel-prev-horizontal {left:0;}
  #block-views-product-slider-block .jcarousel-next-horizontal {right:0;}
}

/* Preserve table columns, with a keyboard-accessible small-screen scroll area. */
.pps-table-scroll {max-width:100%; overflow-x:auto; margin:1em 0;}
.pps-table-scroll > table {margin:0;}
