/* =========================================================
   SERVICE AREAS SECTION
   Fully responsive, SEO-friendly, accessible, scalable
   ========================================================= */

   #areas {
    position: relative;
    overflow: hidden;
  }
  
  #areas .container {
    width: min(100% - 2rem, 1440px);
    margin-inline: auto;
  }
  
  /* =========================================================
     SECTION HEADER
     ========================================================= */
  #areas .section-header {
    max-width: 980px;
    margin: 0 auto clamp(2rem, 3vw, 3.25rem);
    text-align: center;
  }
  
  #areas h2 {
    margin: 0 0 1rem;
    line-height: 1.15;
    letter-spacing: -0.02em;
    text-wrap: balance;
    font-size: clamp(1.9rem, 2.2vw + 1.1rem, 3.2rem);
    color: var(--color-primary-dark);
  }
  
  #areas .areas-intro {
    max-width: 900px;
    margin: 0 auto;
    font-size: clamp(1rem, 0.35vw + 0.95rem, 1.18rem);
    line-height: 1.8;
    color: #52606d;
    text-wrap: pretty;
  }
  /* =========================================================
     GRID LAYOUT
     ========================================================= */
  .areas-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 2vw, 1.75rem);
    align-items: stretch;
  }
  
  .area-group {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(250, 252, 255, 0.98) 100%);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: clamp(16px, 1.4vw, 24px);
    padding: clamp(1.25rem, 1.2vw + 1rem, 2rem);
    box-shadow:
      0 8px 24px rgba(15, 23, 42, 0.05),
      0 1px 2px rgba(15, 23, 42, 0.04);
    transition:
      transform 0.25s ease,
      box-shadow 0.25s ease,
      border-color 0.25s ease;
  }
  
  .area-group:hover,
  .area-group:focus-within {
    transform: translateY(-2px);
    border-color: rgba(0, 163, 224, 0.18);
    box-shadow:
      0 16px 36px rgba(15, 23, 42, 0.08),
      0 2px 6px rgba(15, 23, 42, 0.05);
  }
  
  .area-group h3 {
    margin: 0 0 1.25rem;
    text-align: center;
    color: var(--color-primary-dark);
    font-size: clamp(1.2rem, 0.8vw + 1rem, 1.6rem);
    line-height: 1.25;
    letter-spacing: -0.01em;
    text-wrap: balance;
  }
  
  /* =========================================================
     LIST STYLING
     ========================================================= */
  .areas-list ul {
    list-style: none;
    padding: 0;
    margin: 0;
    columns: 2;
    column-gap: clamp(1.25rem, 2vw, 2.5rem);
  }
  
  .areas-list ul li {
    position: relative;
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
    margin: 0 0 1.15rem;
    padding-left: 1.4rem;
    font-size: clamp(0.98rem, 0.18vw + 0.95rem, 1.05rem);
    line-height: 1.75;
    color: var(--text-primary, #2a2f36);
    transition:
      transform 0.2s ease,
      color 0.2s ease;
  }
  
  .areas-list ul li:last-child {
    margin-bottom: 0;
  }
  

  
  .areas-list ul li strong {
    color: var(--color-primary-dark);
    font-weight: 700;
    letter-spacing: 0.005em;
  }
  
  /* locked description color so hover never washes it out */
  .areas-list ul li .area-desc,
  .areas-list ul li:hover .area-desc,
  .areas-list ul li:focus .area-desc,
  .areas-list ul li:focus-within .area-desc,
  .areas-list ul li:active .area-desc {
    color: #4e5d6c !important;
    font-weight: 400;
  }
  
  /* keep hover subtle and premium */
  .areas-list ul li:hover,
  .areas-list ul li:focus-within {
    transform: translateX(3px);
    color: var(--text-primary, #2a2f36);
  }
  
  .areas-list ul li:hover strong,
  .areas-list ul li:focus-within strong {
    color: var(--color-primary-dark);
  }
  
  /* =========================================================
     LARGE DESKTOPS / ULTRAWIDE / TVS
     ========================================================= */
  @media (min-width: 1600px) {
    #areas .container {
      width: min(100% - 4rem, 1680px);
    }
  
    .areas-list {
      gap: 2rem;
    }
  
    .area-group {
      padding: 2.25rem 2.25rem 1.75rem;
    }
  
    .areas-list ul {
      column-gap: 3rem;
    }
  
    .areas-list ul li {
      font-size: 1.08rem;
      line-height: 1.8;
    }
  }
  
  /* =========================================================
     LAPTOP / TABLET LANDSCAPE
     ========================================================= */
  @media (max-width: 1199px) {
    #areas .container {
      width: min(100% - 1.75rem, 1200px);
    }
  
    .areas-list {
      gap: 1.25rem;
    }
  
    .area-group {
      padding: 1.5rem 1.35rem 1.15rem;
    }
  
    .areas-list ul {
      column-gap: 1.75rem;
    }
  }
  
  /* =========================================================
     TABLET
     ========================================================= */
  @media (max-width: 991px) {
    .areas-list {
      grid-template-columns: 1fr;
    }
  
    .area-group {
      padding: 1.5rem 1.25rem 1rem;
    }
  
    .area-group h3 {
      margin-bottom: 1rem;
    }
  
    .areas-list ul {
      columns: 1;
      column-gap: 0;
    }
  
    .areas-list ul li {
      margin-bottom: 1rem;
    }
  }
  
  /* =========================================================
     PHONES
     ========================================================= */
  @media (max-width: 767px) {
    #areas .container {
      width: min(100% - 1.25rem, 100%);
    }
  
    #areas .section-header {
      margin-bottom: 2rem;
    }
  
    .area-group {
      border-radius: 16px;
      padding: 1.25rem 1rem 0.9rem;
    }
  
    .areas-list ul li {
      padding-left: 1.25rem;
      font-size: 0.98rem;
      line-height: 1.7;
    }
  
    .areas-list ul li::before {
      font-size: 1em;
    }
  }
  
  /* =========================================================
     SMALL PHONES
     ========================================================= */
  @media (max-width: 479px) {
    #areas h2 {
      line-height: 1.18;
    }
  
    #areas .areas-intro {
      line-height: 1.7;
    }
  
    .area-group {
      padding: 1.1rem 0.9rem 0.85rem;
    }
  
    .area-group h3 {
      font-size: 1.12rem;
    }
  
    .areas-list ul li {
      font-size: 0.96rem;
      line-height: 1.68;
      margin-bottom: 0.9rem;
    }
  }
  
  /* =========================================================
     ACCESSIBILITY / REDUCED MOTION
     ========================================================= */
  @media (prefers-reduced-motion: reduce) {
    .area-group,
    .areas-list ul li {
      transition: none;
    }
  }
  
  /* =========================================================
     PRINT
     ========================================================= */
  @media print {
    #areas {
      background: #fff !important;
    }
  
    .areas-list {
      grid-template-columns: 1fr 1fr;
      gap: 1rem;
    }
  
    .area-group {
      box-shadow: none;
      border: 1px solid #d9dde3;
      background: #fff;
      break-inside: avoid;
    }
  
    .areas-list ul {
      columns: 1;
    }
  }



  /* =========================================================
   AREAS SECTION ENHANCEMENTS
   Section seams, depth, atmosphere, and more life
   ========================================================= */

#areas {
  position: relative;
  z-index: 1;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 10%, rgba(14, 165, 233, 0.08), transparent 22%),
    radial-gradient(circle at 88% 16%, rgba(15, 23, 42, 0.05), transparent 24%),
    linear-gradient(180deg, #f2f7fb 0%, #f8fbfd 38%, #eef4f8 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.56),
    inset 0 20px 34px rgba(255, 255, 255, 0.18);
}

/* existing section already has relative/overflow, this adds atmosphere */
#areas::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.52) 0%, transparent 22%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.22), transparent 38%);
}

/* soft top fade from previous section */
#areas::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: clamp(72px, 9vw, 132px);
  pointer-events: none;
  z-index: 0;
  background:
    linear-gradient(
      180deg,
      rgba(238, 244, 248, 0.98) 0%,
      rgba(245, 249, 252, 0.46) 34%,
      rgba(255, 255, 255, 0.10) 62%,
      rgba(255, 255, 255, 0) 100%
    );
}

#areas .container {
  position: relative;
  z-index: 1;
}

/* top seam line */
#areas .container::before {
  content: "";
  position: absolute;
  top: clamp(-0.8rem, -1vw, -0.55rem);
  left: 0;
  right: 0;
  height: 1px;
  pointer-events: none;
  background:
    linear-gradient(
      90deg,
      rgba(15, 23, 42, 0) 0%,
      rgba(15, 23, 42, 0.06) 16%,
      rgba(3, 105, 161, 0.11) 50%,
      rgba(15, 23, 42, 0.06) 84%,
      rgba(15, 23, 42, 0) 100%
    );
  opacity: 0.95;
}

/* bottom fade into next section */
#areas .container::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: clamp(-1rem, -1.1vw, -0.75rem);
  height: clamp(68px, 8vw, 118px);
  pointer-events: none;
  background:
    linear-gradient(
      180deg,
      rgba(238, 244, 248, 0) 0%,
      rgba(238, 244, 248, 0.32) 38%,
      rgba(238, 244, 248, 0.74) 72%,
      rgba(238, 244, 248, 0.96) 90%,
      rgba(238, 244, 248, 1) 100%
    );
  z-index: 0;
}

/* =========================================================
   HEADER LIFE
   ========================================================= */

#areas .section-header {
  position: relative;
  z-index: 1;
}

#areas .section-header::before {
  content: "";
  display: block;
  width: clamp(56px, 7vw, 84px);
  height: 1px;
  margin: 0 auto 1rem;
  background: linear-gradient(
    90deg,
    rgba(3, 105, 161, 0) 0%,
    rgba(3, 105, 161, 0.34) 50%,
    rgba(3, 105, 161, 0) 100%
  );
}

#areas h2 {
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.42);
}

#areas .areas-intro {
  position: relative;
  max-width: 60rem;
}

/* =========================================================
   GRID / CARD DEPTH
   ========================================================= */

.areas-list {
  position: relative;
  z-index: 1;
}

.areas-list::before {
  content: "";
  position: absolute;
  left: 4%;
  right: 4%;
  bottom: -14px;
  height: clamp(34px, 4vw, 58px);
  pointer-events: none;
  background:
    radial-gradient(
      ellipse at center,
      rgba(255, 255, 255, 0.44) 0%,
      rgba(255, 255, 255, 0.14) 48%,
      rgba(255, 255, 255, 0) 78%
    );
  filter: blur(9px);
  z-index: 0;
}

.area-group {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(248, 251, 254, 0.88) 100%);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow:
    0 18px 42px rgba(15, 23, 42, 0.07),
    0 4px 14px rgba(15, 23, 42, 0.04),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

/* soft card sheen */
.area-group::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.04) 100%);
  z-index: 0;
}

/* refined bottom edge inside card */
.area-group::after {
  content: "";
  position: absolute;
  left: 1.1rem;
  right: 1.1rem;
  bottom: 0;
  height: 1px;
  pointer-events: none;
  background:
    linear-gradient(
      90deg,
      rgba(3, 105, 161, 0.12) 0%,
      rgba(15, 23, 42, 0.04) 50%,
      rgba(3, 105, 161, 0) 100%
    );
  opacity: 0.9;
}

.area-group:hover,
.area-group:focus-within {
  transform: translateY(-3px);
  border-color: rgba(3, 105, 161, 0.18);
  box-shadow:
    0 22px 48px rgba(15, 23, 42, 0.09),
    0 6px 18px rgba(15, 23, 42, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.44);
}

/* =========================================================
   AREA TITLE ENHANCEMENTS
   ========================================================= */

.area-group h3 {
  position: relative;
  z-index: 1;
  margin-bottom: 1.35rem;
  padding-bottom: 0.9rem;
  text-align: left;
}

.area-group h3::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: clamp(272px, 8vw, 306px);
  height: 1px;
  background:
    linear-gradient(
      90deg,
      rgba(3, 105, 161, 0.28) 0%,
      rgba(15, 23, 42, 0.08) 72%,
      rgba(15, 23, 42, 0) 100%
    );
}

/* =========================================================
   LIST ITEM LIFE
   ========================================================= */

.areas-list ul {
  position: relative;
  z-index: 1;
}

.areas-list ul li {
  padding-left: 1.55rem;
  border-left: 1px solid rgba(15, 23, 42, 0.04);
  margin-left: 0.05rem;
}



.areas-list ul li:hover,
.areas-list ul li:focus-within {
  transform: translateX(4px);
}

/* stronger locality emphasis */
.areas-list ul li strong {
  display: inline-block;
  color: var(--color-primary-dark);
}

/* cleaner description tone */
.areas-list ul li .area-desc,
.areas-list ul li:hover .area-desc,
.areas-list ul li:focus-within .area-desc {
  color: #556576 !important;
}

/* =========================================================
   OPTIONAL FEATURED FEEL FOR FIRST ROW
   Gives a little more life to the first two cards
   ========================================================= */

.area-group:nth-child(1),
.area-group:nth-child(2) {
  background:
    radial-gradient(circle at 12% 12%, rgba(20, 163, 208, 0.06), transparent 24%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(248, 251, 254, 0.9) 100%);
}

/* =========================================================
   MOBILE TUNING
   ========================================================= */

@media (max-width: 991px) {
  .area-group h3 {
    text-align: left;
  }

  .areas-list::before {
    bottom: -10px;
  }
}

@media (max-width: 767px) {
  #areas::after {
    height: 58px;
  }

  #areas .container::after {
    height: 54px;
    bottom: -0.35rem;
  }

  #areas .container::before {
    opacity: 0.8;
  }

  .area-group {
    box-shadow:
      0 14px 30px rgba(15, 23, 42, 0.06),
      0 3px 10px rgba(15, 23, 42, 0.035),
      inset 0 1px 0 rgba(255, 255, 255, 0.36);
  }

  .area-group::after {
    left: 0.9rem;
    right: 0.9rem;
  }

  .areas-list ul li {
    padding-left: 1.35rem;
  }
}

@media (max-width: 479px) {
  #areas .section-header::before {
    margin-bottom: 0.85rem;
    width: 48px;
  }

  .area-group h3 {
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
  }

  .areas-list ul li::before {
    top: 0.62rem;
    width: 7px;
    height: 7px;
  }
}





/* =========================================================
   FORCE CONSISTENT 3 / 2 AREA ITEM LAYOUT
   3 items left column, 2 items right column
   Keeps Reno and all other groups consistent on desktop
   ========================================================= */

   @media (min-width: 992px) {
    .area-group > ul {
      display: grid !important;
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      grid-template-rows: repeat(3, auto) !important;
      grid-auto-flow: column !important;
      column-gap: clamp(1.25rem, 2vw, 2.5rem) !important;
      row-gap: 1.15rem !important;
      columns: unset !important;
    }
  
    .area-group > ul > li {
      break-inside: unset !important;
      -webkit-column-break-inside: unset !important;
      page-break-inside: auto !important;
      margin: 0 !important;
      min-width: 0;
      height: 100%;
    }
  
    /* Explicit 3 / 2 placement */
    .area-group > ul > li:nth-child(1) {
      grid-column: 1;
      grid-row: 1;
    }
  
    .area-group > ul > li:nth-child(2) {
      grid-column: 1;
      grid-row: 2;
    }
  
    .area-group > ul > li:nth-child(3) {
      grid-column: 1;
      grid-row: 3;
    }
  
    .area-group > ul > li:nth-child(4) {
      grid-column: 2;
      grid-row: 1;
    }
  
    .area-group > ul > li:nth-child(5) {
      grid-column: 2;
      grid-row: 2;
    }
  }
  
  /* Keep stacked layout on tablet/mobile exactly as intended */
  @media (max-width: 991px) {
    .area-group > ul {
      display: block !important;
      grid-template-columns: none !important;
      grid-template-rows: none !important;
      grid-auto-flow: row !important;
      row-gap: 0 !important;
    }
  
    .area-group > ul > li {
      grid-column: auto !important;
      grid-row: auto !important;
    }
  }