*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;color:#333;background-color:#f8f9fa}header{background-color:#1e3c72;color:#fff;padding:.7rem 0;position:sticky;top:0;width:100%;z-index:1000;box-shadow:0 2px 6px rgba(0,0,0,.1);min-height:56px}nav{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:0 1rem;flex-wrap:wrap}.logo{font-size:1.2rem;font-weight:700;text-decoration:none;color:#fff}.nav-links{display:flex;list-style:none;gap:1.5rem;align-items:center;margin:0}.nav-links a{color:#fff;text-decoration:none;padding:.4rem .8rem;border-radius:4px;transition:background-color .3s;font-weight:500;font-size:.9rem}.nav-links a:hover{background-color:rgba(255,255,255,.2)}.nav-links .dropdown{position:relative}.nav-links .dropbtn{cursor:pointer;display:block;outline-offset:2px}.nav-links .dropbtn:focus{outline:2px solid #2a5298}.nav-links .dropdown-content{display:none;position:absolute;background:#fff;min-width:180px;box-shadow:0 8px 16px rgba(0,0,0,.1);z-index:1001;border-radius:8px;margin-top:.5rem;top:100%;left:0;transform:translateY(-10px);opacity:0;transition:opacity .2s,transform .2s;pointer-events:none}.nav-links .dropdown-content[style*="display: block"]{transform:translateY(0);opacity:1;pointer-events:auto}.nav-links .dropdown-content a{color:#2c3e50;padding:.8rem 1.2rem;text-decoration:none;display:block;border-bottom:1px solid #eee;transition:background .2s}.nav-links .dropdown-content a:last-child{border-bottom:0}.nav-links .dropdown-content a:hover,.nav-links .dropdown-content a:focus{background:#f0f0f0;outline:2px solid #1e3c72;outline-offset:-2px}@media (max-width:768px){header{min-height:90px}nav{flex-direction:column;align-items:flex-start;gap:.5rem}.nav-links{width:100%;flex-direction:row;justify-content:space-between;gap:.5rem}.nav-links li{flex:1;text-align:center}.nav-links a{display:block;padding:.5rem;text-align:center;font-size:.85rem;white-space:nowrap}.hero-section{padding:2rem 1rem;margin-bottom:2rem;min-height:140px}.hero-section h1{font-size:1.6rem;margin-bottom:.8rem}.hero-section p{font-size:1rem;margin-bottom:1.5rem}main{padding:1rem}.calculator-container,.info-section,.faq-section{padding:1.2rem}}main{padding:0 1.5rem 1.5rem 1.5rem;max-width:1200px;margin-left:auto;margin-right:auto}.hero-section{background-color:#667eea;color:#fff;padding:2rem 1.5rem;border-radius:15px;text-align:center;margin:0.5rem auto 2rem;box-shadow:0 4px 10px rgba(0,0,0,.08);min-height:180px}.hero-section h1{font-size:1.75rem;margin-bottom:1rem;font-weight:700;line-height:1.3}.hero-section p{font-size:1rem;margin-bottom:1.5rem;opacity:.9;line-height:1.5}@media (min-width:480px){.hero-section h1{font-size:2rem}}@media (min-width:768px){.hero-section{padding:3rem 2rem}.hero-section h1{font-size:2.5rem}.hero-section p{font-size:1.2rem}}.calculator-container{background:#fff;padding:2rem;border-radius:15px;box-shadow:0 10px 30px rgba(0,0,0,.1);margin-bottom:3rem;min-height:420px;contain:layout}.calculator-title{text-align:center;color:#1e3c72;margin-bottom:2rem;font-size:1.8rem}.form-group{margin-bottom:1.5rem;min-height:70px}label{display:block;margin-bottom:.5rem;font-weight:600;color:#1e3c72}select,button{width:100%;padding:12px;border:2px solid #e1e5e9;border-radius:8px;font-size:16px;min-height:48px}select{height:48px}select:focus{outline:0;border-color:#2a5298;box-shadow:0 0 0 3px rgba(42,82,152,.1)}select:focus-visible{outline:2px solid #1e3c72;outline-offset:2px}button{background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff;border:0;cursor:pointer;font-weight:700;margin-top:1rem;transition:transform .2s,box-shadow .2s;touch-action:manipulation}button:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(0,0,0,.2)}button:focus{outline:2px solid #fff;outline-offset:2px}button:active{transform:translateY(0)}.results-container{background:#f8f9fa;padding:2rem;border-radius:10px;margin-top:2rem;border-left:5px solid #1e3c72}.result-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #dee2e6}.result-item:last-child{border-bottom:0}.result-label{font-weight:600;color:#1e3c72}.result-value{font-weight:700;color:#2a5298;font-size:1.1rem}.popular-routes{background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff;padding:2rem;border-radius:15px;margin:2rem 0}.route-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-top:1rem}.route-card{background:rgba(255,255,255,.1);padding:1rem;border-radius:8px;cursor:pointer;transition:transform .2s;min-height:90px}.route-card:hover{transform:translateY(-2px);background:rgba(255,255,255,.2)}.calculator-container{position:relative}.loading{display:none;text-align:center;padding:1rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(255,255,255,0.95);border-radius:10px;z-index:10;min-width:200px;box-shadow:0 4px 15px rgba(0,0,0,0.1)}.loading.show{display:block}.spinner{border:4px solid #f3f3f3;border-top:4px solid #1e3c72;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:0 auto 0.5rem;will-change:transform}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.results-container{padding:2rem;margin-top:2rem;min-height:200px}.info-section{background:#fff;padding:2rem;border-radius:15px;box-shadow:0 10px 30px rgba(0,0,0,.1);margin-bottom:3rem}.section-title{color:#1e3c72;margin-bottom:1.5rem;font-size:1.5rem;border-bottom:3px solid #2a5298;padding-bottom:.5rem}.station-times{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;margin:2rem 0}.time-item{background:#f8f9fa;padding:1rem;border-radius:8px;border-left:4px solid #1e3c72}.faq-section{background:#fff;padding:2rem;border-radius:15px;box-shadow:0 10px 30px rgba(0,0,0,.1);margin-bottom:3rem}.faq-item{margin-bottom:2rem;border-bottom:1px solid #eee;padding-bottom:1rem}.faq-question{font-size:1.2rem;font-weight:600;color:#1e3c72;margin-bottom:1rem}.faq-answer{color:#666;line-height:1.7}.station-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-top:1.5rem}.station-group{background:#f8f9fa;padding:1.5rem;border-radius:10px;box-shadow:0 2px 4px rgba(0,0,0,.05)}.station-group h4{color:#1e3c72;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #2a5298;font-size:1.1rem}.station-group ul{list-style:none;padding:0;margin:0}.station-group li{padding:.5rem 0;color:#444;border-bottom:1px solid #eee;transition:all .3s ease}.station-group li:last-child{border-bottom:0}.station-group li:hover{color:#1e3c72;padding-left:.5rem}@media (max-width:768px){.station-list{grid-template-columns:1fr}}.map-container{width:100%;margin:2rem 0;overflow:hidden;border-radius:10px}.map-container img{width:100%;height:auto;max-width:100%;display:block;aspect-ratio:4/3}.map-container figcaption{margin-top:1rem;font-style:italic;color:#666;font-size:.9rem;text-align:center}@media (max-width:768px){.map-container{margin:1rem 0}.map-container img{max-width:100%;height:auto}}.content-map-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;margin:2rem 0}.content-map-card{background:#fff;border-radius:12px;box-shadow:0 4px 16px rgba(44,62,80,.08);padding:1.5rem 1rem;transition:box-shadow .2s}.content-map-card:hover{box-shadow:0 8px 32px rgba(44,62,80,.15)}.content-map-card h3{font-size:1.1rem;color:#16a085;margin-bottom:1rem;text-align:center}.content-map-card ul{list-style:none;padding:0;margin:0}.content-map-card li{margin-bottom:.5rem;text-align:center}.content-map-card a{color:#2c3e50;text-decoration:none;font-weight:500;transition:color .2s}.content-map-card a:hover{color:#e67e22;text-decoration:underline}.time-bold{color:#1e3c72;font-weight:700}.time-duration{color:#993400;font-size:.9em;font-weight:600}.skip-link{position:absolute;top:-40px;left:0;background:#1e3c72;color:#fff;padding:8px 16px;z-index:1001;text-decoration:none;border-radius:0 0 4px 0;transition:top .3s}.skip-link:focus{top:0}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}