/* ==========================================================================
   COMPONENT: Service Areas
   .home-areas    Home page panel over a coastal photo (areas-we-serve include)
   .areas-strip   Service pages strip with city chips (service-areas include)
   ========================================================================== */

.home-areas {
  position: relative;
  isolation: isolate;
  padding-block: var(--section-space);
  background: var(--secondary-color);

  .home-areas-bg {
    position: absolute;
    inset: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .home-areas-panel {
    max-width: 720px;
    padding: clamp(28px, 4vw, 48px);
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
  }

  h2 {
    font-size: clamp(1.8rem, 3.2vw, 2.5rem);
  }

  .home-areas-panel > p {
    color: var(--text-muted);
  }

  .home-areas-locations {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 24px 0;
  }

  .home-areas-location {
    padding: 18px;
    background: var(--surface-color);
    border-radius: var(--radius);
    border-left: 3px solid var(--primary-color);

    span {
      font-size: 0.75rem;
      font-weight: 700;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--primary-strong);
    }

    strong {
      display: block;
      font-family: var(--font-heading);
      font-size: 1.2rem;
    }

    p {
      margin: 4px 0 0;
      font-size: 0.92rem;
      color: var(--text-muted);
    }
  }

  .home-areas-lists {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 24px;
    margin-bottom: 24px;

    h3 {
      margin-bottom: 10px;
      font-size: 0.85rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--text-muted);
    }

    ul {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    a {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 6px 12px;
      font-size: 0.9rem;
      font-weight: 600;
      text-decoration: none;
      border: 1px solid var(--border-color);
      border-radius: 99px;

      &::before {
        content: "\F3E8";
        font-family: "bootstrap-icons";
        font-size: 0.8rem;
        color: var(--primary-strong);
      }

      &:hover {
        background: var(--primary-soft);
        border-color: var(--primary-color);
      }
    }
  }
}

.areas-strip {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(56px, 7vw, 88px);
  color: var(--text-on-dark);
  background: var(--secondary-color);

  .areas-strip-bg {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  &::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(90deg, color-mix(in srgb, var(--secondary-color) 92%, transparent) 30%, color-mix(in srgb, var(--secondary-color) 50%, transparent));
  }

  .areas-strip-inner {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    align-items: center;
    gap: 40px;
  }

  .eyebrow {
    color: var(--primary-color);
  }

  h2 {
    font-size: clamp(1.7rem, 3vw, 2.3rem);
  }

  .areas-strip-copy p {
    color: var(--text-on-dark-muted);
  }

  .link-arrow {
    color: var(--primary-color);
  }
}

@media (max-width: 900px) {
  .areas-strip .areas-strip-inner {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .home-areas {
    .home-areas-locations,
    .home-areas-lists {
      grid-template-columns: 1fr;
    }
  }
}
