/* Locations uses the same brand gradient, button and typography owners as Home. */
.locations-hub { overflow: clip; }
.locations-hub .homepage-hero__button--primary { border: 0; }
.location-hero {
    position: relative;
    isolation: isolate;
    padding-block: clamp(32px, 3.5vw, 52px) clamp(28px, 3vw, 44px);
    background: radial-gradient(ellipse at 88% 30%, #eaf5ff 0, transparent 56%), #fff;
}
.location-hero::before, .location-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    pointer-events: none;
}
.location-hero::before {
    inset: -140px -120px 30px 43%;
    border: 65px solid #eaf5ff80;
    border-radius: 42%;
    transform: rotate(-25deg);
}
.location-hero::after {
    width: 180px; height: 180px; top: 25%; left: 40%;
    background-image: radial-gradient(#a4d9fc 1.4px, transparent 1.4px);
    background-size: 16px 16px; opacity: .4;
}
.location-hero__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: clamp(24px, 3.5vw, 48px);
}
.location-hero__content { display: flex; flex-direction: column; align-items: flex-start; gap: 28px; min-width: 0; }
.location-hero__badge {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 8px 14px; border: 1px solid #dbeaf3; border-radius: 99px;
    color: #31516b; background: #fff; font-size: .8rem; line-height: 1.35;
}
.location-hero__badge i { width: 7px; height: 7px; flex-shrink: 0; border-radius: 50%; background: var(--primary-color); box-shadow: 0 0 0 4px #0072be14; }
.location-hero h1 {
    margin: 0; max-width: 100%;
    color: var(--primary-color); background: var(--gradient);
    background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    font-size: clamp(3.5rem, 5.2vw, 4.75rem); font-weight: 400;
    line-height: 1.08; letter-spacing: -.045em;
}
.location-hero h1 span { display: block; text-wrap: balance; }
.location-hero__copy { display: grid; gap: 8px; max-width: 580px; }
.location-hero__lead, .location-hero__description {
    color: #526174; font-size: clamp(.95rem, 1.1vw, 1.05rem); font-weight: 400; line-height: 1.55;
}
.location-hero__lead { margin: 0; }
.location-hero__description { margin: 0; max-width: 580px; }
.location-hero__actions { margin-top: 8px; }
.location-hero__actions .homepage-hero__button { padding: 12px 26px; }
.location-hero__form {
    min-width: 0; padding: 12px 26px;
    border: 1px solid #e8f1fa; border-radius: 22px; background: #fff;
    box-shadow: 0 8px 34px #0072be20; scroll-margin-top: 100px;
}
.location-hero__form h2 { margin: 0 0 8px; color: #052743; font-size: clamp(1.4rem, 1.7vw, 1.75rem); font-weight: 650; line-height: 1.2; }
.location-hero__form-intro { margin: 0 0 20px; color: #65758d; font-size: .875rem; line-height: 1.5; }
.location-enquiry__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.location-enquiry__field { min-width: 0; }
.location-enquiry__field--wide { grid-column: 1 / -1; }
.location-enquiry label { display: block; margin-bottom: 6px; color: #193b58; font-size: .8rem; font-weight: 650; }
.location-enquiry label > span { color: #bf283b; }
.location-enquiry__control { position: relative; }
.location-enquiry__control > i { position: absolute; left: 12px; top: 15px; width: 15px; color: #65758d; font-size: .85rem; pointer-events: none; }
.location-enquiry :is(input:not([type="hidden"]), select, textarea) {
    display: block; width: 100%; max-width: 100%; min-width: 0; min-height: 44px;
    border: 1px solid #dce7f4; border-radius: 8px;
    padding: 8px 12px 8px 35px; background-color: #fbfdff;
    color: #193b58; font: inherit; font-size: .9rem; line-height: 1.5;
}
.location-enquiry select { padding-right: 25px; }
.location-enquiry textarea { resize: vertical; min-height: 60px; }
.location-enquiry :is(input, textarea)::placeholder { color: #74849b; opacity: 1; }
.location-enquiry [aria-invalid="true"] { border-color: #b52b3d; }
.location-enquiry [data-field-error] { display: block; color: #a51c32; font-size: .78rem; }
.location-enquiry [data-field-error]:empty { display: none; }
.location-enquiry > button { width: 100%; margin-top: 16px; min-height: 44px; }
.location-enquiry__alert:not(:empty) { padding: 12px; margin-bottom: 16px; border-radius: 8px; background: #fff0f2; color: #97233a; font-size: .88rem; }
.location-enquiry__alert.is-success:not(:empty) { background: #e8f8f0; color: #096e42; }
.location-hero :is(a, button, input, select, textarea):focus-visible { outline: 3px solid #34bc8c; outline-offset: 3px; }
@media (max-width: 991.98px) {
    .location-hero__grid { grid-template-columns: 1fr; gap: 32px; }
    .location-hero__content { gap: 24px; }
    .location-hero__form { width: 100%; max-width: 700px; }
    .location-hero h1 { max-width: 700px; font-size: clamp(2.5rem, 6.2vw, 4.6rem); }
    .location-hero::after { left: auto; right: 0; }
}
@media (max-width: 575.98px) {
    .location-hero h1 { font-size: clamp(2rem, 8.4vw, 2.9rem); }
    .location-enquiry__grid { grid-template-columns: 1fr; }
    .location-hero__actions .homepage-hero__button { width: 100%; }
}
