@charset "UTF-8";

.intent-listing .intent-detail-dialog { width: min(650px, calc(100% - 24px)); }

.intent-listing .regional-guidance { margin: 28px 0; padding: 20px; background: var(--intent-white); border: 1px solid var(--intent-line); border-radius: var(--intent-radius); }
.regional-guidance__eyebrow { margin: 0 0 5px; font-size: 12px; color: var(--intent-blue); font-weight: 700; }
.regional-guidance h2 { margin: 0; font-size: 20px; line-height: 1.5; }
.regional-guidance__points { margin: 16px 0; }
.regional-guidance__points > div + div { border-top: 1px solid var(--intent-line); margin-top: 16px; padding-top: 16px; }
.regional-guidance__points dt { font-weight: 700; font-size: 15px; }
.regional-guidance__points dd { margin: 6px 0 0; font-size: 14px; line-height: 1.9; overflow-wrap: anywhere; }
.regional-guidance__sources { color: var(--intent-muted); font-size: 12px; line-height: 1.8; }
.regional-guidance__sources p { margin: 0; }
.regional-guidance__sources ul { margin: 6px 0 12px; padding-left: 18px; }
.regional-guidance__sources a { color: var(--intent-blue-dark); text-decoration: underline; text-underline-offset: 3px; }
.regional-guidance__back { display: inline-flex; align-items: center; min-height: 44px; color: var(--intent-blue-dark); font-weight: 700; text-decoration: underline; }
@media (max-width: 600px) {
  .intent-listing .regional-guidance { padding: 16px; }
  .regional-guidance h2 { font-size: 18px; }
}
.intent-listing .intent-detail-content { padding: 20px; }
.intent-listing .intent-detail-content h3 { margin: 0 0 18px; font-size: 19px; }
.intent-listing .intent-detail-grid { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 12px; font-size: 13px; }
.intent-listing .intent-detail-grid dt { color: #5c6c78; }
.intent-listing .intent-detail-grid dd { margin: 0; overflow-wrap: anywhere; }
.intent-listing .intent-detail-grid p { margin: 0 0 6px; }
.intent-listing .intent-detail-content .intent-actions { margin-top: 20px; }

/* Intent-specific locksmith listings. All rules stay inside this page namespace. */
.intent-listing {
  --intent-blue: #0a6cb3;
  --intent-blue-dark: #085489;
  --intent-ink: #19364d;
  --intent-muted: #5c6c78;
  --intent-green: #08783c;
  --intent-green-dark: #086531;
  --intent-bg: #f5f7f9;
  --intent-line: #d9e3e9;
  --intent-soft: #edf5fb;
  --intent-open: #e8f5ee;
  --intent-closed: #fbf1e4;
  --intent-amber: #93530b;
  --intent-white: #fff;
  --intent-radius: 10px;
  color: var(--intent-ink);
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 14px;
  line-height: 1.65;
}

.intent-listing.container {
  width: 100%;
  max-width: 878px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 22px;
  padding-left: 22px;
}
.intent-listing .page__title {
  margin: 10px 0 6px;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 27px;
  line-height: 1.5;
  letter-spacing: -0.04em;
}

.intent-listing [hidden] { display: none !important; }
.intent-listing :is(a, button, input, select, summary):focus-visible {
  outline: 3px solid #ecab43;
  outline-offset: 3px;
}

.intent-region-bar {
  display: block;
  margin: 0;
  padding: 0 0 15px;
  border-bottom: 1px solid var(--intent-line);
  color: var(--intent-ink);
  font-size: 13px;
}
.intent-region-bar > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
  padding: 0;
  list-style: none;
}
.intent-region-bar > summary::-webkit-details-marker { display: none; }
.intent-region-bar > summary > span:first-child { display: inline-flex; align-items: center; gap: 7px; }
.intent-region-bar > summary > span:last-child { flex: 0 0 auto; color: var(--intent-muted); font-size: 11px; text-decoration: underline; text-underline-offset: 2px; }
.intent-region-bar > .listing-conditions {
  margin: 8px 0 0;
  border-color: var(--intent-line);
  box-shadow: none;
}
.intent-modes {
  display: flex;
  margin: 0 0 22px;
  border-bottom: 1px solid var(--intent-line);
}
.intent-modes a {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 8px 6px;
  border-bottom: 3px solid transparent;
  color: var(--intent-muted);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
}
.intent-modes a.is-active { border-bottom-color: var(--intent-blue); background: var(--intent-soft); color: var(--intent-blue); }
.intent-modes small { display: block; margin-top: 2px; font-size: 10px; font-weight: 400; }

.intent-filter-form { margin: 0 0 18px; }

.intent-request-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
  padding-top: 17px;
}
.intent-request-fields label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  color: var(--intent-ink);
  font-size: 12px;
  font-weight: 600;
}
.intent-request-fields select {
  width: 100%;
  min-height: 44px;
  padding: 9px 28px 9px 10px;
  border: 1px solid var(--intent-line);
  border-radius: 7px;
  background: var(--intent-white);
  color: var(--intent-ink);
  font: inherit;
  font-size: 14px;
}
.intent-check-filter {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 40px;
  padding-top: 8px;
  color: var(--intent-ink);
  font-size: 12px;
}
.intent-check-filter input { width: 17px; height: 17px; accent-color: var(--intent-blue); }
.intent-filter-submit {
  min-height: 40px;
  margin-top: 10px;
  padding: 7px 16px;
  border: 1px solid var(--intent-blue);
  border-radius: 7px;
  background: var(--intent-blue);
  color: var(--intent-white);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
}

.intent-pilot {
  margin: 4px 0 18px;
  padding: 16px 18px;
  border: 1px solid var(--intent-line);
  border-left: 4px solid var(--intent-blue);
  border-radius: 8px;
  background: #f8fbfd;
}
.intent-pilot__heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.intent-pilot__eyebrow { margin: 0 0 2px; color: var(--intent-blue); font-size: 11px; font-weight: 700; }
.intent-pilot h2 { margin: 0; color: var(--intent-ink); font-size: 18px; line-height: 1.5; letter-spacing: -0.02em; }
.intent-pilot__cta {
  flex: 0 0 auto;
  padding: 8px 13px;
  border: 1px solid var(--intent-blue);
  border-radius: 6px;
  color: var(--intent-blue);
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}
.intent-pilot__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 13px 0 0; border-top: 1px solid var(--intent-line); }
.intent-pilot__facts > div { padding: 10px 12px 0; border-left: 1px solid var(--intent-line); }
.intent-pilot__facts > div:first-child { padding-left: 0; border-left: 0; }
.intent-pilot__facts dt { color: var(--intent-muted); font-size: 10px; }
.intent-pilot__facts dd { margin: 2px 0 0; color: var(--intent-ink); font-size: 17px; font-weight: 700; }
.intent-pilot__note { margin: 11px 0 0; color: var(--intent-muted); font-size: 11px; line-height: 1.7; }
.intent-pilot__choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 13px; }
.intent-pilot__choices a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 43px;
  padding: 7px 8px;
  border: 1px solid #acc6da;
  border-radius: 6px;
  background: var(--intent-white);
  color: var(--intent-blue);
  font-size: 12px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
}
.intent-pilot__choices a.is-active { border-color: var(--intent-blue); background: var(--intent-soft); box-shadow: inset 0 -3px 0 var(--intent-blue); }
.intent-pilot__choices--lost a { flex-direction: column; gap: 2px; }
.intent-pilot__choices--lost small { color: var(--intent-muted); font-size: 10px; font-weight: 500; line-height: 1.35; }
.intent-pilot__check { margin-top: 10px; color: var(--intent-muted); font-size: 11px; }
.intent-pilot__check summary { color: var(--intent-blue); font-weight: 700; cursor: pointer; }
.intent-pilot__check p { margin: 7px 0 0; line-height: 1.7; }

.intent-listing .intent-sorts { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; }
.intent-listing .intent-sorts :is(a, button) {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 7px 13px;
  border: 1px solid var(--intent-line);
  border-radius: 7px;
  background: var(--intent-white);
  color: var(--intent-blue);
  font: inherit;
  font-size: 12px;
  text-decoration: none;
}
.intent-sorts :is(a, button).is-active,
.intent-sorts :is(a, button)[aria-pressed="true"],
.intent-sorts :is(a, button)[aria-current="true"] {
  border-color: var(--intent-blue);
  background: var(--intent-soft);
  color: var(--intent-blue);
  font-weight: 700;
}
.intent-sort-help { margin: 8px 0 16px; color: var(--intent-muted); font-size: 11px; }

.intent-shop {
  display: block;
  width: 100%;
  margin: 0 0 16px;
  padding: 22px;
  border: 1px solid var(--intent-line);
  border-radius: var(--intent-radius);
  background: var(--intent-white);
}
.intent-shop-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.intent-shop-heading h2,
.intent-shop-heading h3 {
  margin: 0;
  color: var(--intent-blue);
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 20px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.intent-shop-heading a { color: inherit; text-decoration: none; }
.intent-shop-heading a:hover { text-decoration: underline; text-underline-offset: 3px; }
.intent-compare-check {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 5px;
  min-height: 32px;
  color: var(--intent-blue);
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}
.intent-compare-check input { width: 17px; height: 17px; accent-color: var(--intent-blue); }
.intent-shop-address { margin: 3px 0 15px; color: var(--intent-muted); font-size: 12px; }

.intent-shop-overview {
  display: grid;
  grid-template-columns: 106px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  margin-bottom: 17px;
}
.intent-photo { width: 106px; height: 101px; overflow: hidden; border-radius: 7px; background: #eef1f3; }
.intent-photo .shop-card__thumb {
  width: 106px;
  height: 101px;
  min-height: 0;
  aspect-ratio: 5 / 4;
  border-radius: 7px;
}
.intent-photo img { width: 100%; height: 100%; object-fit: cover; }
.intent-photo .shop-card__thumb--borrowed img { object-fit: contain; background: var(--intent-white); }
.intent-shop-overview > :last-child { min-width: 0; }
.intent-main-fact { margin: 0; color: var(--intent-ink); font-size: 13px; font-weight: 600; line-height: 1.6; }
.intent-main-fact--distance { font-size: 21px; font-weight: 700; line-height: 1.5; }
.intent-main-fact--distance small { display: block; color: var(--intent-muted); font-size: 11px; font-weight: 400; }
.intent-subfact { margin: 2px 0 0; color: var(--intent-muted); font-size: 11px; }
.intent-review { margin: 8px 0 0; color: var(--intent-muted); font-size: 11px; }
.intent-copy-spec { display: flex; gap: 24px; margin-top: 8px; color: var(--intent-muted); font-size: 12px; }
.intent-copy-spec strong { display: block; color: var(--intent-ink); font-size: 15px; }
.intent-service-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 9px 0 0; }
.intent-service-tags span {
  padding: 2px 7px;
  border: 1px solid var(--intent-line);
  border-radius: 3px;
  color: var(--intent-muted);
  font-size: 10px;
}
.intent-case-proof { margin: 8px 0 0; color: var(--intent-muted); font-size: 11px; line-height: 1.55; }
.intent-case-proof strong { color: var(--intent-ink); font-weight: 600; }

.intent-price { padding: 14px 16px; border-radius: 7px; background: var(--intent-soft); }
.intent-price-stack { min-width: 0; }
.intent-price-stack .intent-price + .intent-price { margin-top: 8px; }
.intent-price-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.intent-price-heading > span { color: var(--intent-ink); font-size: 13px; font-weight: 500; }
.intent-price-heading > .card-price__work { min-width: 0; line-height: 1.55; overflow-wrap: anywhere; }
.intent-price-service { display: block; margin-top: 3px; color: var(--intent-muted); font-size: 11px; font-weight: 400; }
.intent-price-number { display: flex; flex: 0 1 auto; min-width: 0; max-width: 100%; align-items: center; gap: 8px; }
.intent-price-value {
  width: auto;
  min-width: 0;
  text-align: left;
  color: var(--intent-blue);
  font-family: Arial, "Hiragino Sans", "Yu Gothic", sans-serif;
  font-size: 27px;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  line-height: 1.25;
  white-space: normal;
  overflow-wrap: anywhere;
}
.intent-price-value small { margin-left: 4px; color: var(--intent-muted); font-family: "Hiragino Sans", "Yu Gothic", sans-serif; font-size: 12px; font-weight: 400; }
.intent-price-value .card-price__tax { display: block; white-space: nowrap; }
.intent-price-value.intent-price-value--label {
  max-width: 15em;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 15px;
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: anywhere;
}
.intent-price-heading [data-price-help] {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  min-height: 20px;
}
.intent-price-number .price-help { flex: 0 0 20px; }
.intent-cost-items {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin: 10px 0 0;
  padding: 9px 0 0;
  border-top: 1px solid #d3e5f1;
  color: var(--intent-ink);
  font-size: 11px;
}
.intent-cost-items b { font-weight: 600; }
.intent-price-note { margin: 8px 0 14px; color: var(--intent-muted); font-size: 11px; line-height: 1.6; }
.intent-price .price-none__sub { margin: 7px 0 0; color: var(--intent-muted); font-size: 11px; font-weight: 400; }

.intent-actions { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 9px; }
.intent-actions :is(a, button) {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 48px;
  padding: 8px 12px;
  border: 1px solid #acc6da;
  border-radius: 7px;
  background: var(--intent-white);
  color: var(--intent-blue);
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
}
.intent-actions .intent-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 48px;
  padding: 8px 12px;
  border: 1px solid #acc6da;
  border-radius: 7px;
  background: var(--intent-white);
  color: var(--intent-blue);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
}
.intent-actions .intent-primary { border-color: var(--intent-blue); background: var(--intent-blue); color: var(--intent-white); }
.intent-actions .intent-phone-main { border-color: var(--intent-green); background: var(--intent-green); color: var(--intent-white); }
.intent-actions .intent-phone-main:hover { border-color: var(--intent-green); background: var(--intent-green-dark); }
.intent-actions .intent-secondary { border-color: #acc6da; background: var(--intent-white); color: var(--intent-blue); }
.intent-actions .shop-card__tel-lead { font-size: 11px; font-weight: 500; }
.intent-actions .shop-card__tel-number { display: flex; font-family: Arial, sans-serif; font-size: 20px; }
.intent-actions .shop-card__sub-cta { display: contents; }
.intent-listing .intent-shop .intent-actions .shop-card__tel {
  margin: 0;
  border: 1px solid var(--intent-green);
  border-radius: 7px;
  background: var(--intent-green);
  box-shadow: none;
  transform: none;
}
.intent-listing .intent-shop .intent-actions .shop-card__tel:hover { background: var(--intent-green-dark); }
.intent-listing .intent-shop .intent-actions .shop-card__tel.btn--tel-closed {
  border-color: var(--intent-line);
  background: #edf1f3;
  color: var(--intent-muted);
}
.intent-contact-note { margin: 7px 0 0; color: var(--intent-muted); font-size: 10px; text-align: center; }
.intent-contact-note a { color: var(--intent-blue); }

/* Production comparison markup keeps its established hooks for behavior. */
.intent-listing .listing-compare {
  bottom: 18px;
  gap: 20px;
  width: min(720px, calc(100% - 24px));
  padding: 12px 16px;
  border-radius: 10px;
  background: var(--intent-ink);
  box-shadow: 0 6px 24px rgba(25, 54, 77, 0.19);
}
.intent-listing .listing-compare__status { flex: 1; min-width: 0; font-size: 12px; }
.intent-listing .listing-compare__open {
  min-height: 44px;
  padding: 8px 14px;
  border: 1px solid #82badf;
  border-radius: 7px;
  background: var(--intent-blue);
  color: var(--intent-white);
  font-size: 13px;
}
.intent-listing .listing-compare > [data-compare-clear] {
  flex: 0 0 32px;
  min-width: 32px;
  min-height: 36px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--intent-white);
  font-size: 22px;
}

.intent-listing .shop-compare-dialog { width: min(650px, calc(100vw - 24px)); max-height: 90dvh; border-radius: 14px; }
.intent-listing .shop-compare-dialog__head { padding: 20px 22px 15px; }
.intent-listing .shop-compare-dialog__lead { margin: 12px 22px; }
.intent-listing .shop-compare-dialog__scroll { padding: 0 22px; }
.intent-listing .shop-compare-table { min-width: 560px; font-size: 12px; }
.intent-listing .shop-compare-table th,
.intent-listing .shop-compare-table td { padding: 11px 9px; }
.intent-listing .shop-compare-dialog__note { margin: 10px 22px 18px; }

/* The production partial keeps legacy classes for tests and analytics. These
   declarations make the intent component own its layout regardless of those rules. */
.intent-listing .intent-shop.shop-card {
  display: block;
  position: static;
  grid-template-areas: none;
  grid-template-columns: none;
  grid-template-rows: none;
  gap: 0;
  padding: 22px;
}
.intent-listing .intent-shop > .intent-shop-heading,
.intent-listing .intent-shop > .intent-shop-address,
.intent-listing .intent-shop > .intent-shop-overview,
.intent-listing .intent-shop > .intent-price-stack,
.intent-listing .intent-shop > .intent-price-note,
.intent-listing .intent-shop > .intent-actions,
.intent-listing .intent-shop > .intent-contact-note {
  grid-area: auto;
  min-width: 0;
}
.intent-listing .intent-shop > .intent-shop-overview {
  display: grid;
  grid-template-columns: 106px minmax(0, 1fr);
  gap: 14px;
  margin: 0 0 17px;
}
.intent-listing .intent-shop > .intent-price-stack { margin: 0; padding: 0; border: 0; background: transparent; }
.intent-listing .intent-shop .intent-photo,
.intent-listing .intent-shop .intent-photo .shop-card__thumb {
  width: 106px;
  height: 101px;
  min-height: 0;
  aspect-ratio: 5 / 4;
  flex-basis: auto;
}
.intent-listing .intent-shop > .intent-actions { display: grid; margin: 0; padding: 0; border: 0; }
.intent-listing .intent-shop > .shop-card__pr { grid-column: 1 / -1; }
.intent-listing .intent-shop .intent-shop-overview .reception { margin: 0 0 6px; font-size: 11px; }

@media (min-width: 1050px) {
  .intent-listing .intent-shop.shop-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 282px;
    grid-template-areas:
      "heading heading"
      "address address"
      "overview price"
      "overview note"
      "overview actions"
      "overview contact";
    column-gap: 22px;
    align-items: start;
  }
  .intent-listing .intent-shop > .intent-shop-heading { grid-area: heading; }
  .intent-listing .intent-shop > .intent-shop-address { grid-area: address; }
  .intent-listing .intent-shop > .intent-shop-overview { grid-area: overview; grid-template-columns: 112px minmax(0, 1fr); margin-bottom: 0; }
  .intent-listing .intent-shop .intent-photo,
  .intent-listing .intent-shop .intent-photo .shop-card__thumb { width: 112px; height: 118px; }
  .intent-listing .intent-shop > .intent-price-stack { grid-area: price; }
  .intent-listing .intent-shop > .intent-price-note { grid-area: note; }
  .intent-listing .intent-shop > .intent-actions { grid-area: actions; }
  .intent-listing .intent-shop > .intent-contact-note { grid-area: contact; }
  .intent-listing .intent-shop > .intent-actions { grid-template-columns: 1fr; }
  .intent-listing .intent-shop > .intent-actions .intent-secondary { min-height: 40px; font-size: 12px; }
}

@media (max-width: 900px) {
  .intent-listing.container { max-width: 720px; }
}

@media (max-width: 600px) {
  .intent-listing { font-size: 13px; }
  .intent-listing.container { padding-right: 13px; padding-left: 13px; }
  .intent-listing .page__title { font-size: 23px; line-height: 1.6; }
  .intent-region-bar { padding-bottom: 12px; font-size: 12px; }
  .intent-region-bar > summary > span:last-child { font-size: 10px; }
  .intent-modes { margin-bottom: 16px; }
  .intent-modes a { min-height: 53px; padding-inline: 2px; font-size: 13px; }
  .intent-modes small { font-size: 9px; }
  .intent-request-fields { gap: 8px; padding-top: 13px; }
  .intent-request-fields label { font-size: 11px; }
  .intent-request-fields select { padding: 9px 22px 9px 8px; font-size: 13px; }
  .intent-pilot { padding: 14px; }
  .intent-pilot__heading { align-items: flex-start; }
  .intent-pilot h2 { font-size: 16px; }
  .intent-pilot__facts { grid-template-columns: 1fr; }
  .intent-pilot__facts > div,
  .intent-pilot__facts > div:first-child { display: flex; align-items: baseline; justify-content: space-between; padding: 7px 0; border-left: 0; border-bottom: 1px solid var(--intent-line); }
  .intent-pilot__facts > div:last-child { border-bottom: 0; }
  .intent-pilot__facts dd { font-size: 15px; }
  .intent-pilot__choices { grid-template-columns: 1fr; }
  .intent-pilot__choices a { justify-content: flex-start; min-height: 40px; text-align: left; }
  .intent-listing .intent-sorts { gap: 5px; }
  .intent-listing .intent-sorts :is(a, button) { min-height: 38px; padding: 6px 9px; font-size: 11px; }
  .intent-sort-help { font-size: 10px; }
  .intent-shop { margin-bottom: 13px; padding: 15px; }
  .intent-listing .intent-shop.shop-card { padding: 15px; }
  .intent-shop-heading { gap: 5px; }
  .intent-shop-heading h2,
  .intent-shop-heading h3 { font-size: 17px; }
  .intent-compare-check { font-size: 10px; }
  .intent-shop-address { margin-bottom: 12px; font-size: 11px; }
  .intent-shop-overview { grid-template-columns: 106px minmax(0, 1fr); gap: 13px; margin-bottom: 13px; }
  .intent-main-fact { font-size: 12px; }
  .intent-main-fact--distance { font-size: 19px; }
  .intent-case-proof,
  .intent-subfact,
  .intent-review { font-size: 10px; }
  .intent-copy-spec { gap: 18px; font-size: 11px; }
  .intent-copy-spec strong { font-size: 14px; }
  .intent-service-tags { gap: 4px; margin-top: 6px; }
  .intent-service-tags span { padding: 2px 5px; font-size: 9px; }
  .intent-price { padding: 12px; }
  .intent-price-heading { align-items: flex-start; flex-direction: column; gap: 7px; }
  .intent-price-heading > span { font-size: 12px; }
  .intent-price-number { justify-content: space-between; width: 100%; }
  .intent-price-value { font-size: 26px; }
  .intent-cost-items { gap: 4px 11px; font-size: 10px; }
  .intent-price-note { margin: 7px 0 11px; font-size: 10px; }
  .intent-actions { grid-template-columns: 1fr; }
  .intent-actions :is(a, button) { font-size: 13px; }
  .intent-actions .intent-btn { font-size: 13px; }
  .intent-listing .listing-compare { bottom: 10px; gap: 8px; padding: 11px; }
  .intent-listing .listing-compare__status { font-size: 11px; }
  .intent-listing .listing-compare__open { min-height: 42px; padding: 8px; font-size: 11px; }
  .intent-listing .shop-compare-dialog { width: calc(100vw - 18px); max-height: 92dvh; }
  .intent-listing .shop-compare-dialog__head { padding: 16px 17px 12px; }
  .intent-listing .shop-compare-dialog__lead { margin: 10px 17px; font-size: 12px; }
  .intent-listing .shop-compare-dialog__scroll { padding: 0 17px; }
  .intent-listing .shop-compare-dialog__note { margin: 9px 17px 15px; }
}

/* Region and nearby search share one shallow switcher. Region links remain in
   the initial HTML while JavaScript only changes which sibling panel is shown. */
.intent-listing .intent-location {
  margin: 8px 0 14px;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--intent-line);
  border-radius: 9px;
  background: var(--intent-white);
  color: var(--intent-ink);
}
.intent-listing > .listing-conditions { display: none; }
.intent-location__tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 5px;
  background: #eef4f8;
}
.intent-location__tab {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  min-height: 54px;
  padding: 7px 10px;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: var(--intent-muted);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
  cursor: pointer;
}
.intent-location__tab small {
  max-width: 100%;
  overflow: hidden;
  color: inherit;
  font-size: 10px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.intent-location__tab.is-active {
  border-color: #b7cfdf;
  background: var(--intent-white);
  box-shadow: 0 1px 3px rgba(25, 54, 77, 0.08);
  color: var(--intent-blue);
}
.intent-location__panel {
  padding: 13px 14px 14px;
  outline: none;
}
.intent-location__panel + .intent-location__panel {
  border-top: 1px solid var(--intent-line);
}
.intent-location__current,
.intent-location__guide,
.intent-location__return {
  margin: 0 0 10px;
  font-size: 12px;
  line-height: 1.6;
}
.intent-location__current {
  display: flex;
  align-items: center;
  gap: 6px;
}
.intent-location__return a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  margin: 0;
  color: var(--intent-blue);
  font-weight: 600;
}
.intent-location__cities-picker,
.intent-location__prefectures {
  margin: 8px 0 0;
  border-top: 1px solid var(--intent-line);
}
.intent-location__cities-picker > summary,
.intent-location__prefectures > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
  padding: 8px 2px 0;
  color: var(--intent-blue);
  font-size: 12px;
  font-weight: 700;
  list-style: none;
}
.intent-location__cities-picker > summary::-webkit-details-marker,
.intent-location__prefectures > summary::-webkit-details-marker { display: none; }
.intent-location__cities-picker > summary::after,
.intent-location__prefectures > summary::after {
  content: "＋";
  font-size: 17px;
  font-weight: 400;
}
.intent-location__cities-picker[open] > summary::after,
.intent-location__prefectures[open] > summary::after { content: "−"; }
.intent-location__prefectures .filter-bar,
.intent-location__cities.filter-bar {
  display: block;
  margin: 0;
  padding: 8px 0 2px;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.intent-location__prefectures .filter-bar__label,
.intent-location__cities .filter-bar__label {
  display: block;
  margin: 0 0 6px;
  color: var(--intent-muted);
  font-size: 11px;
}
.intent-location__prefectures .filter-bar__items,
.intent-location__cities .filter-bar__items {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 5px;
  overflow: visible;
}
.intent-location__prefectures .filter-bar__items a,
.intent-location__cities .filter-bar__items a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 38px;
  padding: 5px 3px;
  border: 1px solid #d3e1eb;
  border-radius: 6px;
  background: #fff;
  color: var(--intent-blue);
  font-size: 11px;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
}
.intent-location__prefectures .filter-bar__items a.is-active,
.intent-location__cities .filter-bar__items a.is-active {
  border-color: var(--intent-blue);
  background: #eaf3fa;
  font-weight: 700;
}
.intent-listing .intent-location .nearby-cta,
.intent-listing .intent-location .nearby-cta.is-active {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.intent-listing .intent-location .nearby-cta__panel {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.intent-listing .intent-location .nearby-cta__heading {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 9px;
  font-size: 12px;
  font-weight: 700;
}
.intent-listing .intent-location .nearby-cta__state {
  padding-bottom: 9px;
  border-bottom: 1px solid var(--intent-line);
}
.intent-listing .intent-location .nearby-cta__radius {
  margin-top: 9px;
}
.intent-listing .intent-location .nearby-cta__note--scope { margin-bottom: 12px; }
.intent-listing .intent-location .nearby-cta__actions {
  padding-top: 2px;
}

@media (max-width: 600px) {
  .intent-listing .intent-location { margin-bottom: 12px; }
  .intent-location__tabs { padding: 4px; }
  .intent-location__tab { min-height: 52px; padding: 6px 4px; font-size: 12px; }
  .intent-location__tab small { font-size: 9px; }
  .intent-location__panel { padding: 11px 10px 12px; }
  .intent-location__prefectures .filter-bar__items,
  .intent-location__cities .filter-bar__items { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .intent-location__cities .filter-bar__items {
    max-height: 224px;
    padding-right: 3px;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .intent-location__prefectures .filter-bar__items a,
  .intent-location__cities .filter-bar__items a { min-height: 42px; font-size: 11px; }
  .intent-listing .intent-location .nearby-cta__state strong { min-width: 150px; }
  .intent-listing .intent-location .nearby-cta__zip { align-items: end; }
}

@media (max-width: 380px) {
  .intent-shop-overview { gap: 11px; }
}

/* Keep the current scope visible; expand search tools only when changing it. */
.listing-search-panel {
  margin: 10px 0;
  border: 1px solid var(--intent-line);
  border-radius: 8px;
  background: var(--intent-white);
}
.listing-search-panel > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 48px;
  padding: 8px 12px;
  list-style: none;
  cursor: pointer;
  font-size: 13px;
}
.listing-search-panel > summary::-webkit-details-marker { display: none; }
.listing-search-panel > summary > span:first-child { display: flex; align-items: center; gap: 5px; min-width: 0; font-weight: 700; }
.listing-search-panel > summary > span:last-child { flex-shrink: 0; color: var(--intent-blue); font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.listing-search-panel[open] > summary { border-bottom: 1px solid var(--intent-line); }
.intent-listing .listing-search-panel .intent-location { margin: 0; border: 0; }
.intent-guide-toggle { margin: 8px 0 12px; }
.intent-guide-toggle > summary { min-height: 44px; padding: 10px 0; color: var(--intent-blue); font-size: 12px; cursor: pointer; }
.intent-guide-toggle .intent-pilot { margin: 0 0 8px; }

@media (max-width: 600px) {
  .intent-listing .intent-modes { margin-bottom: 8px; }
  .intent-listing .intent-modes a { min-height: 48px; padding-block: 5px; }
  .intent-listing .breadcrumb { margin-bottom: 8px; font-size: 11px; }
  .intent-listing .page__title { margin: 6px 0; font-size: 21px; line-height: 1.4; }
  .intent-listing .page__lead { margin: 0 0 10px; font-size: 12px; line-height: 1.6; }
  .listing-search-panel { margin: 8px 0; }
  .listing-search-panel > summary { padding: 7px 10px; }
  .listing-search-panel > summary > span:last-child { font-size: 11px; }
  .intent-filter-form { margin-bottom: 4px; }
  .intent-filter-form--copy { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 8px 12px; }
  .intent-filter-form--copy .intent-request-fields { grid-template-columns: 1fr; }
  .intent-filter-form--copy .intent-check-filter { min-height: 44px; padding-top: 0; font-size: 11px; }
  .intent-filter-form--copy .intent-filter-submit { grid-column: 1 / -1; }
  .intent-request-fields { padding-top: 4px; gap: 10px; }
  .intent-request-fields label { gap: 3px; font-size: 11px; }
  .intent-request-fields select { font-size: 13px; }
  .intent-guide-toggle { margin: 2px 0 6px; }
  .intent-listing .result-summary { margin: 6px 0; }
  .intent-listing .result-summary p { margin: 0; line-height: 1.5; }
  .intent-listing .result-summary__main { font-size: 12px; }
  .intent-listing .result-summary__breakdown,
  .intent-listing .result-summary .muted { font-size: 10px; }
  .intent-listing .listing-sort-toolbar { gap: 4px; margin-bottom: 8px; flex-wrap: nowrap; }
  .intent-listing .listing-sort-toolbar .intent-sorts { flex: 1; min-width: 0; gap: 4px; }
  .intent-listing .listing-sort-toolbar .intent-sorts a { min-height: 44px; }
  .intent-listing .listing-ranking-help__trigger { justify-content: center; min-width: 44px; }
  .intent-listing .listing-ranking-help__label { display: none; }
}
