/* Integrated location pages — existing colour palette, heading fonts, buttons and site grids. */
.nav-location{position:relative;display:inline-flex;align-items:center}
.nav-location>a{color:inherit;text-decoration:none}
.nav-location .location-dropdown{display:none;position:absolute;z-index:100;top:100%;left:0;min-width:176px;max-height:65vh;overflow:auto;background:#17191b;border:1px solid #484a4c;border-radius:8px;padding:8px;box-shadow:0 10px 30px #0005}
.nav-location:hover .location-dropdown,.nav-location:focus-within .location-dropdown{display:block}
.nav-location .location-dropdown a{display:block;padding:8px 12px;white-space:nowrap;color:#fff;text-decoration:none}
.nav-location .location-dropdown a:hover,.nav-location .location-dropdown a:focus{background:#333}
.location-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin:20px 0}
.location-tile{display:flex;flex-direction:column;border:1px solid #d8e1e3;background:white;border-radius:10px;padding:19px;color:inherit;text-decoration:none}
.location-tile h3{margin-top:0;margin-bottom:8px}
.location-tile p{margin:0 0 14px;line-height:1.55}
.location-tile .text-link{margin-top:auto}
.location-page .page-hero{padding:35px 0 32px}
.location-page .page-hero .breadcrumb{margin-bottom:16px}
.location-page .page-hero h1{max-width:770px}
.location-page .page-hero .lead{max-width:660px}
.location-page .location-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:36px}
.location-page .location-hero-visual,.location-page .location-feature-visual{margin:0;min-width:0}
.location-page .location-hero-visual img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.location-page .location-feature-visual img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block}
.location-page .section{padding:43px 0}
.location-page .page-hero + .section{padding-top:44px}
.location-page .section-head{margin-bottom:18px}
.location-page .section-head p{max-width:820px}
.location-page .location-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:38px}
.location-page .location-split h2{margin-top:8px}
.location-page .location-split p{max-width:640px}
.location-page .location-feature--tint{background:#f1f5f6}
.location-page .location-feature--tint .location-split{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.location-page .location-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:19px}
.location-page .location-gallery img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:10px;display:block}
.location-page .location-faq .faq-wrap{max-width:820px}
.location-page .location-faq h2{margin-bottom:20px}
.location-page .location-final{padding:38px 0 44px}
.location-page .location-final p{max-width:710px}
.location-hub .location-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
@media(max-width:850px){
 .nav-location{display:block}.nav-location .location-dropdown{position:static;display:block;box-shadow:none;max-height:none;border:0;background:transparent;padding:0 0 0 14px}.nav-location .location-dropdown a{padding:5px 8px}
 .location-page .location-hero-grid{gap:20px}
 .location-page .location-split{gap:22px}
}
@media(max-width:700px){
 .location-page .page-hero{padding:27px 0 29px}
 .location-page .location-hero-grid,.location-page .location-split,.location-page .location-feature--tint .location-split{grid-template-columns:1fr;gap:22px}
 .location-page .location-hero-visual img{aspect-ratio:16/10}
 .location-page .section,.location-page .page-hero + .section{padding:32px 0}
 .location-page .location-gallery{gap:10px}
 .location-page .location-gallery img{aspect-ratio:4/3}
 .location-page .location-final{padding:32px 0 38px}
 .location-page .location-grid{grid-template-columns:1fr}
}


/* Location layout refinement | scoped to the location section only.
   All typography, colours, site navigation and components remain inherited from the existing site. */
main.location-page { min-width: 0; }
main.location-page .shell { width: min(var(--max, 1180px), calc(100% - 48px)); margin-inline: auto; }
main.location-page .page-hero { padding: clamp(34px, 4.5vw, 58px) 0 clamp(26px, 3.5vw, 42px); }
main.location-page .location-hero-grid {
  display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  align-items: center; gap: clamp(24px, 4vw, 54px);
}
main.location-page .location-hero-content { min-width: 0; }
main.location-page .location-hero-content h1 { max-width: 19ch; margin-bottom: 16px; }
main.location-page .location-hero-content .lead { max-width: 61ch; margin-bottom: 22px; }
main.location-page .location-hero-content .button-row { margin-top: 19px; }
main.location-page .location-hero-visual { min-width: 0; max-width: 100%; margin: 0; overflow: hidden; border-radius: 10px; }
main.location-page .location-hero-visual picture,
main.location-page .location-hero-visual img { display: block; width: 100%; }
main.location-page .location-hero-visual img {
  height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: center 53%;
  max-height: 365px; border-radius: 10px;
}
main.location-page .section { padding: clamp(34px, 4vw, 54px) 0; }
main.location-page .page-hero + .section { padding-top: clamp(32px, 3.6vw, 48px); }
main.location-page .section-head { margin-bottom: 22px; }
main.location-page .section-head h2 { margin-bottom: 11px; }
main.location-page .section-head p { max-width: 75ch; }
main.location-page .location-grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px; margin: 22px 0 14px;
}
main.location-page .location-tile { min-width: 0; padding: clamp(17px, 2vw, 23px); }
main.location-page .location-tile h3 { font-size: clamp(1.2rem, 1.65vw, 1.45rem); }
main.location-page .location-tile p { margin-bottom: 16px; }
main.location-page .location-split {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .93fr);
  gap: clamp(24px, 4vw, 55px); align-items: center;
}
main.location-page .location-feature--tint { background: #f1f5f6; }
main.location-page .location-feature--tint .location-split {
  grid-template-columns: minmax(0, 1fr) minmax(0, .93fr);
}
main.location-page .location-feature-copy { min-width: 0; }
main.location-page .location-feature-copy h2 { margin: 9px 0 14px; }
main.location-page .location-feature-copy p { max-width: 63ch; margin: 0 0 13px; }
main.location-page .location-feature-copy p:last-child { margin-bottom: 0; }
main.location-page .location-feature-visual { min-width: 0; width: 100%; max-width: 100%; margin: 0; overflow: hidden; border-radius: 10px; }
main.location-page .location-feature-visual picture,
main.location-page .location-feature-visual img { display: block; width: 100%; }
main.location-page .location-feature-visual img {
  aspect-ratio: 16 / 10; height: auto; max-height: 330px;
  object-fit: cover; object-position: center 52%; border-radius: 10px;
}
main.location-page .location-gallery {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px; min-width: 0; max-width: 100%; margin: 0;
  align-items: stretch;
}
main.location-page .location-gallery picture { display: block; min-width: 0; overflow: hidden; border-radius: 10px; }
main.location-page .location-gallery img {
  display: block; width: 100%; height: auto; aspect-ratio: 4 / 5;
  max-height: 330px; object-fit: cover; object-position: center; border-radius: 10px;
}
main.location-page .location-faq { background: #fff; }
main.location-page .location-faq .faq-wrap { width: min(820px, calc(100% - 48px)); max-width: 820px; }
main.location-page .location-faq h2 { margin: 8px 0 21px; }
main.location-page .location-faq details { max-width: 100%; }
main.location-page .location-faq summary { overflow-wrap: anywhere; }
@media (min-width: 901px) {
  /* Reverses the second split's photo placement for a balanced alternating layout. */
  main.location-page .location-feature:not(.location-feature--tint) .location-feature-copy { grid-column: 2; grid-row: 1; }
  main.location-page .location-feature:not(.location-feature--tint) .location-gallery { grid-column: 1; grid-row: 1; }
}
@media (max-width: 900px) {
  main.location-page .location-hero-grid, main.location-page .location-split,
  main.location-page .location-feature--tint .location-split { gap: 22px; }
  main.location-page .location-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  main.location-page .shell { width: min(var(--max, 1180px), calc(100% - 32px)); }
  main.location-page .page-hero { padding: 27px 0 28px; }
  main.location-page .location-hero-grid, main.location-page .location-split,
  main.location-page .location-feature--tint .location-split {
    grid-template-columns: minmax(0, 1fr); gap: 22px;
  }
  main.location-page .location-hero-visual img { aspect-ratio: 16 / 9; max-height: 270px; }
  main.location-page .section, main.location-page .page-hero + .section { padding: 34px 0; }
  main.location-page .section-head { margin-bottom: 16px; }
  main.location-page .location-feature-visual img { aspect-ratio: 16 / 9; max-height: 260px; }
  main.location-page .location-gallery { gap: 10px; }
  main.location-page .location-gallery img { aspect-ratio: 5 / 4; max-height: 200px; }
  main.location-page .location-faq .faq-wrap { width: min(820px, calc(100% - 32px)); }
}
@media (max-width: 520px) {
  main.location-page .location-grid { grid-template-columns: minmax(0, 1fr); gap: 11px; }
  main.location-page .location-tile { padding: 18px 20px; }
  main.location-page .location-tile p { margin-bottom: 10px; }
  main.location-page .location-hero-content .button-row {
    display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px;
  }
  main.location-page .location-hero-content .button-row .button { width: 100%; }
  main.location-page .location-hero-visual img { aspect-ratio: 16 / 10; }
  main.location-page .location-gallery img { aspect-ratio: 1 / 1; }
}
