:root{
      --tifell:#cfc67c;
      --tifell-soft:#f3f0d9;
      --tifell-dark:#666128;
      --ink:#3d3d3d;
      --muted:#707070;
      --line:#dedede;
      --panel:#f3f3f1;
      --white:#ffffff;
      --shadow:0 16px 42px rgba(0,0,0,.09);
      --radius:16px;
      --header-height:112px;
    }

    *{box-sizing:border-box}

    html{
      scroll-behavior:smooth;
      scroll-padding-top:var(--header-height);
    }

    body{
      margin:0;
      background:#fff;
      color:var(--ink);
      font-family:Arial,Helvetica,sans-serif;
      line-height:1.45;
    }

    img{max-width:100%;height:auto}
    a{color:inherit}
    button,input,select{font:inherit}

    /* La página ocupa todo el ancho, sin el marco gris del diseño anterior. */
    .page{
      width:100%;
      min-height:100vh;
      margin:0;
      background:#fff;
    }

    /* Cabecera interior compacta: el mapa aparece mucho antes. */
    .hero{
      padding:34px clamp(24px,5vw,84px) 28px;
      background:linear-gradient(110deg,#fff 15%,#f6f3df 100%);
      border-bottom:1px solid #ece9d8;
    }

    .hero-inner{
      width:min(1180px,100%);
      margin:0 auto;
    }

    .eyebrow{
      margin:0 0 7px;
      color:var(--tifell-dark);
      font-size:.8rem;
      font-weight:800;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    h1{
      margin:0;
      color:#454545;
      font-size:clamp(1.8rem,3.4vw,2.8rem);
      line-height:1.08;
      font-weight:600;
    }

    .hero p:last-child{
      max-width:820px;
      margin:11px 0 0;
      color:var(--muted);
      font-size:1.03rem;
    }

    .locator{
      width:min(1320px,calc(100% - 48px));
      margin:0 auto;
      padding:24px 0 54px;
    }

    .search-panel{
      position:relative;
      z-index:500;
      display:grid;
      grid-template-columns:minmax(260px,1.5fr) minmax(220px,.9fr) auto;
      gap:12px;
      padding:18px;
      border:1px solid var(--line);
      border-radius:var(--radius) var(--radius) 0 0;
      background:var(--panel);
    }

    .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;
      outline:none;
      background:#fff;
      color:#3d3d3d;
      font-size:1rem;
    }

    .field input:focus,
    .field select:focus{
      border-color:#aaa05c;
      box-shadow:0 0 0 3px rgba(207,198,124,.25);
    }

    .search-btn{
      height:50px;
      min-height:50px;
      padding:0 25px;
      border:0;
      border-radius:10px;
      background:var(--tifell-dark);
      color:#fff;
      font-size:1rem;
      font-weight:800;
      cursor:pointer;
    }

    .search-btn:hover{filter:brightness(1.12)}

    .locator-grid{
      display:grid;
      grid-template-columns:minmax(0,1.55fr) minmax(330px,.75fr);
      min-height:540px;
      overflow:hidden;
      border:1px solid var(--line);
      border-top:0;
      border-radius:0 0 var(--radius) var(--radius);
      box-shadow:var(--shadow);
    }

    #map{
      position:relative;
      width:100%;
      height:540px;
      min-height:540px;
      background:#ddd;
      isolation:isolate;
    }

    /* Evita que estilos generales deformen los mosaicos de Leaflet. */
    #map img,
    .leaflet-container img{
      max-width:none!important;
    }

    #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;
    }

    .results{
      display:flex;
      flex-direction:column;
      min-width:0;
      border-left:1px solid var(--line);
      background:#fff;
    }

    .results-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:15px;
      padding:17px 19px;
      border-bottom:1px solid var(--line);
    }

    .results-head h2{margin:0;color:#454545;font-size:1rem;line-height:1.2}
    .result-count{color:var(--muted);font-size:.9rem}

    .results-list{
      max-height:540px;
      padding:11px;
      overflow:auto;
    }

    .agent-card{
      margin-bottom:10px;
      overflow:hidden;
      border:1px solid var(--line);
      border-radius:13px;
      background:#fff;
      transition:.2s ease;
    }

    .agent-card:hover,
    .agent-card.active{
      border-color:var(--tifell);
      box-shadow:0 8px 20px rgba(75,71,40,.12);
      transform:translateY(-1px);
    }

    .agent-button{
      display:block;
      width:100%;
      padding:16px;
      border:0;
      background:#fff;
      color:inherit;
      text-align:left;
      cursor:pointer;
    }

    .agent-card h3{margin:0 0 7px;color:#454545;font-size:1rem;line-height:1.25}

    .territory{
      display:inline-block;
      margin-bottom:9px;
      padding:4px 9px;
      border-radius:999px;
      background:#f2efd7;
      color:#695f1e;
      font-size:.75rem;
      font-weight:700;
    }

    .province-line{
      display:flex;
      gap:8px;
      color:var(--muted);
      font-size:.88rem;
      line-height:1.45;
    }

    .province-line i{color:#a49744;margin-top:3px}
    .empty{padding:35px 20px;color:var(--muted);text-align:center}

    .delegate-dialog{
      position:fixed;
      inset:0;
      z-index:2400;
      display:none;
      align-items:center;
      justify-content:center;
      padding:20px;
      background:rgba(29,29,29,.68);
    }

    .delegate-dialog.open{display:flex}

    .dialog-box{
      width:min(760px,100%);
      max-height:90vh;
      overflow:hidden;
      border-radius:18px;
      background:#fff;
      box-shadow:0 25px 80px rgba(0,0,0,.3);
    }

    .dialog-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      padding:18px 22px;
      border-bottom:1px solid var(--line);
    }

    .dialog-head h2{margin:0;color:#454545;font-size:1.25rem;line-height:1.2}

    .dialog-close{
      width:40px;
      height:40px;
      border:0;
      border-radius:50%;
      background:#eee;
      cursor:pointer;
      font-size:1.2rem;
    }

    .dialog-body{padding:14px;background:#f3f3f3}

    .delegate-image{
      display:block;
      width:100%;
      max-height:70vh;
      object-fit:contain;
      border-radius:10px;
      background:#fff;
    }

    .dialog-note{margin:12px 8px 4px;color:var(--muted);font-size:.85rem}

    .map-pin{
      display:grid;
      place-items:center;
      width:34px;
      height:34px;
      border:3px solid #fff;
      border-radius:50% 50% 50% 0;
      background:var(--marker-color,var(--tifell-dark));
      box-shadow:0 4px 12px rgba(0,0,0,.3);
      transform:rotate(-45deg);
      transition:filter .18s ease,transform .18s ease;
    }

    .map-pin:hover{
      filter:brightness(1.12);
    }

    .map-pin i{
      color:#fff;
      transform:rotate(45deg);
      font-size:.8rem;
    }
@media(max-width:980px){
.search-panel{grid-template-columns:1fr 1fr}
      .search-btn{grid-column:1/-1}
      .locator-grid{grid-template-columns:1fr}
      .results{border-top:1px solid var(--line);border-left:0}
      #map{height:430px;min-height:430px}
      .results-list{max-height:460px}
    }

    @media(max-width:620px){
.hero{padding:25px 18px 21px}
      .locator{width:calc(100% - 24px);padding:16px 0 38px}
      .search-panel{grid-template-columns:1fr;padding:13px}
      .search-btn{grid-column:auto}
      .locator-grid{min-height:0}
      #map{height:360px;min-height:360px}
.delegate-image{max-height:72vh}
    }

    @media(prefers-reduced-motion:reduce){
      *{
        scroll-behavior:auto!important;
        transition:none!important;
      }

      .map-pin.director-pin,
      .map-pin.director-pin::after{
        animation:none!important;
      }
    }

    /* Destacados exclusivos: Dirección Comercial Zona Sur y Zona Norte */
    .agent-card.director-highlight{
      border-width:2px;
      box-shadow:0 10px 24px rgba(0,0,0,.10);
    }

    .agent-card.director-sur{
      border-color:#a75a2e;
      background:#fff8f3;
    }

    .agent-card.director-norte{
      border-color:#2f6f9f;
      background:#f4f9fd;
    }

    .agent-card.director-highlight .agent-button{
      background:transparent;
    }

    .director-badge{
      display:inline-flex;
      align-items:center;
      gap:7px;
      margin:0 0 10px;
      padding:6px 10px;
      border-radius:999px;
      color:#fff;
      font-size:.76rem;
      font-weight:800;
      line-height:1.2;
    }

    .director-badge.director-sur{background:#a75a2e}
    .director-badge.director-norte{background:#2f6f9f}

    .map-pin.director-pin{
      width:56px;
      height:56px;
      border:4px solid #fff;
      border-radius:50%;
      background:var(--marker-color);
      box-shadow:
        0 0 0 4px #e2bd35,
        0 0 0 9px rgba(226,189,53,.24),
        0 10px 25px rgba(0,0,0,.48);
      transform:none;
      animation:directorPulse 2.2s ease-in-out infinite;
    }

    .map-pin.director-pin::after{
      content:"";
      position:absolute;
      inset:-11px;
      border:2px solid rgba(226,189,53,.58);
      border-radius:50%;
      animation:directorHalo 2.2s ease-out infinite;
      pointer-events:none;
    }

    .map-pin.director-pin i{
      color:#fff;
      transform:none;
      font-size:1.45rem;
      filter:drop-shadow(0 2px 2px rgba(0,0,0,.3));
    }

    .map-pin.director-pin:hover{
      filter:brightness(1.1);
    }

    .map-pin.director-sur{--marker-color:#a75a2e}
    .map-pin.director-norte{--marker-color:#2f6f9f}

    @keyframes directorPulse{
      0%,100%{
        box-shadow:
          0 0 0 4px #e2bd35,
          0 0 0 9px rgba(226,189,53,.20),
          0 10px 25px rgba(0,0,0,.45);
        transform:scale(1);
      }

      50%{
        box-shadow:
          0 0 0 5px #f2cf4a,
          0 0 0 13px rgba(226,189,53,.30),
          0 13px 30px rgba(0,0,0,.55);
        transform:scale(1.08);
      }
    }

    @keyframes directorHalo{
      0%{
        opacity:.9;
        transform:scale(.84);
      }

      75%,100%{
        opacity:0;
        transform:scale(1.25);
      }
    }

    .delegate-cards{
      display:grid;
      gap:16px;
    }

    .delegate-card-block{
      padding:12px;
      border:1px solid #ddd;
      border-radius:12px;
      background:#fff;
    }

    .delegate-card-block.director-sur{border-color:#c88762}
    .delegate-card-block.director-norte{border-color:#70a0c4}

    .delegate-card-heading{
      display:flex;
      align-items:center;
      gap:8px;
      margin:0 0 10px;
      color:#454545;
      font-size:.95rem;
    }

    .delegate-card-heading i{color:#a49744}

    .delegate-card-heading.director-sur{color:#8f431e}
    .delegate-card-heading.director-norte{color:#245c86}

    .delegate-card-block .delegate-image{
      max-height:58vh;
    }

  
    /* Tipografía del hero idéntica a SATS */
    .hero.sat-hero .sat-eyebrow{
      font-family:inherit;
      font-size:var(--sat-eyebrow-font-size, .78rem);
    }
    .hero.sat-hero h1{
      font-family:inherit;
    }

/* ===== Unificación visual 2026: Red comercial ===== */
@media (min-width: 821px){
  .hero.sat-hero{padding:42px clamp(24px,5vw,84px) 30px;background:#fff;border-bottom:0;}
  .hero.sat-hero .sat-hero-inner{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);column-gap:56px;align-items:end;}
  .hero.sat-hero .sat-eyebrow{grid-column:1/-1;margin:0 0 12px;color:#8d8700;font-size:11px;letter-spacing:.18em;}
  .hero.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;}
  .hero.sat-hero p:last-child{grid-column:2;margin:0 0 5px;max-width:none;font-size:1rem;line-height:1.45;}
}
.search-panel,.field input,.field select,.search-btn,.locator-grid,.agent-card,.delegate-card-block{border-radius:0!important;}

/* ===== Unificación integral V2: Red comercial ===== */
.page{font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.5;color:#454545;}
.hero.sat-hero{background:#fff;border-bottom:0;}
.hero.sat-hero .sat-hero-inner,.locator{width:min(1488px,calc(100% - 120px));margin-left:auto;margin-right:auto;}
.locator{padding:36px 0 64px;}
.search-panel{padding:20px;gap:14px;border:1px solid #d7d7d2;background:#f7f7f5;}
.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-btn{height:47px;min-height:47px;padding:0 28px;border:1px solid #d1bb00;background:#d1bb00;color:#fff;font-size:13px;font-weight:400;}
.search-btn:hover{filter:none;background:#bca900;border-color:#bca900;}
.locator-grid{border-color:#d7d7d2;box-shadow:none;}.results{border-color:#d7d7d2}.results-head{border-color:#d7d7d2}
.agent-card,.delegate-card-block{border-color:#d7d7d2;box-shadow:none;}.agent-card:hover,.agent-card.active{box-shadow:none;transform:none;border-color:#b8aa31;}
.territory{border:1px solid #ded9b2;background:#f7f5e8;}
.dialog-box{border:1px solid #d7d7d2;box-shadow:none;}.dialog-close{border:1px solid #bdbdb6;background:#fff;color:#555;}.delegate-image{border:1px solid #d7d7d2;}
.search-panel,.field input,.field select,.search-btn,.locator-grid,.agent-card,.territory,.dialog-box,.dialog-close,.delegate-image,.delegate-card-block{border-radius:0!important;}
@media(min-width:821px){
 .hero.sat-hero{padding:48px 0 28px;}
 .hero.sat-hero .sat-hero-inner{grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);column-gap:64px;}
 .hero.sat-hero .sat-eyebrow{font-size:11px;font-weight:700;letter-spacing:.18em;}
 .hero.sat-hero h1{font-size:46px;line-height:1.05;font-weight:400;letter-spacing:-1.5px;}
 .hero.sat-hero p:last-child{font-size:16px;line-height:1.45;color:#666;}
}
@media(max-width:820px){.hero.sat-hero .sat-hero-inner,.locator{width:calc(100% - 28px)}.locator{padding:24px 0 44px}}
