:root {
      --bg: #f5f5f7;
      --surface: #ffffff;
      --surface-soft: #f0f0f2;
      --surface-hover: #e8e8ed;
      --text: #1d1d1f;
      --text-2: #424245;
      --text-muted: #6e6e73;
      --line: #e2e2e7;
      --line-strong: #c7c7cc;
      --brand: #827717;
      --brand-hover: #686012;
      --brand-soft: #f9fbe7;
      --brand-soft-2: #f0f4c3;
      --accent: #cddc39;
      --accent-hover: #c0ca33;
      --accent-strong: #afb42b;
      --accent-text: #6b7314;
      --accent-border: #827717;
      --danger: #b42318;
      --danger-soft: #fff0ef;
      --warning: #8a5700;
      --warning-soft: #fff6df;
      --info: #0066cc;
      --info-soft: #eaf3ff;
      --shadow-sm: 0 6px 16px -12px rgba(0, 0, 0, 0.28);
      --shadow-md: 0 28px 56px -32px rgba(0, 0, 0, 0.32);
      --radius-sm: 12px;
      --radius: 18px;
      --radius-lg: 26px;

      /* Compatibility aliases used by the existing JS */
      --panel: var(--surface);
      --panel-2: var(--surface-soft);
      --amber: var(--brand);
      --amber-dim: #9e9d24;
      --green: var(--brand);
      --red: var(--danger);
    }

    * {
      box-sizing: border-box;
    }

    html {
      -webkit-text-size-adjust: 100%;
    }

    #buscador,
    #como-funciona,
    #related-links,
    #faq,
    #provinces {
      scroll-margin-top: 96px;
    }

    body {
      margin: 0;
      min-height: 100vh;
      min-height: 100dvh;
      background: var(--bg);
      color: var(--text);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
      font-size: 16px;
      line-height: 1.45;
      -webkit-font-smoothing: antialiased;
      padding-bottom: 76px;
      overflow-x: hidden;
    }

    button,
    input,
    select {
      font: inherit;
    }

    button,
    a {
      -webkit-tap-highlight-color: transparent;
    }

    .wrap {
      width: min(100%, 1280px);
      margin: 0 auto;
      padding: 0 24px 72px;
    }

    /* ---------- Shared ---------- */
    .sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }

    .brand-mark {
      width: 42px;
      height: 42px;
      border-radius: 13px;
      display: grid;
      place-items: center;
      background: var(--accent);
      color: var(--text);
      flex: 0 0 auto;
      box-shadow: var(--shadow-sm);
    }

    .brand-mark svg {
      width: 23px;
      height: 23px;
    }

    .btn {
      min-height: 44px;
      border: 1px solid transparent;
      border-radius: 999px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 0 16px;
      font-weight: 600;
      font-size: 0.9375rem;
      line-height: 1;
      cursor: pointer;
      transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
    }

    .btn:active {
      transform: translateY(1px);
    }

    .btn svg {
      width: 18px;
      height: 18px;
      flex: 0 0 auto;
    }

    .btn-primary {
      background: var(--accent);
      border-color: var(--accent);
      color: var(--text);
    }

    .btn-primary:hover {
      background: var(--accent-hover);
      border-color: var(--accent-hover);
    }

    .btn-ghost {
      background: var(--surface);
      border-color: var(--line);
      color: var(--text-2);
    }

    .btn-ghost:hover {
      background: var(--surface-soft);
      color: var(--text);
    }

    .btn-geo {
      background: var(--surface);
      color: var(--brand);
      border-color: var(--line-strong);
    }

    .btn-geo:hover {
      background: var(--brand-soft);
      border-color: var(--accent-strong);
    }

    .field {
      display: block;
      min-width: 0;
    }

    .radius-field {
      margin-top: 10px;
    }

    .field-label {
      display: block;
      margin: 0 0 7px;
      color: var(--text-2);
      font-size: 0.8125rem;
      font-weight: 600;
    }

    .field input,
    .field select {
      width: 100%;
      height: 46px;
      border: 1px solid var(--line-strong);
      border-radius: 14px;
      background: var(--surface-soft);
      color: var(--text);
      padding: 0 13px;
      outline: none;
      transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
    }

    .field input::placeholder {
      color: #6f786f;
    }

    .field input:focus,
    .field select:focus {
      border-color: var(--brand);
      background: var(--surface);
      box-shadow: 0 0 0 4px rgba(205, 220, 57, 0.30);
    }

    /* ---------- App shell ---------- */
    #app-box {
      display: none;
    }

    .totem {
      min-height: calc(80px + env(safe-area-inset-top));
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
      margin: 0 -24px 28px;
      padding: env(safe-area-inset-top) 24px 0;
      border-bottom: 1px solid #3a3a3c;
      background: rgba(29, 29, 31, 0.96);
      box-shadow: none;
      position: sticky;
      top: 0;
      z-index: 1000;
      -webkit-backdrop-filter: saturate(160%) blur(18px);
      backdrop-filter: saturate(160%) blur(18px);
    }

    .brand-lockup {
      display: flex;
      align-items: center;
      gap: 11px;
      min-width: 0;
      color: inherit;
      text-decoration: none;
    }

    .app-header-logo-wrap {
      width: 56px;
      height: 44px;
      padding: 6px 8px;
      border: 1px solid rgba(130, 119, 23, 0.28);
      border-radius: 14px;
      display: grid;
      place-items: center;
      flex: 0 0 auto;
      background: var(--accent);
      box-shadow: none;
    }

    .app-header-logo {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: scale-down;
      filter: none;
    }

    .brand-copy {
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 2px;
      min-width: 0;
    }

    .brand-wordmark {
      display: block;
      color: #ffffff;
      font-size: 1.55rem;
      font-weight: 780;
      line-height: 1.12;
      letter-spacing: -0.018em;
      white-space: nowrap;
    }

    .brand-wordmark span {
      color: var(--accent);
    }

    .brand-tagline {
      display: block;
      color: #aeaeb2;
      font-size: 0.8125rem;
      font-weight: 540;
      line-height: 1.15;
      letter-spacing: 0.01em;
      white-space: nowrap;
    }

    .header-confidence {
      min-height: 32px;
      padding: 0 11px;
      border: 1px solid #48484a;
      border-radius: 999px;
      display: inline-flex;
      align-items: center;
      gap: 7px;
      flex: 0 0 auto;
      background: #2c2c2e;
      color: #d1d1d6;
      font-size: 0.6875rem;
      font-weight: 620;
      line-height: 1;
      letter-spacing: 0.01em;
    }

    .header-confidence-dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      flex: 0 0 auto;
      background: var(--accent);
      box-shadow: 0 0 0 3px rgba(205, 220, 57, 0.12);
    }

    .desktop-nav {
      display: none;
      align-items: center;
      gap: 28px;
      margin-left: auto;
      margin-right: 18px;
    }

    .desktop-nav a {
      color: #d1d1d6;
      font-size: .8125rem;
      font-weight: 600;
      text-decoration: none;
      transition: color .15s ease;
    }

    .desktop-nav a:hover,
    .desktop-nav a:focus-visible {
      color: var(--accent);
    }

    @media (min-width: 901px) {
      .totem {
        background: rgba(29, 29, 31, 0.96);
        width: 100vw;
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        padding-left: max(24px, calc(50vw - 640px + 24px));
        padding-right: max(24px, calc(50vw - 640px + 24px));
      }

      .desktop-nav {
        display: flex;
      }
    }

    .totem h1 {
      margin: 2px 0 0;
      font-size: 1.125rem;
      line-height: 1.2;
      font-weight: 750;
      letter-spacing: -0.025em;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .totem h1 span {
      color: var(--brand);
    }

    .top-actions {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .hero-main {
      margin: 0 0 22px;
      padding: 48px;
      border: 1px solid #29292c;
      border-radius: var(--radius-lg);
      background: #121316;
      box-shadow: 0 24px 48px -32px rgba(0, 0, 0, 0.62);
    }

    .hero-main-copy {
      max-width: 640px;
    }

    .hero-main-centered {
      text-align: center;
    }

    .hero-main-centered .hero-main-copy {
      max-width: 680px;
      margin: 0 auto;
    }

    .hero-main-centered .hero-trust-list {
      justify-content: center;
    }

    .hero-main-centered .search-panel {
      width: 100%;
      margin: 36px 0 0;
      text-align: left;
    }

    .hero-main h1 {
      margin: 0;
      color: #fff;
      max-width: 700px;
      font-size: clamp(2.75rem, 4.8vw, 4.25rem);
      line-height: 1.02;
      letter-spacing: -0.045em;
      font-weight: 800;
    }

    .hero-main h1 span {
      color: var(--accent);
    }

    .hero-update-badge {
      width: max-content;
      max-width: 100%;
      display: inline-flex;
      align-items: center;
      gap: 7px;
      margin-bottom: 18px;
      padding: 6px 10px;
      border: 1px solid #3a3a3f;
      border-radius: 999px;
      background: #202024;
      color: #d1d1d6;
      font-size: .7rem;
      font-weight: 600;
    }

    .hero-update-badge::before {
      content: "";
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: var(--accent);
    }

    .hero-main p {
      max-width: 560px;
      margin: 14px 0 0;
      color: #c7c7cc;
      font-size: 1.0625rem;
      line-height: 1.58;
    }

    .hero-trust-list {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 20px;
      list-style: none;
      padding: 0;
      margin: 20px 0 0;
      color: #d1d1d6;
      font-size: .84rem;
      font-weight: 620;
    }

    .hero-trust-list li {
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .hero-trust-list svg {
      color: var(--accent);
      flex: 0 0 auto;
    }

    .province-hero {
      display: grid;
      grid-template-columns: 1.3fr .7fr;
      gap: 32px;
      align-items: start;
      margin: 32px 0 44px;
    }

    /* /estadisticas/: dos cards en vez de una — texto arriba a todo el
       ancho y las cards en su propia fila, lado a lado, en lugar de
       apretadas en la columna estrecha de .7fr junto a un hueco grande. */
    .province-hero.ranking-hero {
      grid-template-columns: 1fr;
    }
    .province-hero-copy h1 {
      margin: 0 0 12px;
      font-size: clamp(1.6rem, 3.4vw, 2.3rem);
      letter-spacing: -0.03em;
      line-height: 1.12;
    }
    .province-hero-copy p {
      margin: 0;
      color: var(--text-2);
      font-size: 1rem;
      line-height: 1.55;
      max-width: 62ch;
    }
    .province-nearby-btn {
      margin-top: 20px;
      text-decoration: none;
    }
    @media (max-width: 760px) {
      .province-hero { grid-template-columns: 1fr; gap: 20px; margin: 20px 0 32px; }
    }

    .fuel-switcher {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin: 0 0 40px;
    }
    .fuel-switcher a {
      padding: 10px 18px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: var(--surface);
      color: var(--text);
      font-size: .88rem;
      font-weight: 650;
      text-decoration: none;
      transition: background-color .15s ease, border-color .15s ease, color .15s ease;
    }
    .fuel-switcher a:hover {
      background: var(--brand);
      border-color: var(--brand);
      color: #fff;
    }

    .cities-row {
      margin: 44px 0;
    }

    .top-provinces {
      margin: 44px 0;
    }
    .top-provinces-list {
      list-style: none;
      margin: 0;
      padding: 0;
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
      gap: 12px;
    }
    .top-provinces-list li {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 8px;
      padding: 12px 14px;
      border: 1px solid var(--line);
      border-radius: 14px;
      background: var(--surface);
    }
    .top-province-name {
      flex: 1 1 100%;
      font-weight: 720;
      color: var(--text);
    }
    .top-provinces-list a {
      padding: 8px 14px;
      border: 1px solid var(--line);
      border-radius: 999px;
      color: var(--text);
      font-size: .86rem;
      font-weight: 650;
      text-decoration: none;
      transition: background-color .15s ease, border-color .15s ease, color .15s ease;
    }
    .top-provinces-list a:hover {
      background: var(--brand);
      border-color: var(--brand);
      color: #fff;
    }

    .cities-row-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 16px;
    }

    .cities-row-head h2 {
      margin: 0;
      font-size: 1.5rem;
      line-height: 1.2;
      font-weight: 760;
      letter-spacing: -.02em;
    }

    .cities-row-meta {
      display: inline-flex;
      align-items: center;
      min-height: 32px;
      padding: 6px 11px;
      border: 1px solid rgba(130, 119, 23, .3);
      border-radius: 999px;
      background: rgba(205, 220, 57, .18);
      color: var(--accent-text);
      font-size: .8rem;
      font-weight: 720;
      line-height: 1.2;
      white-space: nowrap;
    }

    .cities-row-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 12px;
    }

    .hero-cities-loading {
      grid-column: 1 / -1;
      color: var(--text-muted);
      font-size: .85rem;
      padding: 20px 0;
      text-align: center;
    }

    .hero-cards-stack {
      display: flex;
      flex-direction: row;
      align-items: stretch;
      gap: 16px;
    }
    .hero-cards-stack .hero-city-row {
      flex: 1 1 0;
      min-width: 0;
    }
    @media (max-width: 700px) {
      .hero-cards-stack {
        flex-direction: column;
      }
    }

    .hero-city-row {
      position: relative;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      min-height: 190px;
      padding: 24px 20px 20px;
      border-radius: 18px;
      background: #1b1b1e;
      border: 1px solid #343438;
      box-shadow: 0 16px 30px -26px rgba(0, 0, 0, .7);
      opacity: 1;
      transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease, opacity 250ms ease-out;
    }

    .hero-city-row::before {
      content: "";
      position: absolute;
      top: 0;
      left: 20px;
      width: 44px;
      height: 3px;
      border-radius: 0 0 999px 999px;
      background: var(--accent);
    }

    @starting-style {
      .hero-city-row {
        opacity: 0;
        transform: translateY(6px);
      }
    }

    .hero-city-row:hover {
      transform: translateY(-2px);
      border-color: #4a4a4f;
      box-shadow: 0 20px 36px -27px rgba(0, 0, 0, .82);
    }

    .hero-city-row .city-name {
      color: #d1d1d6;
      font-size: .84rem;
      font-weight: 740;
      text-transform: uppercase;
      letter-spacing: .035em;
      margin-bottom: 10px;
    }

    .hero-city-row .city-price {
      color: var(--accent);
      font-size: 2.45rem;
      font-weight: 850;
      font-variant-numeric: tabular-nums;
      letter-spacing: -.035em;
      line-height: 1;
      margin-bottom: 18px;
    }

    .hero-city-row .city-price small {
      font-size: .9rem;
      font-weight: 680;
      color: #c7c7cc;
      margin-left: 5px;
      letter-spacing: -.01em;
    }

    .hero-city-row .city-info {
      margin-top: auto;
      padding-top: 14px;
      border-top: 1px solid #39393d;
    }

    .hero-city-row .city-station {
      min-height: 2.4em;
      color: #f2f2f7;
      font-size: .88rem;
      font-weight: 680;
      line-height: 1.3;
      overflow: hidden;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
    }

    .hero-city-row .city-updated {
      color: #a1a1a7;
      font-size: .73rem;
      line-height: 1.3;
      margin-top: 6px;
    }

    @media (max-width: 1000px) {
      .cities-row-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 840px) {
      .cities-row-head {
        align-items: flex-start;
        flex-direction: column;
      }
    }

    @media (max-width: 760px) {
      .cities-row {
        display: none;
      }
    }

    @media (max-width: 760px) {
      .hero-main {
        display: block;
        margin: 0 0 18px;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
      }

      .hero-main h1 {
        max-width: 23ch;
        margin: 0 auto;
        color: var(--text);
        font-size: clamp(1.4rem, 6vw, 1.65rem);
        line-height: 1.04;
        letter-spacing: -0.035em;
      }

      .hero-main h1 span {
        position: relative;
        display: inline-block;
        color: var(--text);
      }

      .hero-main h1 span::after {
        content: "";
        position: absolute;
        left: 0;
        bottom: -5px;
        width: 100%;
        height: 3px;
        border-radius: 999px;
        background: var(--accent);
      }

      .hero-main-centered .search-panel {
        margin-top: 18px;
      }

      .hero-main p,
      .hero-trust-list,
      .hero-update-badge {
        display: none;
      }
    }

    .source-chip {
      flex: 0 0 auto;
      display: inline-flex;
      align-items: center;
      gap: 7px;
      padding: 7px 10px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: var(--surface);
      color: var(--text-2);
      font-size: .74rem;
      font-weight: 620;
      white-space: nowrap;
    }

    .source-chip::before {
      content: "";
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: var(--brand);
      box-shadow: 0 0 0 3px var(--brand-soft);
    }

    /* ---------- Search ---------- */
    .search-panel {
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      padding: 32px;
      margin-bottom: 28px;
      box-shadow: var(--shadow-md);
    }

    .fuel-choice {
      display: grid;
      grid-template-columns: minmax(320px, 1fr) minmax(380px, 460px);
      gap: 40px;
      align-items: center;
      padding-bottom: 24px;
      border-bottom: 1px solid var(--line);
    }

    .fuel-choice-copy {
      min-width: 0;
      display: grid;
      grid-template-columns: 32px minmax(0, 1fr);
      column-gap: 12px;
      align-items: center;
    }

    .search-step-copy {
      min-width: 0;
    }

    .fuel-picker-wrap {
      width: 100%;
      min-width: 0;
      max-width: 460px;
      justify-self: end;
    }

    .fuel-picker {
      min-width: 0;
      margin: 0;
      padding: 0;
      border: 0;
    }

    .fuel-segmented {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 5px;
      padding: 5px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--surface-soft);
    }

    .fuel-segment {
      position: relative;
      min-width: 0;
      cursor: pointer;
    }

    .fuel-segment input {
      position: absolute;
      width: 1px;
      height: 1px;
      opacity: 0;
      pointer-events: none;
    }

    .fuel-segment-card {
      min-height: 58px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 3px;
      padding: 9px 8px;
      border: 1px solid transparent;
      border-radius: var(--radius-sm);
      color: var(--text-2);
      text-align: center;
      transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
    }

    .fuel-segment-card strong {
      font-size: .9rem;
      line-height: 1.2;
      font-weight: 700;
    }

    .fuel-segment-card small {
      color: var(--text-muted);
      font-size: .75rem;
      line-height: 1.25;
      font-weight: 500;
    }

    .fuel-segment:hover .fuel-segment-card {
      background: rgba(255, 255, 255, .62);
    }

    .fuel-segment input:checked+.fuel-segment-card {
      border-color: var(--accent);
      background: var(--accent);
      color: var(--text);
    }

    .fuel-segment input:checked+.fuel-segment-card small {
      color: rgba(29, 29, 31, .72);
    }

    .fuel-segment input:focus-visible+.fuel-segment-card {
      outline: 3px solid rgba(205, 220, 57, .36);
      outline-offset: 2px;
    }

    .fuel-other-panel {
      margin-top: 10px;
      padding: 12px;
      border: 1px solid var(--line);
      border-radius: 14px;
      background: var(--surface);
      display: none;
      opacity: 0;
      transform: translateY(-4px);
      transition: opacity 200ms ease-out, transform 200ms ease-out, display 200ms allow-discrete;
    }

    .fuel-other-panel.open {
      display: block;
      opacity: 1;
      transform: translateY(0);
    }

    @starting-style {
      .fuel-other-panel.open {
        opacity: 0;
        transform: translateY(-4px);
      }
    }

    .fuel-helper {
      margin: 9px 2px 0;
      color: var(--text-2);
      font-size: .8rem;
      line-height: 1.4;
      font-weight: 600;
    }

    .fuel-helper.is-selected {
      width: max-content;
      max-width: 100%;
      padding: 6px 9px;
      border: 1px solid rgba(130, 119, 23, 0.24);
      border-radius: 10px;
      background: rgba(205, 220, 57, 0.18);
      color: var(--accent-text);
      font-weight: 700;
    }

    .fuel-helper.is-selected::before {
      content: "\2713";
      margin-right: 6px;
      font-weight: 900;
    }

    .search-step-label {
      display: block;
      margin-bottom: 3px;
      color: var(--accent-text);
      font-size: .75rem;
      line-height: 1;
      font-weight: 700;
      letter-spacing: .045em;
      text-transform: uppercase;
    }

    .search-step-number {
      width: 32px;
      height: 32px;
      display: inline-grid;
      place-items: center;
      border-radius: 50%;
      border-color: transparent;
      background: var(--accent);
      color: #151515;
      box-shadow: 0 3px 10px rgba(130, 119, 23, 0.18);
      font-size: .78rem;
      font-weight: 800;
      letter-spacing: 0;
    }

    .search-kicker {
      display: block;
      margin-bottom: 5px;
      color: var(--accent-text);
      font-size: .68rem;
      line-height: 1;
      font-weight: 760;
      letter-spacing: .055em;
      text-transform: uppercase;
    }

    .fuel-choice-copy h2,
    .search-method-card h3 {
      margin: 0;
      color: var(--text);
      line-height: 1.25;
      font-weight: 740;
      letter-spacing: -0.02em;
    }

    .fuel-choice-copy h2 {
      font-size: 1.25rem;
    }

    .search-method-card h3 {
      font-size: 1.125rem;
    }

    .fuel-choice-copy p,
    .search-method-card p {
      margin: 5px 0 0;
      color: var(--text-muted);
      font-size: .875rem;
      line-height: 1.45;
    }

    .fuel-choice .field select,
    .search-method-card .field input {
      background: #fff;
    }

    #cp,
    #fuel {
      width: 100%;
    }

    .search-divider {
      display: flex;
      align-items: center;
      gap: 12px;
      margin: 24px 0;
      color: var(--text);
      font-size: 1.25rem;
      line-height: 1.25;
      font-weight: 740;
      letter-spacing: -0.02em;
    }

    .search-divider .search-step-number {
      display: inline-grid;
      place-items: center;
      flex: 0 0 32px;
    }

    .search-divider .search-step-copy {
      min-width: 0;
    }

    .search-divider h2 {
      margin: 0;
      font: inherit;
      letter-spacing: inherit;
      white-space: nowrap;
    }

    .search-methods {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 24px;
    }

    .search-method-card {
      min-width: 0;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      gap: 24px;
      padding: 24px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--surface-soft);
    }

    .search-method-card .method-body {
      min-width: 0;
    }

    .search-method-card .method-actions {
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .search-method-card .field input {
      height: 48px;
    }

    .search-method-card .btn {
      width: 100%;
      min-height: 50px;
      border-radius: var(--radius-sm);
      font-weight: 700;
    }

    .method-meta {
      display: inline-flex;
      align-items: center;
      width: max-content;
      max-width: 100%;
      gap: 6px;
      margin-top: 10px;
      padding: 5px 8px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: rgba(255, 255, 255, .72);
      color: var(--text-muted);
      font-size: .7rem;
      line-height: 1;
      font-weight: 650;
    }

    .method-meta svg {
      width: 14px;
      height: 14px;
      color: var(--brand);
      flex: 0 0 auto;
    }

    #related-links {
      margin: 48px 0;
    }

    #como-funciona {
      margin: 48px 0;
      padding: 32px;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      background: var(--surface);
      box-shadow: var(--shadow-sm);
    }

    .guide-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
      margin-top: 20px;
    }

    .guide-card {
      padding: 20px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--surface-soft);
    }

    .guide-card h3 {
      margin: 0 0 7px;
      color: var(--text);
      font-size: 1rem;
      line-height: 1.3;
      font-weight: 740;
      letter-spacing: -0.015em;
    }

    .guide-card p {
      margin: 0;
      color: var(--text-2);
      font-size: .875rem;
      line-height: 1.6;
    }

    .section-eyebrow {
      display: block;
      margin-bottom: 5px;
      color: var(--accent-text);
      font-size: .7rem;
      font-weight: 760;
      letter-spacing: .055em;
      text-transform: uppercase;
    }

    .related-links-title {
      margin: 0;
      font-size: 1.5rem;
      line-height: 1.2;
      font-weight: 760;
      letter-spacing: -.03em;
    }

    .section-description {
      margin: 6px 0 20px;
      color: var(--text-muted);
      font-size: .875rem;
      line-height: 1.5;
    }

    .related-links-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 18px;
    }

    .related-link-card {
      position: relative;
      min-height: 154px;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 10px;
      padding: 22px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--surface);
      color: var(--text);
      font-size: .9rem;
      font-weight: 700;
      opacity: 1;
      transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
    }

    a.related-link-card:hover {
      border-color: var(--line-strong);
      transform: translateY(-1px);
      box-shadow: var(--shadow-sm);
    }

    .related-link-icon-wrap {
      width: 52px;
      height: 52px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 14px;
    }

    .related-link-card svg {
      width: 24px;
      height: 24px;
    }

    .icon-alquiler {
      background: #e8ecff;
      color: #4a5fd9;
    }

    .icon-articulos {
      background: #eef6e0;
      color: #7a9c2e;
    }

    .icon-neumaticos {
      background: #e0f5f2;
      color: #2e9c8a;
    }

    .icon-asistencia {
      background: #fdeee0;
      color: #d68a3e;
    }

    .icon-vender {
      background: #fce8ef;
      color: #c94f7c;
    }

    .icon-historial {
      background: #f0e8fa;
      color: #8b5fbf;
    }

    .icon-taller {
      background: #fdf3d8;
      color: #c99a2e;
    }

    .icon-itv {
      background: #e3f2fd;
      color: #3d8fc9;
    }

    .related-link-icon-wrap.related-link-icon-wrap-muted {
      background: var(--surface-soft);
      color: var(--text-muted);
    }

    .related-link-name-muted {
      color: var(--text-muted);
    }

    .related-link-card small {
      color: var(--text-muted);
      font-size: .75rem;
      line-height: 1.45;
      font-weight: 500;
    }

    .related-link-soon {
      position: absolute;
      top: 16px;
      right: 16px;
      font-size: .64rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .03em;
      color: var(--text-muted);
      background: var(--surface-soft);
      padding: 2px 8px;
      border-radius: 999px;
    }

    .related-link-active {
      position: absolute;
      top: 16px;
      right: 16px;
      font-size: .64rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .03em;
      color: #1d1d1f;
      background: var(--accent);
      padding: 2px 8px;
      border-radius: 999px;
    }

    a.related-link-card {
      text-decoration: none;
      border-color: var(--accent);
      background: linear-gradient(180deg, rgba(205, 220, 57, .08), rgba(205, 220, 57, 0) 60%);
    }

    @media (max-width: 760px) {
      .related-links-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media (max-width: 420px) {
      .related-links-grid {
        grid-template-columns: 1fr;
      }
    }

    #faq,
    #provinces {
      margin: 48px 0;
      padding: 32px;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      background: var(--surface);
      box-shadow: var(--shadow-sm);
    }

    .faq-list {
      display: flex;
      flex-direction: column;
      margin-top: 20px;
    }

    .faq-item {
      border-bottom: 1px solid var(--line);
      padding: 15px 0;
    }

    .faq-item summary {
      cursor: pointer;
      font-weight: 700;
      font-size: .94rem;
      list-style: none;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 12px;
    }

    .faq-item summary::-webkit-details-marker {
      display: none;
    }

    .faq-chev {
      flex: 0 0 auto;
      color: var(--text-muted);
      transition: transform .2s ease;
    }

    .faq-item[open] .faq-chev {
      transform: rotate(180deg);
    }

    .faq-item p {
      margin: 10px 0 0;
      color: var(--text-2);
      font-size: .87rem;
      line-height: 1.55;
      opacity: 0;
      transform: translateY(-4px);
      transition: opacity 150ms ease-out, transform 150ms ease-out, display 150ms allow-discrete;
    }

    .faq-item[open] p {
      opacity: 1;
      transform: translateY(0);
    }

    @starting-style {
      .faq-item[open] p {
        opacity: 0;
        transform: translateY(-4px);
      }
    }

    .provinces-head {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: 28px;
    }

    .provinces-copy {
      min-width: 0;
      max-width: 720px;
    }

    .provinces-status {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      flex: 0 0 auto;
      padding: 7px 10px;
      border: 1px solid rgba(130, 119, 23, .2);
      border-radius: 999px;
      background: var(--brand-soft);
      color: var(--accent-text);
      font-size: .7rem;
      line-height: 1;
      font-weight: 760;
      letter-spacing: .035em;
      text-transform: uppercase;
    }

    .provinces-status::before {
      content: "";
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--brand);
    }

    .provinces-note {
      max-width: 660px;
      margin: 8px 0 0;
      color: var(--text-muted);
      font-size: .9rem;
      line-height: 1.55;
    }

    .provinces-actions {
      margin-top: 18px;
    }

    .provinces-cta {
      text-decoration: none;
    }

    .provinces-list-wrap {
      margin-top: 24px;
      padding-top: 8px;
      border-top: 1px solid var(--line);
    }

    .provinces-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 0 24px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .provinces-grid li {
      position: relative;
      min-width: 0;
      padding: 10px 0 10px 14px;
      border-bottom: 1px solid rgba(216, 216, 220, .68);
      color: var(--text-2);
      font-size: .82rem;
      line-height: 1.25;
      font-weight: 620;
    }

    .provinces-grid li a {
      color: inherit;
      text-decoration: none;
    }
    .provinces-grid li a:hover {
      color: var(--brand);
      text-decoration: underline;
    }

    .provinces-grid li::before {
      content: "";
      position: absolute;
      top: 50%;
      left: 0;
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: var(--brand);
      transform: translateY(-50%);
    }

    .provinces-toggle {
      display: none;
    }

    @media (max-width: 900px) {
      .provinces-head {
        display: block;
      }

      .provinces-status {
        margin-top: 14px;
      }

      .provinces-actions,
      .provinces-cta {
        width: 100%;
      }

      .provinces-list-wrap {
        margin-top: 20px;
      }

      .provinces-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 16px;
      }

      .provinces-grid:not(.is-expanded) li:nth-child(n + 13) {
        display: none;
      }

      .provinces-toggle {
        width: 100%;
        min-height: 44px;
        margin-top: 14px;
        border: 1px solid var(--line);
        border-radius: 999px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: var(--surface-soft);
        color: var(--text-2);
        font: inherit;
        font-size: .84rem;
        font-weight: 700;
        cursor: pointer;
      }
    }

    /* Estado visible de la búsqueda por ubicación */
    #cookie-banner {
      display: none;
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 2100;
      padding: 14px 16px calc(14px + env(safe-area-inset-bottom));
      background: rgba(29, 29, 31, .97);
      backdrop-filter: blur(8px);
      opacity: 0;
      transform: translateY(100%);
      transition: opacity 300ms ease-out, transform 300ms ease-out, display 300ms allow-discrete;
    }

    #cookie-banner.visible {
      display: block;
      opacity: 1;
      transform: translateY(0);
    }

    @starting-style {
      #cookie-banner.visible {
        opacity: 0;
        transform: translateY(100%);
      }
    }

    .cookie-banner-card {
      max-width: 780px;
      margin: 0 auto;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
      flex-wrap: wrap;
    }

    .cookie-banner-card p {
      margin: 0;
      color: #d1d1d6;
      font-size: .82rem;
      line-height: 1.4;
      flex: 1;
      min-width: 220px;
    }

    .cookie-banner-actions {
      display: flex;
      gap: 8px;
      flex: 0 0 auto;
    }

    .cookie-banner-actions .btn {
      height: 38px;
      padding: 0 16px;
      font-size: .82rem;
    }

    .cookie-banner-actions .btn-ghost {
      background: transparent;
      border-color: #48484a;
      color: #d1d1d6;
    }

    @media (max-width: 760px) {
      #cookie-banner {
        padding-bottom: calc(84px + env(safe-area-inset-bottom));
      }
    }

    #geo-overlay {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 2000;
      align-items: center;
      justify-content: center;
      background: rgba(29, 29, 31, .62);
      backdrop-filter: blur(3px);
      opacity: 0;
      transition: opacity 150ms ease-out, display 150ms allow-discrete;
    }

    #geo-overlay.visible {
      display: flex;
      opacity: 1;
    }

    @starting-style {
      #geo-overlay.visible {
        opacity: 0;
      }
    }

    .geo-overlay-card {
      background: var(--surface);
      border-radius: var(--radius-lg);
      padding: 36px 32px;
      text-align: center;
      box-shadow: var(--shadow-md);
      width: min(88vw, 320px);
      transform: scale(0.96);
      transition: transform 200ms ease-out;
    }

    #geo-overlay.visible .geo-overlay-card {
      transform: scale(1);
    }

    @starting-style {
      #geo-overlay.visible .geo-overlay-card {
        transform: scale(0.96);
      }
    }

    .geo-radar {
      position: relative;
      width: 84px;
      height: 84px;
      margin: 0 auto 22px;
      display: grid;
      place-items: center;
    }

    .geo-radar-ring {
      position: absolute;
      inset: 0;
      border-radius: 50%;
      border: 2px solid var(--accent);
      opacity: 0;
      animation: geo-pulse 1.8s ease-out infinite;
    }

    .geo-radar-ring-2 {
      animation-delay: .9s;
    }

    .geo-radar-dot {
      width: 16px;
      height: 16px;
      border-radius: 50%;
      background: var(--accent);
      box-shadow: 0 0 0 6px var(--brand-soft-2);
    }

    @keyframes geo-pulse {
      0% {
        transform: scale(.3);
        opacity: .9;
      }

      100% {
        transform: scale(1);
        opacity: 0;
      }
    }

    .geo-overlay-title {
      font-weight: 780;
      font-size: 1.05rem;
      margin-bottom: 4px;
    }

    .geo-overlay-subtitle {
      color: var(--text-muted);
      font-size: .84rem;
    }

    #ajustes-overlay {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 2000;
      align-items: center;
      justify-content: center;
      background: rgba(29, 29, 31, .62);
      backdrop-filter: blur(3px);
      opacity: 0;
      transition: opacity 150ms ease-out, display 150ms allow-discrete;
    }

    #ajustes-overlay.visible {
      display: flex;
      opacity: 1;
    }

    @starting-style {
      #ajustes-overlay.visible {
        opacity: 0;
      }
    }

    .ajustes-card {
      background: var(--surface);
      border-radius: var(--radius-lg);
      padding: 28px;
      box-shadow: var(--shadow-md);
      width: min(90vw, 380px);
      transform: scale(0.96);
      transition: transform 200ms ease-out;
    }

    #ajustes-overlay.visible .ajustes-card {
      transform: scale(1);
    }

    @starting-style {
      #ajustes-overlay.visible .ajustes-card {
        transform: scale(0.96);
      }
    }

    .ajustes-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 6px;
    }

    .ajustes-head h2 {
      font-size: 1.15rem;
      margin: 0;
    }

    .ajustes-head button {
      background: none;
      border: none;
      color: var(--text-muted);
      padding: 4px;
      cursor: pointer;
      line-height: 0;
    }

    .ajustes-subtitle {
      color: var(--text-muted);
      font-size: .86rem;
      line-height: 1.5;
      margin: 0 0 20px;
    }

    .ajustes-card .field {
      display: block;
      margin-bottom: 16px;
    }

    .ajustes-card .field-label {
      display: block;
      font-size: .82rem;
      font-weight: 650;
      margin-bottom: 6px;
    }

    .ajustes-card select {
      width: 100%;
      padding: 11px 14px;
      border-radius: 10px;
      border: 1px solid var(--line);
      background: var(--bg);
      color: var(--text);
      font-size: .92rem;
    }

    .ajustes-save {
      width: 100%;
      margin-top: 4px;
    }

    .radius-value {
      display: inline-flex;
      align-items: center;
      min-height: 24px;
      padding: 3px 8px;
      border-radius: 999px;
      background: var(--accent);
      color: #151515;
      font-size: .75rem;
      font-weight: 780;
      line-height: 1;
      margin-left: 6px;
    }

    input[type="range"]#radius-km {
      -webkit-appearance: none;
      appearance: none;
      width: 100%;
      height: 7px;
      border-radius: 999px;
      background: var(--line-strong);
      outline: none;
      margin: 12px 0 2px;
      cursor: pointer;
      touch-action: pan-y;
    }

    input[type="range"]#radius-km::-webkit-slider-thumb {
      -webkit-appearance: none;
      appearance: none;
      width: 24px;
      height: 24px;
      border-radius: 50%;
      background: #1d1d1f;
      border: 3px solid var(--accent);
      box-shadow: 0 0 0 2px #fff, 0 6px 12px -7px rgba(0, 0, 0, .55);
      cursor: pointer;
      margin-top: -8.5px;
    }

    input[type="range"]#radius-km::-moz-range-thumb {
      width: 24px;
      height: 24px;
      border-radius: 50%;
      background: #1d1d1f;
      border: 3px solid var(--accent);
      box-shadow: 0 0 0 2px #fff, 0 6px 12px -7px rgba(0, 0, 0, .55);
      cursor: pointer;
    }

    input[type="range"]#radius-km::-webkit-slider-runnable-track {
      height: 7px;
      border-radius: 999px;
      background: linear-gradient(to right, var(--accent) 0%, var(--accent) var(--fill, 0%), var(--line-strong) var(--fill, 0%), var(--line-strong) 100%);
    }

    input[type="range"]#radius-km::-moz-range-track {
      height: 7px;
      border-radius: 999px;
      background: var(--line-strong);
    }

    input[type="range"]#radius-km::-moz-range-progress {
      height: 7px;
      border-radius: 999px;
      background: var(--accent);
    }

    input[type="range"]#radius-km:focus-visible::-webkit-slider-thumb {
      box-shadow: 0 0 0 2px #fff, 0 0 0 5px rgba(205, 220, 57, .38);
    }

    input[type="range"]#radius-km:focus-visible::-moz-range-thumb {
      box-shadow: 0 0 0 2px #fff, 0 0 0 5px rgba(205, 220, 57, .38);
    }

    .radius-ticks {
      display: flex;
      justify-content: space-between;
      margin: 4px -7px 0;
    }

    .radius-ticks button {
      min-width: 40px;
      min-height: 32px;
      padding: 0 7px;
      border: 0;
      border-radius: 999px;
      background: transparent;
      color: var(--text-muted);
      font-size: .72rem;
      font-weight: 600;
      cursor: pointer;
    }

    .radius-ticks button:hover {
      background: var(--surface);
      color: var(--text);
    }

    .radius-ticks button.active {
      background: rgba(205, 220, 57, .24);
      color: var(--accent-text);
      font-weight: 780;
    }

    .radius-ticks button:focus-visible {
      outline: 3px solid rgba(205, 220, 57, .36);
      outline-offset: 1px;
    }

    @media (max-width: 760px) {
      input[type="range"]#radius-km,
      input[type="range"]#radius-km::-webkit-slider-runnable-track,
      input[type="range"]#radius-km::-moz-range-track,
      input[type="range"]#radius-km::-moz-range-progress {
        height: 8px;
      }

      input[type="range"]#radius-km::-webkit-slider-thumb {
        width: 26px;
        height: 26px;
        margin-top: -9px;
      }

      input[type="range"]#radius-km::-moz-range-thumb {
        width: 26px;
        height: 26px;
      }

      .radius-ticks button {
        font-size: .75rem;
      }
    }

    .cp-suggestions {
      display: none;
      position: absolute;
      top: 100%;
      left: 0;
      right: 0;
      z-index: 20;
      margin-top: 4px;
      background: var(--surface);
      border: 1px solid var(--line-strong);
      border-radius: 11px;
      box-shadow: var(--shadow-md);
      max-height: 240px;
      overflow-y: auto;
    }

    .cp-suggestions.visible {
      display: block;
    }

    .cp-suggestion {
      padding: 10px 14px;
      font-size: .86rem;
      cursor: pointer;
      border-bottom: 1px solid var(--line);
    }

    .cp-suggestion:last-child {
      border-bottom: 0;
    }

    .cp-suggestion:hover {
      background: var(--surface-soft);
    }

    .cp-suggestion .muni {
      font-weight: 650;
      color: var(--text);
    }

    .cp-suggestion .meta {
      color: var(--text-muted);
      font-size: .78rem;
      margin-left: 6px;
    }

    .cp-field {
      position: relative;
    }

    .cp-field.has-error input {
      border-color: var(--danger);
      background: var(--danger-soft);
      box-shadow: 0 0 0 4px rgba(180, 35, 24, .10);
    }

    .field-error {
      display: none;
      align-items: flex-start;
      gap: 8px;
      margin-top: 8px;
      padding: 9px 11px;
      border: 1px solid #f0c7c2;
      border-radius: 12px;
      background: var(--danger-soft);
      color: var(--danger);
      font-size: .76rem;
      line-height: 1.4;
      font-weight: 620;
    }

    .field-error.visible {
      display: flex;
    }

    .field-error::before {
      content: "!";
      width: 17px;
      height: 17px;
      flex: 0 0 17px;
      display: grid;
      place-items: center;
      margin-top: 1px;
      border-radius: 50%;
      background: var(--danger);
      color: #fff;
      font-size: .75rem;
      line-height: 1;
      font-weight: 800;
    }

    .btn:disabled {
      cursor: not-allowed;
      opacity: .46;
      transform: none;
    }

    #geo-status {
      min-height: 20px;
      display: none;
      align-items: center;
      justify-content: center;
      gap: 8px;
      margin-top: 2px;
      color: var(--text-muted);
      font-size: .78rem;
      line-height: 1.35;
      text-align: center;
    }

    #geo-status.visible {
      display: flex;
    }

    #geo-status.error {
      color: var(--danger);
    }

    .geo-status-spinner {
      display: none;
      width: 14px;
      height: 14px;
      flex: 0 0 auto;
      border: 2px solid var(--line-strong);
      border-top-color: var(--accent);
      border-radius: 50%;
      animation: spin .75s linear infinite;
    }

    #geo-status.loading .geo-status-spinner {
      display: inline-block;
    }

    #geo-btn:disabled {
      cursor: wait;
      opacity: .78;
    }

    .nav-icon {
      width: 17px;
      height: 17px;
      display: inline-block;
      vertical-align: -3px;
    }

    #error {
      min-height: 0;
      margin: -4px 0 16px;
      color: var(--danger);
      font-size: .86rem;
    }

    #error:empty {
      display: none;
    }

    /* Estado inicial antes de realizar la primera búsqueda */
    #initial-search-state {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 13px;
      margin: 24px 0 0;
      padding: 14px 16px;
      max-width: none;
      border: 1px solid var(--brand-soft-2);
      border-radius: var(--radius-sm);
      background: var(--brand-soft);
      color: var(--text-muted);
      text-align: left;
    }

    .initial-state-icon {
      width: 30px;
      height: 30px;
      flex: 0 0 auto;
      display: grid;
      place-items: center;
      border: 1px solid var(--line);
      border-radius: 50%;
      background: var(--surface);
      color: var(--brand);
      box-shadow: none;
    }

    .initial-state-icon svg {
      width: 16px;
      height: 16px;
    }

    .initial-state-copy strong {
      display: block;
      margin-bottom: 3px;
      color: var(--text-2);
      font-size: .84rem;
      font-weight: 700;
    }

    .initial-state-copy span {
      display: block;
      font-size: .76rem;
      line-height: 1.45;
    }

    /* ---------- Loading ---------- */
    .spinner {
      display: none;
      width: 28px;
      height: 28px;
      margin: 36px auto;
      border: 3px solid var(--line);
      border-top-color: var(--accent);
      border-radius: 50%;
      animation: spin .75s linear infinite;
    }

    @keyframes spin {
      to {
        transform: rotate(360deg);
      }
    }

    /* ---------- Best price ---------- */
    #hero {
      display: none;
      position: relative;
      overflow: hidden;
      margin: 0 0 24px;
      padding: 28px 126px 28px 30px;
      border: 1px solid #2c2c2e;
      border-radius: 24px;
      background: #1d1d1f;
      box-shadow: 0 22px 40px -30px rgba(0, 0, 0, 0.55);
      opacity: 0;
      transform: translateY(8px) scale(0.98);
      transition: opacity 280ms ease-out, transform 280ms ease-out, display 280ms allow-discrete;
    }

    #hero.visible {
      display: block;
      opacity: 1;
      transform: translateY(0) scale(1);
    }

    @starting-style {
      #hero.visible {
        opacity: 0;
        transform: translateY(8px) scale(0.98);
      }
    }

    #hero::after {
      display: none;
    }

    .hero-heading-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      margin: 0 0 12px;
    }

    .hero-kicker {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin: 0;
      color: var(--accent);
      font-size: .75rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .04em;
    }

    .hero-kicker svg {
      width: 16px;
      height: 16px;
    }

    .hero-fuel-chip {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 0 10px;
      border: 1px solid rgba(205, 220, 57, .36);
      border-radius: 999px;
      background: rgba(205, 220, 57, .12);
      color: var(--accent);
      font-size: .72rem;
      line-height: 1;
      font-weight: 760;
      white-space: nowrap;
    }

    #hero .led {
      display: flex;
      align-items: baseline;
      gap: 5px;
      color: #ffffff;
      font-variant-numeric: tabular-nums;
      font-size: clamp(2.75rem, 8vw, 4.5rem);
      line-height: .95;
      letter-spacing: -0.065em;
      font-weight: 800;
    }

    #hero .led-unit {
      color: #d1d1d6;
      font-size: 1rem;
      letter-spacing: -0.02em;
      font-weight: 680;
    }

    .hero-station-row {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-top: 20px;
      min-width: 0;
    }

    .hero-brand {
      flex: 0 0 auto;
    }

    .hero-brand .brand-wrap {
      width: 46px;
      height: 46px;
    }

    .hero-station-copy {
      min-width: 0;
    }

    #hero .hero-station {
      margin-top: 0;
      color: #ffffff;
      font-size: 1rem;
      font-weight: 720;
      line-height: 1.25;
    }

    #hero .hero-meta {
      margin-top: 3px;
      color: #aeaeb2;
      font-size: .82rem;
      line-height: 1.4;
    }

    .hero-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
    }

    .hero-price-block {
      min-width: 0;
      flex: 1;
      padding-right: 0;
    }

    /* Acción destacada para navegar hasta la gasolinera del mejor precio */
    .hero-city-row.has-maps-link .city-price {
      padding-right: 100px;
    }

    .hero-city-row.has-maps-link .city-info {
      width: calc(100% - 100px);
    }

    .hero-maps-link {
      position: absolute;
      z-index: 2;
      right: 26px;
      top: 50%;
      transform: translateY(-50%);
      width: 84px;
      height: 84px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 7px;
      border: 1px solid rgba(255, 255, 255, .22);
      border-radius: 18px;
      background: rgba(255, 255, 255, .10);
      color: var(--accent);
      text-decoration: none;
      box-shadow: none;
      transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
    }

    .hero-maps-link .nav-icon {
      width: 31px;
      height: 31px;
      display: block;
    }

    .hero-maps-link .maps-label {
      color: var(--accent);
      font-size: .69rem;
      line-height: 1;
      font-weight: 700;
      letter-spacing: .055em;
      text-transform: uppercase;
      white-space: nowrap;
    }

    .hero-maps-link:hover {
      background: rgba(255, 255, 255, .17);
      border-color: rgba(205, 220, 57, .55);
      box-shadow: none;
      transform: translateY(calc(-50% - 2px));
    }

    .hero-maps-link:active {
      transform: translateY(-50%);
    }

    .hero-maps-link:focus-visible {
      outline: 3px solid rgba(205, 220, 57, .38);
      outline-offset: 3px;
    }

    /* ---------- Results header ---------- */
    .results-head {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 14px;
      margin: 0 0 12px;
      scroll-margin-top: calc(80px + env(safe-area-inset-top) + 16px);
    }

    #meta-bar {
      display: none;
      align-items: center;
      flex-wrap: wrap;
      gap: 6px 9px;
      margin: 0 0 12px;
      padding: 11px 14px;
      border: 1px solid var(--line);
      border-radius: 12px;
      background: var(--surface);
      color: var(--text-2);
      font-size: .79rem;
      line-height: 1.45;
      box-shadow: var(--shadow-sm);
    }

    #meta-bar span {
      display: inline-flex;
      align-items: center;
      gap: 9px;
    }

    #meta-bar span + span::before {
      content: "";
      width: 4px;
      height: 4px;
      flex: 0 0 auto;
      border-radius: 50%;
      background: var(--brand);
    }

    .results-offer {
      position: relative;
      display: none;
      align-items: center;
      gap: 14px;
      margin: 0 0 12px;
      padding: 14px 48px 14px 15px;
      border: 1px solid rgba(57, 42, 220, .2);
      border-left: 4px solid #392adc;
      border-radius: 14px;
      background: linear-gradient(110deg, rgba(57, 42, 220, .07), rgba(255, 255, 255, .96) 45%);
      box-shadow: var(--shadow-sm);
    }

    .results-offer.visible {
      display: flex;
    }

    .results-offer-icon {
      width: 38px;
      height: 38px;
      display: grid;
      place-items: center;
      flex: 0 0 auto;
      border-radius: 11px;
      background: rgba(57, 42, 220, .1);
      color: #392adc;
    }

    .results-offer-icon svg {
      width: 20px;
      height: 20px;
    }

    .results-offer-copy {
      min-width: 0;
      flex: 1 1 auto;
    }

    .results-offer-copy strong,
    .results-offer-copy span {
      display: block;
    }

    .results-offer-copy strong {
      color: var(--text);
      font-size: .92rem;
      line-height: 1.25;
    }

    .results-offer-copy span {
      margin-top: 3px;
      color: var(--text-muted);
      font-size: .78rem;
      line-height: 1.4;
    }

    .results-offer-cta {
      min-height: 40px;
      flex: 0 0 auto;
      padding-inline: 15px;
      text-decoration: none;
    }

    .results-offer-close {
      position: absolute;
      top: 8px;
      right: 8px;
      width: 30px;
      height: 30px;
      border: 0;
      border-radius: 9px;
      display: grid;
      place-items: center;
      background: transparent;
      color: var(--text-muted);
      cursor: pointer;
    }

    .results-offer-close:hover,
    .results-offer-close:focus-visible {
      background: rgba(57, 42, 220, .08);
      color: #392adc;
    }

    .results-offer-close svg {
      width: 16px;
      height: 16px;
    }

    @media (max-width: 760px) {
      .hero-heading-row {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 10px;
      }

      .hero-fuel-chip {
        min-height: 25px;
        padding-inline: 8px;
        font-size: .66rem;
      }

      #meta-bar {
        padding: 10px 12px;
      }

      #meta-bar .meta-updated {
        flex-basis: 100%;
      }

      #meta-bar .meta-updated::before {
        display: none;
      }

      .results-offer {
        align-items: flex-start;
        flex-wrap: wrap;
        padding: 14px 42px 14px 14px;
      }

      .results-offer-copy {
        width: calc(100% - 54px);
      }

      .results-offer-cta {
        width: calc(100% - 52px);
        margin-left: 52px;
      }
    }

    .view-toggle {
      display: none;
      flex: 0 0 auto;
      gap: 4px;
      padding: 4px;
      background: var(--surface-soft);
      border: 1px solid var(--line);
      border-radius: 12px;
    }

    .view-toggle button {
      min-width: 96px;
      height: 40px;
      border: 0;
      border-radius: 9px;
      background: transparent;
      color: var(--text-muted);
      padding: 0 15px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      font-size: .82rem;
      font-weight: 700;
      cursor: pointer;
      transition: background-color .16s ease, color .16s ease, box-shadow .16s ease;
    }

    .view-toggle button svg {
      width: 15px;
      height: 15px;
    }

    .view-toggle button.active {
      background: var(--accent);
      color: #151515;
      box-shadow: 0 2px 8px rgba(130, 119, 23, .22);
    }

    .view-toggle button:not(.active):hover {
      background: var(--surface);
      color: var(--text);
    }

    .view-toggle button:focus-visible {
      outline: 3px solid rgba(205, 220, 57, .38);
      outline-offset: 2px;
    }

    /* ---------- Results ---------- */
    #results-list {
      display: flex;
      flex-direction: column;
      gap: 9px;
    }

    .ticket.ticket-extra {
      display: none;
    }

    .show-more-btn {
      display: flex;
      width: 100%;
      margin-top: 16px;
      border-style: dashed;
    }

    .province-nearby-btn-bottom {
      display: flex;
      width: 100%;
      margin-top: 24px;
    }

    .ticket {
      position: relative;
      display: grid;
      grid-template-columns: 42px minmax(0, 1fr) auto 44px;
      grid-template-areas: "brand info price nav";
      align-items: center;
      column-gap: 14px;
      min-height: 92px;
      padding: 16px 16px 16px 18px;
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow-sm);
      transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
    }

    .ticket:hover {
      border-color: var(--line-strong);
      box-shadow: 0 12px 24px -18px rgba(0, 0, 0, 0.34);
      transform: translateY(-1px);
    }

    .ticket::before {
      display: none;
    }

    .ticket.cheapest {
      border-color: #dce775;
      background: linear-gradient(90deg, rgba(249, 251, 231, 1) 0, rgba(255, 255, 255, 1) 46%);
    }

    .ticket.cheapest::after {
      content: "";
      position: absolute;
      left: -1px;
      top: 14px;
      bottom: 14px;
      width: 3px;
      border-radius: 0 3px 3px 0;
      background: var(--accent);
    }

    .ticket .price {
      grid-area: price;
      min-width: 110px;
      color: var(--text);
      font-size: 1.55rem;
      font-weight: 780;
      letter-spacing: -0.04em;
      font-variant-numeric: tabular-nums;
      text-align: right;
      white-space: nowrap;
    }

    .ticket.cheapest .price {
      color: var(--brand);
    }

    .ticket .price small {
      display: inline-block;
      margin-left: 3px;
      color: var(--text-muted);
      font-size: .72rem;
      font-weight: 600;
      letter-spacing: 0;
      vertical-align: .08em;
    }

    .ticket .info {
      grid-area: info;
      min-width: 0;
    }

    .ticket .name {
      overflow: hidden;
      color: var(--text);
      font-size: .9375rem;
      line-height: 1.25;
      font-weight: 700;
      white-space: nowrap;
      text-overflow: ellipsis;
    }

    .ticket .addr {
      margin-top: 4px;
      overflow: hidden;
      color: var(--text-2);
      font-size: .8125rem;
      line-height: 1.4;
      white-space: nowrap;
      text-overflow: ellipsis;
    }

    .ticket .badge {
      display: inline-flex;
      align-items: center;
      margin: 0 0 5px;
      padding: 4px 9px;
      border: 0;
      border-radius: 999px;
      background: var(--brand-soft-2);
      color: var(--brand);
      font-size: .7rem;
      line-height: 1;
      font-weight: 700;
      letter-spacing: .035em;
      text-transform: uppercase;
    }

    .ticket .badge.badge-closest {
      background: var(--info-soft);
      color: var(--info);
    }

    .ticket .dist {
      display: inline-flex;
      align-items: center;
      margin-top: 6px;
      color: var(--text-2);
      font-size: .74rem;
      font-weight: 620;
    }

    .ticket .dist::before {
      content: "";
      width: 5px;
      height: 5px;
      margin-right: 6px;
      border-radius: 50%;
      background: var(--brand);
    }

    .ticket .maps-link {
      grid-area: nav;
      width: 44px;
      height: 44px;
      border: 1px solid var(--line);
      border-radius: 11px;
      display: grid;
      place-items: center;
      background: var(--surface-soft);
      color: var(--text-2);
      text-decoration: none;
      transition: background-color .15s ease, border-color .15s ease, color .15s ease;
    }

    .ticket .maps-link:hover {
      background: var(--brand-soft);
      border-color: var(--accent-strong);
      color: var(--brand);
    }

    .ticket .maps-link .nav-icon {
      width: 19px;
      height: 19px;
    }

    /* Fila de ranking nacional (/estadisticas/) — mismo lenguaje visual
       que .ticket, pero es un <a> completo (toda la fila es clicable
       hacia la página de la provincia) y no lleva columna de navegación
       aparte, así que se redefinen columnas/áreas sin la 4ª (nav). */
    .rank-row {
      grid-template-columns: 42px minmax(0, 1fr) auto;
      grid-template-areas: "brand info price";
      text-decoration: none;
      cursor: pointer;
    }

    .rank-row .rank-num {
      grid-area: brand;
      display: grid;
      place-items: center;
      width: 42px;
      height: 42px;
      border-radius: 10px;
      background: var(--surface-soft);
      color: var(--text-2);
      font-size: .9rem;
      font-weight: 800;
      font-variant-numeric: tabular-nums;
    }

    .rank-row:first-of-type .rank-num {
      background: var(--brand-soft-2);
      color: var(--brand);
    }

    .ranking-map {
      display: block;
      width: 100%;
      max-width: 760px;
      height: auto;
      margin: 0 auto;
      border-radius: var(--radius);
      border: 1px solid var(--line);
      background: #e9e9ed;
    }

    /* Leyenda del mapa como HTML normal, no horneada en el PNG — el
       PNG se muestra a anchos muy distintos (escritorio vs. móvil) y
       ningún tamaño de fuente fijo dentro de la imagen se lee bien
       en los dos casos. Así escala como el resto del texto del sitio. */
    .ranking-map-legend {
      max-width: 760px;
      margin: 14px auto 0;
      padding: 0 4px;
    }
    .ranking-map-legend-caption {
      display: block;
      font-size: .82rem;
      font-weight: 700;
      color: var(--text-2);
      margin-bottom: 8px;
    }
    .ranking-map-legend-bar {
      height: 12px;
      border-radius: 6px;
      background: linear-gradient(to right, #2e7d32, #fbc02d, #c62828);
    }
    .ranking-map-legend-values {
      display: flex;
      justify-content: space-between;
      margin-top: 6px;
      font-size: .95rem;
      font-weight: 800;
      font-variant-numeric: tabular-nums;
      color: var(--text);
    }
    .ranking-map-note {
      margin: 12px 0 0;
      font-size: .78rem;
      line-height: 1.5;
      color: var(--text-muted);
    }

    .brand-wrap {
      grid-area: brand;
      width: 42px;
      height: 42px;
      flex: 0 0 auto;
    }

    .brand-logo,
    .brand-badge {
      width: 100%;
      height: 100%;
      border-radius: 11px;
    }

    .brand-logo {
      object-fit: contain;
      background: #fff;
      border: 1px solid var(--line);
      padding: 6px;
    }

    .brand-badge {
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--text);
      font-size: .72rem;
      font-weight: 800;
      letter-spacing: -.01em;
    }

    .trend {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 28px;
      height: 24px;
      padding: 0 7px;
      margin-left: 8px;
      border: 1px solid transparent;
      border-radius: 9px;
      font-size: .74rem;
      line-height: 1;
      font-weight: 800;
      white-space: nowrap;
      vertical-align: .08em;
    }

    .trend.down {
      /* var(--brand) da 4.34:1 de contraste sobre --brand-soft, justo por
         debajo del mínimo WCAG AA (4.5:1). --brand-hover es más oscuro y
         sí lo supera, sin tocar la variable global usada en otros sitios. */
      color: var(--brand-hover);
      background: var(--brand-soft);
      border-color: #dce775;
    }

    .trend.up {
      color: var(--danger);
      background: var(--danger-soft);
      border-color: #f0c7c2;
    }

    .trend.flat {
      color: var(--text-muted);
      background: var(--surface-soft);
      border-color: var(--line);
    }

    #map {
      display: none;
      height: 500px;
      overflow: hidden;
      margin-bottom: 24px;
      border: 1px solid #d7d7dc;
      border-radius: 20px;
      background: #e9e9ed;
      box-shadow: 0 18px 42px -28px rgba(0, 0, 0, .42);
    }

    /* Cartografía más neutra para que destaquen los precios y marcadores. */
    #map .leaflet-tile-pane {
      filter: saturate(.56) contrast(.94) brightness(1.04);
    }

    #map .leaflet-control-zoom,
    #map .map-recenter-control {
      border: 0;
      border-radius: 12px;
      box-shadow: 0 8px 24px -14px rgba(0, 0, 0, .5);
      overflow: hidden;
    }

    #map .leaflet-control-zoom a,
    #map .map-recenter-button {
      width: 40px;
      height: 40px;
      display: grid;
      place-items: center;
      border: 0;
      border-bottom: 1px solid var(--line);
      background: rgba(255, 255, 255, .96);
      color: var(--text) !important;
      font: 700 1.15rem/1 system-ui, sans-serif;
      cursor: pointer;
      transition: background-color .15s ease, color .15s ease;
    }

    #map .leaflet-control-zoom a:last-child,
    #map .map-recenter-button {
      border-bottom: 0;
    }

    #map .leaflet-control-zoom a:hover,
    #map .map-recenter-button:hover:not(:disabled) {
      background: var(--accent);
      color: #151515 !important;
    }

    #map .map-recenter-button:disabled {
      color: #a1a1a7 !important;
      cursor: default;
    }

    #map .map-recenter-button svg {
      width: 19px;
      height: 19px;
    }

    #map .leaflet-control-attribution {
      padding: 3px 7px;
      border-radius: 8px 0 0 0;
      background: rgba(255, 255, 255, .88);
      color: #66666b;
      font-size: 9px;
    }

    /* Marcadores propios de RepostarBarato. */
    .station-map-icon {
      background: transparent !important;
      border: 0 !important;
    }

    .map-marker {
      position: relative;
      width: 92px;
      height: 64px;
      display: flex;
      justify-content: center;
      align-items: flex-end;
    }

    .map-marker:not(.is-cheapest) {
      width: 32px;
      height: 40px;
    }

    .map-marker-pin {
      position: relative;
      width: 30px;
      height: 30px;
      display: grid;
      place-items: center;
      border: 3px solid #fff;
      border-radius: 50% 50% 50% 0;
      background: #2c2c2e;
      box-shadow: 0 8px 18px -8px rgba(0, 0, 0, .65);
      transform: rotate(-45deg);
    }

    .map-marker-pin span {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: #fff;
    }

    .map-marker.is-cheapest .map-marker-pin {
      width: 38px;
      height: 38px;
      background: var(--accent);
      border-color: #fff;
      box-shadow: 0 10px 24px -9px rgba(86, 92, 9, .75);
    }

    .map-marker.is-cheapest .map-marker-pin span {
      width: 10px;
      height: 10px;
      background: #1d1d1f;
    }

    .map-marker-price {
      position: absolute;
      z-index: 2;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      min-width: max-content;
      padding: 6px 9px;
      border: 2px solid #fff;
      border-radius: 9px;
      background: var(--accent);
      color: #151515;
      box-shadow: 0 8px 18px -11px rgba(0, 0, 0, .7);
      font-size: .73rem;
      font-weight: 800;
      line-height: 1;
      letter-spacing: -.01em;
    }

    .user-location-marker {
      filter: drop-shadow(0 3px 5px rgba(31, 111, 235, .35));
    }

    .leaflet-tooltip.station-map-tooltip,
    .leaflet-tooltip.cheapest-map-tooltip {
      border: 1px solid #d7d7dc;
      border-radius: 9px;
      background: #fff;
      color: var(--text);
      box-shadow: 0 10px 24px -16px rgba(0, 0, 0, .55);
      font-size: .75rem;
      font-weight: 700;
    }

    .leaflet-tooltip.cheapest-map-tooltip {
      border-color: #c3cf3a;
    }

    #map .leaflet-popup-content-wrapper {
      overflow: hidden;
      padding: 0;
      border: 1px solid var(--line);
      border-radius: 16px;
      box-shadow: 0 18px 44px -20px rgba(0, 0, 0, .55);
    }

    #map .leaflet-popup-content {
      width: 250px !important;
      margin: 0;
    }

    #map .leaflet-popup-tip {
      box-shadow: 3px 3px 8px rgba(0, 0, 0, .08);
    }

    #map .leaflet-popup-close-button {
      top: 8px;
      right: 8px;
      width: 28px;
      height: 28px;
      display: grid;
      place-items: center;
      border-radius: 50%;
      background: #f2f2f4;
      color: var(--text-muted);
      font-size: 18px;
    }

    .map-popup-card {
      padding: 16px;
      background: #fff;
    }

    .map-popup-top {
      display: flex;
      align-items: center;
      gap: 10px;
      padding-right: 24px;
    }

    .map-popup-brand .brand-wrap {
      width: 38px;
      height: 38px;
    }

    .map-popup-name {
      color: var(--text);
      font-size: .9rem;
      font-weight: 750;
      line-height: 1.25;
    }

    .map-popup-price {
      margin-top: 13px;
      color: var(--accent-text);
      font-size: 1.65rem;
      font-weight: 850;
      line-height: 1;
      letter-spacing: -.035em;
    }

    .map-popup-address,
    .map-popup-distance {
      margin-top: 7px;
      color: var(--text-muted);
      font-size: .73rem;
      line-height: 1.4;
    }

    .map-popup-distance {
      margin-top: 3px;
      color: var(--text-2);
      font-weight: 650;
    }

    .map-popup-action {
      min-height: 40px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      margin-top: 14px;
      border-radius: 10px;
      background: var(--accent);
      color: #151515;
      font-size: .8rem;
      font-weight: 750;
      text-decoration: none;
    }

    .map-popup-action .nav-icon {
      width: 16px;
      height: 16px;
    }

    .map-popup-action:hover {
      background: #d8e63f;
      text-decoration: none;
    }

    .map-legend {
      display: flex;
      flex-direction: column;
      gap: 6px;
      padding: 9px 11px;
      border: 1px solid rgba(0, 0, 0, .09);
      border-radius: 11px;
      background: rgba(255, 255, 255, .94);
      box-shadow: 0 8px 22px -16px rgba(0, 0, 0, .5);
      color: var(--text-2);
      font-size: .67rem;
      font-weight: 650;
      line-height: 1;
    }

    .map-legend-row {
      display: flex;
      align-items: center;
      gap: 7px;
      white-space: nowrap;
    }

    .map-legend-dot {
      width: 9px;
      height: 9px;
      border: 2px solid #fff;
      border-radius: 50%;
      background: #2c2c2e;
      box-shadow: 0 0 0 1px rgba(0, 0, 0, .15);
    }

    .map-legend-dot.cheapest {
      background: var(--accent);
    }

    .map-legend-dot.user {
      background: #1f6feb;
    }

    #empty-state {
      display: none;
      max-width: 760px;
      margin: 24px auto;
      padding: 38px 32px;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      background: var(--surface);
      color: var(--text-2);
      text-align: center;
      box-shadow: var(--shadow-md);
    }

    #empty-state .pump-icon {
      width: 54px;
      height: 54px;
      margin: 0 auto 16px;
      border-radius: 16px;
      display: grid;
      place-items: center;
      background: var(--brand-soft);
      border: 1px solid rgba(130, 119, 23, .2);
      color: var(--accent-text);
    }

    #empty-state .pump-icon svg {
      width: 25px;
      height: 25px;
    }

    .empty-state-kicker {
      display: block;
      margin-bottom: 6px;
      color: var(--accent-text);
      font-size: .7rem;
      line-height: 1;
      font-weight: 760;
      letter-spacing: .055em;
      text-transform: uppercase;
    }

    #empty-state-title {
      margin: 0;
      color: var(--text);
      font-size: clamp(1.35rem, 3vw, 1.75rem);
      line-height: 1.2;
      font-weight: 780;
      letter-spacing: -.035em;
    }

    #empty-state-message {
      max-width: 580px;
      margin: 10px auto 0;
      color: var(--text-2);
      font-size: .92rem;
      line-height: 1.55;
    }

    #empty-state-hint {
      max-width: 580px;
      margin: 5px auto 0;
      color: var(--text-muted);
      font-size: .82rem;
      line-height: 1.5;
    }

    .empty-state-actions {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      margin-top: 22px;
    }

    @media (max-width: 600px) {
      #empty-state {
        margin: 18px 0;
        padding: 30px 20px;
      }

      .empty-state-actions {
        flex-direction: column;
      }

      .empty-state-actions .btn {
        width: 100%;
      }
    }

    .site-footer {
      margin-top: 52px;
      overflow: hidden;
      border: 1px solid #343438;
      border-radius: var(--radius-lg);
      background: #1d1d1f;
      color: #aeaeb2;
      font-size: .8rem;
      line-height: 1.55;
      text-align: left;
      box-shadow: var(--shadow-sm);
    }

    .footer-main {
      display: grid;
      grid-template-columns: minmax(240px, 1.45fr) repeat(3, minmax(150px, 1fr));
      gap: 38px;
      padding: 38px 40px 34px;
    }

    .footer-brand {
      max-width: 320px;
    }

    .site-footer .footer-wordmark {
      display: inline-block;
      margin-bottom: 10px;
      color: #fff;
      font-size: 1.22rem;
      line-height: 1;
      font-weight: 800;
      letter-spacing: -.035em;
    }

    .footer-wordmark span {
      color: var(--accent);
    }

    .footer-brand p {
      margin: 0;
      color: #aeaeb2;
      font-size: .82rem;
      line-height: 1.6;
    }

    .footer-heading {
      margin: 0 0 12px;
      color: #f5f5f7;
      font-size: .78rem;
      line-height: 1.2;
      font-weight: 760;
      letter-spacing: .055em;
      text-transform: uppercase;
    }

    .footer-links {
      display: grid;
      gap: 9px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .site-footer a,
    .footer-link {
      width: max-content;
      max-width: 100%;
      border: 0;
      padding: 0;
      background: none;
      color: #c7c7cc;
      font: inherit;
      line-height: 1.35;
      text-align: left;
      text-decoration: none;
      cursor: pointer;
      transition: color .15s ease;
    }

    .site-footer a:hover,
    .site-footer a:focus-visible,
    .footer-link:hover,
    .footer-link:focus-visible {
      color: var(--accent);
    }

    .footer-source {
      display: inline-flex;
      align-items: center;
      gap: 7px;
    }

    .footer-source::before {
      content: "";
      width: 6px;
      height: 6px;
      flex: 0 0 auto;
      border-radius: 50%;
      background: var(--accent);
    }

    .footer-bottom {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 24px;
      padding: 18px 40px 20px;
      border-top: 1px solid #343438;
      background: #18181a;
      color: #98989d;
      font-size: .72rem;
    }

    .footer-bottom p {
      max-width: 820px;
      margin: 0;
    }

    .footer-copyright {
      flex: 0 0 auto;
      white-space: nowrap;
    }

    @media (max-width: 900px) {
      .footer-main {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 30px 24px;
        padding: 30px 26px;
      }

      .footer-brand {
        grid-column: 1 / -1;
      }

      .footer-bottom {
        display: grid;
        gap: 12px;
        padding: 18px 26px 22px;
      }
    }

    @media (max-width: 520px) {
      .site-footer {
        margin-top: 38px;
        border-radius: 18px;
      }

      .footer-main {
        grid-template-columns: 1fr;
        gap: 26px;
        padding: 28px 22px;
      }

      .footer-brand {
        grid-column: auto;
      }

      .footer-bottom {
        padding: 18px 22px 24px;
      }
    }

    .bottom-nav {
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 1100;
      display: flex;
      justify-content: center;
      background: rgba(255, 255, 255, .92);
      backdrop-filter: blur(14px);
      border-top: 1px solid var(--line);
      padding: 8px max(12px, env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));
    }

    .bottom-nav-inner {
      width: min(100%, 1280px);
      display: flex;
      justify-content: space-around;
    }

    .bottom-nav .nav-item {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 3px;
      flex: 1;
      background: none;
      border: 0;
      color: var(--text-muted);
      font-size: .75rem;
      font-weight: 600;
      padding: 5px 0;
      min-height: 52px;
      justify-content: center;
      cursor: pointer;
      transition: color .15s ease, opacity .15s ease;
    }

    .bottom-nav .nav-item::before {
      content: "";
      position: absolute;
      top: 2px;
      left: 50%;
      width: 34px;
      height: 30px;
      border-radius: 9px;
      background: var(--accent);
      opacity: 0;
      transform: translateX(-50%);
      transition: opacity .15s ease, background-color .15s ease;
    }

    .bottom-nav .nav-item svg {
      position: relative;
      z-index: 1;
      width: 23px;
      height: 23px;
    }

    .bottom-nav .nav-item.active {
      color: var(--brand);
    }

    .bottom-nav .nav-item.active svg {
      color: var(--text);
    }

    .bottom-nav .nav-item.active::before {
      opacity: 1;
    }

    .bottom-nav .nav-item.offers:not(.active) svg {
      color: #392adc;
    }

    .bottom-nav .nav-item.offers.active {
      color: #392adc;
    }

    .bottom-nav .nav-item.offers.active::before {
      background: #392adc;
    }

    .bottom-nav .nav-item.offers.active svg {
      color: #fff;
    }

    .bottom-nav .nav-item.disabled {
      color: #9d9da3;
      opacity: .78;
      cursor: pointer;
    }

    .bottom-nav .nav-icon-wrap {
      position: relative;
      z-index: 1;
      display: grid;
      place-items: center;
    }

    .bottom-nav .nav-item .soon {
      position: absolute;
      top: -7px;
      left: 14px;
      padding: 2px 5px;
      border: 1px solid #dedee2;
      border-radius: 999px;
      background: #fff;
      color: #76767c;
      box-shadow: 0 3px 8px rgba(0, 0, 0, .08);
      font-size: .48rem;
      line-height: 1;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .02em;
      z-index: 2;
    }

    .feature-toast {
      position: fixed;
      z-index: 1200;
      left: 50%;
      bottom: calc(82px + env(safe-area-inset-bottom));
      width: max-content;
      max-width: calc(100vw - 32px);
      padding: 11px 15px;
      border: 1px solid #3a3a3f;
      border-radius: 12px;
      background: rgba(29, 29, 31, .96);
      color: #fff;
      box-shadow: 0 14px 32px -18px rgba(0, 0, 0, .7);
      font-size: .78rem;
      font-weight: 650;
      line-height: 1.35;
      text-align: center;
      opacity: 0;
      pointer-events: none;
      transform: translate(-50%, 10px);
      transition: opacity .18s ease, transform .18s ease;
    }

    .feature-toast.visible {
      opacity: 1;
      transform: translate(-50%, 0);
    }

    @media (min-width: 901px) {
      body {
        padding-bottom: 0;
      }

      .fuel-choice {
        grid-template-columns: minmax(320px, 1fr) minmax(380px, 460px);
        justify-content: stretch;
        align-items: center;
        gap: 40px;
      }

      .fuel-picker-wrap {
        width: 100%;
        max-width: 460px;
        justify-self: end;
      }

      .bottom-nav {
        display: none;
      }

    }

    /* Hero compacto de escritorio: mensaje arriba y buscador debajo */
    @media (min-width: 901px) {
      .totem {
        min-height: calc(72px + env(safe-area-inset-top));
        margin-bottom: 18px;
      }

      .hero-main.hero-main-centered {
        display: block;
        margin-bottom: 18px;
        padding: 22px 26px;
        text-align: center;
      }

      .hero-main-centered .hero-main-copy {
        max-width: 900px;
        margin: 0 auto;
      }

      .hero-main-centered .hero-trust-list {
        justify-content: center;
        gap: 6px 16px;
        margin-top: 12px;
        font-size: .78rem;
      }

      .hero-main-centered .search-panel {
        width: 100%;
        margin: 14px 0 0;
        padding: 16px 18px;
        text-align: left;
      }

      .hero-main h1 {
        max-width: 950px;
        font-size: clamp(3rem, 4vw, 4rem);
        line-height: 1;
      }

      .hero-main p {
        max-width: 850px;
        margin: 9px auto 0;
        font-size: .9rem;
        line-height: 1.42;
      }

      .hero-update-badge {
        margin-bottom: 9px;
      }

      .hero-main-centered .fuel-choice {
        grid-template-columns: minmax(260px, 1fr) minmax(380px, 460px);
        gap: 24px;
        align-items: center;
        padding-bottom: 42px;
      }

      .hero-main-centered .fuel-choice-copy {
        grid-template-columns: 36px minmax(0, 1fr);
      }

      .hero-main-centered .search-step-number {
        width: 36px;
        height: 36px;
        font-size: .85rem;
      }

      .hero-main-centered .search-divider .search-step-number {
        flex-basis: 36px;
      }

      .hero-main-centered .fuel-picker-wrap {
        max-width: 460px;
        position: relative;
        align-self: center;
      }

      .hero-main-centered .fuel-helper {
        position: absolute;
        top: 100%;
        left: 2px;
        margin: 6px 0 0;
      }

      .hero-main-centered .search-divider {
        margin: 10px 0;
      }

      .hero-main-centered .search-methods {
        gap: 14px;
      }

      .hero-main-centered .search-method-card {
        gap: 10px;
        padding: 12px 14px;
      }

      .hero-main-centered .search-method-card .btn {
        min-height: 46px;
      }

      .hero-main-centered .search-method-card p {
        font-size: .8rem;
        line-height: 1.35;
      }

      .hero-main-centered #initial-search-state {
        gap: 8px;
        margin-top: 8px;
        padding: 6px 10px;
      }

      .hero-main-centered #initial-search-state .initial-state-icon {
        width: 24px;
        height: 24px;
      }

      .hero-main-centered #initial-search-state .initial-state-copy strong {
        margin-bottom: 1px;
        font-size: .76rem;
      }

      .hero-main-centered #initial-search-state .initial-state-copy span {
        font-size: .68rem;
        line-height: 1.25;
      }

      .cities-row {
        margin-top: 28px;
      }
    }

    /* Centra realmente el selector dentro del panel en escritorio amplio. */
    @media (min-width: 1100px) {
      .hero-main-centered .fuel-choice {
        grid-template-columns: minmax(0, 1fr) minmax(380px, 460px) minmax(0, 1fr);
        gap: 20px;
      }

      .hero-main-centered .fuel-choice-copy {
        grid-column: 1;
      }

      .hero-main-centered .fuel-picker-wrap {
        grid-column: 2;
        width: 100%;
        max-width: 460px;
        justify-self: stretch;
        align-self: center;
      }
    }

    @media (max-width: 900px) {
      .hero-main {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 36px;
      }

      .fuel-choice {
        grid-template-columns: 1fr;
        gap: 18px;
      }

      .fuel-picker-wrap {
        max-width: none;
        justify-self: stretch;
      }
    }

    @media (max-width: 760px) {
      .wrap {
        padding: 0 16px 40px;
      }

      .totem {
        min-height: calc(66px + env(safe-area-inset-top));
        margin: 0 -16px 24px;
        padding: env(safe-area-inset-top) 16px 0;
        gap: 12px;
      }

      .hero-main {
        display: block;
        margin: 0 0 18px;
        padding: 0;
        gap: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
      }

      .brand-lockup {
        gap: 9px;
      }

      .brand-wordmark {
        font-size: 1.375rem;
      }

      .brand-tagline {
        font-size: 0.7rem;
      }

      .app-header-logo-wrap {
        width: 50px;
        height: 40px;
        padding: 5px 7px;
        border-radius: 12px;
      }

      .header-confidence {
        display: none;
      }

      .brand-mark {
        width: 38px;
        height: 38px;
        border-radius: 12px;
      }

      .brand-mark svg {
        width: 21px;
        height: 21px;
      }

      .hero-main p {
        font-size: .92rem;
      }

      .hero-trust-list {
        gap: 6px 14px;
        font-size: .78rem;
        margin-top: 14px;
      }

      .source-chip {
        margin-top: 12px;
      }

      .search-panel {
        padding: 14px;
        margin-bottom: 16px;
      }

      #initial-search-state {
        margin-top: 22px;
        padding: 14px 6px;
        align-items: flex-start;
      }

      .fuel-choice {
        grid-template-columns: 1fr;
        gap: 12px;
      }

      .search-methods {
        grid-template-columns: 1fr;
      }

      .search-method-card {
        padding: 14px;
      }

      #como-funciona,
      #faq,
      #provinces {
        margin: 32px 0;
        padding: 20px 16px;
      }

      .guide-grid {
        grid-template-columns: 1fr;
      }

      .search-divider {
        margin: 16px 0 12px;
      }

      #hero {
        padding: 21px 102px 21px 20px;
      }

      .hero-row {
        gap: 16px;
      }

      .hero-price-block {
        padding-right: 0;
      }

      .hero-brand .brand-wrap {
        width: 42px;
        height: 42px;
      }

      .hero-station-row {
        gap: 10px;
      }

      .hero-maps-link {
        right: 20px;
        width: 70px;
        height: 70px;
        border-radius: 16px;
      }

      .hero-maps-link .nav-icon {
        width: 27px;
        height: 27px;
      }

      .hero-maps-link .maps-label {
        font-size: .61rem;
      }

      .results-head {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        scroll-margin-top: calc(66px + env(safe-area-inset-top) + 16px);
      }

      #meta-bar {
        width: 100%;
        max-width: none;
      }

      .view-toggle {
        width: 100%;
      }

      .view-toggle button {
        flex: 1 1 50%;
        min-width: 0;
        height: 46px;
        font-size: .86rem;
      }

      .ticket {
        grid-template-columns: 40px minmax(0, 1fr) 40px;
        grid-template-areas:
          "brand info nav"
          "brand price nav";
        row-gap: 7px;
        column-gap: 12px;
        padding: 13px;
      }

      .brand-wrap {
        width: 40px;
        height: 40px;
        align-self: start;
      }

      .ticket .price {
        min-width: 0;
        text-align: left;
        font-size: 1.35rem;
      }

      .trend {
        height: 22px;
        padding: 0 6px;
        margin-left: 6px;
        font-size: .68rem;
      }

      .ticket .name {
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 1;
        -webkit-box-orient: vertical;
      }

      .ticket .addr {
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 1;
        -webkit-box-orient: vertical;
      }

      #map {
        height: 58vh;
        min-height: 360px;
      }
    }

    @media (max-width: 420px) {
      .header-confidence {
        display: none;
      }

      .search-panel {
        padding: 12px;
      }

      .search-method-card {
        padding: 13px;
      }

      .results-head {
        display: flex;
        scroll-margin-top: calc(66px + env(safe-area-inset-top) + 16px);
      }

      #meta-bar {
        max-width: none;
        margin-bottom: 0;
      }

      .view-toggle {
        width: 100%;
      }

    }

    @media (prefers-reduced-motion: reduce) {

      *,
      *::before,
      *::after {
        scroll-behavior: auto !important;
        transition: none !important;
        animation-duration: .001ms !important;
      }
    }
