.locations-page-wrap{
  max-width: 1600px;
  margin: 48px auto 74px;
  padding: 0 16px;
}
.locations-hero{
  position: relative;
  padding: 56px;
  overflow: hidden;
  min-height: 520px;
}
.locations-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 70% 30%, rgba(0,0,0,0.20) 0%, rgba(0,0,0,0.72) 58%, rgba(0,0,0,0.94) 100%),
    url("/hero.jpg");
  background-size: cover;
  background-position: center;
  filter: grayscale(100%) contrast(1.05);
  pointer-events:none;
}
.locations-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(135deg, rgba(255,255,255,0.05), rgba(255,255,255,0.00) 45%),
    radial-gradient(circle at 18% 12%, rgba(255,255,255,0.07), rgba(255,255,255,0.00) 55%);
  pointer-events:none;
}
.locations-hero > *{ position:relative; z-index:1; }
.locations-hero-grid{ display:grid; grid-template-columns:minmax(0, 1.1fr); gap:32px; }
.locations-badge{
  display:inline-flex; align-items:center; padding:10px 16px; border-radius:999px;
  border:1px solid rgba(255,255,255,0.12); background:rgba(0,0,0,0.22);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.03); margin-bottom:16px;
}
.locations-title{
  max-width: 920px; margin:0 0 16px; font-family: var(--font-display); font-weight:600;
  font-size: clamp(3rem, 5.6vw, 5rem); line-height: 0.95; letter-spacing: -0.03em;
}
.locations-lead{
  max-width: 980px; margin:0 0 26px; font-size: clamp(1.05rem, 1.6vw, 1.45rem);
  line-height:1.65; color: var(--muted);
}
.locations-actions{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.locations-btn-primary{ background: rgba(255,255,255,0.95); color: #111; }
.locations-btn-primary:hover{ background: #fff; }
.locations-tags{ display:flex; flex-wrap:wrap; gap:12px; }
.locations-tags span, .locations-meta span{
  display:inline-flex; align-items:center; padding:10px 14px; border-radius:999px;
  border:1px solid rgba(255,255,255,0.10); background: rgba(0,0,0,0.28);
  color: rgba(255,255,255,0.88); font-size:0.92rem; font-weight:600;
}
.locations-section{ margin-top: 28px; }
.section-heading{ margin: 0 0 20px; }
.section-heading h2{
  margin:0 0 10px; font-family: var(--font-display); font-weight:600;
  font-size: clamp(2rem, 3.1vw, 3rem); line-height:1.04;
}
.section-heading p{ margin:0; color: var(--muted); max-width: 880px; line-height:1.7; }

.locations-area-list{
  display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:14px;
}
.locations-area-list a{
  display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px 18px;
  border-radius:16px; border:1px solid rgba(255,255,255,0.10); background: rgba(0,0,0,0.22);
  text-decoration:none; color:inherit; transition:.2s ease;
}
.locations-area-list a:hover, .locations-card:hover{
  border-color: rgba(255,255,255,0.20); background: rgba(255,255,255,0.05); transform: translateY(-2px);
}

.locations-card-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:16px; }
.locations-card{
  display:block; text-decoration:none; color:inherit; min-height:100%; padding:22px;
  transition: .2s ease;
}
.locations-card h3{
  margin:0 0 10px; font-family: var(--font-display); font-size:2rem; font-weight:600; line-height:1.08;
}
.locations-card p{ margin:0 0 16px; color:var(--muted); line-height:1.7; }
.locations-meta{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.locations-card strong{ font-size:0.98rem; }

.location-page-hero{
  position:relative; padding:42px; overflow:hidden; margin-bottom:22px;
}
.location-page-hero::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(circle at 70% 30%, rgba(0,0,0,0.20) 0%, rgba(0,0,0,0.72) 58%, rgba(0,0,0,0.94) 100%),
    url("/hero.jpg");
  background-size: cover; background-position:center; filter: grayscale(100%) contrast(1.05);
}
.location-page-hero::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(135deg, rgba(255,255,255,0.05), rgba(255,255,255,0.00) 45%),
    radial-gradient(circle at 18% 12%, rgba(255,255,255,0.07), rgba(255,255,255,0.00) 55%);
}
.location-page-hero > *{ position:relative; z-index:1; }
.location-page-hero h1{
  margin:0 0 12px; font-family: var(--font-display); font-size: clamp(2.6rem, 5vw, 4.3rem);
  line-height:0.98;
}
.location-page-hero p{ max-width:900px; color:var(--muted); font-size:1.08rem; line-height:1.7; }
.location-page-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.location-panel{ padding:24px; }
.location-panel h2{
  margin:0 0 10px; font-family: var(--font-display); font-size:2rem; line-height:1.05;
}
.location-panel p{ color:var(--muted); line-height:1.7; }
.location-cta-row{ display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; }

@media (max-width: 1100px){
  .locations-area-list{ grid-template-columns: repeat(3, 1fr); }
  .locations-card-grid, .location-page-grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 780px){
  .locations-page-wrap{ margin-top: 26px; padding: 0 12px; }
  .locations-hero, .location-page-hero{ padding: 26px; min-height:auto; }
  .locations-title{ font-size: clamp(2.3rem, 11vw, 3.2rem); }
  .locations-lead{ font-size: 1rem; }
  .locations-area-list, .locations-card-grid, .location-page-grid{ grid-template-columns: 1fr; }
  .locations-actions a, .location-cta-row a{ width:100%; }
}
