/* Homepage additions inherit the theme's typography, colours, buttons and feature cards. */
.home-refresh__heading { max-width: 1000px; margin: 0 auto 2rem; text-align: center; }
.home-refresh__heading p { margin: 0; line-height: 1.7; }
.home-refresh__intro { max-width: 920px; margin: auto; line-height: 1.8; }
.home-refresh__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.home-refresh__grid--support { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-refresh .home-refresh__card { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.home-refresh__card h3 { font-size: 1.5rem; }
.home-refresh__card p { line-height: 1.7; margin-bottom: 0; }
.home-refresh__media { display: flex; align-items: center; justify-content: center; width: 72px; height: 72px; margin-bottom: 20px; }
.home-refresh__media img { max-width: 100%; max-height: 100%; object-fit: contain; }
.home-refresh__card--center { align-items: center; text-align: center; }
.home-refresh__arrow { margin-top: auto; padding-top: 20px; align-self: flex-end; color: #439de6; }
.home-refresh__card:focus-visible { outline: 3px solid #439de6; outline-offset: 5px; }
@media (prefers-reduced-motion: no-preference) {
    a.home-refresh__card { transition: transform .2s ease, box-shadow .2s ease; }
    a.home-refresh__card:hover { transform: translateY(-4px); box-shadow: 0 10px 35px rgba(5, 28, 60, .12); }
}
@media (max-width: 1199px) {
    .home-refresh__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-refresh__grid--support { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 991px) {
    .home-refresh__grid--support { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 575px) {
    .home-refresh__grid { grid-template-columns: minmax(0, 1fr); }
}

.home-refresh a.home-refresh__card::after { content: none; }

/* Blend white image canvases into the section backdrop, including inside Slick's transformed track. */
#home-case-studies { isolation: isolate; }
#home-case-studies .cs-slider { mix-blend-mode: multiply; }
#home-case-studies .slick-dots { --case-dot-gap: clamp(4px, 1vw, 14px); display: flex; flex-wrap: nowrap; justify-content: flex-start; gap: var(--case-dot-gap); left: 50%; transform: translateX(-50%); width: min(100%, 626px); padding: 0; overflow: hidden; overflow: clip; }
#home-case-studies .slick-dots li { display: none; flex: 0 0 var(--case-dot-width, calc((100% - 9 * var(--case-dot-gap)) / 10)); min-width: 0; width: auto; margin: 0; transform: translateX(var(--case-dot-offset, 0px)); transition: transform .35s ease; }
#home-case-studies .slick-dots:not(.has-windowed-dots) li:nth-child(-n+10),
#home-case-studies .slick-dots.has-windowed-dots li { display: block; }
#home-case-studies .slick-dots li button { width: 100%; }
@media (prefers-reduced-motion: reduce) {
    #home-case-studies .slick-dots li { transition: none; }
}

/* Locations: supplied city photos on a plain white section, with an accessible address reveal. */
.home-locations { background: #fff; }
.home-locations__intro { max-width: 760px; margin-inline: auto !important; }
.home-locations__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.home-location { position: relative; min-width: 0; aspect-ratio: 1.4; border-radius: 12px; box-shadow: 0 8px 24px rgba(5,28,60,.12); isolation: isolate; }
.home-location__summary { appearance: none; display: block; position: relative; width: 100%; height: 100%; padding: 0; border: 0; border-radius: inherit; overflow: hidden; background: #051c3c; color: #fff; text-align: left; cursor: pointer; font: inherit; }
.home-location__summary::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 35%, rgba(5,28,60,.75)); }
.home-location__image { display: block; width: 100%; height: 100%; object-fit: cover; }
.home-location__label { position: absolute; z-index: 1; bottom: 18px; left: 18px; right: 18px; display: grid; gap: 2px; line-height: 1.4; }
.home-location__overlay { position: absolute; z-index: 2; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 20px 16px; border-radius: inherit; background: rgba(5, 38, 82, .86); color: #fff; text-align: center; opacity: 0; pointer-events: none; }
.home-location__place { display: grid; gap: 4px; line-height: 1.4; }
.home-location__place strong { font-family: 'Titillium Web', sans-serif; font-size: 1.3rem; }
.home-location__address { font-style: normal; font-size: .85rem; line-height: 1.6; margin: 0; }
.home-location.is-open .home-location__overlay,
.home-location:has(.home-location__summary:focus-visible) .home-location__overlay { opacity: 1; }
.home-location.is-open .home-location__label,
.home-location:has(.home-location__summary:focus-visible) .home-location__label { opacity: 0; }
.home-location__summary:focus-visible { outline: 3px solid #439de6; outline-offset: 5px; }
@media (hover: hover) {
    .home-location:hover .home-location__overlay { opacity: 1; }
    .home-location:hover .home-location__label { opacity: 0; }
}
@media (prefers-reduced-motion: no-preference) {
    .home-location { transition: transform .25s ease; }
    .home-location__overlay, .home-location__label { transition: opacity .25s ease; }
    .home-location__image { transition: transform .35s ease; }
    .home-location.is-open, .home-location:has(.home-location__summary:focus-visible) { transform: translateY(-4px); }
    .home-location.is-open .home-location__image { transform: scale(1.03); }
    @media (hover: hover) {
        .home-location:hover { transform: translateY(-4px); }
        .home-location:hover .home-location__image { transform: scale(1.03); }
    }
}
@media (max-width: 1199px) {
    .home-locations__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
    .home-locations__grid { grid-template-columns: minmax(0, 1fr); }
}
