/* VeneziaCast — Frontend-Styles
 * Brand-Farben: Lagunenblau #1a4d6e, Gold #c9941e, Backstein-Rot #a23838
 */

/* === Vaporetto-Linien-Karte ============================================ */

.vc-line {
	background: #fff;
	border: 1px solid #e8e0c8;
	border-radius: 12px;
	padding: 1.5rem;
	margin: 2rem 0;
	box-shadow: 0 2px 8px rgba(26, 77, 110, 0.06);
}

.vc-line__head {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.25rem;
	border-bottom: 1px solid #f0e8d8;
	padding-bottom: 1rem;
}

.vc-line__pill {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 48px;
	height: 48px;
	border-radius: 8px;
	font-weight: 700;
	font-size: 1.5rem;
	padding: 0 0.75rem;
}

.vc-line__title {
	margin: 0;
	font-size: 1.35rem;
	font-weight: 600;
	color: #1a4d6e;
	line-height: 1.3;
}

.vc-line__count {
	margin: 0.25rem 0 0;
	font-size: 0.85rem;
	color: #7a7a7a;
}

.vc-line__stops {
	list-style: none;
	padding: 0;
	margin: 0;
	position: relative;
}

.vc-line__stops::before {
	content: "";
	position: absolute;
	left: 24px;
	top: 8px;
	bottom: 8px;
	width: 2px;
	background: #c9941e;
	z-index: 0;
}

.vc-line__stop {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	padding: 0.5rem 0;
	position: relative;
	z-index: 1;
}

.vc-line__stop::before {
	content: "";
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #1a4d6e;
	flex-shrink: 0;
	margin-left: 18px;
	margin-right: 8px;
	box-shadow: 0 0 0 3px #fff;
}

.vc-line__stop-time {
	font-variant-numeric: tabular-nums;
	font-size: 0.9rem;
	color: #7a7a7a;
	min-width: 48px;
}

.vc-line__stop-name {
	font-size: 1rem;
	color: #1a4d6e;
	font-weight: 500;
}

.vc-line__stop-sestiere {
	display: block;
	font-size: 0.75rem;
	font-weight: 500;
	color: #9a8a5e;
	margin-top: 2px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* Live-Position: aktueller Stop laut Uhrzeit hervorgehoben */
.vc-line__stop--current .vc-line__stop-time {
	background: #1a4d6e;
	color: #fff;
	padding: 0.18em 0.55em;
	border-radius: 5px;
	font-weight: 700;
	box-shadow: 0 2px 6px rgba(26, 77, 110, 0.35);
	display: inline-block;
}

.vc-line__stop--current .vc-line__stop-name {
	font-weight: 700;
}

.vc-line__live-indicator {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	margin: 0 0 1rem;
	padding: 0.5rem 0.9rem;
	background: linear-gradient(135deg, #f0f7fa 0%, #e3eff5 100%);
	color: #1a4d6e;
	border-radius: 8px;
	border: 1px solid #c4dbe6;
	font-size: 0.88rem;
	font-weight: 500;
}

.vc-line__live-indicator::before {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #1a4d6e;
	flex-shrink: 0;
	animation: vc-pulse 2s ease-in-out infinite;
}

.vc-line__live-indicator strong {
	color: #1a4d6e;
	font-weight: 700;
}

@keyframes vc-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: 0.5; transform: scale(0.85); }
}

@media (prefers-reduced-motion: reduce) {
	.vc-line__live-indicator::before {
		animation: none;
	}
}

.vc-line__attribution {
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid #f0e8d8;
	font-size: 0.78rem;
	color: #7a7a7a;
}

.vc-line__attribution a {
	color: #1a4d6e;
	text-decoration: underline;
}

.vc-line--error {
	background: #fff8ec;
	border-color: #e8c547;
	color: #854d0e;
	padding: 1rem 1.25rem;
	border-radius: 8px;
}

/* === Ticket-Rechner ==================================================== */

.vc-ticket {
	background: #fff;
	border: 1px solid #e8e0c8;
	border-radius: 12px;
	padding: 1.75rem;
	margin: 2rem 0;
	box-shadow: 0 2px 8px rgba(26, 77, 110, 0.06);
}

.vc-ticket__head {
	margin-bottom: 1.5rem;
}

.vc-ticket__title {
	margin: 0;
	font-size: 1.5rem;
	font-weight: 600;
	color: #1a4d6e;
}

.vc-ticket__lead {
	margin: 0.5rem 0 0;
	color: #5a5a5a;
}

.vc-ticket__best {
	background: linear-gradient(135deg, #1a4d6e 0%, #2a6080 100%);
	color: #fff;
	border-radius: 10px;
	padding: 1.25rem 1.5rem;
	margin-bottom: 1.5rem;
	text-align: center;
}

.vc-ticket__best-label {
	margin: 0;
	font-size: 0.78rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	opacity: 0.85;
}

.vc-ticket__best-name {
	margin: 0.5rem 0 0.25rem;
	font-size: 1.25rem;
	font-weight: 600;
}

.vc-ticket__best-cost {
	margin: 0;
	font-size: 2rem;
	font-weight: 700;
	color: #ffd97a;
}

.vc-ticket__savings {
	margin: 0.5rem 0 0;
	font-size: 0.9rem;
	color: #c8e6a0;
}

.vc-ticket__compare {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1rem;
}

.vc-ticket__compare th,
.vc-ticket__compare td {
	padding: 0.6rem 0.8rem;
	text-align: left;
	border-bottom: 1px solid #f0e8d8;
}

.vc-ticket__compare th {
	background: #f9f5ec;
	font-size: 0.85rem;
	font-weight: 600;
	color: #5a5a5a;
}

.vc-ticket__compare tr.is-best td {
	background: #fff8ec;
	font-weight: 600;
	color: #1a4d6e;
}

.vc-ticket__foot {
	font-size: 0.78rem;
	color: #7a7a7a;
	margin-top: 1rem;
}

/* === Route-Planner ===================================================== */

.vc-route-planner {
	background: #fff;
	border: 1px solid #e8e0c8;
	border-radius: 12px;
	padding: 1.5rem;
	margin: 1.5rem 0;
}

.vc-route-planner__form {
	display: grid;
	grid-template-columns: 1fr 1fr auto;
	gap: 0.75rem;
	align-items: end;
}

.vc-route-planner__form label {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	font-size: 0.85rem;
	color: #5a5a5a;
	font-weight: 600;
}

.vc-route-planner__form input {
	padding: 0.6rem 0.75rem;
	border: 1px solid #cfc7b3;
	border-radius: 6px;
	font-size: 1rem;
}

.vc-route-planner__form button {
	padding: 0.6rem 1.25rem;
	background: #1a4d6e;
	color: #fff;
	border: 0;
	border-radius: 6px;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
}

.vc-route-planner__hint {
	margin-top: 0.75rem;
	font-size: 0.85rem;
	color: #7a7a7a;
}

@media (max-width: 640px) {
	.vc-route-planner__form {
		grid-template-columns: 1fr;
	}
}

/* === Verbindungssuche v2 (vc-rp prefix) ================================ */
.vc-rp{
	background:#fff;border:1px solid #e6ddca;border-radius:16px;overflow:hidden;
	box-shadow:0 6px 24px rgba(26,77,110,.10);margin:2rem 0;
	font-variant-numeric:tabular-nums;
}
.vc-rp__head{background:linear-gradient(135deg,#1a4d6e 0%,#225f86 100%);color:#fff;padding:22px 24px}
.vc-rp__title{margin:0;font-size:1.3rem;font-weight:700;line-height:1.3;color:#fff;display:flex;align-items:center;gap:10px}
.vc-rp__title-icon{flex:0 0 auto;opacity:.95}
.vc-rp__lead{margin:6px 0 0;font-size:.92rem;color:#d6e6f1}
.vc-rp__body{padding:22px 24px}

/* Journey input */
.vc-rp__form{margin:0}
.vc-rp__journey-input{display:grid;grid-template-columns:1fr 46px;gap:10px;align-items:center}
.vc-rp__fields{position:relative;display:flex;flex-direction:column;gap:10px}
.vc-rp__connector{position:absolute;left:21px;top:46px;bottom:22px;width:2px;z-index:0;
	background:repeating-linear-gradient(#c4cdd3 0 4px,transparent 4px 8px)}
.vc-rp__field{position:relative;z-index:1;display:flex;flex-direction:column}
.vc-rp__label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#5e6b73;margin:0 0 4px 44px}
.vc-rp__autocomplete{position:relative}
.vc-rp__dot{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:14px;height:14px;border-radius:50%;z-index:2}
.vc-rp__dot--from{border:2.4px solid #1a4d6e;background:#fff}
.vc-rp__dot--to{background:#a23838;box-shadow:0 0 0 3px rgba(162,56,56,.16)}
.vc-rp__input{width:100%;padding:13px 14px 13px 44px;border:1.5px solid #dcd5c4;border-radius:10px;
	font-size:1rem;background:#fdfbf6;color:#22303a}
.vc-rp__input::placeholder{color:#9aa4ab}
.vc-rp__input:focus{outline:none;border-color:#1a4d6e;background:#fff;box-shadow:0 0 0 3px rgba(26,77,110,.14)}
.vc-rp__swap{width:46px;height:46px;border-radius:50%;border:1.5px solid #dcd5c4;background:#fff;color:#1a4d6e;
	cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s;flex:0 0 auto}
.vc-rp__swap:hover,.vc-rp__swap:focus{border-color:#1a4d6e;background:#eef5fa;outline:none}

.vc-rp__suggestions{position:absolute;z-index:50;top:calc(100% + 4px);left:0;right:0;margin:0;padding:.25rem 0;
	list-style:none;background:#fff;border:1px solid #d8d2c2;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.14);
	max-height:260px;overflow-y:auto}
.vc-rp__suggestion{padding:.55rem .9rem;cursor:pointer;font-size:.95rem;color:#22303a}
.vc-rp__suggestion small{color:#8a949b;margin-left:.5rem;font-size:.8rem}
.vc-rp__suggestion:hover,.vc-rp__suggestion--active{background:#eef5fa;color:#1a4d6e}

.vc-rp__actions{display:flex;margin-top:14px}
.vc-rp__submit{margin-left:auto;padding:13px 24px;background:#1a4d6e;color:#fff;border:none;border-radius:10px;
	font-size:1rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:.15s}
.vc-rp__submit:hover,.vc-rp__submit:focus{background:#133a55;outline:none}

.vc-rp__status{margin-top:14px;padding:.75rem 1rem;background:#fff8ec;border:1px solid #e7c779;border-radius:10px;color:#6b5b1e;font-size:.95rem}

/* Results */
.vc-rp__resulthead{display:flex;align-items:baseline;justify-content:space-between;margin:20px 0 2px}
.vc-rp__resulthead b{font-size:1rem;font-weight:700;color:#1a4d6e}
.vc-rp__resulthead span{font-size:.82rem;color:#8a8a82}
.vc-rp__results{margin-top:6px;display:flex;flex-direction:column;gap:14px}
.vc-rp__empty{margin:14px 0 0;padding:1.25rem;background:#f6f3eb;border-radius:10px;color:#6a6a6a;font-style:italic;text-align:center}

.vc-rp__card{border:1px solid #e6ddca;border-radius:14px;background:#fff;overflow:hidden}
.vc-rp__card-top{display:flex;align-items:center;gap:14px;padding:15px 18px}
.vc-rp__times{display:flex;align-items:center;gap:9px}
.vc-rp__t{font-size:1.45rem;font-weight:700;color:#22303a;letter-spacing:.01em}
.vc-rp__t-sep{color:#c0c8cd}
.vc-rp__dur{margin-left:auto;text-align:right;line-height:1.25}
.vc-rp__dur b{display:block;font-size:1.02rem;font-weight:700;color:#22303a}
.vc-rp__dur span{font-size:.76rem;color:#8a8a82}

.vc-rp__pill{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 11px;
	border-radius:9px;font-weight:800;font-size:1.08rem;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);flex:0 0 auto}
.vc-rp__pill--sm{min-width:34px;height:34px;font-size:.98rem;border-radius:8px}
.vc-rp__pill--link{text-decoration:none;cursor:pointer;transition:filter .12s,box-shadow .12s}
.vc-rp__pill--link:hover{filter:brightness(1.08);box-shadow:inset 0 0 0 1px rgba(0,0,0,.06),0 2px 7px rgba(26,77,110,.28)}
.vc-rp__pill--link:focus-visible{outline:2px solid #c9941e;outline-offset:2px}
.vc-rp__bushint{display:flex;gap:9px;align-items:flex-start;margin:10px 0 2px;padding:13px 16px;background:#eef4f7;border:1px solid #cfe0e8;border-left:4px solid #c9941e;border-radius:9px;font-size:.95rem;line-height:1.5;color:#1c3d52}
.vc-rp__bushint-ic{flex:0 0 auto;font-size:1.05rem;line-height:1.4;color:#1a4d6e}
.vc-rp__bushint a{color:#1a4d6e;font-weight:700;text-decoration:underline}
.vc-rp__pillrow{display:inline-flex;align-items:center;gap:7px}
.vc-rp__pill-sep{color:#aeb6bb;font-size:1.05rem}

.vc-rp__card-foot{border-top:1px solid #f0ead9;padding:11px 18px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fdfbf6}
.vc-rp__meta{font-size:.86rem;color:#5e6b73}
.vc-rp__badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.02em}
.vc-rp__badge--direct{background:#e7f1ea;color:#1f6e44}
.vc-rp__badge--transfer{background:#fbf0d8;color:#8b6614}
.vc-rp__badge--via{background:#eef5fa;color:#1a4d6e}

.vc-rp__routeline{display:flex;align-items:center;gap:0;flex:1;min-width:0}
.vc-rp__rl-dot{width:9px;height:9px;border-radius:50%;border:2px solid #1a4d6e;background:#fff;flex:0 0 auto}
.vc-rp__rl-dot--end{border-color:#a23838}
.vc-rp__rl-seg{height:2px;background:#cdd5da;flex:1;min-width:8px}
.vc-rp__rl-via{font-size:.8rem;color:#5e6b73;padding:0 8px;white-space:nowrap}

/* via_pivot stepped timeline */
.vc-rp__card--via .vc-rp__via{padding:16px 18px}
.vc-rp__via-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.vc-rp__via-ttl{font-weight:700;color:#1a4d6e}
.vc-rp__via-total{font-weight:700;color:#22303a}
.vc-rp__leg{display:flex;gap:13px;align-items:flex-start}
.vc-rp__leg-rail{display:flex;flex-direction:column;align-items:center;flex:0 0 auto;width:26px}
.vc-rp__leg-num{width:26px;height:26px;border-radius:50%;background:#1a4d6e;color:#fff;font-size:.8rem;font-weight:800;display:flex;align-items:center;justify-content:center}
.vc-rp__leg-line{width:2px;flex:1;min-height:26px;background:#cdd5da;margin:2px 0}
.vc-rp__leg-body{flex:1;min-width:0;padding-bottom:4px}
.vc-rp__leg-main{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.vc-rp__leg-time{font-weight:700;color:#22303a}
.vc-rp__leg-sub{font-size:.82rem;color:#5e6b73;margin-top:2px}
.vc-rp__change{margin:2px 0 2px 39px;font-size:.82rem;color:#a23838;font-weight:600}
.vc-rp__nightnote{margin:10px 0 0;font-size:.85rem;color:#8b6614;background:#fff8ec;border-left:3px solid #c9941e;padding:9px 12px;border-radius:6px}

.vc-rp__attribution{padding:14px 24px;border-top:1px solid #e6ddca;font-size:.78rem;color:#8a8a82;background:#fdfbf6}
.vc-rp__attribution a{color:#1a4d6e}

@media (max-width:540px){
	.vc-rp__head,.vc-rp__body,.vc-rp__attribution{padding-left:16px;padding-right:16px}
	.vc-rp__card-top{flex-wrap:wrap;gap:10px}
	.vc-rp__dur{margin-left:0;text-align:left}
	.vc-rp__times{order:3;width:100%}
	.vc-rp__t{font-size:1.3rem}
	.vc-rp__submit{width:100%;margin-left:0;justify-content:center}
}

/* v2.1: Vorschlaege + Wunschzeit */
.vc-rp__suggestions{padding:.35rem;border-radius:12px;box-shadow:0 10px 30px rgba(26,77,110,.18)}
.vc-rp__suggestion{display:flex;align-items:center;gap:10px;padding:.6rem .8rem;margin:1px .15rem;border-radius:8px;cursor:pointer;font-size:.95rem;color:#22303a}
.vc-rp__sg-ic{flex:0 0 auto;width:20px;height:20px;border-radius:50%;background:#eef5fa;color:#1a4d6e;display:inline-flex;align-items:center;justify-content:center}
.vc-rp__sg-name{font-weight:600}
.vc-rp__sg-sest{margin-left:auto;font-size:.76rem;color:#8a949b;white-space:nowrap}
.vc-rp__suggestion:hover,.vc-rp__suggestion--active{background:#eef5fa;color:#1a4d6e}
.vc-rp__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}
.vc-rp__when{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vc-rp__chip{padding:9px 15px;border:1.5px solid #dcd5c4;border-radius:999px;background:#fff;font-size:.9rem;color:#22303a;cursor:pointer;transition:.15s}
.vc-rp__chip:hover{border-color:#1a4d6e}
.vc-rp__chip--active{border-color:#1a4d6e;background:#eef5fa;color:#1a4d6e;font-weight:700}
.vc-rp__timeinput{padding:9px 12px;border:1.5px solid #dcd5c4;border-radius:10px;font-size:.95rem;background:#fdfbf6;color:#22303a}
.vc-rp__timeinput:focus{outline:none;border-color:#1a4d6e;box-shadow:0 0 0 3px rgba(26,77,110,.14)}
@media (max-width:540px){.vc-rp__submit{width:100%;margin-left:0;justify-content:center}.vc-rp__when{width:100%}}

/* v2.2: Fix Vorschlags-Stapelung (aktives Feld ueber Nachbarfeld) */
.vc-rp__field{position:relative;z-index:1}
.vc-rp__field:focus-within{z-index:40}
.vc-rp__autocomplete{position:relative}
.vc-rp__suggestions{z-index:60}

/* v2.3: Sehenswuerdigkeit-Naehe-Label in Vorschlaegen */
.vc-rp__sg-near{margin-left:auto;font-size:.76rem;font-weight:600;color:#8b6614;white-space:nowrap}
