@import"https://fonts.googleapis.com/css2?family=Lato:wght@300;400;600;700&display=swap";:root{--primary-color: #25aae1;--primary-dark: #1a8fc2;--primary-light: #3bbff0;--secondary-color: #f9b122;--success-color: #41a048;--alert-color: #e4003a;--warning-color: #f59e0b;--text-primary: #262626;--text-secondary: #637082;--text-light: #888;--bg-light: #f5f7fa;--bg-white: #ffffff;--bg-gray: #f0f0f0;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 20px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .12);--primary-gradient: linear-gradient(to right, #1da3dd, #0060ac);--success-gradient: linear-gradient(135deg, #41a048 0%, #2e7d32 100%);font-family:Lato,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;font-weight:400;color:var(--text-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg-light)}a{color:var(--primary-color);text-decoration:none}a:hover{color:var(--primary-dark);text-decoration:underline}button{font-family:inherit}#root{min-height:100vh}.welcome{text-align:center;animation:fadeInUp .4s ease-out}.welcome-icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;background:linear-gradient(135deg,#e6f7fc,#cceef8);border-radius:50%;margin-bottom:24px;color:var(--primary-color)}.welcome-title{font-size:1.8rem;font-weight:700;color:var(--text-primary);margin-bottom:16px}.welcome-description{color:var(--text-secondary);font-size:1.05rem;line-height:1.6;margin-bottom:28px;max-width:380px;margin-left:auto;margin-right:auto}.welcome-info{display:flex;flex-direction:column;gap:12px;margin-bottom:32px}.info-item{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--text-secondary);font-size:.95rem}.info-item svg{color:var(--success-color);flex-shrink:0}.product-select{animation:fadeInUp .4s ease-out}.back-button{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--text-secondary);font-size:.95rem;cursor:pointer;padding:8px 0;margin-bottom:16px;transition:color .2s}.back-button:hover{color:var(--primary-color)}.step-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.step-subtitle{color:var(--text-secondary);margin-bottom:28px;font-size:1rem}.options-grid{display:flex;flex-direction:column;gap:14px}.option-card{display:flex;flex-direction:column;align-items:flex-start;padding:20px 24px;background:var(--bg-white);border:2px solid #e8e8e8;border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:left;position:relative;overflow:hidden}.option-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--primary-color);transform:scaleY(0);transition:transform .2s ease}.option-card:hover{border-color:var(--primary-color);transform:translate(4px);box-shadow:0 4px 20px #25aae11a}.option-card:hover:before{transform:scaleY(1)}.option-card:active{transform:translate(4px) scale(.98)}.option-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:linear-gradient(135deg,#e6f7fc,#cceef8);border-radius:10px;margin-bottom:12px;color:var(--primary-color)}.option-title{font-size:1.15rem;font-weight:600;color:var(--text-primary);margin-bottom:4px}.option-description{font-size:.95rem;color:var(--text-secondary)}.option-arrow{position:absolute;right:20px;top:50%;transform:translateY(-50%);color:#ccc;transition:all .2s ease}.option-card:hover .option-arrow{color:var(--primary-color);transform:translateY(-50%) translate(4px)}.regio-select{animation:fadeInUp .4s ease-out}.regio-grid{display:flex;flex-direction:column;gap:12px}.regio-card{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:var(--bg-white);border:2px solid #e8e8e8;border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:left}.regio-card:hover{border-color:var(--primary-color);transform:translate(4px);box-shadow:0 4px 15px #25aae11a}.regio-card.has-alternative{border-color:var(--success-color);background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.regio-card.has-alternative:hover{border-color:#2e7d32;box-shadow:0 4px 15px #41a04826}.regio-content{display:flex;flex-direction:column;gap:4px}.regio-title{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.regio-description{font-size:.9rem;color:var(--text-secondary)}.regio-badge{display:inline-block;margin-top:8px;padding:4px 10px;background:var(--success-color);color:#fff;font-size:.75rem;font-weight:600;border-radius:20px;width:fit-content}.regio-arrow{color:#ccc;transition:all .2s ease;flex-shrink:0;margin-left:15px}.regio-card:hover .regio-arrow{color:var(--primary-color);transform:translate(4px)}.regio-card.has-alternative .regio-arrow{color:var(--success-color)}.regio-card.has-alternative:hover .regio-arrow{color:#2e7d32}.age-select{animation:fadeInUp .4s ease-out}.age-grid{display:flex;flex-direction:column;gap:12px}.age-card{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:var(--bg-white);border:2px solid #e8e8e8;border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:left}.age-card:hover{border-color:var(--primary-color);transform:translate(4px);box-shadow:0 4px 15px #25aae11a}.age-card.has-alternative{border-color:var(--success-color);background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.age-card.has-alternative:hover{border-color:#2e7d32;box-shadow:0 4px 15px #41a04826}.age-content{display:flex;flex-direction:column;gap:4px}.age-title{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.age-description{font-size:.9rem;color:var(--text-secondary)}.age-badge{display:inline-block;margin-top:8px;padding:4px 10px;background:var(--success-color);color:#fff;font-size:.75rem;font-weight:600;border-radius:20px;width:fit-content}.age-arrow{color:#ccc;transition:all .2s ease;flex-shrink:0;margin-left:15px}.age-card:hover .age-arrow{color:var(--primary-color);transform:translate(4px)}.age-card.has-alternative .age-arrow{color:var(--success-color)}.age-card.has-alternative:hover .age-arrow{color:#2e7d32}.vervoerstype-select{animation:fadeInUp .4s ease-out}.type-grid{display:flex;flex-direction:column;gap:12px}.type-card{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:var(--bg-white);border:2px solid #e8e8e8;border-radius:12px;cursor:pointer;transition:all .25s ease;text-align:left}.type-card:hover{border-color:var(--primary-color);transform:translate(4px);box-shadow:0 4px 15px #25aae11a}.type-card.has-alternative{border-color:var(--success-color);background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.type-card.has-alternative:hover{border-color:#2e7d32;box-shadow:0 4px 15px #41a04826}.type-content{display:flex;flex-direction:column;gap:4px}.type-title{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.type-description{font-size:.9rem;color:var(--text-secondary)}.type-badge{display:inline-block;margin-top:8px;padding:4px 10px;background:var(--success-color);color:#fff;font-size:.75rem;font-weight:600;border-radius:20px;width:fit-content}.type-arrow{color:#ccc;transition:all .25s ease;flex-shrink:0;margin-left:15px}.type-card:hover .type-arrow{color:var(--primary-color);transform:translate(4px)}.type-card.has-alternative .type-arrow{color:var(--success-color)}.type-card.has-alternative:hover .type-arrow{color:#2e7d32}.result{animation:fadeInUp .4s ease-out}.result-header{text-align:center;padding:28px 20px;border-radius:12px;margin-bottom:24px}.result-header.success{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.result-header.error{background:linear-gradient(135deg,#fee2e2,#fecaca)}.result-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;margin-bottom:14px}.result-header.success .result-icon{background:var(--success-color);color:#fff}.result-header.error .result-icon{background:var(--alert-color);color:#fff}.result-title{font-size:1.6rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.result-subtitle{color:var(--text-secondary);font-size:1rem;max-width:400px;margin:0 auto}.result-subtitle-note{display:block;margin-top:8px;font-size:.875rem;color:var(--text-muted, #6b7280);font-style:italic}.product-card{background:var(--bg-white);border:2px solid var(--success-color);border-radius:12px;padding:24px;margin-bottom:20px;box-shadow:0 4px 20px #41a0481a}.product-name{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.product-price{display:flex;align-items:baseline;gap:8px;margin-bottom:20px}.price-amount{font-size:1.8rem;font-weight:700;color:var(--primary-color)}.price-period{color:var(--text-secondary);font-size:1rem}.product-benefits{list-style:none;padding:0;margin:0 0 24px}.product-benefits li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #f0f0f0;color:var(--text-primary)}.product-benefits li:last-child{border-bottom:none}.benefit-check{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--success-color);color:#fff;border-radius:50%;flex-shrink:0}.btn-secondary{background:#fff;color:var(--primary-color);border:2px solid var(--primary-color);box-shadow:none;margin-top:12px}.btn-secondary:hover{background:#f0f9ff;color:var(--primary-color);text-decoration:none}.warning-box{display:flex;align-items:flex-start;gap:12px;padding:16px 20px;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:10px;margin-bottom:20px}.warning-icon{color:#92400e;flex-shrink:0;margin-top:2px}.warning-box p{margin:0;color:#92400e;font-size:.95rem;line-height:1.5}.buslijnen-details{background:#f8f9fa;border-radius:10px;margin-bottom:24px;overflow:hidden}.buslijnen-details summary{padding:14px 20px;cursor:pointer;font-weight:600;color:var(--text-secondary);transition:background .2s}.buslijnen-details summary:hover{background:#eee}.buslijnen-content{padding:0 20px 20px;font-size:.9rem;color:var(--text-secondary);line-height:1.6}.buslijnen-content p{margin:0 0 10px}.info-box{padding:16px 20px;background:#f0f9ff;border-left:4px solid var(--primary-color);border-radius:0 10px 10px 0;margin-bottom:20px}.info-box p{margin:0;color:#1e40af}.vervoerder-list{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.vervoerder-card{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:var(--bg-white);border:2px solid #e8e8e8;border-radius:12px;text-decoration:none;transition:all .2s ease}.vervoerder-card:hover{border-color:var(--primary-color);transform:translate(4px);box-shadow:0 4px 15px #25aae11a;text-decoration:none}.vervoerder-info{display:flex;flex-direction:column;gap:4px}.vervoerder-name{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.vervoerder-regio{font-size:.9rem;color:var(--text-secondary)}.vervoerder-tel{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--primary-color);margin-top:4px}.vervoerder-arrow{color:#ccc;transition:all .2s ease}.vervoerder-card:hover .vervoerder-arrow{color:var(--primary-color);transform:translate(4px)}.contact-box{background:#f8f9fa;padding:20px;border-radius:10px;margin-bottom:24px}.contact-box h4{margin:0 0 14px;color:var(--text-primary)}.contact-box ul{list-style:none;padding:0;margin:0}.contact-box li{padding:8px 0;border-bottom:1px solid #e8e8e8;color:var(--text-secondary)}.contact-box li:last-child{border-bottom:none}.link-button{display:block;width:100%;padding:12px;background:none;border:none;color:var(--text-secondary);font-size:.95rem;cursor:pointer;transition:color .2s}.link-button:hover{color:var(--primary-color);text-decoration:underline}.fallback-section{margin-top:8px}.fallback-divider{display:flex;align-items:center;margin:24px 0}.fallback-divider:before,.fallback-divider:after{content:"";flex:1;height:1px;background:#e0e0e0}.fallback-divider span{padding:0 16px;color:var(--text-secondary);font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.fallback-box{background:#f0f9ff;border:2px solid var(--primary-color);border-radius:12px;padding:24px;text-align:center}.fallback-box h4{margin:0 0 12px;color:var(--text-primary);font-size:1.1rem}.fallback-box p{margin:0 0 12px;color:var(--text-secondary);line-height:1.5}.fallback-price{font-size:1.25rem;font-weight:600;color:var(--primary-color);margin-bottom:16px}.progress-container{display:flex;align-items:center;gap:14px;margin-bottom:28px;padding:0 4px}.progress-bar{flex:1;height:6px;background:#e8e8e8;border-radius:10px;overflow:hidden}.progress-fill{height:100%;background:var(--primary-gradient);border-radius:10px;transition:width .4s ease-out}.progress-text{font-size:.85rem;color:var(--text-light);white-space:nowrap;min-width:85px}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:#fff;box-shadow:0 1px 2px #0000000d;position:relative;z-index:100}.header-content{max-width:1280px;margin:0 auto;padding:0 32px;height:96px;display:flex;align-items:center;justify-content:space-between}.header-logo-link{display:flex;align-items:center}.header-logo{height:64px;width:auto}.header-nav{display:none}@media(min-width:768px){.header-nav{display:flex;align-items:center;gap:32px}.header-nav a{color:#374151;font-weight:500;font-size:.95rem;text-decoration:none;transition:color .2s}.header-nav a:hover{color:var(--primary-color)}}@media(min-width:1024px){.header-content{padding:0 64px}}.app-main{flex:1;position:relative;display:flex;align-items:center;justify-content:center;padding:60px 20px;min-height:600px}.hero-background{position:absolute;inset:0;background-image:url(https://www.ovshop.nl/wp-content/uploads/2020/03/GVB-Sloterdijk-trams-bussen-1024x683.jpg.avif);background-size:cover;background-position:center;background-attachment:fixed}.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#0009,#0000004d)}.wizard-container{position:relative;z-index:10;width:100%;max-width:560px;min-height:520px;background:#fff;border-radius:16px;box-shadow:0 10px 40px #00000026;padding:32px;animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.step-content{animation:fadeInUp .4s ease-out}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 28px;font-size:1rem;font-weight:600;border:none;border-radius:10px;cursor:pointer;transition:all .2s ease;text-decoration:none}.btn-primary{background:linear-gradient(to right,#1da3dd,#0060ac);color:#fff;box-shadow:0 4px 15px #1da3dd4d}.btn-primary:hover{opacity:.9;transform:translateY(-2px);box-shadow:0 6px 20px #1da3dd66;text-decoration:none;color:#fff}.btn-primary:active{transform:translateY(0)}.btn-large{width:100%;padding:16px 28px;font-size:1.1rem}.btn-arrow{transition:transform .2s ease}.btn:hover .btn-arrow{transform:translate(4px)}.app-footer{background:linear-gradient(to right,#1da3dd,#0060ac);color:#fff}.footer-content{max-width:1280px;margin:0 auto;padding:48px 16px}.footer-grid{display:grid;grid-template-columns:1fr;gap:32px}@media(min-width:768px){.footer-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.footer-grid{grid-template-columns:repeat(4,1fr)}.footer-content{padding:48px 32px}}.footer-col{display:flex;flex-direction:column}.footer-logo{height:96px;width:auto;max-width:200px;object-fit:contain;margin-bottom:16px}.footer-description{font-size:.875rem;line-height:1.6;opacity:.9;margin:0}.footer-heading{font-size:1.125rem;font-weight:600;margin:0 0 16px}.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.footer-links a{color:#fff;font-size:.875rem;text-decoration:none;opacity:.9;transition:opacity .2s,color .2s}.footer-links a:hover{opacity:1;color:#bfdbfe}.footer-contact{display:flex;flex-direction:column;gap:12px}.footer-contact p{display:flex;align-items:center;gap:8px;margin:0;font-size:.875rem}.footer-contact a{color:#fff;text-decoration:none;transition:color .2s}.footer-contact a:hover{color:#bfdbfe}.footer-hours{display:flex;flex-direction:column;gap:8px}.footer-hours p{margin:0;font-size:.875rem;opacity:.9}.footer-bottom{margin-top:32px;padding-top:32px;border-top:1px solid rgba(255,255,255,.2);text-align:center}.footer-bottom p{margin:0;font-size:.875rem;opacity:.9}@media(max-width:600px){.app-main{padding:40px 16px;min-height:auto}.wizard-container{padding:24px 20px;border-radius:12px}.header-content{padding:0 16px;height:72px}.header-logo{height:48px}}
