/* Focused city landing pages */
.location-page { background: var(--bg); color: var(--ink); }
.location-page .site-header { position: sticky; }
.location-hero { position: relative; min-height: min(760px, calc(100svh - 60px)); display: flex; align-items: center; overflow: hidden; border-radius: 0 0 46px 46px; background: #060809; }
.location-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.84) contrast(1.08); }
.location-hero.pompano > img { object-position: 50% 55%; }
.location-hero.boca > img { object-position: 50% 47%; }
.location-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #07090af2 0%, #07090ad9 37%, #07090a73 64%, #07090a22 100%), linear-gradient(0deg, #07090ad8 0%, transparent 42%); }
.location-hero-inner { position: relative; z-index: 2; padding: 105px 0 90px; }
.location-breadcrumbs { display: flex; align-items: center; gap: 9px; margin: 0 0 28px; color: #d8dad6; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.location-breadcrumbs a { color: #fff; border-bottom: 1px solid #ffffff70; }
.location-hero .eyebrow { color: var(--orange); }
.location-hero h1 { max-width: 930px; margin: 0 0 28px; font-size: clamp(58px, 8.2vw, 112px); font-weight: 900; line-height: .88; letter-spacing: -.06em; text-transform: uppercase; text-shadow: 0 5px 32px #000c; }
.location-hero h1 span { display: block; color: var(--orange); }
.location-hero-copy { max-width: 620px; margin: 0 0 32px; color: #eceee9; font-size: 17px; line-height: 1.7; text-shadow: 0 3px 20px #000; }
.location-hero-note { margin: 18px 0 0; color: #d6d9d4; font-size: 10px; letter-spacing: .03em; }
.location-trust { border-bottom: 1px solid #ffffff10; background: #0b0d0e; }
.location-trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.location-trust-grid div { min-height: 110px; padding: 26px; border-right: 1px solid #ffffff14; }
.location-trust-grid div:last-child { border-right: 0; }
.location-trust-grid span { display: block; margin-bottom: 9px; color: var(--orange); font-size: 9px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.location-trust-grid strong { display: block; font-size: 13px; line-height: 1.45; text-transform: uppercase; }

.location-intro { background: var(--cream); color: #111416; }
.location-intro-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(55px, 8vw, 110px); align-items: start; }
.location-intro h2 { color: #101315; }
.location-intro h2 span { color: #777d7a; }
.location-copy > p { margin: 0 0 24px; color: #565d5b; font-size: 15px; line-height: 1.9; }
.location-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 36px; }
.location-point { min-height: 215px; padding: 25px; border: 1px solid #cbcdc6; border-radius: 20px; background: #fff; }
.location-point > span { display: inline-grid; width: 40px; height: 40px; place-items: center; margin-bottom: 32px; border-radius: 50%; background: var(--orange); color: #111; font-size: 10px; font-weight: 900; }
.location-point h3 { margin: 0 0 9px; font-size: 16px; text-transform: uppercase; }
.location-point p { margin: 0; color: #646b69; font-size: 11px; line-height: 1.75; }

.location-services { background: #0b0d0e; }
.location-services-head { display: grid; grid-template-columns: 1.2fr .8fr; gap: 80px; align-items: end; margin-bottom: 52px; }
.location-services-head > p { margin: 0 0 8px; color: var(--muted); font-size: 14px; line-height: 1.9; }
.location-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.location-service-card { position: relative; min-height: 355px; padding: 32px; overflow: hidden; border: 1px solid #303537; border-radius: 24px; background: #121516; }
.location-service-card.featured { background: var(--orange); color: #111; }
.location-service-card .card-number { color: var(--orange); font-size: 10px; font-weight: 900; letter-spacing: .16em; }
.location-service-card.featured .card-number { color: #111; }
.location-service-card h3 { margin: 78px 0 15px; font-size: 29px; line-height: 1; letter-spacing: -.04em; text-transform: uppercase; }
.location-service-card p { margin: 0; color: #aeb3b0; font-size: 12px; line-height: 1.8; }
.location-service-card.featured p { color: #2b2a22; }
.location-service-card a { position: absolute; right: 32px; bottom: 30px; left: 32px; display: flex; align-items: center; justify-content: space-between; padding-top: 18px; border-top: 1px solid #ffffff20; color: #fff; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.location-service-card.featured a { border-color: #1114; color: #111; }

.location-packages { background: var(--cream); color: #111416; }
.location-packages .section-heading > p { color: #626866; }
.package-list { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid #c8cac3; }
.package-item { display: grid; grid-template-columns: 70px 1fr; gap: 20px; min-height: 165px; padding: 30px 30px 30px 0; border-bottom: 1px solid #c8cac3; }
.package-item:nth-child(odd) { border-right: 1px solid #c8cac3; }
.package-item:nth-child(even) { padding-left: 30px; }
.package-item > span { color: #9a7b00; font-size: 11px; font-weight: 900; letter-spacing: .12em; }
.package-item h3 { margin: 0 0 10px; font-size: 19px; text-transform: uppercase; }
.package-item p { margin: 0; color: #606765; font-size: 12px; line-height: 1.75; }
.package-note { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 35px; }
.package-note p { max-width: 690px; margin: 0; color: #626866; font-size: 11px; line-height: 1.8; }

.location-work { background: #111416; }
.location-work .section-heading { align-items: end; }
.location-gallery { display: grid; grid-template-columns: 1.15fr .85fr .85fr; gap: 16px; }
.location-gallery figure { position: relative; min-height: 510px; margin: 0; overflow: hidden; border-radius: 24px; background: #222; }
.location-gallery img { width: 100%; height: 100%; object-fit: cover; }
.location-gallery figure:first-child img { object-position: 50% 60%; }
.location-gallery figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, #000c 0%, transparent 50%); }
.location-gallery figcaption { position: absolute; z-index: 2; right: 24px; bottom: 24px; left: 24px; }
.location-gallery figcaption strong { display: block; margin-bottom: 6px; color: #fff; font-size: 15px; text-transform: uppercase; }
.location-gallery figcaption span { color: #d5d8d3; font-size: 10px; }

.location-visit { background: var(--cream); color: #111416; }
.location-visit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.visit-copy, .visit-card { padding: 46px; border-radius: 26px; }
.visit-copy { background: #111416; color: #fff; }
.visit-copy h2 { margin-bottom: 26px; font-size: clamp(38px, 4.2vw, 62px); }
.visit-copy p { margin: 0; color: #b7bcb9; font-size: 13px; line-height: 1.9; }
.visit-card { display: flex; flex-direction: column; justify-content: space-between; background: var(--orange); color: #111; }
.visit-card > span { font-size: 9px; font-weight: 900; letter-spacing: .17em; text-transform: uppercase; }
.visit-card address { margin: 46px 0 28px; font-style: normal; font-size: 27px; font-weight: 900; line-height: 1.2; text-transform: uppercase; }
.visit-card p { margin: 0 0 26px; font-size: 12px; line-height: 1.7; }
.visit-card .button { align-self: flex-start; }

.location-faq { background: #0b0d0e; }
.location-faq .faq-layout { align-items: start; }
.location-final { padding: 86px 0; background: var(--orange); color: #111; }
.location-final-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 80px; align-items: center; }
.location-final h2 { color: #111; }
.location-final h2 span { color: #fff; }
.location-final p { margin: 0 0 24px; font-size: 14px; line-height: 1.8; }
.location-final .eyebrow { color: #111; }
.location-links { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 24px; }
.location-links a { padding-bottom: 4px; border-bottom: 1px solid #1117; font-size: 10px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.location-page .service-area-footer { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.location-page .service-area-footer a { font-size: 10px; }

@media (max-width: 1050px) {
  .location-points { grid-template-columns: 1fr; }
  .location-point { min-height: 0; }
  .location-point > span { margin-bottom: 18px; }
  .location-gallery { grid-template-columns: 1fr 1fr; }
  .location-gallery figure:first-child { grid-column: 1 / -1; }
  .location-gallery figure { min-height: 440px; }
}

@media (max-width: 800px) {
  .location-hero { min-height: 720px; border-radius: 0 0 28px 28px; }
  .location-hero::after { background: linear-gradient(180deg, #07090ae8 0%, #07090a9e 50%, #07090adf 100%); }
  .location-hero h1 { font-size: clamp(48px, 13vw, 76px); }
  .location-trust-grid { grid-template-columns: 1fr 1fr; }
  .location-trust-grid div:nth-child(2) { border-right: 0; }
  .location-trust-grid div:nth-child(-n+2) { border-bottom: 1px solid #ffffff14; }
  .location-intro-grid, .location-services-head, .location-visit-grid, .location-final-grid { grid-template-columns: 1fr; gap: 38px; }
  .location-service-grid { grid-template-columns: 1fr; }
  .location-service-card { min-height: 300px; }
  .location-service-card h3 { margin-top: 50px; }
  .package-note { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 560px) {
  .location-hero { min-height: 670px; }
  .location-hero-inner { padding: 70px 0 80px; }
  .location-hero.pompano > img, .location-hero.boca > img { object-position: 58% 50%; }
  .location-hero-copy { font-size: 14px; }
  .location-hero .hero-actions { max-width: none; }
  .location-hero .hero-actions .button { width: 100%; justify-content: center; }
  .location-trust-grid div { min-height: 95px; padding: 20px 14px; }
  .location-trust-grid strong { font-size: 11px; }
  .package-list { grid-template-columns: 1fr; }
  .package-item, .package-item:nth-child(even) { padding: 25px 0; border-right: 0; }
  .location-gallery { grid-template-columns: 1fr; }
  .location-gallery figure:first-child { grid-column: auto; }
  .location-gallery figure { min-height: 410px; }
  .visit-copy, .visit-card { padding: 30px 24px; }
  .visit-card address { font-size: 23px; }
  .location-final { padding: 68px 0; }
}
