/* ═══════════════════════════════════════════════════════════════
   MICHIGAN CRIME SCENE CLEANUP — CITIES LANDING PAGE
   Loads after michigan-crime-scene-cleanup.css AND global.css
   ═══════════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════════
   1. Cities HERO — fixed-height, background image on right
   ═══════════════════════════════════════════════════════════════ */

.hero{
  position: relative;
  min-height: 380px;
  height: 54vh;
  max-height: 560px;
  background-color: #f8fcff;
  background-image: url("../images/cities-hero.webp");
  background-position: right center;
  background-size: contain;
  background-repeat: no-repeat;
  overflow: hidden;
}
.hero::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  /* Position the overlay right where the image's left edge starts */
  left: 40%;
  width: 10%;
  background: linear-gradient(
    90deg,
    #f8fcff 0%,
    rgba(248, 252, 255, 0.85) 35%,
    rgba(248, 252, 255, 0.40) 65%,
    rgba(248, 252, 255, 0) 100%
  );
  /* Blurs the left edge of the background photo underneath */
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  pointer-events: none;
  z-index: 1;
}
.hero__copy{
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  min-height: inherit;
  height: 100%;
  padding: 32px 34px 32px max(24px, calc((100vw - var(--container)) / 2));
}
.hero__content{ width: 100%; max-width: 560px; }
.hero__image{ display: none; }
.hero h1{
  margin:0 0 10px;
  color:var(--navy-deep);
  font-size:clamp(31px,3.3vw,47px);
  line-height:1.08;
  letter-spacing:-1.2px;
  font-weight:800;
}
.hero h1 span{color:var(--blue)}
.hero__lead{max-width:570px;margin:0 0 14px;font-size:16px;line-height:1.42;color:#203e5e}
.button--hero{min-width:300px;padding:13px 22px;font-size:18px}
.hero__points{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px 12px;
  margin-top:13px;
  color:#285274;
  font-size:12px;
  font-weight:700;
}
.hero__points span{white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.hero__points b{color:var(--green);margin-right:4px}
.hero__points i{height:12px;width:1px;background:#b8d3e8}
.micro-disclosure{margin:11px 0 0;color:#5a7191;font-size:11px;line-height:1.5}
.hero__inner .hero__image{background-image:url("../images/cities-hero.webp")}
/* ═══════════════════════════════════════════════════════════════
   1. FEATURED CITY CARDS
   ═══════════════════════════════════════════════════════════════ */

.city-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.city-card{
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--blue-line);
  border-radius: var(--radius);
  overflow: hidden;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  box-shadow: 0 2px 8px rgba(7,54,111,.04);
}
.city-card:hover,
.city-card:focus-visible{
  transform: translateY(-4px);
  border-color: var(--blue);
  box-shadow: 0 12px 26px rgba(7,54,111,.12);
  text-decoration: none;
}

.city-card__image{
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  background-color: #dce8ef;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.city-card__body{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 14px;
}
.city-card__title{
  color: var(--navy-deep);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.02em;
}
.city-card__arrow{
  color: var(--blue);
  font-size: 16px;
  font-weight: 800;
  transition: transform .15s ease;
  flex-shrink: 0;
}
.city-card:hover .city-card__arrow{
  transform: translateX(3px);
}

/* ═══════════════════════════════════════════════════════════════
   2. NOT SEEING YOUR CITY? — FULL-WIDTH SOFT BLUE BAR
   ═══════════════════════════════════════════════════════════════ */

.not-seeing{
  background: var(--blue-soft);
  border-top: 1px solid var(--blue-line);
  border-bottom: 1px solid var(--blue-line);
  padding: 32px 0;
}
.not-seeing__inner{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}
.not-seeing__content{
  display: flex;
  align-items: center;
  gap: 20px;
  flex: 1;
}
.not-seeing__icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #fff;
  color: var(--blue);
  flex-shrink: 0;
  box-shadow: 0 2px 10px rgba(7,54,111,.08);
}
.not-seeing__icon svg{
  width: 28px;
  height: 28px;
}
.not-seeing__title{
  margin: 0 0 6px;
  color: var(--navy-deep);
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.02em;
}
.not-seeing__text{
  margin: 0;
  color: #3d5b78;
  font-size: 14px;
  line-height: 1.55;
  max-width: 56ch;
}
.not-seeing__action{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.not-seeing__action .button{
  min-width: 260px;
}
.not-seeing__note{
  font-size: 11px;
  color: #5a7191;
  text-align: center;
  width: 100%;
}

/* ═══════════════════════════════════════════════════════════════
   3. SERVICES TILES — 3-col, flush rows, chevron icon
   ═══════════════════════════════════════════════════════════════ */

.services-tiles{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;             /* column + row same */
  row-gap: 1px;         /* keep equal — matches layout */
}

.services-tile{
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  background: #fff;
  border: 1px solid var(--blue-line);
  border-radius: var(--radius);
  text-decoration: none;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
  min-height: 60px;
}
.services-tile:hover,
.services-tile:focus-visible{
  transform: translateY(-2px);
  border-color: var(--blue);
  background: #f7fbff;
  box-shadow: 0 8px 18px rgba(7,54,111,.08);
  text-decoration: none;
}

.services-tile__icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--navy);
  color: #fff;
  flex-shrink: 0;
}
.services-tile__icon svg{
  width: 20px;
  height: 20px;
}

.services-tile__label{
  flex: 1;
  color: var(--navy-deep);
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.35;
}

/* Chevron icon instead of arrow */
.services-tile__arrow{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--blue);
  flex-shrink: 0;
  transition: transform .15s ease;
}
.services-tile__arrow svg{
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
}
.services-tile:hover .services-tile__arrow{
  transform: translateX(3px);
}

/* ═══════════════════════════════════════════════════════════════
   STATEWIDE COVERAGE — full-width section, map bg right
   ═══════════════════════════════════════════════════════════════ */

.coverage{
  position: relative;
  overflow: hidden;
  border-top: 1px solid var(--blue-line);
  border-bottom: 1px solid var(--blue-line);
  min-height: 380px;     /* ensures section has height for map to show */
}

/* Map as background, anchored to right */
.coverage::before{
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 55%;
  background-image: url("michigan-map.png");
  background-position: right center;
  background-size: contain;
  background-repeat: no-repeat;
  z-index: 0;
  pointer-events: none;
}

/* Soft gradient fade left → right for text readability */
.coverage::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    #f8fcff 0%,
    #f8fcff 42%,
    rgba(248,252,255,0.92) 52%,
    rgba(248,252,255,0.60) 68%,
    rgba(248,252,255,0.20) 84%,
    rgba(248,252,255,0) 100%
  );
  z-index: 1;
  pointer-events: none;
}

/* Container sits above the map */
.coverage .container{
  position: relative;
  z-index: 2;
}

/* Inner content column — left-aligned, respects container padding */
.coverage__inner{
  display: block;
  max-width: 620px;
  padding: 60px 0;
  margin: 0;
  text-align: left;
}

.coverage__inner *{
  text-align: left;
}

.coverage__text h2{
  margin: 0 0 14px;
  color: var(--navy-deep);
  font-size: clamp(24px, 2.4vw, 30px);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.coverage__lead{
  margin: 0 0 22px;
  color: #3d5b78;
  font-size: 15px;
  line-height: 1.6;
  max-width: 56ch;
}

.coverage__cta{
  display: inline-flex;
}

.coverage__map{
  display: none;
}

/* ═══════════════════════════════════════════════════════════════
   5. MORE MICHIGAN COMMUNITIES — bulleted lists
   ═══════════════════════════════════════════════════════════════ */

.more-cities__grid{
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 24px 32px;
}

.more-cities__list{
  list-style: none;
  padding: 0;
  margin: 0;
}
.more-cities__list li{
  position: relative;
  padding-left: 16px;
  margin: 0 0 8px;
}
.more-cities__list li::before{
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--blue);
  opacity: .55;
}
.more-cities__list a{
  color: #365675;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  line-height: 1.5;
  transition: color .15s ease, padding-left .15s ease;
  display: inline-block;
}
.more-cities__list a:hover{
  color: var(--blue);
  padding-left: 4px;
  text-decoration: none;
}

/* ═══════════════════════════════════════════════════════════════
   6. RESPONSIVE — TABLET (980px)
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 980px){
  .city-grid{
    grid-template-columns: repeat(3, 1fr);
  }

  /* Not-seeing — stack */
  .not-seeing__inner{
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
  }
  .not-seeing__action{
    align-items: stretch;
    width: 100%;
  }
  .not-seeing__action .button{
    width: 100%;
    min-width: 0;
  }
  .not-seeing__note{
    text-align: center;
  }

  /* Services tiles — 3 → 2 */
  .services-tiles{
    grid-template-columns: repeat(2, 1fr);
  }


  

  /* Coverage — vertical gradient, map on top */
  .coverage::before{
    width: 100%;
    background-position: right center;
    background-size: contain;
    opacity: .35;
  }
  .coverage::after{
    background: linear-gradient(
      180deg,
      #f8fcff 0%,
      rgba(248,252,255,0.92) 40%,
      rgba(248,252,255,0.75) 70%,
      rgba(248,252,255,0.55) 100%
    );
  }
  .coverage__inner{
    max-width: none;
    padding: 48px 0;
  }

  /* More cities — 5 → 3 */
  .more-cities__grid{
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ═══════════════════════════════════════════════════════════════
   7. RESPONSIVE — MOBILE (700px)
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 700px){
  .city-grid{
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .city-card__body{
    padding: 10px 12px;
  }
  .city-card__title{
    font-size: 13px;
  }

  /* Not-seeing */
  .not-seeing{
    padding: 24px 0;
  }
  .not-seeing__content{
    gap: 14px;
  }
  .not-seeing__icon{
    width: 46px;
    height: 46px;
  }
  .not-seeing__icon svg{
    width: 22px;
    height: 22px;
  }
  .not-seeing__title{
    font-size: 18px;
  }
  .not-seeing__text{
    font-size: 13px;
  }

  /* Services tiles — 2 → 1 */
  .services-tiles{
    grid-template-columns: 1fr;
    gap: 12px;
    row-gap: 1px;      /* ← keep 1px on mobile too */
  }
  .services-tile{
    padding: 12px 14px;
    min-height: 54px;
  }

  /* Coverage — tighter on mobile */
  .coverage::before{
    background-position: center;
    background-size: contain;
    opacity: .25;
  }
  .coverage__inner{
    padding: 40px 0;
  }
  .coverage__lead{
    font-size: 14px;
  }

  /* More cities — 3 → 2 */
  .more-cities__grid{
    grid-template-columns: 1fr 1fr;
    gap: 18px 22px;
  }
  .more-cities__list a{
    font-size: 12.5px;
  }
}

/* ═══════════════════════════════════════════════════════════════
   8. RESPONSIVE — SMALL MOBILE (380px)
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 380px){
  .city-grid{
    grid-template-columns: 1fr;
  }
  .more-cities__grid{
    grid-template-columns: 1fr;
  }
}

/* ═══════════════════════════════════════════════════════════════
   9. REDUCED MOTION
   ═══════════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce){
  .city-card:hover,
  .services-tile:hover{
    transform: none;
  }
  .city-card:hover .city-card__arrow,
  .services-tile:hover .services-tile__arrow{
    transform: none;
  }
}
/* Mobile — 4-item trust strip: strict 2 per row */
@media (max-width: 700px){
  .trust-grid--4{
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 0;
  }
  .trust-grid--4 .trust-item{
    grid-column: auto !important;
    grid-row: auto !important;
    border-right: 1px solid #c6deef;
    border-bottom: 1px solid #c6deef;
    padding: 12px 9px;
  }
  /* Remove right border on even-indexed (right column) items */
  .trust-grid--4 .trust-item:nth-child(2n){
    border-right: 0;
  }
  /* Remove bottom border on last row (items 3 & 4) */
  .trust-grid--4 .trust-item:nth-child(3),
  .trust-grid--4 .trust-item:nth-child(4){
    border-bottom: 0;
  }
}

/* Featured city card — one-line description */
.city-card__desc {
  display: block;
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--color-text-muted, #5a6a7a);
  margin-top: 0.35rem;
  font-weight: 400;
}

/* Regional coverage — Michigan context paragraph */
.regional-coverage__context {
  margin-top: 2rem;
  padding: 1.5rem;
  background: rgba(184, 39, 44, 0.04);
  border-left: 4px solid var(--color-accent, #b8272c);
  border-radius: 0 8px 8px 0;
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--color-text, #1c2b3a);
}
/* FAQ — phone links inside answers */
.faq-section details p a {
  color: var(--color-accent, #b8272c);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}

.faq-section details p a:hover {
  color: var(--color-accent-hover, #941f23);
}
/* ============================================================ */
/* new-cities.css                                                */
/* Styles for revised Cities Hub page                            */
/* ============================================================ */

/* ---------- Coverage Intro section — 2-column ---------- */
.coverage-intro__grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 48px;
  align-items: center;
  max-width: 1120px;
  margin: 0 auto;
}

.coverage-intro__content .eyebrow-pill {
  display: inline-block;
  color: #176fc0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 5px 14px;
  background: rgba(23,111,192,.10);
  border-radius: 20px;
  margin-bottom: 12px;
}

.coverage-intro__content h2 {
  margin: 0 0 16px;
  color: #07366f;
  font-size: clamp(24px, 2.4vw, 30px);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.coverage-intro__content p {
  margin: 0 0 16px;
  font-size: 15.5px;
  line-height: 1.7;
  color: #294565;
}

.coverage-intro__content p:last-child {
  margin-bottom: 0;
}

.coverage-intro__media {
  min-height: 380px;
  aspect-ratio: 4 / 3;
  border-radius: 12px;
  background: #dce7ed url("../images/cities-coverage.webp") center/cover no-repeat;
  box-shadow: 0 10px 30px rgba(7,54,111,.10);
}

/* ---------- City card image class modifiers ---------- */
.city-card__image--detroit        { background-image: url("../images/city-detroit.webp"); }
.city-card__image--grand-rapids   { background-image: url("../images/city-grand-rapids.webp"); }
.city-card__image--flint          { background-image: url("../images/city-flint.webp"); }
.city-card__image--ann-arbor      { background-image: url("../images/city-ann-arbor.webp"); }
.city-card__image--kalamazoo      { background-image: url("../images/city-kalamazoo.webp"); }
.city-card__image--saginaw        { background-image: url("../images/city-saginaw.webp"); }
.city-card__image--dearborn       { background-image: url("../images/city-dearborn.webp"); }
.city-card__image--sterling-heights { background-image: url("../images/city-sterling-heights.webp"); }
.city-card__image--farmington-hills { background-image: url("../images/city-farmington-hills.webp"); }
.city-card__image--warren         { background-image: url("../images/city-warren.webp"); }
.city-card__image--troy           { background-image: url("../images/city-troy.webp"); }

/* Ensure city card image uses block sizing */
.city-card__image {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  background-color: #dce7ed;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* ---------- Regional Coverage section ---------- */
.regional-coverage__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 32px;
}

.regional-coverage__card {
  background: #ffffff;
  border: 1px solid #e5e9ef;
  border-radius: 12px;
  padding: 26px 24px;
}

.regional-coverage__card h3 {
  margin: 0 0 12px;
  font-size: 17px;
  color: #07366f;
  line-height: 1.35;
  font-weight: 800;
}

.regional-coverage__card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: #4a5561;
}

/* ---------- Trust strip 4-item — strict 2×2 on mobile ---------- */
@media (max-width: 700px){
  .trust-grid--4 .trust-item,
  .trust-grid--4 .trust-item:nth-last-child(-n+1){
    grid-column: auto;
    grid-row: auto;
  }

  .trust-grid--4{
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
  }

  .trust-grid--4 .trust-item{
    padding: 12px 10px;
    border-right: 1px solid #c6deef;
    border-bottom: 1px solid #c6deef;
  }

  .trust-grid--4 .trust-item:nth-child(2n){
    border-right: 0;
  }

  .trust-grid--4 .trust-item:nth-child(3),
  .trust-grid--4 .trust-item:nth-child(4){
    border-bottom: 0;
  }
}

@media (max-width: 380px){
  .trust-grid--4{
    grid-template-columns: 1fr;
  }
  .trust-grid--4 .trust-item{
    border-right: 0 !important;
    border-bottom: 1px solid #c6deef;
    padding: 14px 12px;
  }
  .trust-grid--4 .trust-item:last-child{
    border-bottom: 0;
  }
}

/* ---------- Responsive ---------- */
@media (max-width: 980px){
  .coverage-intro__grid{
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .coverage-intro__media{
    min-height: 260px;
    aspect-ratio: 16 / 10;
  }
}

@media (max-width: 900px) {
  .regional-coverage__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 700px) {
  .coverage-intro__content p {
    font-size: 15px;
  }
}

@media (max-width: 640px) {
  .regional-coverage__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .regional-coverage__card {
    padding: 22px 20px;
  }
  .regional-coverage__card h3 {
    font-size: 16px;
  }
}