:root { --sv-primary: #1a4c8b; --sv-teal: #2e9e9b; --sv-orange: #f5891e; --sv-amber: #fbaf3f; --sv-slate: #6d6e71; --sv-offwhite: #fafbfc; }

/* Search card: white card, tab bar on top (Cars today; other booking types add tabs) */
.sv-search { background: #fff; border-radius: 16px; max-width: 1180px; margin: 0 auto; color: #1c2b3d; box-shadow: 0 18px 44px rgba(16, 45, 88, .28); text-align: start; }
.sv-search__tabs { display: flex; gap: 4px; padding: 10px 14px 0; background: var(--sv-offwhite); border-bottom: 1px solid #e3e9f0; overflow-x: auto; }
.sv-search__tab { display: inline-flex; align-items: center; gap: 8px; border: 0; background: transparent; padding: 12px 20px; font-weight: 700; font-size: 1rem; color: var(--sv-slate); cursor: pointer; border-radius: 10px 10px 0 0; border-bottom: 3px solid transparent; white-space: nowrap; }
.sv-search__tab.is-active { color: var(--sv-primary); background: #fff; border-bottom-color: var(--sv-orange); }
.sv-search__form { padding: 18px 20px 20px; }
.sv-search__row { display: grid; grid-template-columns: 1.6fr 1.2fr 1.2fr auto; gap: 10px; align-items: stretch; }
.sv-field { background: #fff; border: 2px solid #d5dde8; border-radius: 10px; display: flex; min-width: 0; transition: border-color .15s; }
.sv-field:focus-within { border-color: var(--sv-teal); }
.sv-field label, .sv-field__part { display: flex; flex-direction: column; padding: 8px 14px; flex: 1; min-width: 0; }
.sv-field--loc { padding: 8px 14px; flex-direction: column; }
.sv-field__part--time { flex: 0 0 96px; border-inline-start: 1px solid #e3e9f0; }
.sv-field__label { font-size: .78rem; color: var(--sv-slate); text-transform: uppercase; letter-spacing: .04em; font-weight: 600; }
.sv-search input[type=text], .sv-search input[type=date], .sv-search select { border: 0; background: transparent; padding: 2px 0; font-size: 1rem; color: #14273a; width: 100%; outline: none; box-shadow: none; min-height: 0; height: auto; }
.sv-search__submit { min-width: 140px; border: 0; border-radius: 10px; background: var(--sv-orange); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; font-weight: 800; font-size: 1.05rem; padding: 0 22px; }
.sv-search__submit:hover { background: #dd7410; }
.sv-search__meta { display: flex; flex-wrap: wrap; align-content: center; gap: 12px 28px; margin-top: 14px; min-height: 44px; align-items: center; font-size: .95rem; line-height: 1.3; color: #3c4c5f; }
.sv-search__meta select { display: inline-block; width: auto; text-decoration: underline; color: var(--sv-primary); font-size: inherit; cursor: pointer; }
.sv-check { display: inline-flex; gap: 8px; align-items: center; }
.sv-check input { accent-color: var(--sv-teal); }
@media (max-width: 999px) {
	.sv-search__row { grid-template-columns: 1fr 1fr; }
	.sv-field--loc { grid-column: 1 / -1; }
	.sv-search__submit { grid-column: 1 / -1; height: 52px; }
}
@media (max-width: 599px) {
	.sv-search__row { grid-template-columns: 1fr; }
	.sv-search__form { padding: 14px; }
	.sv-search { border-radius: 12px; }
}

/* Equal height for every field in the search row */
.sv-search__row > .sv-field { align-self: stretch; min-height: 80px; box-sizing: border-box; }
.sv-search__row > .sv-field--loc { height: auto; justify-content: center; }
.sv-search__row > .sv-field--dt { align-items: stretch; }
.sv-search__row .sv-field__part { justify-content: center; }
.sv-search__submit { min-height: 80px; }
.sv-search__meta { align-items: center; }
.sv-search__meta > *, .sv-check, .sv-search__driver { line-height: 1.4; margin: 0; }
.sv-check { align-self: center; }
@media (min-width: 1000px) {
	.sv-search__row > .sv-field, .sv-search__submit { height: 88px; min-height: 88px; }
}
@media (max-width: 999px) {
	.sv-search__row > .sv-field { min-height: 88px; }
}
/* Country list is long: keep the inline select compact */
.sv-search__meta select { max-width: 140px; text-overflow: ellipsis; }
.sv-search__meta select { field-sizing: content; }

/* Partner logo strip under the hero */
.sv-partners { background: #fff; border-bottom: 1px solid #e3e9f0; }
.sv-partners__inner { max-width: 1180px; margin: 0 auto; padding: 22px 20px; }
.sv-partners__title { margin: 0 0 14px; text-align: center; color: var(--sv-slate); font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sv-partners__logos { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 14px 34px; }
.sv-partners__panel[hidden] { display: none; }
.sv-partners__logo { display: block; padding: 6px 10px; border-radius: 10px; }
.sv-partners__logo img { display: block; height: 50px; width: auto; max-width: 100%; }
@media (max-width: 599px) { .sv-partners__inner { padding: 16px 12px; } .sv-partners__logos { gap: 10px 18px; } .sv-partners__logo img { height: 40px; } }

/* Partner strip: everything centered */
.sv-partners__panel { display: flex; flex-direction: column; align-items: center; width: 100%; text-align: center; }
.sv-partners__panel[hidden] { display: none; }
.sv-partners__logos { width: 100%; justify-content: center; }
.sv-partners__inner { padding-block: 26px; }


/* Location suggestions: full list on click, appended to <body> so nothing clips it */
.sv-search__tabs { border-radius: 16px 16px 0 0; }
.sv-suggest { position: fixed; z-index: 100000; margin: 0; padding: 6px; list-style: none; max-height: 320px; overflow-y: auto; background: #fff; border: 1px solid #d5dde8; border-radius: 12px; box-shadow: 0 14px 34px rgba(16, 45, 88, .22); }
.sv-suggest[hidden] { display: none; }
.sv-suggest li { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 9px 12px; border-radius: 8px; cursor: pointer; color: #10284a; font-weight: 600; }
.sv-suggest li small { color: #6d6e71; font-weight: 500; font-size: .8rem; white-space: nowrap; }
.sv-suggest li:hover, .sv-suggest li.is-active { background: #eef4fa; }
.sv-suggest li.is-current { color: #1a4c8b; background: #f5f9fd; }
@media (max-width: 599px) { .sv-suggest li { padding: 12px; } .sv-suggest li small { display: none; } }

/* Drop-off location sits beside pick-up. The date fields have a fixed, narrower width so the
   two places get all the room that is left. */
.sv-search__row--dloc { display: none; }
.sv-field--dloc[hidden] { display: none !important; }
/* .sv-field and .sv-field__part set their own display, which beats the browser's default
   [hidden] rule; this restates it so any field or sub-field hidden by script actually disappears
   (for example, the hours/days field when a transportation search is one-way). */
.sv-field[hidden], .sv-field__part[hidden] { display: none !important; }
.sv-search__row .sv-field__part { padding-inline: 10px; }
.sv-search__row .sv-field .sv-field__part--time { flex: 0 0 76px; }
.sv-search__row .sv-field .sv-field__part:not(.sv-field__part--time) { flex: 1 1 0; min-width: 0; }
@media (min-width: 1000px) {
	.sv-search__row { grid-template-columns: minmax(0, 1fr) 250px 250px auto; }
}
@media (min-width: 1000px) {
	.sv-search__row.has-dloc { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 200px 200px 140px; }
}
/* Narrower screens: pick-up and drop-off share the first line, dates and the button follow. */
@media (min-width: 600px) and (max-width: 999px) {
	.sv-search__row.has-dloc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sv-search__row.has-dloc .sv-field--loc { grid-column: auto; }
	.sv-search__row.has-dloc .sv-search__submit { grid-column: 1 / -1; height: 52px; min-height: 52px; }
}
@media (max-width: 599px) {
	.sv-search__row.has-dloc .sv-field--loc { grid-column: 1 / -1; }
}

/* Cars has two modes: Rental and Transportation. */
.sv-search__modes { display: flex; align-items: center; gap: 8px; padding: 14px 18px 0; overflow-x: auto; }
.sv-search__modes[hidden] { display: none; }
.sv-search__mode { flex: 0 0 auto; border: 1px solid #ccd6e0; background: #fff; color: var(--sv-slate); padding: 8px 18px; border-radius: 999px; font: inherit; font-weight: 700; font-size: .95rem; cursor: pointer; }
.sv-search__mode.is-active { background: var(--sv-primary); border-color: var(--sv-primary); color: #fff; }
.sv-search__mode:focus-visible { outline: 2px solid var(--sv-teal); outline-offset: 2px; }

/* Transportation: origin, destination, date and time, hire length. Same wide layout as the drop-off row. */
.sv-search__row--tr .sv-field--hire .sv-field__part:not(.sv-field__part--time) select { width: 100%; }
.sv-search__meta label { display: inline-flex; align-items: center; gap: 8px; }
.sv-search__meta .sv-search__driver { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; line-height: 1.3; }
.sv-search__flight { display: inline-flex; align-items: center; color: var(--sv-primary); text-decoration: underline; font-weight: 600; line-height: 1.3; }
.sv-search__hint { margin: 12px 14px 0; color: var(--sv-slate, #6d6e71); font-size: .88rem; }
@media (min-width: 1000px) {
	.sv-search__row--tr { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 240px 230px 140px; }
}
@media (min-width: 600px) and (max-width: 999px) {
	.sv-search__row--tr { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sv-search__row--tr .sv-search__submit { grid-column: 1 / -1; height: 52px; min-height: 52px; }
}
@media (max-width: 599px) {
	.sv-search__row--tr { grid-template-columns: minmax(0, 1fr); }
	.sv-search__modes { padding: 12px 14px 0; }
}

/* Standard car images: the whole picture is always shown, on the same soft background. */
img.sv-std-car { object-fit: contain !important; background: linear-gradient(#ffffff, #e9eef3); width: 100%; height: auto; display: block; }
.sv-offer__photo, .sv-fleet__photo, .sv-book__photo, .sv-trr__photo, .sv-tr__photo { background: #eef2f6; }

/* Panes share one grid cell, so switching Rental / Transportation never changes the height of the box. */
.sv-search__panes { display: grid; }
.sv-search .sv-search__panes > .sv-search__form { grid-area: 1 / 1; min-width: 0; }
.sv-search .sv-search__panes > .sv-search__form[hidden] { display: block !important; visibility: hidden; pointer-events: none; }
.sv-partners__inner { display: grid; }
.sv-partners__inner > .sv-partners__panel { grid-area: 1 / 1; }
.sv-partners__inner > .sv-partners__panel[hidden] { display: block; visibility: hidden; pointer-events: none; }

/* Menus look like menus: a border, an arrow, a hover and a focus state. */
.sv-search select {
	-webkit-appearance: none; appearance: none; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a4c8b' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 0 center; background-size: 14px;
	padding-inline-end: 20px !important;
}
html[dir="rtl"] .sv-search select { background-position: left 0 center; }
.sv-search .sv-field select:hover { color: var(--sv-primary); }
.sv-search__meta select {
	text-decoration: none; border: 1px solid #b7c4d2 !important; border-radius: 999px; background-color: #fff;
	background-position: right 12px center; padding: 7px 36px 7px 16px !important; min-height: 38px !important; height: auto;
	color: var(--sv-primary); font-weight: 700; box-shadow: 0 1px 2px rgba(16, 45, 88, .08); transition: border-color .15s, box-shadow .15s;
	max-width: 190px;
}
html[dir="rtl"] .sv-search__meta select { background-position: left 12px center; padding: 7px 16px 7px 36px !important; }
.sv-search__meta select:hover { border-color: var(--sv-teal) !important; }
.sv-search__meta select:focus-visible { border-color: var(--sv-teal) !important; box-shadow: 0 0 0 3px rgba(46, 158, 155, .25); }
.sv-search__meta label { gap: 10px; font-weight: 600; line-height: 1.3; }
.sv-search__meta { gap: 12px 24px; min-height: 44px; }

/* Suggestion list: an icon for each kind of place and clearer rows. */
.sv-suggest { padding: 8px; border-radius: 14px; }
.sv-suggest li { justify-content: flex-start; align-items: center; gap: 12px; padding: 10px 12px; }
.sv-suggest__ico { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: #eaf2f8; color: var(--sv-primary, #1a4c8b); }
.sv-suggest__txt { display: grid; gap: 1px; min-width: 0; }
.sv-suggest__txt strong { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sv-suggest li small { white-space: normal; }
.sv-suggest li:hover .sv-suggest__ico, .sv-suggest li.is-active .sv-suggest__ico { background: var(--sv-primary, #1a4c8b); color: #fff; }
@media (max-width: 599px) { .sv-suggest li small { display: block; } .sv-search__meta select { max-width: 100%; } }
/* Time and hours menus sit in narrow parts of a field: a little more room so the value is never cut. */
.sv-search__row .sv-field .sv-field__part--time { flex: 0 0 88px; }
.sv-search .sv-field__part--time select { padding-inline-end: 18px !important; background-size: 12px; }
.sv-suggest li { line-height: 1.25; padding: 8px 12px; }
.sv-suggest__txt strong, .sv-suggest__txt small { line-height: 1.25; }

/* Standard class photos: the same 16:10 frame everywhere, car centred. */
img.sv-std-car--photo { object-fit: cover !important; object-position: center 60%; aspect-ratio: var(--sv-car-ratio, 16 / 10) !important; width: 100%; height: auto !important; background: #eef2f6; }
.sv-credit--photos { max-width: 1180px; margin: 12px auto; padding: 0 20px; text-align: center; font-size: .8rem; color: var(--sv-slate, #6d6e71); }

