/* Travellerio Deals — theme-independent fallback styles.
   The Travellerio theme overrides these; this keeps the plugin presentable
   on any other theme. */

.trvio-block { margin: 2.5rem 0; }
.trvio-block__title { font-size: 1.25rem; margin: 0 0 1rem; }

.trvio-grid-cards {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.trvio-grid-cards--one { grid-template-columns: minmax(0, 420px); }

.trvio-card {
	border: 1px solid #dde3ed;
	border-radius: 14px;
	padding: 1.1rem;
	background: #fff;
	display: flex;
	flex-direction: column;
	gap: .5rem;
}
.trvio-card.is-expired { opacity: .5; }
.trvio-card__head { display: flex; justify-content: space-between; align-items: center; }
.trvio-card__type {
	font: 600 11px/1 ui-monospace, monospace;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #5a6478;
}
.trvio-card__save { font-weight: 700; color: #00875a; }
.trvio-card__route { margin: 0; font: 700 1.05rem/1.2 ui-monospace, monospace; letter-spacing: .04em; }
.trvio-card__hook { margin: 0; font-size: .9rem; color: #3c465c; }
.trvio-card__price { margin: 0; display: flex; align-items: baseline; gap: .5rem; }
.trvio-card__price strong { font-size: 1.5rem; }
.trvio-card__price s { color: #8a93a5; font-size: .9rem; }
.trvio-card__cta {
	display: inline-block;
	text-align: center;
	background: #1b4dff;
	color: #fff;
	text-decoration: none;
	padding: .6rem 1rem;
	border-radius: 9px;
	font-weight: 600;
}
.trvio-card__cta:hover { background: #0e3ad0; color: #fff; }
.trvio-card__expiry { margin: 0; font-size: .8rem; color: #7a8497; }
.trvio-card__expiry.is-urgent { color: #d93a12; font-weight: 600; }

.trvio-empty { color: #5a6478; }

.trvio-disclosure {
	margin-top: 2rem;
	padding: .85rem 1rem;
	border-left: 3px solid #dde3ed;
	font-size: .85rem;
	color: #5a6478;
}

/* Alert form */
.trvio-alert {
	border: 1px solid #dde3ed;
	border-radius: 16px;
	padding: 1.5rem;
	background: #f6f8fc;
}
.trvio-alert__title { margin: 0 0 .35rem; font-size: 1.15rem; }
.trvio-alert__text { margin: 0 0 1rem; color: #3c465c; font-size: .92rem; }
.trvio-alert__airports { border: 0; padding: 0; margin: 0 0 1rem; }
.trvio-alert__airports legend {
	font: 600 11px/1 ui-monospace, monospace;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #5a6478;
	margin-bottom: .5rem;
	padding: 0;
}
.trvio-chip { display: inline-block; margin: 0 .35rem .35rem 0; }
.trvio-chip input { position: absolute; opacity: 0; }
.trvio-chip span {
	display: inline-block;
	padding: .35rem .7rem;
	border: 1px solid #ccd4e2;
	border-radius: 999px;
	font: 600 12px/1.4 ui-monospace, monospace;
	cursor: pointer;
	background: #fff;
}
.trvio-chip input:checked + span { background: #0b1220; color: #fff; border-color: #0b1220; }
.trvio-chip input:focus-visible + span { outline: 2px solid #1b4dff; outline-offset: 2px; }
.trvio-alert__row { display: flex; gap: .5rem; flex-wrap: wrap; }
.trvio-alert__row input {
	flex: 1 1 220px;
	padding: .65rem .8rem;
	border: 1px solid #ccd4e2;
	border-radius: 9px;
	font-size: 1rem;
}
.trvio-alert__row button {
	padding: .65rem 1.2rem;
	border: 0;
	border-radius: 9px;
	background: #1b4dff;
	color: #fff;
	font-weight: 600;
	cursor: pointer;
}
.trvio-alert__row button[disabled] { opacity: .6; cursor: wait; }
.trvio-alert__status { margin: .7rem 0 0; font-size: .88rem; min-height: 1.2em; }
.trvio-alert__status.is-ok { color: #00875a; }
.trvio-alert__status.is-error { color: #d93a12; }
.trvio-alert__legal { margin: .6rem 0 0; font-size: .78rem; color: #7a8497; }
.trvio-hp { position: absolute; left: -9999px; }
