/* Gasolineras en ruta — componente nuevo en site-modules.css, 2026-11-09 */
.gb-route-hero{background:linear-gradient(112deg,#071e1a 0%,#0f342c 65%,#123e32 100%);color:#fff;padding:50px 0 57px}
.gb-route-hero .crumbs{display:flex;gap:12px;margin-bottom:26px;color:#c5dfd1;font-size:.88rem}
.gb-route-hero .crumbs a{color:#dbf1e6;text-decoration:none}
.gb-route-hero .kicker{font-size:.76rem;font-weight:850;letter-spacing:.11em;color:#d8eddf}
.gb-route-hero .kicker span{display:inline-block;width:8px;height:8px;background:#a5fa3d;border-radius:50%;margin-right:8px}
.gb-route-hero h1{font-weight:850;line-height:1.04;font-size:clamp(2.4rem,5.2vw,4.9rem);letter-spacing:-.04em;margin:18px 0 16px;max-width:1040px}
.gb-route-hero p{max-width:870px;line-height:1.65;font-size:1.03rem;color:#e0f0e7;margin:0}
.gb-route-section{background:#f3f1e9;padding:40px 0 58px}
.gb-route-section *{box-sizing:border-box}
.gb-route-form{background:#fff;border:1px solid #d7e4dd;border-radius:19px;padding:28px;box-shadow:0 8px 25px #08291e0a;position:relative;z-index:2}
.gb-route-heading,.gb-route-results-head,.gb-route-map-title{display:flex;align-items:center;justify-content:space-between;gap:18px}
.gb-route-heading{margin-bottom:25px}.gb-route-heading h2,.gb-route-results-head h2{font-size:clamp(1.27rem,2.5vw,1.9rem);letter-spacing:-.025em;line-height:1.1;margin:6px 0 0;color:#081f1b}
.gb-route-eyebrow{font-size:.72rem;letter-spacing:.11em;font-weight:800;color:#376a5d}
.gb-route-powered{font-size:.76rem;color:#597b6f;white-space:nowrap}
.gb-route-addresses{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:15px;align-items:end}
.gb-route-field{min-width:0;position:relative}.gb-route-field label,.gb-route-params label{display:flex;flex-direction:column;gap:6px;font-size:.88rem;font-weight:750;color:#142f29}
.gb-route-address>label{display:block;margin-bottom:7px}
.gb-route-input{display:flex;align-items:center;gap:10px;border:1.5px solid #b7ccc1;border-radius:13px;min-height:51px;padding:0 13px;background:#fff}
.gb-route-input:focus-within{border-color:#007a65;box-shadow:0 0 0 3px #007a651c}
.gb-route-input>span{background:#073c32;color:#fff;display:grid;place-items:center;border-radius:7px;width:24px;height:24px;font-weight:800;font-size:.77rem;flex-shrink:0}
.gb-route-input input{border:0!important;outline:none!important;box-shadow:none!important;background:transparent;min-width:0;flex:1;width:100%;font-size:.95rem;padding:12px 0;color:#092a24}
.gb-route-input button{background:#ecf7f0;color:#07634e;border:0;border-radius:9px;padding:9px 11px;cursor:pointer;min-width:34px;flex-shrink:0}
.gb-route-swap{height:49px;width:49px;border-radius:13px;border:1px solid #d5e7dc;background:#eff8f2;font-size:23px;cursor:pointer;color:#0b5647;font-weight:700}
.gb-route-swap:hover,.gb-route-input button:hover{background:#d6f3e5}
.gb-route-suggestions{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:#fff;border:1px solid #d2e1d7;border-radius:10px;z-index:120;box-shadow:0 8px 23px #102b2040;overflow:auto;max-height:260px}
.gb-route-suggestions[hidden]{display:none}.gb-route-suggestions button{display:block;width:100%;padding:11px 13px;text-align:left;background:#fff;color:#14382d;border:0;border-bottom:1px solid #edf3ef;cursor:pointer;font-size:.87rem;line-height:1.4}.gb-route-suggestions button:hover,.gb-route-suggestions button:focus{background:#eff9f3}
.gb-route-params{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:22px 0 24px}
.gb-route-params select,.gb-route-params input,.gb-route-sort select{width:100%;border:1px solid #c3d7cd;border-radius:11px;padding:12px;background:#fff;color:#15382f;font-size:.91rem;min-height:48px}
.gb-route-params input:focus,.gb-route-params select:focus{outline:2px solid #9ed5c0;outline-offset:1px}
.gb-route-filters{background:#f6faf7;border:1px solid #deebe1;padding:17px;border-radius:14px}.gb-route-filters>strong{display:block;font-size:.93rem;color:#18382c;margin-bottom:13px}
.gb-route-filter-grid{display:flex;gap:9px;flex-wrap:wrap}
.gb-route-filter-grid label{cursor:pointer;position:relative}.gb-route-filter-grid input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}
.gb-route-filter-grid span{display:inline-block;padding:9px 13px;border:1px solid #c6dbce;border-radius:100px;color:#1c4839;background:#fff;font-size:.82rem;font-weight:750;transition:background .14s,border .14s,color .14s}
.gb-route-filter-grid input:checked+span{color:white;background:#00644e;border-color:#00644e}.gb-route-filter-grid input:focus-visible+span{outline:3px solid #91d3a8;outline-offset:2px}
.gb-route-filters>small{display:block;color:#5c756b;margin-top:12px;font-size:.78rem}
.gb-route-actions{display:flex;align-items:center;gap:19px;flex-wrap:wrap;margin-top:23px}
.gb-route-go{font-weight:850!important;background:#a9fa36!important;border:0!important;color:#09251a!important;border-radius:999px!important;padding:15px 22px!important;box-shadow:none!important;cursor:pointer;min-height:49px}
.gb-route-go:hover{background:#91e728!important}.gb-route-go:disabled{opacity:.65;cursor:not-allowed}
.gb-route-actions [data-route-status]{color:#47665a;font-size:.85rem;line-height:1.5;flex:1}.gb-route-actions [data-route-status].is-error{color:#a83729}
.gb-route-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0}
.gb-route-summary[hidden],.gb-route-content[hidden]{display:none!important}
.gb-route-summary>div{padding:17px 19px;border:1px solid #d1e3d7;background:#fff;border-radius:14px;display:flex;flex-direction:column;gap:8px}.gb-route-summary>div span{color:#5b756a;font-size:.78rem;font-weight:650}.gb-route-summary>div strong{font-size:clamp(1.13rem,2vw,1.55rem);font-weight:850;color:#0d3b2f}
.gb-route-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);align-items:start;gap:20px}
.gb-route-map-card,.gb-route-results-card{background:#fff;border:1px solid #d7e3d9;border-radius:17px;min-width:0;overflow:hidden;box-shadow:0 8px 18px #153c2410}
.gb-route-map-card{position:sticky;top:18px;padding:15px}.gb-route-map-title{padding:3px 4px 15px;flex-wrap:wrap}.gb-route-map-title strong{font-size:1rem;color:#15382f}.gb-route-map-title span{font-size:.77rem;color:#668176}
.gb-route-map{height:min(66vh,610px);min-height:370px;border:1px solid #dce7dd;border-radius:10px;background:#ecf3ed;color:#455f53;padding:0}
.gb-route-map .leaflet-container{font-family:inherit}.gb-route-map-legend{font-size:.78rem;color:#547064;margin:13px 5px 3px}.gb-route-map-legend i{width:24px;height:4px;background:#0b6b57;display:inline-block;border-radius:5px;vertical-align:middle;margin-right:6px}.gb-route-map-legend span{color:#ef7d17;margin:0 5px 0 16px}
.gb-route-results-card{padding:22px}.gb-route-count{font-size:.79rem;font-weight:800;background:#e9f8ef;padding:8px 11px;border-radius:999px;color:#195b40;white-space:nowrap}
.gb-route-results-head h2{font-size:1.55rem}
.gb-route-sort{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:19px 0}.gb-route-sort label{display:flex;flex-direction:column;gap:5px;color:#365c4a;font-size:.76rem;font-weight:800}
.gb-route-sort select{min-height:39px;padding:8px 9px;font-size:.83rem}
.gb-route-reference{border-left:4px solid #7ce23c;background:#eff9ed;color:#234b37;border-radius:0 10px 10px 0;padding:13px 14px;font-size:.79rem;line-height:1.55;margin:13px 0}.gb-route-reference[hidden]{display:none}
.gb-route-results{display:grid;gap:12px}.gb-route-station{border:1px solid #d7e5db;border-radius:12px;padding:17px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;background:#fff;min-width:0}.gb-route-station.is-recommended{border:2px solid #0c9870;background:#f6fff8;box-shadow:0 5px 16px #2d71301a}
.gb-route-station-main{min-width:0}.gb-route-station-top{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.gb-route-station h3{font-size:.94rem;line-height:1.32;margin:0;color:#122f28;overflow-wrap:anywhere}.gb-route-station p{margin:5px 0 7px;color:#6a7a73;font-size:.77rem;line-height:1.4}
.gb-route-best{font-size:.68rem;color:#fff;background:#087253;padding:4px 8px;border-radius:8px;font-weight:850}
.gb-route-station-chips{display:flex;gap:6px;flex-wrap:wrap}.gb-route-station-chips span{font-size:.69rem;color:#557267;background:#f1f6f2;padding:5px 7px;border-radius:7px}.gb-route-station-chips .gb-route-yes{color:#006448;background:#dcf4e5}
.gb-route-station-pricing{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}.gb-route-station-pricing strong{font-size:1.02rem;color:#034c3c;white-space:nowrap}.gb-route-station-pricing small{font-size:.72rem;color:#697f73}
.gb-route-detour{grid-column:1/-1;border-top:1px solid #e5eee8;padding-top:9px;display:flex;gap:6px 12px;flex-wrap:wrap;align-items:center}.gb-route-detour strong{font-size:.83rem;color:#2b4739}.gb-route-detour small{font-size:.75rem;color:#5c7165}.gb-route-detour em{font-style:normal;font-size:.77rem;font-weight:750}.gb-route-detour em.positive{color:#04794d}.gb-route-detour em.negative{color:#9b422a}.gb-route-detour em.neutral{color:#5b6c63}
.gb-route-station-actions{grid-column:1/-1;display:flex;gap:7px 13px;flex-wrap:wrap;margin-top:5px;align-items:center}.gb-route-station-actions a,.gb-route-station-actions button{font-family:inherit;font-size:.77rem;font-weight:800;text-decoration:none;border:0;background:none;color:#00654b;padding:4px 0;cursor:pointer}.gb-route-station-actions a:hover,.gb-route-station-actions button:hover{text-decoration:underline}.gb-route-station-actions button:disabled{opacity:.5;cursor:default}
.gb-route-no-results{padding:24px 14px;border:1px dashed #b9d2bf;border-radius:12px;color:#4f6d5d;background:#f8fcf8;font-size:.86rem}
.gb-route-more{display:block;width:100%;margin-top:15px;background:#f0f8f2;border:1px solid #a9d4ba;border-radius:11px;padding:13px;font-weight:800;color:#1a6446;cursor:pointer}.gb-route-more[hidden]{display:none}.gb-route-more:hover{background:#e1f3e9}
.gb-route-guide{padding-top:10px;padding-bottom:10px}.gb-route-explainer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.gb-route-explainer article{background:#fff;border:1px solid #dce8dd;border-radius:13px;padding:22px}.gb-route-explainer article>b{font-size:.83rem;color:#02755d}.gb-route-explainer h3{font-size:1.08rem;margin:10px 0}.gb-route-explainer p,.gb-route-caveats p{color:#526e60;line-height:1.65;font-size:.9rem}.gb-route-caveats{margin-top:25px;max-width:1000px}.gb-route-caveats h2{font-size:1.35rem;color:#193d2e}.gb-route-caveats a{color:#057555;text-decoration:underline}
@media(max-width:1020px){.gb-route-content{grid-template-columns:1fr}.gb-route-map-card{position:static}.gb-route-map{height:440px}.gb-route-params{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.gb-route-hero{padding:30px 0 38px}.gb-route-section{padding:22px 0}.gb-route-form{padding:17px;border-radius:14px}.gb-route-addresses{grid-template-columns:1fr;gap:10px}.gb-route-swap{width:42px;height:37px;margin-left:auto}.gb-route-params{gap:11px;margin:16px 0}.gb-route-heading{align-items:start;flex-direction:column}.gb-route-powered{white-space:normal}.gb-route-filter-grid{gap:6px}.gb-route-filter-grid span{padding:8px 10px}.gb-route-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.gb-route-summary>div{padding:13px}.gb-route-results-card{padding:14px}.gb-route-sort{grid-template-columns:1fr}.gb-route-map-card{padding:10px}.gb-route-map{min-height:340px;height:56vh}.gb-route-explainer{grid-template-columns:1fr}.gb-route-station{padding:12px}.gb-route-station-pricing strong{font-size:.92rem}.gb-route-go{width:100%}.gb-route-actions{gap:9px}}

/* Planificador de rutas: cuadrícula alineada y mensajes de diagnóstico (09/11/2026). */
.gb-route-params{align-items:end}
.gb-route-params>label{display:grid;grid-template-rows:minmax(38px,auto) 48px;align-content:end;gap:8px;min-width:0}
.gb-route-params .gb-route-param-caption{display:flex;flex-wrap:wrap;align-content:end;align-items:end;gap:2px 5px;line-height:1.25;min-height:38px;font-weight:800;color:#142f29}
.gb-route-param-caption small{font-size:.77rem;line-height:1.25;color:#506f61;font-weight:650}
.gb-route-params select,.gb-route-params input{height:48px;min-height:48px;margin:0;width:100%;min-width:0}
.gb-route-actions{align-items:center}
.gb-route-actions [data-route-status].is-error{flex:1 0 100%;display:flex;align-items:center;min-height:48px;margin:3px 0 0;padding:13px 17px;border:1px solid #efc7bd;border-left:4px solid #c44731;border-radius:11px;background:#fff7f4;color:#8c2c1e;font-size:.89rem;line-height:1.55;overflow-wrap:anywhere}
@media(max-width:680px){.gb-route-params>label{grid-template-rows:minmax(38px,auto) 48px}.gb-route-params .gb-route-param-caption{min-height:38px}}
@media(max-width:470px){.gb-route-params{grid-template-columns:1fr 1fr}.gb-route-params .gb-route-param-caption{font-size:.79rem}}

/* Gasolineras en ruta: alternativas, tramos y colores relativos de precio */
.gb-route-via{margin-top:16px;display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1fr);gap:16px;align-items:end}
.gb-route-via .gb-route-field{width:100%;max-width:560px}
.gb-route-via label>span{color:#5d786a;font-size:.8rem;font-weight:550;display:inline}
.gb-route-via .gb-route-input>span{background:#ebe7f7;color:#5a3485}
.gb-route-via p{color:#587265;font-size:.82rem;line-height:1.55;margin:0 0 5px}
.gb-route-choices{background:#fff;border:1px solid #d7e4dd;border-radius:17px;padding:20px 23px;margin:22px 0 16px;box-shadow:0 6px 19px #08291e08}
.gb-route-choices[hidden]{display:none!important}
.gb-route-choice-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.gb-route-choice-heading h2{margin:5px 0 0;font-size:clamp(1.1rem,2vw,1.45rem);color:#163e30}
.gb-route-choice-heading>span{color:#5d776b;font-size:.81rem}
.gb-route-choice-buttons{display:flex;gap:11px;flex-wrap:wrap;margin:16px 0}
.gb-route-choice-buttons button{background:#f6faf7;border:1.5px solid #c7dcd0;border-radius:12px;padding:12px 17px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;cursor:pointer;min-width:190px;flex:1;max-width:310px;text-align:left;color:#183b31}
.gb-route-choice-buttons button strong{font-size:.9rem}.gb-route-choice-buttons button span{font-size:.82rem;color:#60796c}
.gb-route-choice-buttons button.is-active{border-color:#088263;background:#eaf8ee;box-shadow:0 0 0 2px #08826318}
.gb-route-choice-buttons button:hover{border-color:#078c66}
.gb-route-choices>p{margin:3px 0 0;color:#587165;font-size:.82rem;line-height:1.6}
.gb-route-segment{background:#f3f9f5;padding:13px;border:1px solid #d9ebdf;border-radius:12px;display:grid;gap:8px;margin:16px 0 14px}
.gb-route-segment label{font-size:.83rem;font-weight:850;color:#224d3e}
.gb-route-segment select{width:100%;border:1px solid #bed5c7;background:white;border-radius:10px;min-height:43px;padding:9px 12px;color:#183c30;font-size:.85rem}
.gb-route-map-price-key{display:flex;flex-wrap:wrap;gap:6px 16px;margin:9px 0 6px}
.gb-route-map-price-key span{display:inline-flex;align-items:center;gap:5px}.gb-route-map-price-key b{font-size:1.1rem;line-height:1}
.gb-route-map-price-key .is-cheap{color:#07835b}.gb-route-map-price-key .is-middle{color:#e79d14}.gb-route-map-price-key .is-expensive{color:#dc5640}
.gb-route-map-legend{display:block;line-height:1.6}.gb-route-map-legend small{display:block;color:#658074;font-size:.74rem}
.gb-route-legend-alt{color:#8c9f96;font-size:1.4rem;line-height:.5}
.gb-route-station-chips .gb-route-price-chip{font-weight:800}
.gb-route-station-chips .gb-route-price-cheap{color:#08744c;background:#e0f8e7}
.gb-route-station-chips .gb-route-price-middle{color:#92640c;background:#fff1cb}
.gb-route-station-chips .gb-route-price-expensive{color:#a2382b;background:#ffe6df}
.gb-route-station.is-map-selected{outline:3px solid #a5ed65;outline-offset:1px}
.gb-route-map .leaflet-popup-content button[data-route-show-card]{display:block;margin-top:9px;border:0;background:#e4f6ea;color:#075d40;font-size:.82rem;font-weight:800;border-radius:7px;padding:7px 11px;cursor:pointer}
@media(max-width:780px){.gb-route-via{grid-template-columns:1fr;gap:6px}.gb-route-via .gb-route-field{max-width:none}.gb-route-choice-buttons button{min-width:140px}}
@media(max-width:480px){.gb-route-choices{padding:16px}.gb-route-choice-buttons button{max-width:none;width:100%;flex:1 0 100%}}
