.sat-page {
  --sat-gold: #c9bf73;
  --sat-gold-dark: #a79c51;
  --sat-gold-soft: #f3f0d9;
  --sat-menu: #62651e;
  --sat-ink: #343434;
  --sat-muted: #707070;
  --sat-line: #dedede;
  --sat-panel: #f5f5f3;
  --sat-white: #fff;
  --sat-shadow: 0 12px 32px rgba(38,38,38,.10);
  --sat-radius: 16px;
  background: #fff;
  color: var(--sat-ink);
  min-height: 70vh;
}
.sat-page button, .sat-page input, .sat-page select { font: inherit; }

.sat-hero {
  padding: 34px clamp(24px, 5vw, 84px) 28px;
  background: linear-gradient(110deg, #fff 15%, #f6f3df 100%);
  border-bottom: 1px solid #ece9d8;
}
.sat-hero-inner { width: min(1180px, 100%); margin: 0 auto; }
.sat-eyebrow {
  display: inline-flex; align-items: center; gap: 8px; margin: 0 0 7px;
  color: #666128; font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
}
.sat-hero h1 { margin: 0; color: #454545; font-size: clamp(1.8rem, 3.4vw, 2.8rem); line-height: 1.08; font-weight: 600; }
.sat-hero p:not(.sat-eyebrow) { max-width: 820px; margin: 11px 0 0; color: var(--sat-muted); font-size: 1.03rem; line-height: 1.45; }
.sat-hero-badges { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 16px; }
.sat-hero-badges span {
  display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px;
  border: 1px solid rgba(169,157,81,.30); border-radius: 999px; background: rgba(255,255,255,.9);
  color: #615b35; font-size: .78rem; font-weight: 600;
}

.locator-section { width: min(1320px, calc(100% - 48px)); margin: 0 auto; padding: 24px 0 54px; }
.section-heading { margin-bottom: 14px; }
.section-heading h2 { margin: 0; color: #454545; font-size: 1.25rem; line-height: 1.2; }
.section-heading p { margin: 6px 0 0; color: var(--sat-muted); font-size: .95rem; line-height: 1.45; }
.locator-card { overflow: hidden; border: 1px solid var(--sat-line); border-radius: var(--sat-radius); background: var(--sat-white); box-shadow: var(--sat-shadow); }
.search-panel { position: relative; z-index: 500; padding: 18px; background: var(--sat-panel); border-bottom: 1px solid var(--sat-line); }
.search-grid { display: grid; grid-template-columns: minmax(260px,1.5fr) minmax(220px,.9fr) auto; gap: 12px; }
.field { position: relative; }
.field i { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: #a49744; pointer-events: none; }
.field input, .field select {
  width: 100%; height: 50px; min-height: 50px; padding: 0 15px 0 45px;
  border: 1px solid #d3d3d3; border-radius: 10px; background: #fff; color: #3d3d3d; font-size: 1rem; outline: none;
}
.field input:focus, .field select:focus { border-color: #aaa05c; box-shadow: 0 0 0 3px rgba(207,198,124,.25); }
.search-button { height: 50px; min-height: 50px; padding: 0 25px; border: 0; border-radius: 10px; background: #666128; color: #fff; font-size: 1rem; font-weight: 800; cursor: pointer; }
.search-button:hover { filter: brightness(1.12); }
.locator-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(320px,.75fr); min-height: 540px; }
#map { position: relative; width: 100%; height: 540px; min-height: 540px; overflow: hidden; background: #ddd; isolation: isolate; }
#map .leaflet-pane, #map .leaflet-tile, #map .leaflet-marker-icon, #map .leaflet-marker-shadow, #map .leaflet-tile-container, #map .leaflet-pane>svg, #map .leaflet-pane>canvas, #map .leaflet-zoom-box { position: absolute; left: 0; top: 0; }
#map .leaflet-tile { width: 256px !important; height: 256px !important; max-width: none !important; max-height: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important; }
#map img { max-width: none !important; }
#map .leaflet-map-pane, #map .leaflet-tile-pane, #map .leaflet-marker-pane, #map .leaflet-shadow-pane, #map .leaflet-overlay-pane, #map .leaflet-popup-pane { position: absolute; inset: 0 auto auto 0; }
#map .leaflet-tile-pane { z-index: 200; } #map .leaflet-overlay-pane { z-index: 400; } #map .leaflet-shadow-pane { z-index: 500; } #map .leaflet-marker-pane { z-index: 600; } #map .leaflet-tooltip-pane { z-index: 650; } #map .leaflet-popup-pane { z-index: 700; }
#map .leaflet-control { position: relative; z-index: 800; pointer-events: auto; }
#map .leaflet-top, #map .leaflet-bottom { position: absolute; z-index: 1000; pointer-events: none; }
#map .leaflet-top { top: 0; } #map .leaflet-right { right: 0; } #map .leaflet-bottom { bottom: 0; } #map .leaflet-left { left: 0; }
#map .leaflet-top .leaflet-control { margin-top: 10px; } #map .leaflet-bottom .leaflet-control { margin-bottom: 10px; } #map .leaflet-left .leaflet-control { margin-left: 10px; } #map .leaflet-right .leaflet-control { margin-right: 10px; }
.results-panel { display: flex; flex-direction: column; min-width: 0; border-left: 1px solid var(--sat-line); background: #fafafa; }
.results-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--sat-line); background: var(--sat-white); }
.results-header strong { font-size: 1rem; } .results-header span { color: var(--sat-muted); font-size: .9rem; }
.results-list { overflow-y: auto; max-height: 500px; padding: 12px; }
.sat-card { width: 100%; margin: 0 0 10px; padding: 17px; border: 1px solid #dedede; border-radius: 12px; background: var(--sat-white); text-align: left; cursor: pointer; transition: transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.sat-card:hover, .sat-card.active { transform: translateY(-2px); border-color: var(--sat-gold-dark); box-shadow: 0 10px 25px rgba(50,50,50,.09); }
.sat-card.active { background: #fffef7; }
.sat-card h3 { margin: 0 0 5px; font-size: 1rem; color: #454545; }
.sat-card .province { display: inline-flex; margin-bottom: 11px; padding: 4px 8px; border-radius: 999px; color: #5e5832; background: var(--sat-gold-soft); font-size: .75rem; font-weight: 700; }
.sat-meta { display: grid; gap: 7px; color: #686868; font-size: .88rem; line-height: 1.45; }
.sat-meta span { display: flex; align-items: flex-start; gap: 8px; } .sat-meta i { width: 16px; margin-top: 3px; color: #9b914d; }
.empty-state { padding: 34px 18px; color: var(--sat-muted); text-align: center; }
.empty-state i { font-size: 2rem; color: var(--sat-gold-dark); }
.info-strip { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; margin-top: 30px; }
.info-box { padding: 22px; border-radius: 14px; background: var(--sat-panel); border: 1px solid var(--sat-line); }
.info-box i { display: inline-grid; place-items: center; width: 42px; height: 42px; margin-bottom: 14px; border-radius: 50%; color: #fff; background: var(--sat-gold-dark); }
.info-box h3 { margin: 0 0 8px; font-size: 1rem; } .info-box p { margin: 0; color: var(--sat-muted); line-height: 1.55; font-size: .9rem; }
.leaflet-popup-content-wrapper { border-radius: 12px; }
.map-popup h3 { margin: 0 0 7px; color: #474747; font-size: 1rem; }
.map-popup p { margin: 4px 0; color: #666; line-height: 1.4; }
.map-popup a { color: #71692f; font-weight: 700; }
.sat-map-pin { display: grid; place-items: center; width: 34px; height: 34px; border: 3px solid #fff; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--sat-gold-dark); box-shadow: 0 4px 12px rgba(0,0,0,.28); }
.sat-map-pin i { transform: rotate(45deg); color: #fff; font-size: 13px; }

@media (max-width: 1040px) {
  .locator-grid { grid-template-columns: 1fr; }
  #map { height: 460px; min-height: 460px; }
  .results-panel { border-left: 0; border-top: 1px solid var(--sat-line); }
  .results-list { max-height: none; }
}
@media (max-width: 820px) {
  .sat-hero { padding: 25px 18px 21px; }
  .locator-section { width: calc(100% - 28px); padding-top: 20px; }
  .search-grid, .info-strip { grid-template-columns: 1fr; }
  .search-button { width: 100%; }
}
@media (max-width: 520px) {
  .sat-hero-badges { display: none; }
  .locator-section { width: calc(100% - 20px); }
  #map { height: 390px; min-height: 390px; }
}
@media (prefers-reduced-motion: reduce) {
  .sat-page * { scroll-behavior: auto !important; transition: none !important; }
}

/* Ajuste tipográfico: SAT más próximo al estilo de las páginas de producto (ICON/ZEN) */
.sat-page {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 14px;
}

.sat-eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
}

.sat-hero h1 {
  font-size: 31px;
  line-height: 1.08;
  font-weight: 400;
  letter-spacing: -.5px;
}

.sat-hero p:not(.sat-eyebrow) {
  font-size: 14px;
  line-height: 1.4;
}

.sat-hero-badges span {
  font-size: 11px;
  font-weight: 600;
}

.section-heading h2 {
  font-size: 14px;
  font-weight: 700;
}

.section-heading p {
  font-size: 12px;
  line-height: 1.4;
}

.field input,
.field select,
.search-button {
  font-size: 13px;
}

.results-header strong {
  font-size: 13px;
}

.results-header span {
  font-size: 11px;
}

.sat-card h3,
.info-box h3,
.map-popup h3 {
  font-size: 13px;
}

.sat-card .province {
  font-size: 10px;
}

.sat-meta,
.info-box p,
.map-popup p {
  font-size: 11px;
  line-height: 1.45;
}

/* Agrupación de SAT próximos */
.sat-cluster-marker { background: transparent; border: 0; }
.sat-cluster-bubble {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  box-sizing: border-box;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--sat-gold-dark);
  color: #fff;
  font: 700 14px/1 Arial, sans-serif;
  box-shadow: 0 4px 12px rgba(0,0,0,.28);
  cursor: pointer;
}
.sat-cluster-bubble:hover { transform: scale(1.06); }

/* ===== Unificación visual 2026: Servicio técnico ===== */
@media (min-width: 821px){
  .sat-hero{padding:42px clamp(24px,5vw,84px) 30px;background:#fff;border-bottom:0;}
  .sat-hero-inner{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);column-gap:56px;align-items:end;}
  .sat-eyebrow{grid-column:1/-1;margin:0 0 12px;color:#8d8700;font-size:11px;letter-spacing:.18em;}
  .sat-hero h1{grid-column:1;margin:0;font-size:clamp(2.35rem,3.3vw,3.25rem);line-height:1.02;font-weight:400;letter-spacing:-.035em;}
  .sat-hero p:not(.sat-eyebrow){grid-column:2;margin:0 0 5px;max-width:none;font-size:1rem;line-height:1.45;}
  .sat-hero-badges{grid-column:1/-1;}
}
.locator-card,.field input,.field select,.search-button,.sat-card,.info-box{border-radius:0!important;}

/* ===== Unificación integral V2: Servicio técnico ===== */
.sat-page{font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.5;color:#454545;}
.sat-hero{background:#fff;border-bottom:0;}
.sat-hero-inner,.locator-section{width:min(1488px,calc(100% - 120px));margin-left:auto;margin-right:auto;}
.locator-section{padding:36px 0 64px;}
.section-heading{padding-bottom:16px;margin-bottom:0;border-bottom:1px solid #d7d7d2;}
.section-heading h2{font-size:20px;font-weight:500;color:#383838;}.section-heading p{font-size:14px;color:#666;}
.locator-card{border:1px solid #d7d7d2;border-top:0;box-shadow:none;background:#fff;}
.search-panel{padding:20px;background:#f7f7f5;border-bottom:1px solid #d7d7d2;}
.search-grid{gap:14px;}
.field input,.field select{height:47px;min-height:47px;border:1px solid #c9c9c3;background:#fff;font-size:14px;box-shadow:none;}
.field input:focus,.field select:focus{border-color:#8d8700;box-shadow:0 0 0 1px #8d8700;}
.search-button{height:47px;min-height:47px;padding:0 28px;border:1px solid #d1bb00;background:#d1bb00;color:#fff;font-size:13px;font-weight:400;}
.search-button:hover{filter:none;background:#bca900;border-color:#bca900;}
.results-panel,.results-header,.sat-card,.info-box{border-color:#d7d7d2;}
.sat-card{box-shadow:none;}
.sat-hero-badges span,.locator-card,.search-panel,.field input,.field select,.search-button,.sat-card,.info-box{border-radius:0!important;}
@media(min-width:821px){
 .sat-hero{padding:48px 0 28px;}
 .sat-hero-inner{grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);column-gap:64px;}
 .sat-eyebrow{font-size:11px;font-weight:700;letter-spacing:.18em;}
 .sat-hero h1{font-size:46px;line-height:1.05;font-weight:400;letter-spacing:-1.5px;}
 .sat-hero p:not(.sat-eyebrow){font-size:16px;line-height:1.45;color:#666;}
}
@media(max-width:820px){.sat-hero-inner,.locator-section{width:calc(100% - 28px)}.locator-section{padding:24px 0 44px}}
