:root {
    --tom-primary: #007799;
    --tom-primary-hover: #005886;
    --tom-primary-text: #ffffff;
}

/*
=========================================================
SEARCH FORM
=========================================================
*/

#tom-search-form,
#tom-search-form * {
    box-sizing: border-box;
}

#tom-search-form .tom-search-grid {
    display: grid;
    gap: 15px;
    align-items: flex-start;
    width: 100%;
}

#tom-search-form .tom-search-grid > div {
    min-width: 0;
}

#tom-search-form .tom-search-grid p {
    margin: 0 0 10px;
}

#tom-search-form .tom-search-box select,
#tom-search-form .tom-search-box input[type="text"],
#tom-search-form .tom-search-box input[type="date"] {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: 42px;
    min-height: 42px;
    padding: 0 10px;
    box-sizing: border-box;
    cursor: pointer;
    font: inherit;
}

/*
=========================================================
SEARCH BUTTON — WHATSAPP REQUEST STYLE
=========================================================
*/

#tom-search-form .tom-search-box button.tom-search-icon-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    min-width: 110px;
    min-height: 42px;

    padding: 0 20px;
    margin-top: 22px;

    border: 0;
    border-radius: 3px 30px 30px 3px;

    background: var(--tom-primary);
    color: var(--tom-primary-text);

    font-size: 19px;
    cursor: pointer;

    transition:
        background 0.35s ease,
        transform 0.2s ease;
}

#tom-search-form .tom-search-box button.tom-search-icon-button:hover {
    background: var(--tom-primary-hover);
    color: var(--tom-primary-text);
    transform: translateX(3px);
}

#tom-search-form .tom-search-box button.tom-search-icon-button:active {
    transform: translateX(0);
}

#tom-search-form .tom-search-icon-button i {
    line-height: 1;
}

.tom-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

#tom-search-form .tom-date-time-row {
    display: grid;
    grid-template-columns:
        minmax(0, 1.3fr)
        minmax(0, 1.7fr);
    gap: 8px;
    align-items: end;
    width: 100%;
}

#tom-search-form .tom-date-time-field {
    min-width: 0;
    margin: 0;
}

#tom-search-form .tom-date-time-field label {
    display: block;
    margin-bottom: 0;
}

#tom-search-form .tom-date-time-field input,
#tom-search-form .tom-date-time-field select {
    width: 100%;
    height: 42px;
    min-height: 42px;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

#tom-search-form .tom-one-way-section {
    margin-top: 15px;
}

#tom-search-form .tom-one-way-section label {
    font-weight: 500;
}

#tom-search-form .tom-one-way-note {
    margin-top: 8px;
    font-size: 14px;
    opacity: 0.8;
}

#tom-search-form .tom-slot-note {
    margin-top: 12px;
    font-size: 13px;
    line-height: 1.4;
    color: #666;
}

#tom-search-form #tom_dropoff_wrapper {
    margin-top: 10px;
    max-width: 350px;
}

#tom-search-form #tom_dropoff_wrapper select {
    width: 100%;
    height: 42px;
    min-height: 42px;
}

@media (min-width: 901px) {

    #tom-search-form .tom-search-grid {
        grid-template-columns:
            minmax(210px, 0.95fr)
            minmax(240px, 1.30fr)
            minmax(240px, 1.30fr)
            minmax(125px, 0.55fr);
        gap: 16px;
        align-items: start;
    }

    #tom-search-form .tom-search-grid > div {
        min-width: 0;
    }

    #tom-search-form .tom-search-grid > div:first-child {
        margin-top: 0;
    }

    #tom-search-form .tom-search-grid > div:nth-child(4) {
        margin-top: 0;
    }

    #tom-search-form .tom-search-grid > div:nth-child(4) p {
        margin: 0;
    }

    #tom-search-form .tom-search-grid > div:nth-child(4) .tom-search-icon-button {
        margin-top: 22px;
    }
}

@media (min-width: 701px) and (max-width: 900px) {

    #tom-search-form .tom-search-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
        gap: 14px;
    }
}

@media (max-width: 700px) {

    #tom-search-form .tom-search-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }

    #tom-search-form .tom-date-time-row {
        grid-template-columns:
            minmax(0, 1.2fr)
            minmax(0, 1.8fr);
        gap: 7px;
    }

    #tom-search-form .tom-date-time-field input {
        padding-left: 7px;
        padding-right: 7px;
        font-size: 14px;
    }

    #tom-search-form .tom-date-time-field select {
        padding-left: 8px;
        padding-right: 26px;
        font-size: 14px;
    }

    #tom-search-form .tom-search-box button {
        width: 100%;
        margin-top: 0;
    }

    #tom-search-form #tom_dropoff_wrapper {
        max-width: none;
    }
}



/*
=========================================================
SEARCH SUMMARY
=========================================================
*/

.tom-search-summary {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.tom-search-summary .tom-summary-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 20px;
    width: 100%;
    padding: 15px;
    border: 1px solid #e6e6e6;
    border-radius: 12px;
    background: #fafafa;
    box-sizing: border-box;
}

.tom-search-summary .tom-summary-column {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.tom-search-summary .tom-summary-title {
    margin-bottom: 5px;
    font-size: 16px;
    font-weight: 700;
}

.tom-search-summary .tom-summary-row {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    min-width: 0;
}

.tom-search-summary .tom-summary-row > i {
    flex: 0 0 18px;
    width: 18px;
    margin-top: 3px;
    color: var(--tom-primary);
    text-align: center;
}

.tom-search-summary .tom-summary-row > span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.tom-search-summary .tom-summary-date-time > span {
    white-space: nowrap;
}

.tom-search-summary .tom-summary-time {
    display: inline;
    margin-left: 4px;
}

@media (max-width: 850px) {

    .tom-search-summary .tom-summary-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .tom-search-summary .tom-summary-column:nth-child(3) {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {

    .tom-search-summary .tom-summary-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .tom-search-summary .tom-summary-column:nth-child(3) {
        grid-column: auto;
    }

    .tom-search-summary .tom-summary-column {
        width: 100%;
    }
}

/*
=========================================================
RESULTS PAGE
=========================================================
*/

.tom-results,
.tom-results * {
    box-sizing: border-box;
}

.tom-results {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.tom-results .tom-results-vehicles {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-top: 20px;
}

.tom-results .tom-results-vehicle-card {
    display: grid;
    grid-template-columns:
        28fr
        27fr
        20fr
        25fr;
    grid-template-areas:
        "photo info features price";
    gap: 20px;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 20px;
    margin-bottom: 24px;
    border: 1px solid #ddd;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10);
    overflow: hidden;
}

.tom-results .tom-results-vehicle-card > div,
.tom-results .tom-vehicle-info,
.tom-results .tom-vehicle-features,
.tom-results .tom-vehicle-price,
.tom-results .tom-vehicle-advantages,
.tom-results .tom-advantages-summary {
    min-width: 0;
    max-width: 100%;
}

/* Ajuste texto or similar */
.tom-results .tom-vehicle-title-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.tom-results .tom-vehicle-title-row h3 {
    margin: 0;
    font-size: 25px;
    line-height: 1;
}

.tom-results .tom-or-similar {
    font-size: 18px;
    line-height: 1.2;
    white-space: nowrap;
}

@media (max-width: 700px) {

    .tom-results .tom-vehicle-title-row {
        flex-direction: row;
        align-items: baseline;
        flex-wrap: nowrap;
        gap: 5px;
    }

    .tom-results .tom-vehicle-title-row h3 {
        font-size: 25px;
        white-space: nowrap;
    }

    .tom-results .tom-or-similar {
        white-space: nowrap;
    }
}

/*
=========================================================
RESULTS — VEHICLE IMAGES
=========================================================
*/

.tom-results .tom-vehicle-images {
    display: grid;
    width: 100%;
    min-width: 0;
    gap: 8px;
    align-items: center;
}

/* Solo imagen principal */
.tom-results .tom-vehicle-images:not(.has-secondary):not(.has-third) {
    grid-template-columns: 1fr;
}

/* Imagen principal y una imagen adicional */
.tom-results .tom-vehicle-images.has-secondary:not(.has-third),
.tom-results .tom-vehicle-images.has-third:not(.has-secondary) {
    grid-template-columns: minmax(0, 2fr) minmax(85px, 1fr);
}

/* Tres imágenes */
.tom-results .tom-vehicle-images.has-secondary.has-third {
    grid-template-columns: minmax(0, 2fr) minmax(85px, 1fr);
    grid-template-rows: 1fr 1fr;
}

.tom-results
.tom-vehicle-images.has-secondary.has-third
.tom-vehicle-image-main {
    grid-row: 1 / 3;
}

.tom-results .tom-vehicle-image-main,
.tom-results .tom-vehicle-image-secondary,
.tom-results .tom-vehicle-image-third {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
}

.tom-results .tom-vehicle-images img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.tom-results .tom-vehicle-image-main img {
    max-height: 190px;
}

.tom-results .tom-vehicle-image-secondary img,
.tom-results .tom-vehicle-image-third img {
    max-height: 90px;
}

@media (max-width: 700px) {

    .tom-results .tom-vehicle-images {
        gap: 6px;
    }

    .tom-results .tom-vehicle-images.has-secondary.has-third {
        grid-template-columns:
            minmax(0, 2fr)
            minmax(75px, 1fr);
    }

    .tom-results .tom-vehicle-image-main img {
        max-height: 150px;
    }

    .tom-results .tom-vehicle-image-secondary img,
    .tom-results .tom-vehicle-image-third img {
        max-height: 70px;
    }
}

.tom-results .tom-vehicle-info {
    grid-area: info;
}

.tom-results .tom-vehicle-features {
    grid-area: features;
    display: flex;
    flex-direction: column;
}

.tom-results .tom-vehicle-price {
    grid-area: price;
    display: block;
    text-align: right;
}

.tom-results .tom-vehicle-photo img {
    display: block;
    width: 100%;
    max-width: 260px;
    height: auto;
    max-height: 190px;
    object-fit: contain;
}

.tom-results .tom-vehicle-info h4 {
    margin: 0 0 6px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.tom-results .tom-or-similar {
    display: block;
    margin-top: 2px;
    color: #777;
    font-weight: 400;
    line-height: 1.2;
    white-space: nowrap;
}

.tom-results .tom-transmission,
.tom-results .tom-vehicle-meta {
    margin: 0 0 5px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.tom-results .tom-transmission {
    font-weight: 700;
}

.tom-results .tom-vehicle-meta:last-child {
    margin-bottom: 0;
}

.tom-results .tom-vehicle-advantages {
    padding: 12px;
    border-radius: 8px;
    background: #f8f8f8;
}

.tom-results .tom-vehicle-advantages p {
    margin: 0 0 3px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.tom-results .tom-vehicle-advantages p:last-child {
    margin-bottom: 0;
}

.tom-results .tom-advantages-summary {
    margin-top: 12px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

/*
=========================================================
RESULTS PRICE
=========================================================
*/

.tom-results .tom-price-columns {
    display: grid;
    grid-template-columns:
        minmax(0, 1.25fr)
        minmax(105px, 0.75fr);
    gap: 20px;
    align-items: stretch;
    width: 100%;
}

.tom-results .tom-price-breakdown,
.tom-results .tom-price-summary {
    min-width: 0;
}

.tom-results .tom-price-breakdown {
    text-align: left;
}

.tom-results .tom-price-summary {
    align-self: end;
    text-align: right;
}

.tom-results .tom-price-day {
    margin: 0 0 18px;
    font-weight: 500;
    line-height: 1;
}

.tom-results .tom-price-rental,
.tom-results .tom-price-surcharge,
.tom-results .tom-price-oneway {
    margin: 0 0 4px;
    font-size: 13px;
    line-height: 1.2;
}

.tom-results .tom-price-total {
    margin: 0 0 4px;
    line-height: 1;
    overflow-wrap: anywhere;
}

.tom-results .tom-price-total-suffix {
    margin: 0 0 8px;
    font-weight: 500;
    line-height: 1.15;
}

.tom-results .tom-price-days {
    margin: 0;
    line-height: 1.15;
}

.tom-results .tom-price-breakdown p,
.tom-results .tom-price-summary p {
    margin-top: 0;
}

.tom-results .tom-vehicle-price .tom-whatsapp-request {
    display: block;
    width: 100%;
    max-width: none;
    margin-top: 12px;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: center;
}

/*
=========================================================
RESULTS RESPONSIVE
=========================================================
*/

@media (max-width: 1100px) {

    .tom-results .tom-results-vehicle-card {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr);
        grid-template-areas:
            "photo info"
            "features price";
    }

    .tom-results .tom-vehicle-photo img {
        max-width: 320px;
        max-height: 220px;
    }

    .tom-results .tom-results-vehicle-card > div {
        min-height: 0;
    }
}

@media (max-width: 850px) {

    .tom-results .tom-results-vehicle-card {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr);
        grid-template-areas:
            "photo info"
            "features features"
            "price price";
    }

    .tom-results .tom-vehicle-price {
        text-align: center;
    }
}

@media (max-width: 700px) {

    .tom-results {
        overflow-x: hidden;
    }

    .tom-results .tom-results-vehicle-card {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "photo"
            "info"
            "features"
            "price";
        gap: 0;
        padding: 0;
        margin-bottom: 18px;
        border-radius: 12px;
        box-shadow: 0 5px 16px rgba(0, 0, 0, 0.09);
    }

    .tom-results .tom-results-vehicle-card > div {
        width: 100%;
        border-left: 0 !important;
        border-right: 0 !important;
    }

    .tom-results .tom-results-vehicle-card > div + div {
        border-top: 1px solid #e5e5e5;
    }

    .tom-results .tom-vehicle-photo {
        padding: 10px 14px;
    }

    .tom-results .tom-vehicle-info {
        padding: 12px;
        text-align: left;
    }

    .tom-results .tom-vehicle-features,
    .tom-results .tom-vehicle-price {
        padding: 12px 14px;
    }

    .tom-results .tom-vehicle-features {
        text-align: left;
    }

    .tom-results .tom-vehicle-price {
        text-align: center;
    }

    .tom-results .tom-vehicle-photo img {
        width: 100%;
        max-width: 300px;
        max-height: 165px;
    }

    .tom-results .tom-vehicle-advantages p {
        margin-bottom: 6px;
        line-height: 1.35;
    }

    .tom-results .tom-advantages-summary {
        margin-top: 8px;
        line-height: 1.35;
    }

    .tom-results .tom-price-columns {
        grid-template-columns:
            minmax(0, 1.2fr)
            minmax(100px, 0.8fr);
        gap: 10px;
    }

    .tom-results .tom-price-breakdown {
        text-align: left;
    }

    .tom-results .tom-price-summary {
        text-align: right;
    }

    .tom-results .tom-price-breakdown p,
    .tom-results .tom-price-summary p {
        margin-bottom: 5px;
        line-height: 1.3;
    }

    .tom-results .tom-vehicle-price .tom-whatsapp-request {
        margin-top: 10px;
        padding-left: 14px;
        padding-right: 14px;
    }
}

@media (max-width: 480px) {

    .tom-results .tom-search-title {
        font-size: 24px;
    }

    .tom-results h3 {
        overflow-wrap: anywhere;
    }

    .tom-results .tom-summary-column,
    .tom-results .tom-vehicle-photo,
    .tom-results .tom-vehicle-info,
    .tom-results .tom-vehicle-features,
    .tom-results .tom-vehicle-price {
        padding-left: 14px;
        padding-right: 14px;
    }

    .tom-results .tom-vehicle-photo img {
        max-height: 190px;
    }

    .tom-results .tom-price-total {
        font-size: 28px;
    }
}

/*
=========================================================
WHATSAPP MODAL
=========================================================
*/

#tom-whatsapp-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.6);
}

.tom-whatsapp-modal-content {
    position: relative;
    width: 90%;
    max-width: 500px;
    max-height: 90vh;
    padding: 30px;
    border-radius: 10px;
    background: #fff;
    overflow-y: auto;
    box-sizing: border-box;
}

#tom-modal-close {
    position: absolute;
    top: 10px;
    right: 15px;
    cursor: pointer;
    font-size: 24px;
}

#tom_customer_name,
#tom_customer_phone {
    width: 100%;
    box-sizing: border-box;
}

#tom_accommodation_suggestions {
    position: absolute;
    z-index: 9999;
    width: 100%;
    max-height: 200px;
    border: 1px solid #ccc;
    background: #fff;
    overflow-y: auto;
    box-sizing: border-box;
}

.tom-suggestion {
    padding: 8px;
    cursor: pointer;
}

.tom-suggestion:hover {
    background: #f2f2f2;
}

.tom-booking-info {
    margin: 20px 0;
    padding: 15px;
    border-left: 4px solid var(--tom-primary);
    border-radius: 4px;
    background: #f7f7f7;
    font-size: 14px;
    line-height: 1.5;
}

.tom-whatsapp-request,
.tom-booking-request-link {
    display: inline-block;
    max-width: 100%;
    margin-top: 10px;
    padding: 10px 16px;
    border-radius: 30px 0 0 30px;
    background: var(--tom-primary);
    color: var(--tom-primary-text);
    text-decoration: none;
    cursor: pointer;
    transition:
        background 0.35s ease,
        transform 0.2s ease;
}

.tom-whatsapp-request:hover,
.tom-booking-request-link:hover {
    background: var(--tom-primary-hover);
    color: var(--tom-primary-text);
    transform: translateX(-3px);
}

.tom-whatsapp-button {
    width: 100%;
    padding: 14px 20px;
    border: 0;
    border-radius: 30px 30px 0 0;
    background: var(--tom-primary);
    color: var(--tom-primary-text);
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: 0.2s;
}

.tom-whatsapp-button:hover {
    border-radius: 30px;
    background: var(--tom-primary-hover);
    transform: translateY(-3px);
}

.tom-whatsapp-button:disabled {
    background: #9aa0a6;
    cursor: not-allowed;
    opacity: 0.8;
}

@media (max-width: 700px) {

    #tom-whatsapp-modal {
        align-items: flex-start;
        padding: 14px;
        overflow-y: auto;
    }

    .tom-whatsapp-modal-content {
        width: 100%;
        max-width: 420px;
        max-height: calc(100vh - 32px);
        margin: 16px auto;
        padding: 18px 16px;
        border-radius: 12px;
        overflow-x: hidden;
        overflow-y: auto;
    }

    .tom-whatsapp-modal-content input[type="text"],
    .tom-whatsapp-modal-content input[type="tel"] {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .tom-whatsapp-modal-content h3,
    .tom-whatsapp-modal-content h4,
    .tom-whatsapp-modal-content p,
    .tom-whatsapp-modal-content label {
        overflow-wrap: anywhere;
    }

    #tom_continue_whatsapp {
        width: 100%;
        max-width: 100%;
    }
}

@media (max-width: 480px) {

    #tom-whatsapp-modal {
        padding: 8px;
    }

    .tom-whatsapp-modal-content {
        max-width: none;
        max-height: calc(100vh - 16px);
        margin: 8px auto;
        padding: 16px 14px;
    }
}

/*
=========================================================
VEHICLES LISTING — PRICING SHORTCODE
=========================================================
*/

.tom-season-global {
    margin-bottom: 20px;
    color: gris;
    font-size: 15px;
}

.tom-vehicles {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.tom-vehicle-card {
    display: grid;
    grid-template-columns:
        minmax(100px, 15%)
        minmax(180px, 25%)
        minmax(0, 1fr);
    gap: 20px;
    padding: 15px;
    border: 1px solid #ddd;
    background: #fff;
}

.tom-vehicle-card .tom-vehicle-col {
    min-width: 0;
}

.tom-vehicle-card .tom-vehicle-image img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 6px;
}

.tom-vehicle-card .tom-vehicle-info h3 {
    margin-bottom: 0;
}

.tom-vehicle-card .tom-transmission {
    font-weight: 500;
}

.tom-season-modal {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    display: none;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
}

.tom-season-modal-content {
    position: relative;
    max-width: 400px;
    margin: 10% auto;
    padding: 20px;
    border-radius: 8px;
    background: #fff;
    font-size: 15px;
}

.tom-season-close {
    position: absolute;
    top: 10px;
    right: 10px;
    cursor: pointer;
    font-size: 18px;
}

.tom-season-info-icon {
    margin-left: 6px;
    color: inherit;
    cursor: pointer;
    font-size: 15px;
}

.tom-vehicle-pricing table.matrix {
    width: 100%;
    border-collapse: collapse;
}

.tom-vehicle-pricing th,
.tom-vehicle-pricing td {
    padding: 6px;
    border-bottom: 1px solid #eee;
    text-align: center;
    font-size: 13px;
}

.tom-vehicle-pricing th {
    background: #f7f7f7;
    font-weight: 600;
}

.tom-mobile-pricing {
    display: none;
}

@media (max-width: 768px) {

    .tom-vehicle-card {
        grid-template-columns: 80px minmax(0, 1fr);
        gap: 10px;
    }

    .tom-vehicle-card .tom-vehicle-image {
        grid-column: 1;
        grid-row: 1;
    }

    .tom-vehicle-card .tom-vehicle-info {
        grid-column: 1 / span 2;
        grid-row: 2;
    }

    .tom-vehicle-card .tom-vehicle-pricing {
        grid-column: 1 / span 2;
        grid-row: 3;
    }

    .tom-vehicle-card .tom-vehicle-image img {
        width: 80px;
    }

    .tom-vehicle-card .tom-vehicle-pricing table.matrix {
        display: none;
    }

    .tom-vehicle-card .tom-mobile-pricing {
        display: block;
    }

    .tom-vehicle-card .tom-mobile-pricing table {
        width: 100%;
        border-collapse: collapse;
    }

    .tom-vehicle-card .tom-mobile-pricing th,
    .tom-vehicle-card .tom-mobile-pricing td {
        padding: 6px;
        border-bottom: 1px solid #eee;
        font-size: 13px;
    }

    .tom-vehicle-card .tom-mobile-pricing th {
        background: #f7f7f7;
    }
}

/*
=========================================================
NEW SEARCH BUTTON
=========================================================
*/

.tom-results-actions {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 15px;
}

.tom-new-search-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 18px;
    border-radius: 6px;
    background: var(--tom-primary);
    color: var(--tom-primary-text) !important;
    text-decoration: none;
    font-weight: 600;
    transition: all 0.25s ease;
}

.tom-new-search-button:hover {
    background: #000022;
    color: var(--tom-primary-text) !important;
    text-decoration: none;
}

/*
=========================================================
BOOKING REQUEST PAGE
=========================================================
*/

.tom-booking-request-page {
    --tom-primary: #007799;
    --tom-primary-dark: #005d78;
    --tom-primary-soft: #eef8fa;

    --tom-whatsapp: #1f9d55;
    --tom-whatsapp-dark: #178347;
    --tom-whatsapp-soft: #eefaf3;

    --tom-text: #17343d;
    --tom-muted: #61777e;
    --tom-border: #d9e5e8;
    --tom-background: #f5f8f9;
    --tom-white: #ffffff;
    --tom-error: #b42318;
    --tom-error-background: #fff2f0;

    --tom-radius-small: 10px;
    --tom-radius: 16px;
    --tom-radius-large: 22px;

    width: 100%;
    max-width: 1160px;
    margin: 0 auto;
    padding: 14px;
    color: var(--tom-text);
    font-family: inherit;
    box-sizing: border-box;
}

.tom-booking-request-page *,
.tom-booking-request-page *::before,
.tom-booking-request-page *::after {
    box-sizing: border-box;
}

.tom-booking-request-page [hidden] {
    display: none !important;
}

.tom-booking-request-page h2,
.tom-booking-request-page h3,
.tom-booking-request-page p {
    margin-top: 0;
}

.tom-booking-request-page h2 {
    margin-bottom: 8px;
    color: var(--tom-text);
    font-size: clamp(21px, 5vw, 30px);
    line-height: 1.2;
}

.tom-booking-request-page h3 {
    margin-bottom: 9px;
    color: var(--tom-text);
    font-size: 17px;
    line-height: 1.3;
}

.tom-booking-request-page p {
    margin-bottom: 12px;
    line-height: 1.55;
}

/*
=========================================================
BOOKING STEPS
=========================================================
*/

.tom-booking-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    width: 100%;
    max-width: 1160px;
    margin: 0 auto 18px;
    padding: 6px;
    background: #f5f8f9;
    border: 1px solid #d9e5e8;
    border-radius: 16px;
    box-sizing: border-box;
}

.tom-booking-steps *,
.tom-booking-steps *::before,
.tom-booking-steps *::after {
    box-sizing: border-box;
}

.tom-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 0;
    min-height: 62px;
    padding: 7px 3px;
    color: #61777e;
    text-align: center;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.2;
    border-radius: 11px;
}

.tom-step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 27px;
    height: 27px;
    flex: 0 0 27px;
    color: #61777e;
    background: #ffffff;
    border: 1px solid #d9e5e8;
    border-radius: 50%;
    font-size: 13px;
    font-weight: 700;
}

.tom-step-complete {
    color: #007799;
}

.tom-step-complete .tom-step-number {
    color: #ffffff;
    background: #007799;
    border-color: #007799;
}

.tom-step-active {
    color: #007799;
    background: #ffffff;
    box-shadow: 0 2px 10px rgba(0, 75, 96, 0.08);
}

.tom-step-active .tom-step-number {
    color: #ffffff;
    background: #007799;
    border-color: #007799;
}

@media (min-width: 600px) {

    .tom-booking-steps {
        margin-bottom: 22px;
    }

    .tom-step {
        flex-direction: row;
        min-height: 54px;
        gap: 8px;
        padding: 8px 10px;
        font-size: 13px;
    }
}

@media (max-width: 380px) {

    .tom-booking-steps {
        gap: 4px;
        padding: 5px;
    }

    .tom-step {
        min-height: 57px;
        padding: 6px 2px;
        font-size: 10px;
    }

    .tom-step-number {
        width: 25px;
        height: 25px;
        flex-basis: 25px;
    }
}

/*
=========================================================
MAIN LAYOUT — MOBILE FIRST
=========================================================
*/

.tom-booking-request-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
}

.tom-booking-request-summary,
.tom-booking-request-form {
    min-width: 0;
    padding: 18px;
    background: var(--tom-white);
    border: 1px solid var(--tom-border);
    border-radius: var(--tom-radius-large);
    box-shadow: 0 8px 28px rgba(18, 55, 67, 0.07);
}

/*
=========================================================
SUMMARY
=========================================================
*/

.tom-booking-request-summary {
    background:
        linear-gradient(
            180deg,
            var(--tom-primary-soft) 0,
            var(--tom-white) 150px
        );
}

.tom-booking-request-summary > h2 {
    margin-bottom: 3px;
    padding-right: 5px;
    overflow-wrap: anywhere;
}

.tom-booking-request-vehicle-meta {
    margin-bottom: 18px !important;
    color: var(--tom-primary);
    font-size: 14px;
    font-weight: 700;
}

.tom-booking-request-summary-block {
    margin-bottom: 10px;
    padding: 13px 14px;
    background: var(--tom-white);
    border: 1px solid var(--tom-border);
    border-radius: var(--tom-radius-small);
}

.tom-booking-request-summary-block h3 {
    margin-bottom: 5px;
    color: var(--tom-primary);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.tom-booking-request-summary-block p {
    margin-bottom: 3px;
    font-size: 14px;
}

.tom-booking-request-summary-block p:last-child {
    margin-bottom: 0;
    color: var(--tom-muted);
}

.tom-booking-request-price {
    margin-top: 14px;
    padding: 15px;
    background: var(--tom-background);
    border: 1px solid var(--tom-border);
    border-radius: var(--tom-radius);
}

.tom-booking-request-price > p:first-child {
    margin-bottom: 12px;
    color: var(--tom-muted);
    font-size: 14px;
    line-height: 1.65;
}

.tom-booking-request-total {
    display: flex;
    justify-content: space-between;
    margin: 0 !important;
    padding-top: 12px;
    color: var(--tom-primary-dark);
    border-top: 1px solid var(--tom-border);
    font-size: 19px;
}

.tom-booking-request-trust {
    margin-top: 14px;
    padding: 14px;
    background: var(--tom-whatsapp-soft);
    border: 1px solid #ccebd9;
    border-radius: var(--tom-radius);
}

.tom-booking-request-trust h3 {
    margin-bottom: 6px;
    color: #176b3d;
    font-size: 15px;
}

.tom-booking-request-trust p {
    margin-bottom: 6px;
    color: #3c6550;
    font-size: 13px;
}

.tom-booking-request-trust p:last-child {
    margin-bottom: 0;
}

/*
=========================================================
FORM
=========================================================
*/

.tom-booking-request-form > div > p:first-of-type {
    color: var(--tom-muted);
}

.tom-booking-request-form hr {
    height: 1px;
    margin: 22px 0;
    background: var(--tom-border);
    border: 0;
}

.tom-booking-request-form label {
    display: inline-block;
    margin-bottom: 7px;
    color: var(--tom-text);
    font-size: 14px;
    font-weight: 600;
}

.tom-booking-request-page input:not([type="checkbox"]):not([type="radio"]) {
    display: block;
    width: 100%;
    min-height: 50px;
    padding: 11px 13px;
    color: var(--tom-text);
    background: var(--tom-white);
    border: 1px solid #bdced3;
    border-radius: 11px;
    outline: none;
    font-family: inherit;
    font-size: 16px;
    line-height: 1.3;
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        background 0.18s ease;
}

.tom-booking-request-page input:not([type="checkbox"]):not([type="radio"]):hover {
    border-color: #8eabb3;
}

.tom-booking-request-page input:not([type="checkbox"]):not([type="radio"]):focus {
    background: #ffffff;
    border-color: var(--tom-primary);
    box-shadow: 0 0 0 3px rgba(0, 119, 153, 0.13);
}

.tom-booking-request-page input[type="checkbox"],
.tom-booking-request-page input[type="radio"] {
    width: 20px;
    height: 20px;
    margin: 0 9px 0 0;
    flex: 0 0 20px;
    accent-color: var(--tom-primary);
    cursor: pointer;
}

.tom-booking-request-page label:has(
    input[type="checkbox"]
),
.tom-booking-request-page label:has(
    input[type="radio"]
) {
    display: flex;
    align-items: flex-start;
    margin-bottom: 0;
    font-weight: 500;
    line-height: 1.45;
    cursor: pointer;
}

.tom-driver-note {
    margin-bottom: 13px !important;
    padding: 11px 13px;
    color: var(--tom-muted);
    background: var(--tom-background);
    border-radius: var(--tom-radius-small);
    font-size: 13px;
}

/*
=========================================================
AUTOCOMPLETE
=========================================================
*/

.tom-accommodation-suggestions {
    display: grid;
    gap: 2px;
    margin-top: -7px;
    padding: 0 4px;
    background: var(--tom-white);
    border-radius: 0 0 11px 11px;
}

.tom-accommodation-suggestions:empty {
    display: none;
}

.tom-suggestion {
    width: 100%;
    padding: 11px 12px;
    color: var(--tom-text);
    background: var(--tom-white);
    border: 0;
    border-bottom: 1px solid var(--tom-border);
    font-family: inherit;
    font-size: 14px;
    text-align: left;
    cursor: pointer;
}

.tom-suggestion:hover,
.tom-suggestion:focus {
    color: var(--tom-primary);
    background: var(--tom-primary-soft);
}

/*
=========================================================
BOOKING INFORMATION
=========================================================
*/

.tom-booking-info {
    margin: 20px 0;
    padding: 15px;
    background: var(--tom-primary-soft);
    border-left: 4px solid var(--tom-primary);
    border-radius: 0 var(--tom-radius) var(--tom-radius) 0;
}

.tom-booking-info > strong {
    display: block;
    margin-bottom: 8px;
    color: var(--tom-primary-dark);
    font-size: 15px;
}

.tom-booking-info p {
    margin-bottom: 7px;
    color: #46656e;
    font-size: 13px;
}

.tom-booking-info p:last-child {
    margin-bottom: 0;
}

/*
=========================================================
FEEDBACK
=========================================================
*/

.tom-booking-request-feedback {
    margin: 14px 0;
    padding: 12px 14px;
    color: var(--tom-error);
    background: var(--tom-error-background);
    border: 1px solid #f4c7c3;
    border-radius: var(--tom-radius-small);
    font-size: 14px;
    font-weight: 600;
}

/*
=========================================================
REQUEST METHODS
=========================================================
*/

.tom-request-method {
    margin-top: 20px;
    padding: 17px;
    border-radius: var(--tom-radius);
}

.tom-request-method h3 {
    margin-bottom: 5px;
    font-size: 18px;
}

.tom-request-method > p {
    margin-bottom: 14px;
    font-size: 14px;
}

.tom-request-method-whatsapp {
    background: var(--tom-whatsapp-soft);
    border: 1px solid #bfe5cf;
}

.tom-request-method-whatsapp h3 {
    color: #176b3d;
}

.tom-request-method-email {
    background: var(--tom-primary-soft);
    border: 1px solid #c7e4ea;
}

.tom-request-method-email h3 {
    color: var(--tom-primary-dark);
}

.tom-request-method-separator {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 19px 0;
    color: var(--tom-muted);
    font-size: 13px;
    font-weight: 600;
    text-align: center;
}

.tom-request-method-separator::before,
.tom-request-method-separator::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--tom-border);
}

.tom-request-method-separator span {
    flex: 0 0 auto;
}

/*
=========================================================
BUTTONS
=========================================================
*/

.tom-whatsapp-button,
.tom-email-request-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 52px;
    padding: 12px 16px;
    border-radius: 13px;
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition:
        transform 0.16s ease,
        box-shadow 0.16s ease,
        background 0.16s ease,
        border-color 0.16s ease;
}

.tom-whatsapp-button {
    color: #ffffff;
    background: var(--tom-whatsapp);
    border: 1px solid var(--tom-whatsapp);
    box-shadow: 0 7px 18px rgba(31, 157, 85, 0.22);
}

.tom-whatsapp-button:hover,
.tom-whatsapp-button:focus {
    color: #ffffff;
    background: var(--tom-whatsapp-dark);
    border-color: var(--tom-whatsapp-dark);
    transform: translateY(-1px);
}

.tom-email-request-button {
    color: #ffffff;
    background: var(--tom-primary);
    border: 1px solid var(--tom-primary);
    box-shadow: 0 7px 18px rgba(0, 119, 153, 0.18);
}

.tom-email-request-button:hover,
.tom-email-request-button:focus {
    color: #ffffff;
    background: var(--tom-primary-dark);
    border-color: var(--tom-primary-dark);
    transform: translateY(-1px);
}

.tom-whatsapp-button:disabled,
.tom-email-request-button:disabled {
    opacity: 0.65;
    cursor: wait;
    transform: none;
    box-shadow: none;
}

.tom-request-privacy-note {
    margin: 12px 0 0 !important;
    color: var(--tom-muted);
    font-size: 12px !important;
    line-height: 1.45;
}

/*
=========================================================
SUCCESS SCREENS
=========================================================
*/

.tom-request-success,
.tom-booking-request-confirmation {
    padding: 26px 18px;
    background: var(--tom-whatsapp-soft);
    border: 1px solid #bfe5cf;
    border-radius: var(--tom-radius-large);
    text-align: center;
}

.tom-request-success h3,
.tom-booking-request-confirmation h2 {
    margin-bottom: 9px;
    color: #176b3d;
}

.tom-request-success p,
.tom-booking-request-confirmation p {
    color: #476a56;
}

.tom-request-success .tom-whatsapp-button {
    margin-top: 7px;
}

/*
=========================================================
SMALL MOBILE
=========================================================
*/

@media (max-width: 380px) {

    .tom-booking-request-page {
        padding: 9px;
    }

    .tom-booking-request-summary,
    .tom-booking-request-form {
        padding: 15px;
        border-radius: 17px;
    }

    .tom-step {
        min-height: 57px;
        font-size: 10px;
    }

    .tom-step-number {
        width: 25px;
        height: 25px;
        flex-basis: 25px;
    }

    .tom-request-method {
        padding: 14px;
    }
}

/*
=========================================================
TABLET
=========================================================
*/

@media (min-width: 600px) {

    .tom-booking-request-page {
        padding: 20px;
    }

    .tom-booking-steps {
        margin-bottom: 22px;
    }

    .tom-step {
        flex-direction: row;
        min-height: 54px;
        gap: 8px;
        font-size: 13px;
    }

    .tom-booking-request-summary,
    .tom-booking-request-form {
        padding: 24px;
    }
}

/*
=========================================================
DESKTOP
=========================================================
*/

@media (min-width: 900px) {

    .tom-booking-request-layout {
        grid-template-columns:
            minmax(300px, 0.82fr)
            minmax(440px, 1.18fr);
        align-items: start;
        gap: 26px;
    }

    .tom-booking-request-summary {
        position: sticky;
        top: 24px;
    }

    .tom-booking-request-summary,
    .tom-booking-request-form {
        padding: 28px;
    }

    .tom-request-method {
        padding: 21px;
    }
}


/* =========================================
   VEHICLE AVAILABILITY
   ========================================= */

.tom-results .tom-availability-info {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin-top: 16px;
    padding: 8px 10px;
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 600;
    text-align: center;
}

/* High availability */
.tom-results .tom-availability-high {
    background: #e8f7f1;
    color: #087f5b;
    border-color: #b7ead7;
}

/* Limited availability */
.tom-results .tom-availability-medium {
    background: #fff6df;
    color: #9a6700;
    border-color: #f4d58a;
}

/* High demand */
.tom-results .tom-availability-low {
    background: #fff0f0;
    color: #b42318;
    border-color: #f3b5b0;
}

/* Unavailable until */
.tom-results .tom-availability-unavailable {
    background: #fff0f0;
    color: #b42318;
    border-color: #f3b5b0;
}



/* Mobile */
@media (max-width: 600px) {
    .tom-results .tom-availability-info {
        margin-top: 14px;
        padding: 7px 9px;
        font-size: 12px;
    }
}

/* =========================================================
   TRANSMISSION ICON — SECOND COLUMN BESIDE IMAGES
   ========================================================= */

.tom-results .tom-vehicle-photo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
}

.tom-results .tom-vehicle-photo .tom-vehicle-images {
    min-width: 0;
    width: 100%;
}

.tom-results .tom-vehicle-photo .tom-transmission-image {
    display: block !important;
    width: 30px !important;
    max-width: 30px !important;
    height: auto !important;
    max-height: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
    object-fit: contain !important;
    margin: 0 !important;
    padding: 0 !important;
}

 /* =========================================================
   TOM BOOKING — POLYLANG LANGUAGE SWITCHER
   Small outlined language buttons
   ========================================================= */

.tom-language-switcher {
	display: flex;
	align-items: center;
	gap: 6px;
}

.tom-language-switcher .tom-language-item {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 34px;
	height: 28px;
	padding: 0 7px;

	background: transparent;
	border: 1px solid currentColor;
	border-radius: 5px;

	color: inherit;
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;

	transition:
		background-color 0.2s ease,
		color 0.2s ease,
		border-color 0.2s ease;
}

/* Current language */
.tom-language-switcher .tom-language-item.is-current {
	font-weight: 700;
}

/* Hover */
.tom-language-switcher .tom-language-item:hover {
	background-color: #007799;
	border-color: #007799;
	color: #ffffff !important;
	text-decoration: none;
}

/* Mobile */
@media (max-width: 768px) {

	.tom-language-switcher {
		gap: 5px;
	}

	.tom-language-switcher .tom-language-item {
		min-width: 32px;
		height: 27px;
		padding: 0 6px;
		font-size: 10px;
		border-radius: 4px;
	}
}



/* =========================================================
   TOM 1 DAY SEARCH
   ========================================================= */

.tom-1day-search {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}


/* =========================================================
   ONE FORM — VEHICLES / ARROW / SEARCH
   ========================================================= */

.tom-1day-form {
    display: grid;
    grid-template-columns:
        minmax(0, 1.45fr)
        86px
        minmax(320px, 1fr);
    gap: 22px;
    align-items: center;
    width: 100%;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    box-sizing: border-box;
}


/* =========================================================
   VEHICLE LIST — LEFT
   ========================================================= */

.tom-1day-left {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    gap: 8px;
}

.tom-1day-left .tom-1day-form-subtitle {
    margin: 0 0 2px;
    padding-left: 2px;
    color: #6b7280;
    font-size: 25px;
    line-height: 1.3;
    font-weight: 500;
}

.tom-1day-vehicles {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    box-sizing: border-box;
}

.tom-1day-vehicle-card {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    align-items: center;
    width: 100%;
    min-width: 0;
    min-height: 82px;
    margin: 0;
    padding: 0 14px;
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    box-sizing: border-box;
}

.tom-1day-vehicle-card + .tom-1day-vehicle-card {
    border-top: 1px solid #e6ebed;
}

.tom-1day-vehicle-card:last-child:nth-child(odd) {
    grid-column: auto;
}


/* =========================================================
   VEHICLE IMAGE
   ========================================================= */

.tom-1day-vehicle-image {
    position: relative;
    width: 104px;
    height: 76px;
    overflow: hidden;
}

.tom-1day-vehicle-image > img:first-child {
    display: block;
    width: 100%;
    height: 100%;
    padding: 4px;
    object-fit: contain;
    box-sizing: border-box;
}

.tom-1day-transmission-image {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 25px;
    height: auto;
    object-fit: contain;
}


/* =========================================================
   VEHICLE INFO
   ========================================================= */

.tom-1day-vehicle-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-width: 0;
    padding: 10px 0 10px 10px;
}

.tom-1day-vehicle-info h3 {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    color: #26383e;
    font-size: 16px;
    line-height: 1.3;
    font-weight: 600;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: normal;
    word-break: normal;
}


/* =========================================================
   VEHICLE PRICE
   ========================================================= */

.tom-1day-vehicle-price {
    flex: 0 0 auto;
    color: #007799;
    font-size: 20px;
    line-height: 1.15;
    font-weight: 700;
    white-space: nowrap;
    text-align: right;
}

.tom-1day-vehicle-price span {
    display: block;
    margin-top: 2px;
    color: #6b7280;
    font-size: 10px;
    line-height: 1.2;
    font-weight: 400;
    text-align: right;
}


/* =========================================================
   BIG DIRECTION ARROW
   ========================================================= */

.tom-1day-direction {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    color: #007799;
    font-size: 64px;
    line-height: 1;
    font-weight: 300;
    user-select: none;
}

.tom-1day-direction-desktop {
    display: block;
}

.tom-1day-direction-mobile {
    display: none;
}


/* =========================================================
   SEARCH PANEL — RIGHT
   ========================================================= */

.tom-1day-form-fields {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    width: 100%;
    min-width: 0;
    padding: 20px;
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 14px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
    box-sizing: border-box;
}


/* =========================================================
   SEARCH TITLE
   ========================================================= */

.tom-1day-form-title {
    grid-column: 1 / -1;
    margin: 0 0 4px;
}

.tom-1day-form-title h2 {
    margin: 0;
    color: #1f2933;
    font-size: 20px;
    line-height: 1.2;
    font-weight: 600;
}

.tom-1day-form-subtitle {
    margin-top: 3px;
    color: #6b7280;
    font-size: 14px;
    line-height: 1.3;
    font-weight: 400;
}


/* =========================================================
   FIELDS
   ========================================================= */

.tom-1day-field {
    min-width: 0;
}

.tom-1day-field label {
    display: block;
    margin-bottom: 6px;
    font-size: 12px;
    line-height: 1.3;
    font-weight: 600;
}


/* =========================================================
   INPUTS / SELECTS
   ========================================================= */

.tom-1day-field input[type="text"],
.tom-1day-field select {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 9px 11px;
    background: #ffffff;
    color: inherit;
    border: 1px solid #d6dde0;
    border-radius: 8px;
    box-sizing: border-box;
    font-size: 14px;
    line-height: 1.3;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.tom-1day-field input[type="text"]:focus,
.tom-1day-field select:focus {
    border-color: #007799;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 119, 153, 0.10);
}


/* =========================================================
   EASY RETURN
   ========================================================= */

.tom-1day-easy-return {
    grid-column: 1;
    align-self: end;
    margin: 0;
    padding: 9px 11px;
    background: rgba(0, 119, 153, 0.055);
    border: 1px solid rgba(0, 119, 153, 0.15);
    border-radius: 9px;
}

.tom-1day-easy-return-title {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 3px;
    font-size: 13px;
    line-height: 1.3;
}

.tom-1day-easy-return-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    border-radius: 50%;
    background: #007799;
    color: #ffffff;
    font-size: 10px;
}

.tom-1day-easy-return-text {
    color: #5f6970;
    font-size: 11px;
    line-height: 1.45;
}


/* =========================================================
   SEARCH BUTTON
   ========================================================= */

.tom-1day-submit {
    grid-column: 1 / -1;
    padding-top: 2px;
}

.tom-1day-submit .tom-search-icon-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 44px;
    padding: 0;
    background: #007799;
    color: #ffffff;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    transition:
        opacity 0.2s ease,
        box-shadow 0.2s ease;
}

.tom-1day-submit .tom-search-icon-button:hover {
    opacity: 0.92;
    box-shadow: 0 5px 14px rgba(0, 119, 153, 0.20);
}

.tom-1day-submit .tom-search-icon-button i {
    font-size: 18px;
}


/* =========================================================
   TABLET / MOBILE
   Same HTML and same form — only visual order changes.
   ========================================================= */

@media (max-width: 900px) {

    .tom-1day-form {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        align-items: start;
    }

    .tom-1day-left {
        grid-column: 1;
        width: 100%;
    }

    .tom-1day-vehicles {
        width: 100%;
    }

    .tom-1day-direction {
        grid-column: 1;
        height: 54px;
        font-size: 58px;
    }

    .tom-1day-direction-desktop {
        display: none;
    }

    .tom-1day-direction-mobile {
        display: block;
    }

    .tom-1day-form-fields {
        grid-column: 1;
        width: 100%;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    .tom-1day-search {
        width: 100%;
        max-width: none;
    }

    .tom-1day-form {
        gap: 10px;
    }

    .tom-1day-vehicles {
        padding: 4px 0;
        border-radius: 10px;
    }

    .tom-1day-vehicle-card {
        grid-template-columns: 92px minmax(0, 1fr);
        min-height: 76px;
        padding: 0 10px;
    }

    .tom-1day-vehicle-image {
        width: 86px;
        height: 70px;
    }

    .tom-1day-vehicle-image > img:first-child {
        padding: 3px;
    }

    .tom-1day-transmission-image {
        top: 3px;
        right: 3px;
        width: 22px;
    }

    .tom-1day-vehicle-info {
        padding: 8px 0 8px 8px;
        gap: 8px;
    }

    .tom-1day-vehicle-info h3 {
        font-size: 14px;
        line-height: 1.25;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
        overflow-wrap: break-word;
        word-break: normal;
    }

    .tom-1day-vehicle-price {
        font-size: 17px;
    }

    .tom-1day-vehicle-price span {
        font-size: 9px;
    }

    .tom-1day-direction {
        height: 50px;
        font-size: 54px;
    }

    .tom-1day-form-fields {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr);
        gap: 12px;
        padding: 16px;
        border-radius: 12px;
    }

    .tom-1day-easy-return {
        grid-column: 1;
        align-self: auto;
    }

    .tom-1day-submit {
        grid-column: 1 / -1;
    }
}


/* =========================================================
   VERY SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {

    .tom-1day-vehicle-card {
        grid-template-columns: 82px minmax(0, 1fr);
        min-height: 70px;
        padding: 0 8px;
    }

    .tom-1day-vehicle-image {
        width: 76px;
        height: 66px;
    }

    .tom-1day-vehicle-info {
        padding-left: 7px;
    }

    .tom-1day-vehicle-info h3 {
        font-size: 13px;
    }

    .tom-1day-vehicle-price {
        font-size: 15px;
    }

    .tom-1day-direction {
        height: 46px;
        font-size: 50px;
    }

    .tom-1day-form-fields {
        grid-template-columns: minmax(0, 1fr);
    }

    .tom-1day-form-title,
    .tom-1day-easy-return,
    .tom-1day-submit {
        grid-column: 1;
    }
}


/* =========================================================
   WHATSAPP HELP / INFO BOX
   ========================================================= */

.tom-whatsapp-help {
    margin: 18px 0 4px;
    padding: 14px 16px;
    background: #f7fafb;
    border: 1px solid #d9e5e8;
    border-radius: 10px;
    font-size: 14px;
    line-height: 1.45;
    color: #4b5b60;
}

.tom-whatsapp-help-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 11px;
    color: #34454a;
}

.tom-whatsapp-help-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    border-radius: 50%;
    background: #e7f1f3;
    color: #007799;
    font-size: 18px;
    font-weight: 700;
}

.tom-whatsapp-help-steps {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.tom-whatsapp-help-step {
    display: flex;
    align-items: center;
    gap: 9px;
}

.tom-whatsapp-help-step > span:first-child {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    border-radius: 50%;
    background: #e9f0f2;
    color: #52666c;
    font-size: 12px;
    font-weight: 700;
}

.tom-whatsapp-help-step > span:last-child {
    flex: 1;
}

.tom-whatsapp-help-step:last-child > span:last-child {
    font-weight: 600;
    color: #34454a;
}

/* Send icon inside the WhatsApp button */

.tom-whatsapp-send-icon {
    display: inline-block;
    margin-left: 7px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
}

@media (max-width: 600px) {

    .tom-whatsapp-help {
        margin-top: 16px;
        padding: 13px 14px;
        font-size: 13px;
    }

}

/* =========================================================
   BOOKING PROCESS
   ========================================================= */

.tom-booking-process {
    margin: 24px 0;
    padding: 20px 22px;
    background: #ffffff;
    border: 1px solid #e1e8eb;
    border-radius: 12px;
}

.tom-booking-process-title {
    margin: 0 0 20px;
    font-size: 18px;
    line-height: 1.3;
    font-weight: 700;
    color: #26383e;
}

.tom-booking-process-steps {
    position: relative;
}

.tom-booking-process-step {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.tom-booking-process-step + .tom-booking-process-step {
    margin-top: 20px;
}

/* Connecting line between steps */
.tom-booking-process-step:first-child::after {
    content: "";
    position: absolute;
    left: 15px;
    top: 32px;
    bottom: -20px;
    width: 1px;
    background: #d9e5e8;
}

/* Number circle */
.tom-booking-process-number {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 31px;
    height: 31px;
    flex: 0 0 31px;

    border-radius: 50%;

    background: #e8f3f5;
    color: #007799;

    font-size: 14px;
    font-weight: 700;
}

/* Text area */
.tom-booking-process-content {
    flex: 1;
    min-width: 0;
}

.tom-booking-process-content strong {
    display: block;
    margin: 2px 0 5px;

    color: #26383e;

    font-size: 15px;
    line-height: 1.4;
}

.tom-booking-process-content p {
    margin: 0;

    color: #596b71;

    font-size: 14px;
    line-height: 1.55;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    .tom-booking-process {
        margin: 20px 0;
        padding: 17px 16px;
        border-radius: 10px;
    }

    .tom-booking-process-title {
        margin-bottom: 17px;
        font-size: 17px;
    }

    .tom-booking-process-step {
        gap: 11px;
    }

    .tom-booking-process-step + .tom-booking-process-step {
        margin-top: 18px;
    }

    .tom-booking-process-step:first-child::after {
        left: 14px;
        top: 30px;
        bottom: -18px;
    }

    .tom-booking-process-number {
        width: 29px;
        height: 29px;
        flex-basis: 29px;
        font-size: 13px;
    }

    .tom-booking-process-content strong {
        font-size: 14px;
    }

    .tom-booking-process-content p {
        font-size: 13px;
        line-height: 1.5;
    }
}


/* =========================================================
   TOM BOOKING – HERO SEARCH FORM
   Compact / Premium / High Conversion
   ========================================================= */

.tom-search {
    position: relative;
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 22px;
    background: linear-gradient(135deg, #007799 0%, #005f78 100%);
    border-radius: 18px;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.18);
    box-sizing: border-box;
}

/* Inner form layout */
.tom-search form {
    display: grid;
    grid-template-columns: 1.25fr 1fr 1fr auto;
    gap: 12px;
    align-items: end;
}

/* Labels */
.tom-search label {
    display: block;
    margin-bottom: 6px;
    color: #ffffff;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
}

/* Inputs / selects */
.tom-search input,
.tom-search select {
    width: 100%;
    height: 48px;
    padding: 0 14px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 10px;
    background: #ffffff;
    color: #1f2937;
    font-size: 15px;
    font-weight: 500;
    box-sizing: border-box;
    outline: none;
    transition: all 0.2s ease;
}

/* Focus */
.tom-search input:focus,
.tom-search select:focus {
    border-color: #ffffff;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.18);
}

/* Placeholder */
.tom-search input::placeholder {
    color: #7b8794;
    opacity: 1;
}

/* Search button */
.tom-search button,
.tom-search input[type="submit"] {
    height: 48px;
    padding: 0 25px;
    border: 0;
    border-radius: 10px;
    background: #ffffff;
    color: #007799;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.2s ease;
}

/* Button hover */
.tom-search button:hover,
.tom-search input[type="submit"]:hover {
    background: #f0ffff;
    color: #005f78;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}

/* Optional small helper / secondary text */
.tom-search small,
.tom-search .description {
    color: rgba(255, 255, 255, 0.85);
    font-size: 12px;
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .tom-search {
        padding: 16px;
        border-radius: 15px;
    }

    .tom-search form {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .tom-search label {
        font-size: 12px;
    }

    .tom-search input,
    .tom-search select {
        height: 46px;
        font-size: 14px;
    }

    .tom-search button,
    .tom-search input[type="submit"] {
        grid-column: 1 / -1;
        width: 100%;
        height: 48px;
    }
}

/* =========================================================
   VERY SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {

    .tom-search {
        padding: 14px;
    }

    .tom-search form {
        gap: 8px;
    }

    .tom-search input,
    .tom-search select {
        padding-left: 11px;
        padding-right: 11px;
    }
}



/* =========================================================
   TOM FAQ — PREMIUM DESIGN
   ========================================================= */

/* GENERAL */

.tom-faq {
    --tom-faq-text: #252b2d;
    --tom-faq-muted: #667176;
    --tom-faq-border: #e2e7e8;
    --tom-faq-surface: #ffffff;
    --tom-faq-soft: #f5f8f8;
    --tom-faq-accent: #007799;

    width: 100%;
    color: var(--tom-faq-text);
    box-sizing: border-box;
}

.tom-faq *,
.tom-faq *::before,
.tom-faq *::after {
    box-sizing: border-box;
}

/* =========================================================
   CATEGORY NAVIGATION
   ========================================================= */

.tom-faq .tom-faq-nav {
    display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;

    margin: 0 0 48px;
    padding: 0;
    border: 0;
}

/* PREMIUM BUTTONS */

.tom-faq .tom-faq-nav-link {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;

    min-width: 0;
    min-height: 78px;
    padding: 16px 18px;

    color: #253338;
    background: #ffffff;

    border: 1px solid #e3eaec;
    border-radius: 16px;

    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;

    box-shadow:
        0 3px 12px rgba(26, 57, 67, 0.035);

    transition:
        color 200ms ease,
        background-color 200ms ease,
        border-color 200ms ease,
        box-shadow 200ms ease,
        transform 200ms ease;
}

/* ICON CONTAINER */

.tom-faq .tom-faq-nav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 44px;
    width: 44px;
    height: 44px;

    color: var(--tom-faq-accent);
    background: #eaf6f8;

    border-radius: 13px;
    line-height: 1;

    transition:
        color 200ms ease,
        background-color 200ms ease,
        transform 200ms ease;
}

/* FONT AWESOME 6 */

.tom-faq .tom-faq-nav-icon i {
    display: inline-block;

    font-family: "Font Awesome 6 Free";
    font-size: 19px;
    font-weight: 900;
    font-style: normal;
    line-height: 1;
}

/* BUTTON LABEL */

.tom-faq .tom-faq-nav-label {
    display: block;
    flex: 1;
    min-width: 0;

    overflow-wrap: break-word;
}

/* DECORATIVE ARROW */

.tom-faq .tom-faq-nav-link::after {
    content: "\f061";

    display: inline-block;
    flex-shrink: 0;

    margin-left: auto;

    font-family: "Font Awesome 6 Free";
    font-size: 12px;
    font-weight: 900;

    color: #98aeb4;

    transition:
        color 200ms ease,
        transform 200ms ease;
}

/* HOVER */

@media (hover: hover) {

    .tom-faq .tom-faq-nav-link:hover {
        color: #006b87;
        background: #f6fbfc;
        border-color: #77b8c7;

        box-shadow:
            0 9px 24px rgba(0, 95, 125, 0.10);

        transform: translateY(-3px);
        text-decoration: none;
    }

    .tom-faq .tom-faq-nav-link:hover
    .tom-faq-nav-icon {
        color: #ffffff;
        background: var(--tom-faq-accent);
        transform: scale(1.05);
    }

    .tom-faq .tom-faq-nav-link:hover::after {
        color: var(--tom-faq-accent);
        transform: translateX(3px);
    }
}

/* KEYBOARD FOCUS */

.tom-faq .tom-faq-nav-link:focus-visible {
    outline: 2px solid var(--tom-faq-accent);
    outline-offset: 4px;
}

/* =========================================================
   CATEGORY SECTIONS
   ========================================================= */

.tom-faq .tom-faq-category {
    margin: 0 0 48px;
    padding: 0;

    scroll-margin-top: 100px;
}

.tom-faq .tom-faq-category:last-child {
    margin-bottom: 0;
}

/* CATEGORY TITLE */

.tom-faq .tom-faq-category-title {
    margin: 0 0 22px;
    padding: 0 0 14px;

    color: var(--tom-faq-text);

    border-bottom:
        1px solid var(--tom-faq-border);

    font-size: clamp(23px, 2.5vw, 30px);
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.02em;
}

/* =========================================================
   FAQ LIST
   ========================================================= */

.tom-faq .tom-faq-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* FAQ ITEM — NO ACCORDION */

.tom-faq .tom-faq-item {
    display: block;

    margin: 0;
    padding: 22px 0;

    background: transparent;

    border: 0;
    border-bottom:
        1px solid var(--tom-faq-border);

    border-radius: 0;
    box-shadow: none;
}

.tom-faq .tom-faq-item:first-child {
    padding-top: 4px;
}

.tom-faq .tom-faq-item:last-child {
    border-bottom: 0;
}

/* =========================================================
   QUESTION — ALWAYS VISIBLE
   ========================================================= */

.tom-faq .tom-faq-question {
    display: block;

    margin: 0 0 10px;
    padding: 0;

    color: var(--tom-faq-text);

    font-size: 17px;
    font-weight: 600;
    line-height: 1.5;

    letter-spacing: -0.01em;

    cursor: default;
}

/* =========================================================
   ANSWER — ALWAYS VISIBLE
   ========================================================= */

.tom-faq .tom-faq-answer {
    display: block;

    color: var(--tom-faq-muted);

    font-size: 15px;
    font-weight: 400;
    line-height: 1.8;

    overflow-wrap: anywhere;
}

/* ANSWER PARAGRAPHS */

.tom-faq .tom-faq-answer p {
    margin: 0 0 12px;
}

.tom-faq .tom-faq-answer p:last-child {
    margin-bottom: 0;
}

/* ANSWER LISTS */

.tom-faq .tom-faq-answer ul,
.tom-faq .tom-faq-answer ol {
    margin: 10px 0;
    padding-left: 24px;
}

.tom-faq .tom-faq-answer li {
    margin-bottom: 6px;
}

/* ANSWER LINKS */

.tom-faq .tom-faq-answer a {
    color: var(--tom-faq-accent);

    text-decoration: underline;
    text-underline-offset: 3px;

    transition: color 180ms ease;
}

.tom-faq .tom-faq-answer a:hover {
    color: #005b76;
}

/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    .tom-faq .tom-faq-nav {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 12px;
    }

    .tom-faq .tom-faq-nav-link {
        min-height: 74px;
        padding: 14px 16px;
    }

    .tom-faq .tom-faq-category {
        scroll-margin-top: 90px;
    }
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    /* NAVIGATION */

    .tom-faq .tom-faq-nav {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 10px;
        margin-bottom: 36px;
    }

    /* BUTTONS */

    .tom-faq .tom-faq-nav-link {
        justify-content: flex-start;

        gap: 9px;

        min-width: 0;
        min-height: 72px;

        padding: 12px;

        border-radius: 13px;

        font-size: 13px;
        line-height: 1.35;
    }

    /* ICONS */

    .tom-faq .tom-faq-nav-icon {
        flex: 0 0 36px;

        width: 36px;
        height: 36px;

        border-radius: 10px;
    }

    .tom-faq .tom-faq-nav-icon i {
        font-size: 16px;
    }

    /* HIDE ARROW */

    .tom-faq .tom-faq-nav-link::after {
        display: none;
    }

    /* CATEGORY */

    .tom-faq .tom-faq-category {
        margin-bottom: 36px;
        scroll-margin-top: 80px;
    }

    .tom-faq .tom-faq-category-title {
        margin-bottom: 16px;
        padding-bottom: 12px;

        font-size: 23px;
    }

    /* FAQ ITEM */

    .tom-faq .tom-faq-item {
        padding: 18px 0;
    }

    /* QUESTION */

    .tom-faq .tom-faq-question {
        margin-bottom: 9px;

        font-size: 16px;
        line-height: 1.45;
    }

    /* ANSWER */

    .tom-faq .tom-faq-answer {
        font-size: 14px;
        line-height: 1.75;
    }

    .tom-faq .tom-faq-answer p {
        margin-bottom: 10px;
    }
}

/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 360px) {

    .tom-faq .tom-faq-nav-link {
        padding: 10px;
        gap: 7px;
        font-size: 12px;
    }

    .tom-faq .tom-faq-nav-icon {
        flex-basis: 32px;
        width: 32px;
        height: 32px;
    }

    .tom-faq .tom-faq-nav-icon i {
        font-size: 15px;
    }
}

/* =========================================================
   ACCESSIBILITY — REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .tom-faq .tom-faq-nav-link,
    .tom-faq .tom-faq-nav-icon,
    .tom-faq .tom-faq-nav-link::after,
    .tom-faq .tom-faq-answer a {
        transition: none;
    }

    .tom-faq .tom-faq-nav-link:hover {
        transform: none;
    }

    .tom-faq .tom-faq-nav-link:hover
    .tom-faq-nav-icon {
        transform: none;
    }
}

.tom-booking-request-price .tom-request-price-note {
    margin: 10px 0 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    color: var(--theme-text-color, #555);
    font-family: inherit;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.5;
    text-align: inherit;
    letter-spacing: normal;
}


/* Search: rental-day total is the primary confirmation. */
#tom-search-form #tom-rental-days-counter {
    margin: 16px 0 10px;
    padding: 15px 18px;
    border-radius: 12px;
    border: 1px solid rgba(0, 119, 153, .22);
    background: #eaf4f6;
    color: #16343e;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
}
#tom-search-form #tom-rental-days-number {
    font-size: 25px;
    font-weight: 600;
}
#tom-search-form #tom-rental-days-label {
    font-weight: 550;
}
/* Secondary return notice: visible only when 23:59 hotel drop-off is selected. */
#tom-search-form #tom-midnight-return-notice {
    margin: 10px 0;
    padding: 12px 14px;
    border-left: 3px solid #007799;
    border-radius: 8px;
    background: #f4f7f8;
    color: #344850;
    font-size: 13px;
    line-height: 1.5;
}
#tom-search-form #tom-slot-info {
    margin: 8px 0;
    color: #69747b;
    font-size: 12px;
    line-height: 1.4;
}

/* Temporarily hide Get my price */
.tom-assistant-option[data-assistant-action="find-car"] {
    display: none !important;
}
