@font-face{font-family:"Space Grotesk";src:url("fonts/space-grotesk-variable.woff2") format("woff2");font-style:normal;font-weight:300 700;font-display:swap}
@font-face{font-family:"Fira Sans";src:url("fonts/fira-sans-latin-400-normal.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Fira Sans";src:url("fonts/fira-sans-latin-500-normal.woff2") format("woff2");font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:"Fira Sans";src:url("fonts/fira-sans-latin-600-normal.woff2") format("woff2");font-style:normal;font-weight:600;font-display:swap}
:root{
  --carbon:#252b23;--lima:#d8ec71;--marfil:#f1f4e9;--white:#fff;
  --muted:#67735d;--line:#dce2d4;--olive:#4d6018;--pale:#f7f8f3;
  --green:#28725e;--blue:#416c99;--ochre:#946334;
  font-family:"Fira Sans",Arial,sans-serif;color:var(--carbon);background:var(--white);font-size:16px;line-height:1.6;color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:28px}
body{margin:0}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:"Space Grotesk",Arial,sans-serif;font-weight:500;line-height:1.15;letter-spacing:-.045em}
h2{font-size:clamp(30px,3.1vw,42px)}
h3{font-size:25px}
a{color:var(--olive);text-underline-offset:5px}
button,input,select,textarea{font:inherit}
button,summary{cursor:pointer}
button{color:inherit}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
a,button{touch-action:manipulation}
button:disabled{cursor:default}
img{display:block;max-width:100%;height:auto}
svg{display:block;max-width:100%}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex="0"]:focus-visible{outline:3px solid var(--olive);outline-offset:5px}
[hidden]{display:none!important}
::selection{background:var(--lima);color:var(--carbon)}
.wrap{width:min(1240px,calc(100% - 80px));margin-inline:auto}
.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip:focus{display:inline-block;margin:12px 40px}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-block:26px}
.brand{display:inline-flex;flex-shrink:0;align-items:center}
.site-header .brand img{width:160px}
.site-header nav{display:flex;align-items:center;gap:32px}
.site-header nav>a:not(.button){display:inline-flex;align-items:center;min-height:44px;color:var(--carbon);text-decoration:none;font-size:14px}
.site-header nav>a:hover{text-decoration:underline}
.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:50px;border:1px solid transparent;border-radius:8px;padding:12px 22px;font-size:14px;font-weight:500;line-height:1.4;text-decoration:none;transition:background-color .16s,transform .16s}
.button span[aria-hidden]{font-size:20px;line-height:1}
.button:hover{transform:translateY(-1px)}
.primary{background:var(--carbon);color:var(--white)}
.primary:hover{background:#3b4635}
.lime{background:var(--lima);color:var(--carbon)}
.lime:hover{background:#e5f49a}
.hero{border-radius:20px;background:var(--carbon);color:var(--white);text-align:center;padding:47px 40px 30px;overflow:hidden}
.eyebrow{color:#d5ddcd;font-size:13px;letter-spacing:.055em}
.hero h1{font-size:clamp(46px,5.5vw,76px);font-weight:500;line-height:1.06;margin-top:22px;letter-spacing:-.055em}
.hero h1 span{color:var(--lima)}
.hero-description{margin:25px auto 28px;color:#d5ddcd;font-size:18px;line-height:1.6}
.hero-actions{display:flex;align-items:center;justify-content:center;gap:30px}
.hero-link{display:inline-flex;align-items:center;min-height:50px;gap:20px;color:var(--white);font-size:14px;text-decoration:none}
.hero-link:hover{text-decoration:underline}
.hero a:focus-visible{outline-color:var(--lima)}
.hero-topics{display:flex;align-items:center;justify-content:center;gap:28px;color:#c4cdba;font-size:12px;margin-top:36px}
.hero-topics span+span::before{content:"/";margin-right:28px;color:#a4b296}
.section{padding-block:88px}
.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:32px;margin-bottom:30px}
.section-heading>p{font-size:14px;color:var(--muted)}
.tour{background:var(--pale);border-radius:16px;overflow:hidden}
.tour-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:16px 20px;border-bottom:1px solid var(--line)}
.tour-nav button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;border:1px solid transparent;background:transparent;border-radius:7px;font-size:14px;color:#58634f;transition:background .16s,color .16s}
.tour-nav button:hover{background:#e8eddf;color:var(--carbon)}
.tour-nav button[aria-selected="true"]{color:var(--carbon);background:var(--lima);font-weight:500}
.step{font-family:"Space Grotesk",sans-serif;font-size:12px;opacity:.8}
.tour-panel{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:60px;min-height:415px;padding:45px 52px}
.tour-copy{max-width:350px}
.overline{display:block;font-size:12px;letter-spacing:.045em;color:var(--muted);margin-bottom:16px}
.tour-copy h3{font-size:clamp(25px,2.5vw,34px);line-height:1.17}
.tour-copy p{margin-top:20px;color:#59644f;font-size:15px;line-height:1.7}
.text-button{padding:0;background:none;border:0;min-height:44px;color:var(--olive);font-size:14px;text-decoration:underline;text-underline-offset:5px}
.text-link,.next-step{display:inline-flex;align-items:center;gap:20px;min-height:44px;color:var(--olive);font-size:14px;font-weight:500;text-decoration:none}
.text-link:hover,.next-step:hover{text-decoration:underline}
.tour-copy .next-step,.tour-copy .text-link{margin-top:17px}
.product-example{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:21px 24px;font-size:12px;min-width:0;box-shadow:0 4px 16px #252b2303}
.example-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;font-size:12px}
.example-heading strong{font-weight:500}
.tag{background:var(--marfil);color:#536046;border-radius:5px;padding:4px 9px;font-size:10px;line-height:1.4}
.network{width:100%;height:auto}
.network-grid{fill:none;stroke:#f0f2eb;stroke-width:1}
.network-routes{stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
.route-one{stroke:var(--green)}
.route-two{stroke:var(--blue)}
.route-three{stroke:var(--ochre)}
.network-stops{fill:white;stroke:var(--carbon);stroke-width:1.8}
.network-stops .interchange{stroke-width:2.2}
.network-labels{fill:#4f5948;font:12px "Fira Sans",sans-serif}
.network-legend{display:flex;gap:20px;margin-top:15px;color:#59644f;font-size:10px;flex-wrap:wrap}
.network-legend>span,.roster-legend>span{display:inline-flex;align-items:center;gap:6px}
.key{display:inline-block;width:8px;height:8px;border-radius:2px;flex-shrink:0}
.line-one{background:var(--green)}
.line-two{background:var(--blue)}
.line-three{background:var(--ochre)}
.example-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding-top:13px;border-top:1px solid #edf0e7;color:var(--muted);font-size:10px}
.gantt-hours{display:flex;justify-content:space-between;padding-left:75px;color:var(--muted);font-size:10px;margin-top:27px;margin-bottom:8px;font-variant-numeric:tabular-nums}
.vehicle-rows{display:grid;gap:7px}
.vehicle-row{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:7px;min-height:49px;width:100%;border:1px solid transparent;border-radius:6px;padding:6px;background:transparent;font-size:10px;text-align:left}
.vehicle-row:hover{background:var(--pale)}
.vehicle-row[aria-pressed="true"]{background:var(--marfil);border-color:#a8b39c}
.vehicle-name{font-weight:500;white-space:nowrap}
.gantt-track{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:29px;column-gap:2px;background:repeating-linear-gradient(to right,transparent 0,transparent calc(33.333% - 1px),#e3e8dc calc(33.333% - 1px),#e3e8dc 33.333%)}
.trip{display:flex;align-items:center;justify-content:center;grid-row:1;color:white;border-radius:3px;font-size:9px;overflow:hidden}
.trip-a{grid-column:1/3}.trip-b{grid-column:4/6}.trip-c{grid-column:7/10}.trip-d{grid-column:11/13}
.trip-e{grid-column:1/4}.trip-f{grid-column:5/8}.trip-g{grid-column:9/13}
.trip-h{grid-column:2/5}.trip-i{grid-column:6/9}.trip-j{grid-column:10/13}
.vehicle-detail{display:grid;gap:4px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;min-height:56px}
.vehicle-detail strong{color:var(--carbon);font-weight:500}
.duty{padding-block:14px 18px;border-bottom:1px solid #edf0e7}
.duty-heading{display:flex;justify-content:space-between;gap:12px;font-size:11px;margin-bottom:13px}
.duty-heading strong{font-weight:500}
.duty-heading>span{color:var(--muted)}
.duty-track{display:grid;grid-template-columns:1fr 28px 1fr;gap:3px;height:27px}
.duty-track>span{border-radius:3px}
.duty-pause{background:repeating-linear-gradient(135deg,#e7d8ba,#e7d8ba 3px,#faf5e8 3px,#faf5e8 5px)}
.duty-labels{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:8px;font-size:10px;color:var(--muted)}
.duty-track.split{grid-template-columns:1fr .8fr 1fr}
.duty-cut{background:#f1f3ec}
.rule-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:19px}
.rule-tags span{padding:4px 8px;border:1px solid var(--line);border-radius:4px;font-size:10px;color:#59644f}
.week-navigation{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.week-navigation strong{font-size:12px;font-weight:500}
.icon-button{border:1px solid var(--line);background:var(--white);border-radius:5px;width:44px;height:44px;font-size:17px}
.icon-button:disabled{color:#b3bbab}
.icon-button:not(:disabled):hover{background:var(--marfil)}
.roster-table{border-collapse:separate;border-spacing:4px;width:100%;table-layout:fixed;font-variant-numeric:tabular-nums;font-size:10px}
.roster-table th{font-weight:400;color:var(--muted)}
.roster-table thead th{padding-bottom:5px}
.roster-table th:first-child{width:35px;white-space:nowrap;text-align:left}
.roster-table td{padding:0;text-align:center}
.roster-table td span{display:flex;align-items:center;justify-content:center;min-height:32px;background:#e5ecd3;color:#43551f;border-radius:4px}
.roster-table td .rest{color:#6e7666;background:#f1f3ed}
.roster-key{background:#d6e3b4}.rest-key{background:#eaede3;border:1px solid #b7c0aa}
.roster-legend{justify-content:flex-start;gap:23px}
.uses-section{background:var(--pale);padding-block:65px}
.roles{display:grid;grid-template-columns:1fr 1fr;gap:100px;margin-top:39px}
.roles article{display:flex;align-items:flex-start;gap:24px}
.role-icon{color:var(--olive);width:38px;height:38px;flex-shrink:0}
.roles h3{font-size:23px;letter-spacing:-.03em;padding-top:5px}
.roles ul{padding:0;list-style:none;font-size:14px;color:#59644f;line-height:2;margin:17px 0 0}
.start-intro{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px;margin-block:36px}
.start-intro p:first-child{font-family:"Space Grotesk",sans-serif;font-size:25px;letter-spacing:-.025em;line-height:1.4}
.start-intro p:last-child{font-size:15px;color:#59644f;max-width:480px}
.start-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.start-steps article{border:1px solid var(--line);border-radius:10px;padding:26px 27px 29px}
.step-number{display:flex;align-items:center;justify-content:center;background:var(--marfil);color:var(--olive);border-radius:6px;width:36px;height:36px;font-family:"Space Grotesk",sans-serif;font-size:13px;margin-bottom:25px}
.start-steps h3{font-size:23px;letter-spacing:-.035em}
.start-steps p{font-size:14px;color:#59644f;line-height:1.75;margin-top:15px}
.start-bottom{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:20px;font-size:12px;color:var(--muted)}
.start-bottom .text-link{white-space:nowrap}
.faq-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;padding-block:0 88px}
.faq-list{border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:75px;padding:20px 0;font-size:14px;list-style:none;line-height:1.5}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";font-family:"Space Grotesk",sans-serif;color:var(--olive);font-size:23px;flex-shrink:0;line-height:1}
.faq-list details[open] summary::after{content:"−"}
.faq-list details p{padding:0 32px 23px 0;font-size:14px;line-height:1.8;color:#59644f}
.contact-section{padding-block:70px;background:var(--marfil)}
.contact-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px}
.contact-copy h2{font-size:clamp(36px,3.4vw,47px)}
.contact-copy>p{font-size:16px;color:#59644f;max-width:315px;margin-top:24px}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:flex;flex-direction:column;margin-bottom:18px;min-width:0}
.field label{font-size:12px;margin-bottom:6px;font-weight:500}
.field label span{font-weight:400;color:#59644f}
.field input,.field select,.field textarea{width:100%;border:1px solid #8b977e;border-radius:6px;background:var(--white);color:var(--carbon);padding:10px 12px;font-size:15px;min-height:46px;line-height:1.5}
.field textarea{resize:vertical;min-height:110px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--olive)}
.privacy-note{font-size:12px;color:#59644f;margin-bottom:20px}
.privacy-note summary{display:inline-flex;align-items:center;min-height:44px;list-style:none;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.privacy-note summary::-webkit-details-marker{display:none}
.privacy-note p{line-height:1.8;margin-block:5px 20px}
.privacy-consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.7;margin-block:6px 8px;cursor:pointer}
.privacy-consent input{width:18px;height:18px;margin-top:2px;accent-color:var(--olive);flex-shrink:0}
.privacy-consent a{color:inherit;text-underline-offset:3px}
.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-feedback{padding:24px;border:1px solid #a8b39c;border-radius:10px;background:#fff}
.form-feedback:focus{outline:2px solid var(--olive);outline-offset:4px}
.form-feedback h3{font-size:23px}
.form-feedback p{font-size:14px;line-height:1.7;color:#59644f;margin-top:8px}
.form-feedback.is-error{margin-top:20px;border-color:#a74535}
.form-feedback.is-error h3{color:#8b3426}
#contact-form button:disabled{opacity:.65;cursor:wait}
.no-script-contact{font-size:14px}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;padding-block:32px}
.site-footer .brand img{width:140px}
.site-footer>span,.site-footer>a:not(.brand){font-size:11px;color:#59644f}
.site-footer>a:not(.brand){display:inline-flex;align-items:center;gap:14px;min-height:44px;text-decoration:none}
.site-footer>a:hover{text-decoration:underline}
.enhanced .tour-panel:not(.is-active){display:none}
body:not(.enhanced) .tour-panel+.tour-panel{border-top:1px solid var(--line)}
body:not(.enhanced) .tour-nav,body:not(.enhanced) .next-step,body:not(.enhanced) #contact-form{display:none}

@media(min-width:1000px){.product-example{min-height:318px}.network-example{min-height:338px}}
@media(max-width:1050px){
  .site-header nav{gap:22px}.tour-panel{padding:36px;gap:35px;grid-template-columns:.85fr 1.15fr}
  .roles{gap:45px}.faq-section,.contact-layout{gap:45px}
  .start-steps article{padding:23px}.start-steps h3{font-size:21px}
}
@media(max-width:800px){
  .wrap{width:calc(100% - 48px)}.site-header{gap:24px;padding-block:21px}
  .site-header nav{gap:22px}.site-header nav>a[href="#puesta-en-marcha"]{display:none}
  .hero{padding:43px 28px 28px}.hero h1{font-size:60px}
  .section{padding-block:65px}.tour-panel{grid-template-columns:1fr;gap:28px;padding:32px;min-height:auto}
  .tour-copy{max-width:none}.tour-copy h3 br{display:none}.tour-copy p{max-width:520px;margin-top:14px}
  .tour-copy .next-step,.tour-copy .text-link{margin-top:8px}.product-example{width:100%;max-width:540px;justify-self:center}
  .network{max-height:225px}.roles{gap:40px}.roles article{gap:18px}.roles h3{font-size:21px}
  .roles ul{font-size:13px}.uses-section{padding-block:52px}
  .start-intro{gap:35px}.start-intro p:first-child{font-size:23px}.start-intro p:last-child{font-size:14px}
  .start-steps{gap:12px}.start-steps article{padding:20px 17px}.start-steps h3{font-size:20px}.start-steps p{font-size:13px}
  .start-bottom{align-items:flex-start;gap:25px}.start-bottom>span{padding-top:10px}
  .faq-section{grid-template-columns:1fr;gap:28px;padding-bottom:65px}.faq-section h2 br{display:none}
  .contact-layout{grid-template-columns:1fr;gap:35px}.contact-copy h2 br{display:none}.contact-copy>p{max-width:none;margin-top:16px}
  .contact-section{padding-block:52px}.contact-copy .overline{margin-bottom:12px}
  .site-footer{gap:18px 26px}.site-footer>span{margin-right:auto}
}
@media(max-width:540px){
  .wrap{width:calc(100% - 32px)}.site-header{padding-block:18px;gap:16px}
  .site-header .brand img{width:140px}.site-header nav{gap:12px}.site-header nav>a:not(.button){display:none}
  .site-header .login{min-height:44px;padding:10px 15px;gap:16px}
  .hero{border-radius:14px;padding:36px 18px 25px}.eyebrow{font-size:11px;letter-spacing:.02em;max-width:255px;margin-inline:auto}
  .hero h1{font-size:clamp(36px,10.2vw,54px);margin-top:22px;line-height:1.09}
  .hero-description{font-size:16px;margin-block:24px}.desktop-break{display:none}
  .hero-actions{flex-direction:column;gap:9px}.hero-actions .button{padding-inline:18px;font-size:13px;gap:16px}.hero-link{font-size:13px;min-height:44px}
  .hero-topics{gap:10px;font-size:10px;margin-top:24px}.hero-topics span+span::before{margin-right:10px}
  .section{padding-block:52px}.section-heading{display:block;margin-bottom:23px}.section-heading>p{margin-top:8px;font-size:13px}
  .tour{border-radius:10px}.tour-nav{padding:12px;gap:5px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .tour-nav button{min-height:44px;font-size:12px;gap:8px}.tour-panel{padding:27px 18px 22px;gap:23px}
  .tour-copy h3{font-size:28px;line-height:1.17}.overline{font-size:11px;margin-bottom:12px}.tour-copy p{font-size:14px}
  .product-example{padding:18px 13px;border-radius:7px}.example-heading{font-size:11px;margin-bottom:14px}.tag{font-size:9px}
  .network{min-height:150px}.network-labels{font-size:13px}.network-legend{gap:14px;font-size:10px}
  .example-bottom{font-size:9px}.gantt-hours{padding-left:60px;font-size:9px;margin-top:23px}.vehicle-row{grid-template-columns:49px 1fr;gap:5px;font-size:9px;padding:4px}
  .trip{font-size:8px}.vehicle-detail{font-size:10px}.rule-tags{gap:5px}.rule-tags span{padding:4px 6px;font-size:9px}
  .roster-table{border-spacing:3px;font-size:9px}.roster-table th:first-child{width:30px}.roster-table td span{min-height:30px}
  .uses-section{padding-block:45px}.roles{grid-template-columns:1fr;gap:32px;margin-top:30px}.roles h3{font-size:22px}
  .roles ul{font-size:14px;line-height:1.9;margin-top:12px}.role-icon{width:33px;height:33px}
  .start-intro{grid-template-columns:1fr;gap:17px;margin-block:25px}.start-intro p:first-child{font-size:23px}.start-intro p:last-child{font-size:14px}
  .start-steps{grid-template-columns:1fr;gap:12px}.start-steps article{padding:23px}.step-number{margin-bottom:19px}
  .start-steps h3{font-size:23px}.start-steps p{font-size:14px}.start-bottom{display:block;margin-top:19px}.start-bottom>span{display:block;font-size:12px}
  .start-bottom .text-link{margin-top:12px}.faq-section{padding-bottom:52px;gap:25px}.faq-list summary{min-height:72px;font-size:14px;gap:19px}
  .faq-list details p{font-size:14px;padding-right:20px}.contact-section{padding-block:45px}.contact-layout{gap:32px}
  .contact-copy h2{font-size:36px;max-width:330px}.contact-copy>p{font-size:15px}
  .field-grid{grid-template-columns:1fr;gap:0}.field input,.field select,.field textarea{font-size:16px}
  .form-feedback{padding:20px 16px}.site-footer{padding-block:27px;gap:15px 25px;justify-content:flex-start}
  .site-footer .brand{width:100%}.site-footer>span{width:100%;margin-bottom:1px}.site-footer>a:not(.brand){font-size:11px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{
  .site-header nav,.hero-actions,.tour-nav,.next-step,.text-link,.contact-form-area,.site-footer a:not(.brand){display:none!important}
  .hero{background:white;color:var(--carbon);border:1px solid var(--line)}.hero h1 span,.eyebrow,.hero-description,.hero-topics{color:var(--carbon)}
  .tour-panel,.enhanced .tour-panel:not(.is-active){display:grid;break-inside:avoid}.section{padding-block:30px}.wrap{width:100%}
  .uses-section,.contact-section{padding-block:30px}.faq-list details p{display:block}
}
