.mindmap-section{background:#f4f8f6}.mindmap-shell{overflow:hidden;border:1px solid rgba(11,79,61,.18);border-radius:16px;background:#fff;box-shadow:0 22px 70px #0b4f3d12}.mindmap-toolbar{min-height:82px;padding:16px 20px;display:flex;align-items:end;justify-content:space-between;gap:20px;border-bottom:1px solid rgba(11,79,61,.18);background:#fbfdfc}.mindmap-search{display:grid;gap:7px;width:min(430px,100%)}.mindmap-search span{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#17664a;font-weight:850}.mindmap-search input{width:100%;height:42px;padding:0 14px;border:1px solid #aac5b9;border-radius:8px;background:#fff;outline:none;color:#333}.mindmap-search input:focus{border-color:#17664a;box-shadow:0 0 0 3px #17664a19}.map-controls{display:flex;align-items:center;gap:6px}.map-controls button,.map-results button{min-height:36px;padding:0 11px;border:1px solid rgba(11,79,61,.18);border-radius:7px;background:#fff;color:#0b4f3d;font-size:10px;font-weight:800;cursor:pointer}.map-controls button:hover,.map-results button:hover{border-color:#17664a;background:#eaf2ee}.map-controls output{min-width:46px;text-align:center;color:#687a73;font-size:10px;font-weight:800}.map-results{padding:10px 20px;display:none;align-items:center;gap:7px;overflow-x:auto;border-bottom:1px solid rgba(11,79,61,.18);background:#f1f6f3}.map-results.visible{display:flex}.map-results span{flex:0 0 auto;margin-right:5px;color:#17664a;font-size:10px;font-weight:850}.map-results button{flex:0 0 auto;height:30px;min-height:30px}.mindmap-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;min-height:600px}.mindmap-viewport{max-height:680px;overflow:auto;background-color:#f9fbfa;background-image:linear-gradient(#17664a0b 1px,transparent 1px),linear-gradient(90deg,#17664a0b 1px,transparent 1px);background-size:28px 28px}.mindmap-viewport svg{display:block}.map-connectors path{fill:none;stroke:#6fa187;stroke-width:1.6}.map-node rect{fill:#fff;stroke:#a5c3b6;stroke-width:1.2;cursor:pointer;filter:drop-shadow(0 5px 6px #0b4f3d12)}.map-node text{fill:#193a31;font:750 11px Arial,Helvetica,sans-serif;pointer-events:none}.map-node.probada rect{stroke:#4b9977}.map-node.restringida rect{stroke:#d2a24d}.map-node.pendiente rect{stroke:#bd7b69}.map-node.futura rect{stroke:#668bb5}.map-node.active rect{fill:#0b4f3d;stroke:#0b4f3d;stroke-width:2}.map-node.active>text{fill:#fff}.map-node.match rect{stroke:#e6ae4c;stroke-width:3}.map-toggle circle{fill:#17664a;stroke:#fff;stroke-width:2;cursor:pointer}.map-toggle text{fill:#fff;font:800 15px Arial;pointer-events:none}.map-node.active .map-toggle circle{fill:#e6ae4c}.map-node.active .map-toggle text{fill:#0b4f3d}.map-detail{padding:34px 26px;border-left:1px solid rgba(11,79,61,.18);background:#0b4f3d;color:#fff}.map-detail>small{color:#e6ae4c;font-size:9px;text-transform:uppercase;letter-spacing:.13em;font-weight:850}.map-detail h3{margin:18px 0 12px;font:750 25px/1.08 Arial,Helvetica,sans-serif;letter-spacing:-.04em}.map-detail>p{color:#c5d8d0;font-size:12px;line-height:1.65}.status-tag{display:inline-block;margin-top:10px;padding:7px 9px;border:1px solid #ffffff38;border-radius:99px;color:#fff;font-size:8px;text-transform:uppercase;letter-spacing:.12em;font-weight:850}.status-tag.probada{background:#1c7354}.status-tag.restringida{background:#856020}.status-tag.pendiente{background:#854d40}.status-tag.futura{background:#355f89}.map-summary{margin-top:34px;padding-top:24px;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;border-top:1px solid #ffffff20}.map-summary b{color:#e6ae4c;font-size:24px;line-height:1}.map-summary span{align-self:center;color:#a8c1b8;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.map-help{margin-top:28px!important;padding:15px;border-radius:8px;background:#ffffff0d}.map-loading{min-height:460px;display:grid;place-items:center;color:#17664a;font-weight:800}
.footer-legal{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px 22px;padding-top:24px;border-top:1px solid #ffffff1f}.footer-legal button,.footer-legal a{padding:0;border:0;background:none;color:#b8d7e7;font-size:11px;cursor:pointer}.footer-legal button:hover,.footer-legal a:hover{color:#fff;text-decoration:underline}.footer-note{margin:0!important;padding-top:20px!important;color:#8eaaa0!important}.legal-overlay{position:fixed;z-index:90;inset:0;padding:20px;display:grid;place-items:center;background:#051410c7;backdrop-filter:blur(12px)}.legal-modal{position:relative;width:min(680px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:54px 48px 42px;border-radius:18px;background:#fff;box-shadow:0 40px 120px #0006}.legal-close{position:absolute;z-index:2;top:14px;right:14px;width:38px;height:38px;border:0;border-radius:50%;background:#16345b;color:#fff;font-size:24px;cursor:pointer}.legal-modal>small{color:#17664a;font-size:9px;text-transform:uppercase;letter-spacing:.13em;font-weight:850}.legal-modal h2{margin:12px 0 22px;color:#16345b;font-size:38px}.legal-modal h3{margin:25px 0 8px;color:#0b4f3d;font:750 17px Arial,Helvetica,sans-serif}.legal-modal p{color:#60736c;font-size:13px;line-height:1.7}.legal-modal>.legal-save{margin-top:25px;padding:14px 18px;border:0;border-radius:8px;background:#0b4f3d;color:#fff;font-size:11px;font-weight:800;cursor:pointer}.cookie-choice{margin:12px 0;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid rgba(11,79,61,.18);border-radius:10px;background:#f4f8f6}.cookie-choice span{display:grid;gap:4px}.cookie-choice b{font-size:13px;color:#0b4f3d}.cookie-choice small{font-size:10px;color:#71837b}.cookie-choice input{width:21px;height:21px;accent-color:#17664a}

/* Revisión visual r23: fichas completas y controles legibles en móvil. */
.mindmap-search span,
.map-controls button,
.map-results button,
.map-controls output,
.map-results span,
.map-detail>small,
.map-summary span,
.footer-legal button,
.footer-legal a,
.legal-modal>small,
.legal-modal>.legal-save,
.cookie-choice small{font-size:12px}
.status-tag{font-size:11px}
.map-node text{font:750 12px Arial,Helvetica,sans-serif}
.brand small,
.sevi-signature small,
.sevi-signature em{font-size:9px}
.hero-metrics span,
.data-chip,
.range-labels,
.sim-results article>span,
.comparison-row.head,
.comparison-row em,
.system-tabs button span,
.system-kicker,
.roadmap-line article>span,
.source-image span,
.source-copy small,
.modal-copy small{font-size:11px!important}
.source-copy b,
.button.secondary,
.footer-links,
.footer-note{font-size:12px}
@media (width<=640px){.source-grid .source-card{grid-column:1/-1}.hero-metrics span{font-size:11px}}
@media(max-width:980px){.mindmap-layout{grid-template-columns:1fr}.map-detail{border-left:0;border-top:1px solid rgba(11,79,61,.18)}}
@media(max-width:640px){.mindmap-toolbar{align-items:stretch;flex-direction:column}.map-controls{flex-wrap:wrap}.map-controls button:first-child,.map-controls button:nth-child(2){flex:1}.mindmap-viewport{max-height:540px}.map-detail{padding:28px 22px}.footer-legal{flex-wrap:wrap}.legal-modal{padding:48px 22px 28px}.legal-modal h2{font-size:32px}}

.topbar nav .map-nav-link{opacity:1;color:#17664a}
.mindmap-section .section-heading{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.mindmap-section .section-heading h2{margin:0;max-width:780px;text-align:left;font-size:clamp(38px,4.2vw,60px);line-height:1.02}
.mindmap-section .section-heading>p{max-width:780px;text-align:left}
@media(max-width:640px){.mindmap-section .section-heading h2{font-size:38px}}

/* Contraste legal del pie */
.footer-legal button,.footer-legal a{color:#fff;font-weight:700}
.footer-note{color:#fff!important;opacity:.68}

/* Identidad oficial de VeciRuta */
.topbar .brand{width:190px;height:58px;flex:0 0 190px;background:url("../media/veciruta-logo.png") center/contain no-repeat}
.topbar .brand>*{display:none!important}

/* Iconos funcionales del recorrido */
.journey-card .step-icon span{width:88px;height:88px;border-radius:22px;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:68px 68px;transform:none;box-shadow:0 12px 28px #0b4f3d1f}
.journey-card .step-icon span:before,.journey-card .step-icon span:after{display:none!important}
.journey-card .icon-01 span{background-image:url("./icons/journey-book.svg")}
.journey-card .icon-02 span{background-image:url("./icons/journey-share.svg")}
.journey-card .icon-03 span{background-image:url("./icons/journey-help.svg")}
.journey-card .icon-04 span{background-image:url("./icons/journey-points.svg")}

/* Pie coherente con las demás subwebs */
.vec-footer-original{display:none!important}
footer.veciruta-site-footer{display:block;padding:48px max(32px,50vw - 590px) 24px;background:#0d143f;color:#cbd2e9}
.vec-footer-shell{width:100%;margin:0 auto}
.vec-footer-grid{display:grid;grid-template-columns:1.3fr .7fr .7fr;gap:42px}
.vec-footer-logo{display:block;width:210px;max-height:112px;object-fit:contain;object-position:left center;margin:0 0 18px;padding:7px;border-radius:8px;background:#fff}
.vec-footer-grid p{max-width:430px;margin:0;color:#cbd2e9;font-size:13px;line-height:1.65}
.vec-footer-grid h2{margin:0 0 12px;color:#fff;font:800 12px Arial,Helvetica,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.vec-footer-grid a{display:block;margin:8px 0;color:#cbd2e9;font-size:12px;text-decoration:none}
.vec-footer-grid a:hover{color:#fff}
.vec-footer-bottom{margin:38px 0 0!important;padding-top:20px!important;border-top:1px solid #ffffff21;color:#cbd2e9!important;font-size:12px!important;opacity:1!important}
footer.veciruta-site-footer .footer-legal{margin-top:22px;justify-content:flex-start}
@media(max-width:980px){.topbar .brand{width:160px;flex-basis:160px}.vec-footer-grid{grid-template-columns:1fr 1fr}.vec-footer-grid>:first-child{grid-column:1/-1}}
@media(max-width:640px){.topbar .brand{width:135px;height:48px;flex-basis:135px}.vec-footer-grid{grid-template-columns:1fr}.vec-footer-grid>:first-child{grid-column:auto}.vec-footer-logo{width:190px}}
