﻿/* Basic resets */
:root {
    --green: #7ed957;
}

html {
    scroll-behavior: smooth;
}

body, html {
    margin: 0;
    padding: 0;
    min-height: 100vh;
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    background-color: #fff;
    display: flex;
    flex-direction: column;
}


/*----------------------
    Custom Header
-------------------*/

.custom-header {
    background-color: #1c2946; /* dark navy */
    border-bottom: 5px solid #7ed957; /* green underline */
    padding: 15px 0;
    color: white;
}

.logo img {
    height: 75px;
}

.logo-text {
    font-weight: bold;
    font-size: 1.5rem;
}

.logo-highlight {
    color: #7ed957; /* bright green */
}

.header-divider {
    width: 1px;
    background-color: #fff;
    height: 40px;
    margin: 0 20px;
}

.trustpilot-stars img {
    height: 18px;
}

.aggregator {
    border-left: 1px solid #fff;
    padding-left: 20px;
}

.aggregator-logo {
}

.aggregator-logo img {
    max-height: 70px
}

.backLink a {
    color: black !important;
    cursor: pointer;
    text-decoration: none;
    font-weight: 600;
    text-decoration: none;
}

/*---------------
    Custom Body
----------------*/

.custom-body{
    min-height:600px;
}

.body-content{
    min-height:26em;
}


/*--------------
    Errors
--------------*/

    .validation-summary-errors ul {
    margin: 8px 0;
    padding: 0;
    list-style: none;
}

.validation-summary-errors ul li{
    margin: 0;
    padding: 0;
    text-align:left;
    list-style: none;
}

/*-------------------
    General
-----------------*/

.rounded-4 {
    border-radius: 1rem;
}

.fw-medium {
    font-weight: 500;
}


/* Modal */
.modal-backdrop.custom-backdrop {
    background-color: rgba(0, 86, 179, 0.6);
}

.modal-content {
    border-radius: 12px;
    padding: 20px;
}

/*------------------
    Compare Modal 
-----------------*/

#compareModal {
    background-color: rgba(51, 64, 89, 0.5); /* Adjust alpha as needed */
}

    #compareModal .modal-dialog {
     
        color: #37388B;
    }

    #compareModal .btn-close {
        position: absolute;
        position: absolute;
        top: 65px;
        right: 35px;
    }
    #compareModal .modal-body {
        background: #EBEBF3;
    }

    #compareModal .modal-content {
        background: #EBEBF3;
    }
        
    .compare-table {
        background: #EBEBF3 !important;
        color: #37388B;
    }

    .compare-table tr {
        padding: 10px !important;
    }
    .compare-table th,
    .compare-table td {
        text-align: center;
        vertical-align: middle;
        white-space: nowrap;
        background: #EBEBF3;
        color: #37388B;
    }

    .compare-table th:first-child,
    .compare-table td:first-child {
        text-align: left;
    }

.compare-title {
    font-weight: bold;
    font-size: 3rem;
    color: #1D2B47;
    margin: 0 auto;
    text-align: center;
}

.check-icon {
    color: green;
}

.cross-icon {
    color: crimson;
}

.optional-icon {
    color: #ffc107;
}

.cover-options {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}


.cover-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    border: 2px solid #E3E4E7;
    border-radius: 8px;
    background-color: #E3E4E7;
    cursor: pointer;
    font-weight: bold;
    height: 66px;
    padding: 0 1em;
}

    .cover-label .label-content {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        text-align: left;
        font-size: 20px;
        margin-left: 16px;
    }

    .cover-label .tick {
        background: none;
        width: 28px;
        height: 28px;
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle cx='8' cy='8' r='8' fill='%2372BC4C'/%3e%3cpath fill='%23fff' d='M6.173 11.653l-2.475-2.475.707-.707L6.173 10.24l5.192-5.192.707.707z'/%3e%3c/svg%3e");
        background-repeat: no-repeat;
        background-position: right 0 center;
        background-size: 1.5rem 1.5rem;
        display: none;
    }

    .cover-label .bi {
        font-size: 34px;
        margin-right: 10px;
    }

    .cover-label .fa {
        font-size: 28px;
        margin-right: 15px;
    }


input[type="radio"]:checked + .cover-label {
    background-color: #e6f4e6;
    border-color: #28a745;
}

    input[type="radio"]:checked + .cover-label .tick {
        display: inline-block;
    }


/*--------------------
   Summary Box colours.
-------------------*/
.vehicle-summary, .vehicle-summary-display, .summary-display, .address-summary-display {
    color: #37388B !important;
}

    .vehicle-summary .card {
        border-radius: 15px;
        border-color: #EBEBF3;
        background-color: #EBEBF3;
    }


#addressCard {
    border-radius: 15px;
    background-color: #EBEBF3;
}

/*----------------------------
    Additional Drivers
-------------------------*/
.additionalDriversContainer .card {
    border: 0;
}

.additionalDriversContainer .card-body {
    padding: 0;
}

.additionalDriversContainer .card-header {
    border: 0;
    background: #fff;
    font-size: 1.6rem;
}

.additionalDriversContainer h3 {
    font-size: 1.6rem;
    font-weight: 700;
    font-size: 1.6rem;
}

.additionalDriversContainer .additional-driver {
    margin-top: 3rem;
}


/*-----------------------------
    Additional Options
------------------------------*/
.additional-people-options {
    display: flex;
    margin-top: 24px;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.option-button {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 1rem 1.5rem;
    text-align: center;
    border-radius: 8px;
    background-color: #e9ecef;
    color: #1c1c1c;
    font-weight: bold;
    max-width: 180px;
    font-size: 1.2rem;
    border: 2px solid transparent;
    cursor: pointer;
    min-width: 180px;
    transition: all 0.2s ease-in-out;
}

    /* ✅ Tick positioned absolutely so it doesn’t shift layout */
    .option-button .tick {
        display: none;
        position: absolute;
        top: 18px;
        right: 16px;
        width: 24px;
        height: 24px;
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle cx='8' cy='8' r='8' fill='%2372BC4C'/%3e%3cpath fill='%23fff' d='M6.173 11.653l-2.475-2.475.707-.707L6.173 10.24l5.192-5.192.707.707z'/%3e%3c/svg%3e");
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
    }

/* Highlight selected button and show tick */
input[type="radio"]:checked + .option-button {
    background-color: #e6f4e6;
    border: 2px solid #28a745;
}

    input[type="radio"]:checked + .option-button .tick {
        display: block;
    }

.option-button.disabled {
    opacity: 0.5;
    pointer-events: none; /* stops clicking */
}

/*---------------------
    Place holders
-----------------------*/

/* Global placeholder color */
input::placeholder,
textarea::placeholder,
select::placeholder {
    color: #9BA1AE;
    opacity: 1; /* ensures color shows properly in all browsers */
}

/* Vendor prefixes for older browsers (optional) */
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder,
select::-webkit-input-placeholder {
    color: #9BA1AE;
}

input::-moz-placeholder,
textarea::-moz-placeholder,
select::-moz-placeholder {
    color: #9BA1AE;
}

input:-ms-input-placeholder,
textarea:-ms-input-placeholder,
select:-ms-input-placeholder {
    color: #9BA1AE;
}

input::-ms-input-placeholder,
textarea::-ms-input-placeholder,
select::-ms-input-placeholder {
    color: #9BA1AE;
}

input::-moz-placeholder,
textarea::-moz-placeholder {
    opacity: 1; /* Firefox fix */
}

/*---------------------------
    Select Dropdown
--------------------------*/

/* Normal state: show only Bootstrap’s default arrow */
select.form-select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-repeat: no-repeat;
    background-position: right 1.55rem center;
    background-size: 23px 17px;
    --bs-form-select-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpolygon points='0,4 8,12 16,4' fill='%23979DA9'/%3e%3c/svg%3e");
    background-image: var(--bs-form-select-bg-image);
}

    /* Hide the native arrow to prevent duplicates (Edge/IE) */
    select.form-select::-ms-expand {
        display: none;
    }


/* ✅ Valid: custom green tick icon replaces arrow */
.form-select.is-valid,
.was-validated .form-select:valid {
    background: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle cx='8' cy='8' r='8' fill='%2372BC4C'/%3e%3cpath fill='%23fff' d='M6.173 11.653l-2.475-2.475.707-.707L6.173 10.24l5.192-5.192.707.707z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 1.5rem 1.5rem;
}

/* ❌ Invalid: custom red cross icon replaces arrow */
.form-select.is-invalid,
.was-validated .form-select:invalid {
    background: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle cx='8' cy='8' r='8' fill='%23e0526c'/%3e%3cpath stroke='%23fff' stroke-width='2' d='M5 5l6 6M11 5l-6 6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 1.5rem 1.5rem;
}


/* Responsive tweaks */
@media (max-width: 767.98px) {
    .compare-table td:first-child,
    .compare-table th:first-child {
        position: sticky;
        left: 0;
        background-color: #fff;
        z-index: 2;
        min-width: 150px;
        max-width: 200px;
    }
}

@media (max-width: 575.98px) {
    .compare-table td, .compare-table th {
        font-size: 0.85rem;
        padding: 0.5rem;
    }

    .compare-title {
        font-size: 1.2rem;
    }
}


/* ------------------------------
    Tempus Dominus calendar
-------------------------------*/

.tempus-dominus-widget .calendar-days .calendar-header {
    display: none;
}

.tempus-dominus-widget .date-container-days .dow {
    display: none;
}

.tempus-dominus-widget .toolbar {
    display: none;
}

.td-popper {
    min-width: 100% !important; /* make it at least as wide as the input */
}

/* Calendar container */
.tempus-dominus-widget {
    border-radius: 12px !important;
    background-color: #EBEBF3 !important;
    padding: 1rem;
    border: none;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

    /* Header (month/year) */
    .tempus-dominus-widget .picker-switch {
        font-weight: 600;
        color: #2a2a7f;
    }

        .tempus-dominus-widget .picker-switch:hover {
            color: #4b4b9f;
        }

    /* Day cells */
    .tempus-dominus-widget .date-container .day {
        border-radius: 50%;
        border: 2px solid #4b4b9f;
        color: #4b4b9f;
        font-weight: 500;
        transition: all 0.2s ease;
        width: 38px;
        height: 38px;
        line-height: 34px;
        margin: 3px;
    }

        /* Hover + selected day */
        .tempus-dominus-widget .date-container .day:hover {
            background-color: #e6e6fa;
        }

        .tempus-dominus-widget .date-container .day.active,
        .tempus-dominus-widget .date-container .day.selected {
            background-color: #4b4b9f !important;
            color: #fff !important;
            border-color: #4b4b9f !important;
        }

        /* Disabled days (like from other months) */
        .tempus-dominus-widget .date-container .day.disabled,
        .tempus-dominus-widget .date-container .day.old,
        .tempus-dominus-widget .date-container .day.new {
            opacity: 0.3;
            border-color: #ccc;
        }

    /* Remove extra cell spacing */
    .tempus-dominus-widget .date-container td {
        padding: 0 !important;
    }

    /* Icons (calendar / clock) */
    .tempus-dominus-widget .fa-calendar,
    .tempus-dominus-widget .fa-clock {
        color: #4b4b9f;
    }


/*-----------------------
    Card Section
- Grey background
-------------------------*/

.card-section {
    background-color: #EBEBF3;
    border-radius: 1rem;
    padding: 2.8rem 2.6rem 3rem;
    margin: 0 auto 2rem;
    color: #37388B;
}

    .card-section h2 {
        font-weight: 700;
        color: #37388B;
        font-size: 1.6rem;
    }

    .card-section h5 {
        font-size: 1.2rem;
        font-weight: 700;
    }

    .card-section p.subheading {
        font-weight: normal;
        font-size: 0.85rem;
        margin-top: -4px;
    }

    .card-section p.text-small {
        font-weight: normal;
        color: #37388B;
        font-size: 0.9rem;
        margin-bottom: 16px;
    }

/* General */

/* Section wrapper spacing */
.section {
    margin-top: 2rem;
    margin-bottom: 2rem; /* spacing between sections */
    text-align: center;
}

.section-padding {
    padding-left: 130px;
    padding-right: 45px;
}

.section.first-section {
    margin-top: 0rem;
}

.section h2 {
    font-weight: 700;
    font-size: 1.6rem;
    margin-bottom: 28px;
}

.section p.subheading {
    font-weight: normal;
    font-size: 0.85rem;
    margin-top: -6px;
}

.section-heading {
    font-weight: 700;
    color: #0f1d38; /* deep navy/dark */
    text-align: center;
    margin-bottom: 2rem;
}

    .section-heading h1 {
        font-weight: 700;
        font-size: 2.6rem;
        margin-bottom: 16px;
    }

    .section-heading h2 {
        font-weight: 700;
        font-size: 1.2rem;
        margin-bottom: 16px;
    }

    .section-heading p, .section p {
        font-weight: 500;
        color: #2c3e50;
    }

.divider {
    border-top: 2px solid #1d2b49;
    margin: 2rem 0;
}


/* Remove border-radius on small screens */
@media (max-width: 768px) {
    .card-section {
        border-radius: 0 !important;
    }

    .section-padding {
        padding-left: 15px;
        padding-right: 15px;
    }
}

/*----------------------
    Footer
-----------------------*/

.site-footer {
    margin-top: 60px;
    background-color: #0e1e3a; /* Dark navy blue (adjust as needed) */
    color: #ccc; /* Light grey text */
    font-family: 'Arial', sans-serif;
    font-size: 0.875rem; /* Small text */
    line-height: 1.6;
    height: auto;
    width: 100%;
}

    .site-footer a {
        color: #fff;
    }

@media (max-width: 767px)
{
    .site-footer
    {
        position:relative; /*overwrites absolute position in footer tag that hides buttons in mobile*/
        margin-top: 0px;
    }
}


/*---------------
    Buttons
------------------*/
/* Custom Bootstrap 5 button with blue outline and text */
.btn-primary {
    color: #37388B; /* Text color */
    border: 2px solid #37388B; /* Outline color */
    background-color: transparent; /* Ensure transparent background */
    border-radius: 8px; /* Optional: match Bootstrap default rounded */
    padding: 0.5rem 1.5rem; /* Optional: match Bootstrap default padding */
    transition: all 0.3s ease; /* Smooth hover transition */
    font-size: 1rem;
    font-weight: 700;
    height:48px;
}

    .btn-primary:hover,
    .btn-primary:focus {
        background-color: #37388B; /* Fill with blue on hover */
        color: #fff; /* White text on hover */
        text-decoration: none; /* Remove underline if any */
    }

.nav-pills .nav-link {
    background: none;
    border: 0;
    border-radius: 0.25rem;
    color: #37388b;
}

.nav-link.disabled {
    color: #6c757d;
}

.nav-pills .nav-link:hover {
    color: #fff;
    background-color: #37388b;
}

.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
    color: #fff;
    background-color: #37388b;
}

/*--------------------
    Post code lookup
----------------------*/


/* Fix postcode lookup spinner size and visibility */
.postcode-lookup .spinner,
.postcodelookup .spinner,
.postcode-lookup .loading-overlay {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    border: 0.15em solid rgba(0, 0, 0, 0.1);
    border-top-color: #3B398C; /* your theme primary */
    border-radius: 50%;
    animation: spinner-border .75s linear infinite;
    vertical-align: middle;
    margin-left: 0.5rem;
}

@keyframes spinner-border {
    to {
        transform: rotate(360deg);
    }
}

/* Fix postcode lookup loader image size */
.post-code-lookup-loading-img {
    width: 20px; /* adjust as needed */
    height: 20px;
    vertical-align: middle;
    margin-left: 8px;
    display: none; /* hidden by default; shown when active */
}


/*-----------------
    Buy Button
------------------*/

.pricing-card .pricing-card-body {
    position: relative;
    height: 100%;
}

/* Custom light-grey button */
.buy-btn {
    @apply btn btn-light;
    /* optional if using Tailwind/PostCSS, ignore in plain CSS */
    background-color: #fff; /* light grey background */
    color: #212529; /* default text color */
    border-color: #ced4da; /* slightly darker border than bg */
    transition: all 0.2s ease; /* smooth hover transition */
    margin-top: 1rem;
    font-size: 1.2rem;
    padding: 0.6rem 1.5rem;
    border-radius: 0.5rem;
    width: 94%;
}

    .buy-btn:hover,
    .buy-btn:focus {
        background-color: #dee2e6; /* slightly darker grey on hover/focus */
        color: #212529;
    }


.invalid-feedback {
    text-align: left;
}

/*----------------
    Body
-------------------*/

h1 {

    font-weight: 700;
    color: #37388B;
    font-size:2rem;
}


/* ---------------------------
   Chunky Checkbox
--------------------------- */

.chunky-checkbox {
    position: relative;
}

    /* Make checkbox bigger */
    .chunky-checkbox .form-check-input {
        width: 28px; /* larger size */
        height: 28px;
        border-radius: 6px;
        border: 2px solid #ccc; /* thicker border for bigger box */
        box-sizing: border-box;
        padding: 0;
        margin: 0 0.5rem 0 0;
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        cursor: pointer;
        position: absolute;
        left: 0;
        background-color: #fff;
        transition: background-color 0.2s, border-color 0.2s;
    }

        /* Checked state */
        .chunky-checkbox .form-check-input:checked {
            background-color: #7CBC47; /* new green */
            border-color: #7CBC47; /* match border for consistency */
        }


        /* Hover */
        .chunky-checkbox .form-check-input:hover {
            border-color: #28a745;
        }

    .chunky-checkbox .form-check-label {
        display: inline-block;
        margin-left: 30px;
        text-align: left;
        margin-top:-8px !important;
    }
    .chunky-checkbox .form-check-input:checked::after {
        content: '';
        position: absolute;
        top: 5px;
        left: 9px;
        width: 6px;
        height: 12px;
        border: solid #fff;
        border-width: 0 3px 3px 0;
        transform: rotate(45deg);
    }

    .chunky-checkbox .form-check-input {
        top: 0;
        margin-top: 0;
        margin-left: 0;
        position: relative;
    }


/*----------------
    Proceed
-------------------*/

.proceed-section {
    padding: 2rem 6rem;
    color: #fff;
    background: #E4A838;
    margin: 3rem 0;
}

    .proceed-section .btn {
        padding: 0.5rem 2rem;
        min-width: 165px;
        font-weight: 700;
        color: #E4A838;
    }


/* Info icon */
.info-icon {
    width: 20px;
    height: 20px;
    border: 1px solid #2e2d85;
    border-radius: 50%;
    font-size: 0.75rem;
    text-align: center;
    line-height: 18px;
    font-weight: bold;
    color: #2e2d85;
    flex-shrink: 0;
}


.card-header {
    background-color: #f0f4fa;
    font-weight: 600;
}

input.is-invalid,
select.is-invalid,
.cover-label.is-invalid {
    background-color: #f8d7da !important; /* light pink */
    border-color: #dc3545 !important; /* bootstrap danger red */
    padding-right: 2.5rem; /* space for icon */
}

/* Inner container (60% width of middle container) */
.inner-container {
    width: 60%;
    margin: 0 auto;
}


/* Chunky inputs with grey background and rounded corners
    DD: Reduced for the portal, may need making bigger again but to target the checkout specifically.
*/
input.form-control,
select.form-select {
    height: 48px;
    background-color: #E8E9EC;
    padding: 0 1.75rem;
    font-size: 1.1rem;
    font-weight: bold;
    font-style: italic;
    border: 2px solid #E8E9EC;
    box-sizing: border-box;
    color: #212529;
}

    input.form-control::placeholder,
    select.form-select::placeholder {
        color: #6c757d;
        opacity: 1;
    }

    input.form-control:focus,
    select.form-select:focus {
        background-color: white;
        border-color: #0d6efd;
        outline: none;
        box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, .25);
    }

/* Hide default labels */
label.form-label {
    display: none;
}
/* Base styling for Select2 to match your inputs */
.select2-container--default .select2-selection--single {
    height: 48px !important; /* match input height */
    background-color: #E8E9EC !important; /* match input background */
    border: 2px solid #E8E9EC !important; /* match input border */
    box-sizing: border-box;
    font-size: 1.1rem; /* chunkier font */
    font-weight: bold;
    font-style: italic;
    padding: 0 1.75rem !important; /* match input padding */
    display: flex;
    align-items: center; /* vertically center text */
    color: #212529;
    border-radius: 0.25rem;
}

    /* Text inside the select */
    .select2-container--default .select2-selection--single .select2-selection__rendered {
        line-height: normal !important;
        padding-left: 0 !important; /* adjust if needed */
    }

    /* Arrow on the right */
    .select2-container--default .select2-selection--single .select2-selection__arrow {
        height: 100% !important;
        top: 0 !important;
        right: 10px;
    }

    /* Clear "×" icon spacing */
    .select2-container--default .select2-selection--single .select2-selection__clear {
        margin-right: 8px;
        margin-left: 4px;
        top: 10px;
        transform: translateY(-50%);
        font-size: 1rem;
    }

/* Placeholder color */
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__rendered.select2-selection__placeholder {
    color: #6c757d;
    opacity: 1;
}

/* Focus state like input */
.select2-container--default.select2-container--focus .select2-selection--single {
    background-color: white !important;
    border-color: #0d6efd !important;
    outline: none;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, .25);
}


    /*--------------
    Icons
--------------*/
    /* Buttons */
    /* Custom green for Save */
    .btn-success {
    background-color: #72BC4C;
    border-color: #72BC4C;
}

    .btn-success:hover,
    .btn-success:focus {
        background-color: #61A940; /* slightly darker for hover */
        border-color: #61A940;
    }

/* Optional: adjust Cancel red slightly if needed */
.btn-danger {
    background-color: #DC3545;
    border-color: #DC3545;
}

    .btn-danger:hover,
    .btn-danger:focus {
        background-color: #C82333;
        border-color: #C82333;
    }

/* General Edit */
.btn-edit {
    background: none; /* no background */
    border: none; /* no border */
    color: #37388B; /* your custom blue */
    padding: 0.25rem 0.5rem; /* optional padding */
    font-size: 1rem; /* match icon size */
    transition: color 0.2s; /* smooth hover effect */
}

    .btn-edit:hover,
    .btn-edit:focus {
        color: #2f2f85; /* slightly darker on hover/focus */
        text-decoration: none; /* no underline */
    }

    .btn-edit:active {
        color: #25256f; /* active click color */
    }

    .btn-edit:disabled {
        color: #999; /* greyed out */
        cursor: not-allowed;
    }

.btn-edit-outline {
    background: transparent; /* no background */
    border: 1px solid #37388B; /* blue border */
    color: #37388B; /* blue text */
    padding: 0.25rem 0.5rem; /* optional padding */
    font-size: 1rem;
    border-radius: 0.25rem; /* match Bootstrap buttons */
    transition: all 0.2s;
}

    .btn-edit-outline:hover,
    .btn-edit-outline:focus {
        background-color: #37388B; /* fill on hover */
        color: #fff; /* white text */
        text-decoration: none;
    }

    .btn-edit-outline:active {
        background-color: #2f2f85; /* slightly darker on click */
        border-color: #2f2f85;
        color: #fff;
    }

    .btn-edit-outline:disabled {
        color: #999;
        border-color: #999;
        cursor: not-allowed;
        background: transparent;
    }


.btn-add-vehicle {
    background-color: #383893;
    color: #fff;
    text-align: left;
    border-radius: 0.75rem; /* match rounded look */
    padding: 0.5rem 1rem 0.75rem;
    font-size: 1rem;
    margin: 2em 0 1em; /* Give space beneath the vehicle reg for validation error messages */
}

    .btn-add-vehicle:hover {
        background-color: #2f2f7a; /* slightly darker on hover */
        color: #fff;
    }

    .btn-add-vehicle strong {
        font-weight: 600;
    }

    .btn-add-vehicle small {
        font-size: 0.875rem;
        margin-left: 4px;
        opacity: 0.8;
    }

.btn-group {
    gap: 0.75rem;
    margin-top: 1rem;
}


.btn.next-step {
    min-height: 80px;
    background: #72BC4C !important;
    font-weight: bold;
    font-size: 1.7rem;
    color: #fff;
    width: 100%;
    margin: 0 auto;
}

/* General Images on inputs */
/* Ensure wrappers allow absolute positioning for tick */
.input-wrapper,
.input-group,
.mb-3 {
    position: relative;
}

/*-----------------------
Custom Tick
-------------------------*/
/* ✅ Green tick */
.form-control.is-valid,
.was-validated .form-control:valid {
    background: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle cx='8' cy='8' r='8' fill='%2372BC4C'/%3e%3cpath fill='%23fff' d='M6.173 11.653l-2.475-2.475.707-.707L6.173 10.24l5.192-5.192.707.707z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 1.5rem 1.5rem;
}

/* ❌ Pink-red cross */
.form-control.is-invalid,
.was-validated .form-control:invalid {
    background: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle cx='8' cy='8' r='8' fill='%23e0526c'/%3e%3cpath stroke='%23fff' stroke-width='2' d='M5 5l6 6M11 5l-6 6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 1.5rem 1.5rem;
}

/* Custom valid select tick */
.form-select.is-valid:not([multiple]):not([size]),
.form-select.is-valid:not([multiple])[size="1"],
.was-validated .form-select:valid:not([multiple]):not([size]),
.was-validated .form-select:valid:not([multiple])[size="1"] {
    --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle cx='8' cy='8' r='8' fill='%2372BC4C'/%3e%3cpath fill='%23fff' d='M6.173 11.653l-2.475-2.475.707-.707L6.173 10.24l5.192-5.192.707.707z'/%3e%3c/svg%3e");
    padding-right: 4.125rem; /* make room for the tick */
    background-position: right .75rem center, center right 2.25rem;
    background-size: 1.5rem 1.5rem, calc(.75em + .375rem) calc(.75em + .375rem);
}

/* Custom invalid select cross */
.form-select.is-invalid:not([multiple]):not([size]),
.form-select.is-invalid:not([multiple])[size="1"],
.was-validated .form-select:invalid:not([multiple]):not([size]),
.was-validated .form-select:invalid:not([multiple])[size="1"] {
    --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle cx='8' cy='8' r='8' fill='%23DC3545'/%3e%3cpath fill='%23fff' d='M4.5 4.5l7 7m0-7l-7 7' stroke='%23fff' stroke-width='1.5'/%3e%3c/svg%3e");
    padding-right: 4.125rem; /* make room for the cross */
    background-position: right .75rem center, center right 2.25rem;
    background-size: 1.5rem 1.5rem, calc(.75em + .375rem) calc(.75em + .375rem);
}

.cross {
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle cx='8' cy='8' r='8' fill='%23dc3545'/%3e%3cpath fill='%23fff' d='M4.646 4.646l6.708 6.708m0-6.708l-6.708 6.708' stroke='%23fff' stroke-width='1.5'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1.25rem 1.25rem;
    padding-right: 2rem; /* make room for the cross */
}

/* Validated input/select styling with green background and space for tick */
input.validated.is-valid,
select.validated.is-valid {
    background-color: #E3F2DB !important;
    border-color: #28a745 !important;
    padding-right: 2.5rem; /* Make room for ✔ */
}


/* Optional: ensure input-wrapper always has relative position */
.input-wrapper {
    position: relative;
}

.loading-placeholder::after {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid #ccc;
    border-top-color: #333;
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
    vertical-align: middle;
    margin-left: 4px;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/*------------------------
    Loading Overlay 
-------------------------*/

.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1050;
    background-color: rgba(255, 255, 255, 0.75);
    display: flex; /* make it a flex container */
    flex-direction: column; /* stack spinner and text vertically */
    justify-content: center; /* center vertically */
    align-items: center; /* center horizontally */
    /* hide by default */
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.2s ease;
}

    .loading-overlay.show {
        visibility: visible;
        opacity: 1;
    }

/*--------------------
    Popover
---------------------*/
/* Popover itself transparent to allow arrow styling */
.popover {
    background-color: transparent;
    color: #ffffff; /* text color */
    border: none;
}

/* Popover body: dark blue background behind text */
.popover-body {
    background-color: #003366; /* dark blue */
    color: #ffffff;
    border-radius: 0.25rem;
    padding: 0.5rem 1rem;
}

.popover-body a {
    color: #ffffff !important;
    text-decoration:none;
}


/* Arrow styling for all placements */
.popover.bs-popover-top .popover-arrow::before,
.popover.bs-popover-bottom .popover-arrow::before,
.popover.bs-popover-start .popover-arrow::before,
.popover.bs-popover-end .popover-arrow::before {
    border-color: #003366; /* dark blue */
}

/*------------------------
    Payments
----------------------*/

.payments
{
    margin: 0 calc(-3rem + 15px) 120px;
}

.payments .policy-details-container
{
    background-color: #eaeaf3;
    color: #37388b;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    max-width: 920px;
}

.payments .policy-details-container p.title {
    color: #37388B;
    font-size: 1.2rem;
    font-weight: bold;
}

.payments .policy-details-container p.subtitle {
    color: #37388B;
    font-size: 2.5rem !important;
        
}

.payments .validation-message,
.payments .payment-failed-message {
    color: red;
    font-weight: bold;
    text-align: center;
}

.payments .capture-payment-details-container {
    color: white;
    margin: auto;
}

    .payments .capture-payment-details-container form {
        background-color: inherit;
    }

        .payments .capture-payment-details-container form label.blink-form__label.field-label {
            width: calc(100% - 1rem);
            margin: auto;
            display: none;
        }

    .payments .capture-payment-details-container #blinkPaymentForm .fieldgroup-container {
    }

        .payments .capture-payment-details-container #blinkPaymentForm .fieldgroup-container .hostedfield-wrapper {
            width: 100%;
        }

            /* ✅ Green tick */
            .payments .capture-payment-details-container #blinkPaymentForm .fieldgroup-container .hostedfield-wrapper.hf-complete.hf-valid {
                background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle cx='8' cy='8' r='8' fill='%2372BC4C'/%3e%3cpath fill='%23fff' d='M6.173 11.653l-2.475-2.475.707-.707L6.173 10.24l5.192-5.192.707.707z'/%3e%3c/svg%3e") !important;
                background-repeat: no-repeat;
                background-position: right 16px center;
                background-size: 1.5rem 1.5rem;
            }

            /* ❌ Pink-red cross */
            .payments .capture-payment-details-container #blinkPaymentForm .fieldgroup-container .hostedfield-wrapper.hf-invalid {
                background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle cx='8' cy='8' r='8' fill='%23e0526c'/%3e%3cpath stroke='%23fff' stroke-width='2' d='M5 5l6 6M11 5l-6 6'/%3e%3c/svg%3e");
                background-repeat: no-repeat;
                background-position: right 16px center;
                background-size: 1.5rem 1.5rem;
            }

            .payments .capture-payment-details-container #blinkPaymentForm .fieldgroup-container .hostedfield-wrapper .hostedfield-frame {
                background-color: #E8E9EC;
                box-sizing: border-box;
            }

            .payments .capture-payment-details-container #blinkPaymentForm .fieldgroup-container .hostedfield-wrapper.hf-complete.hf-valid .hostedfield-frame,
            .payments .capture-payment-details-container #blinkPaymentForm .fieldgroup-container .hostedfield-wrapper.hf-invalid .hostedfield-frame {
                background-color: inherit;
            }

        .payments .capture-payment-details-container #blinkPaymentForm .fieldgroup-container input {
            width: 100%;
            height: 66px;
            background-color: #E8E9EC;
            padding: 0 1.75rem;
            font-size: 1.1rem;
            font-weight: bold;
            font-style: italic;
            border: 2px solid #E8E9EC;
            border-radius: 0.375rem;
            box-sizing: border-box;
            color: #212529;
        }

.payments .section-heading.success h1 {
    font-size: 3.6rem;
    color: #72bc4c;
}
.payments .section-heading h2 {
    font-size: 1.4rem;
    color: #37388b;
}

.payments .check-mark-container {
    color: #72bc4c;
    font-size: 90px;
    line-height: 60px;
}

.payments .policy-documents-list {
    color: #37388b;
}

    .payments .policy-documents-list li {
        margin-bottom: 0.25rem;
    }

        .payments .policy-documents-list li a {
            color: #37388b;
        }

@media (min-width: 576px)
{
    .payments
    {
        margin: 0px;
    }

    .payments .policy-details-container,
    .payments .capture-payment-details-container
    {
        border-radius: 0.75rem
    }
}

@media (min-width: 992px)
{
    .payments .policy-details-container
    {
        padding-right: 6rem !important;
        padding-left: 6rem !important;
    }
}


/*-----------------------------
    Checkout Completed 
-----------------------------*/

.checkout-completed
{

}


/*---------------------------
    Customer Information
-----------------------------*/

.customer-information.card {
    border: 0;
}

.customer-information .card-body {
    padding: 0;
}

.customer-information .card-header {
    border: 0;
    background: #fff;
    font-size: 1.6rem;
}

.customer-information h3 {
    font-size: 1.6rem;
    font-weight: 700;
    font-size: 1.6rem;
}

.customer-information h3 a {
    text-decoration: none;
    color: #1F2947;
    cursor:pointer;
}
