﻿/* 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
}

/*--------------
    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;
    }
}

/*---------------------
    MTA
-----------------*/

/* Drivers */
/* Chunkier red toggle */
.driver-remove-switch .form-check-input {
    width: 3rem; /* bigger switch width */
    height: 1.5rem; /* bigger switch height */
    background-color: #f8d7da; /* light red background when off */
    border-radius: 1rem;
    border: 1px solid #dc3545; /* red border */
    transition: background-color 0.3s;
}

    .driver-remove-switch .form-check-input:checked {
        background-color: #dc3545; /* Bootstrap red when toggled on */
    }

        /* Optional: handle the knob */
        .driver-remove-switch .form-check-input:checked::after {
            background-color: #fff;
        }

/* Marked driver card */
.additional-driver-section.driver-marked .card-section {
    background-color: #f8d7da; /* light red */
    border: 1px solid #dc3545; /* subtle red border */
    transition: background-color 0.3s;
}

/* Optional: smooth transition */
.additional-driver-section .card-section {
    transition: background-color 0.3s;
}


/* Vehicles Removed */
/* Marked vehicle card */

/* Chunky red toggle for vehicle removal */
.vehicle-remove-switch .form-check-input {
    width: 3rem; /* bigger switch width */
    height: 1.5rem; /* bigger switch height */
    background-color: #f8d7da; /* light red background when off */
    border-radius: 1rem;
    border: 1px solid #dc3545; /* red border */
    transition: background-color 0.3s;
}

    /* Knob */
    .vehicle-remove-switch .form-check-input:checked {
        background-color: #dc3545; /* Bootstrap red when toggled on */
    }

        /* Optional: handle the knob */
        .vehicle-remove-switch .form-check-input:checked::after {
            background-color: #fff;
        }

    /* Optional: hover effect */
    .vehicle-remove-switch .form-check-input:hover {
        filter: brightness(1.1);
    }

/* Label under switch */
.vehicle-remove-switch .form-check-label {
    margin-top: 0.25rem;
    font-weight: 600;
    font-size: 0.875rem;
    color: #dc3545;
    text-align: center;
}

.vehicle-block.vehicle-marked .card {
    background-color: #f8d7da !important; /* light red */
    border: 1px solid #dc3545;
    transition: background-color 0.3s;
}

/* Smooth transition for normal state */
.vehicle-block .card {
    transition: background-color 0.3s;
}

/* ------------------------------
    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;
    }

/* ------------------------
   Excess Options
------------------------*/

/* Wrapper for mobile-first layout */
.excess-wrapper {
    flex-direction: column;
    text-align: center;
}

@media (min-width: 768px) {
    .excess-wrapper {
        flex-direction: row;
        text-align: left;
    }
}


/* Container for the radio buttons */
.excess-options {
    display: flex;
    justify-content: center;
    gap: 1rem;
    align-items: center;
    margin-top: 0;
    flex-wrap: nowrap; /* prevent wrapping */
}

/* Hide the actual radio inputs */
.excess-input {
    display: none;
}

/* Label styling */
.excess-label {
    cursor: pointer;
    /*width: 160px;   min-width: 160px; keep as max-width for mobile */
    border: 2px solid #ccc;
    border-radius: 0.75rem;
    padding: 1rem 1.5rem;
    min-width: 130px;
    font-weight: 700;
    max-width: 160px;
    text-align: center;
    background: #f1f3f5;
    position: relative;
    /* Only animate border and background color */
    transition: border-color 0.2s ease, background-color 0.2s ease;
    color: #0d1b3d;
}

@media (min-width: 1025px) {
    .excess-label { 
        width: 160px;   
    }
}

.excess-wrapper .label-text {
    font-weight: 700;
    color: #37388B;
    font-size: 1.2rem;
}

/* Hover effect */
.excess-label:hover {
    border-color: #7ed957;
}

/* Optional: make them all equal width dynamically */
.excess-options .excess-label {
    flex: 1; /* each option will stretch equally */
    max-width: 160px; /* optional cap */
}

/* Checked state with SVG tick on the right */
.excess-input:checked + .excess-label {
    background-color: #f3faef;
    border-color: #7ed957;
    /* Custom tick */
    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 1rem center; /* adjust horizontal spacing */
    background-size: 1.5rem 1.5rem;
}



/*---------------------
    Pricing Cards
----------------------*/
.pricing-card {
    border-radius: 1rem;
    position: relative;
    text-align: left; /* all left by default for now? */
    color: #fff;
    padding: 0;
    height: 290px;
    cursor:pointer;
    overflow: visible; /* allows label to sit outside */
}


    .pricing-card .tick.btn-outline {
        padding: 0.35rem;
        width: 8rem;
        border-radius: 0.75rem !important;
        border: 2px solid #fff;
        font-size: 1rem;
        color: #fff;
        position: absolute;
        right: 16px;
        font-weight: bold;
    }

.pricing-card .select-btn .btn-icon {
    display: none;
}

.pricing-card .select-btn.active .btn-text {
    display: none;
}

.pricing-card .select-btn.active .btn-icon {
    display: inline-block;
    font-size: 1.5rem;
    margin: 0 !important;
    font-weight: bold !important;
    line-height: 0;
    padding: 0 !important;
}
   

.policy-edit-form .pricing-card {
    height: auto;
}

.pricing-card .pricing-card-body {
    padding: 2rem;
    position: relative;
    height: 100%;
    border-radius: inherit;
    overflow: hidden; /* keeps child banner clipped to rounded corners */
}

/* background image (optional global fallback) */
.pricing-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    z-index: 0;
}

/* Foreground content */
.pricing-card .card-body,
.pricing-card strong,
.pricing-card p,
.pricing-card .price,
.pricing-card .selected-tick,
.pricing-card input,
.pricing-card .btn,
.pricing-card select {
    position: relative;
    z-index: 2;
}

.pricing-card h2 {
    margin-top: 1rem;
    font-size: 2.6rem;
}

.pricing-card h3 {
    font-size: 1.3rem;
}

.pricing-card p {
    font-size: 0.8rem;
    text-align: left;
}

.pricing-card .price-container {
    text-align: left;
    font-weight: normal;
}

.pricing-card .price {
    text-align: left;
    font-weight: 500;
    font-size: 2.2rem;
}

.pricing-card.unavailable {
    pointer-events: none;
    user-select: none;
    opacity: 0.75;
    filter: grayscale(100%);
    cursor: not-allowed;
}

.pricing-card .buy-btn {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 40px;
    width: 78%;
}

/*---------------------
    Policy Edit Forms
-----------------------*/

.policy-edit-form .excess-summary {
    font-size: 1.1rem;
    font-weight: 700;
}

/*---------------------
    Most Popular
--------------------*/

.pricing-card.most-popular {
    height: auto;
}

    .pricing-card.most-popular .pricing-card-body {
        overflow: hidden; /* ensures inner banner respects border radius */
        height: 290px;
        padding: 0;
    }

/* Hero banner background image */
.most-popular .pricing-card-body .hero-banner {
    position: relative;
    height: 100%;
    color: white;
    background: url("/images/govivid/banner-bg.png") no-repeat center center;
    background-size: cover;
    border-radius: inherit; /* keep corners rounded */
    overflow: hidden; /* clip SVG */
    z-index: 0;
}

/* SVG overlay */
.most-popular .pricing-card-body .hero-overlay {
    position: absolute;
    inset: 0;
    top: -90px;
    left: -112px;
    pointer-events: none;
    z-index: 1;
    border-radius: inherit;
    overflow: hidden;
}

    .most-popular .pricing-card-body .hero-overlay svg {
        /* width: 100%; - DD: Took off height, let it be what it needs to be?
        height: 100%;*/
        object-fit: cover;
        opacity: 0.9;
    }

.most-popular .pricing-card-body .shape-green {
    fill: #72bc4c;
    transition: fill 0.3s;
}

    .most-popular .pricing-card-body .shape-green:hover {
        fill: #8fe46a;
    }

/* Text + buttons above overlay */
.most-popular .hero-content {
    position: relative;
    z-index: 2;
    padding: 2rem;
}

.most-popular p {
    text-align: left;
}

.pricing-card.most-popular .price {
    text-align: left;
    font-weight: 500;
    font-size: 2.8rem;
}

/* “Most Popular” ribbon label */
.most-popular-label {
    position: absolute;
    top: -14px;
    left: 25px;
    color: #72BC4C;
    background-color: #1D2B47;
    font-weight: bold;
    font-size: 1rem;
    text-transform: uppercase;
    padding: 0.5rem 1.5rem;
    border-radius: 0.5rem;
    z-index: 3;
}

.pricing-card.most-popular .buy-btn {
    width: 300px;
    bottom: 35px;
}


/* 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;
    }
}

/*------------------
    Amend Buttons
-------------------*/
/* Custom Bootstrap 5 button with blue outline and text */
.btn-amend {
    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.375rem 1.5rem; /* Optional: match Bootstrap default padding */
    transition: all 0.3s ease; /* Smooth hover transition */
    font-size: 1rem;
    font-weight: 700;
}

    .btn-amend:hover,
    .btn-amend:focus {
        background-color: #37388B; /* Fill with blue on hover */
        color: #fff; /* White text on hover */
        text-decoration: none; /* Remove underline if any */
    }


/*-----------------
    Buy Button
------------------*/


/* 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;
    }

/* MOBILE: remove image, fallback solid background */
@media (max-width: 767.98px) {
    .pricing-card::before,
    .pricing-card::after {
        display: none;
    }
}

/*--------------------------
    Pricing Card
--------------------------*/

.card-green {
    background-color: #72BC4C;
}

    .card-green .buy-btn {
        color: #72BC4C;
        font-weight: 700;
    }

    .card-green::before {
        background-image: url("https://via.placeholder.com/800x300?text=National+Home");
    }

    .card-green::after {
        background: rgba(25, 135, 84, 0.85);
    }

.card-dark {
    background-color: #1D2B47;
}

    .card-dark .buy-btn {
        color: #1D2B47;
        font-weight: 700;
    }

.card-blue {
    background-color: #37388B;
}

    .card-blue .buy-btn {
        color: #37388B;
        font-weight: 700;
    }


.card-pink {
    background-color: #D83D97;
}

    .card-pink .buy-btn {
        color: #D83D97;
        font-weight: 700;
    }

.card-yellow {
    background-color: #EDA941;
    color: #fff;
}

    .card-yellow .buy-btn {
        color: #EDA941;
        font-weight: 700;
    }

.invalid-feedback {
    text-align: left;
}

/*----------------
    Trip Type
----------------*/

.trip-type-selector {
    gap: 1rem;
}

.trip-type-options .trip-type-label {
    text-align: center;
}

.trip-days-selector {
    min-height: 40px;
    position: relative;
}

.trip-type-input {
    display: none; /* hide actual radio buttons */
}

p.trip-type-heading {
    font-size: 0.8rem;
    margin-top: -12px;
    margin-bottom: 3px;
    padding: 0;
    text-align: left;
    font-weight: 700;
}

#days-selected-btn {
    background: #B27F31;
    font-size: 0.9rem;
    border: 2px solid #EDA941;
    font-weight: 700;
    padding: 0.45rem;
    border-radius: 8px;
    color: #fff;
}

/* Trip type buttons */
.trip-type-label {trip-type-label
    cursor: pointer;
    padding: 0.4rem 0.75rem;
    border-radius: 0.5rem;
    border: 1px solid #fff;
    background-color: transparent;
    color: #fff;
    font-size: 0.9rem;
    transition: all 0.2s;
}

.trip-type-label.selected {
    font-weight: bold;
    border: 1px solid #fff;
    background-color: #fff;
    color: #E4A838;
}

.trip-type-input:checked + .trip-type-label,
.trip-type-input:checked ~ .trip-type-label {
    background-color: #fff;
    color: #EDA941;
    font-weight: 700;
}

.days-selected-btn {
    font-weight: 700;
    font-size: 0.9rem;
    border-radius: 8px;
    padding: 0.4rem;
    margin-top: 1px;
    color: #E4A838;
}

/* Trip days dropdown wrapper (for injected <select>) */
#days-select-wrapper {
    top: 0;
    left: 0;
    z-index: 10;
    /* background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);*/
    border-radius: 0.5rem;
    padding: 0.5rem;
}

    #days-select-wrapper select {
        width: 100%;
        min-width: 140px;
    }

@media (max-width: 767.98px) {
    #days-select-wrapper {
        width: 100%;
        left: 0;
    }
}

/*----------------
    Overlay Modal
----------------*/

.trip-days-modal {
    position: absolute;
    inset: 0;
    background: #EDA941;
    /*background: rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(2px);*/
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 20;
    border-radius: inherit;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}

    .trip-days-modal.d-none {
        opacity: 0;
        visibility: hidden;
    }

.trip-days-modal-content {
    background: #EDA941;
    padding: 1.5rem;
    border-radius: 0.75rem;
    /*box-shadow: 0 6px 20px rgba(0,0,0,0.2);*/
    width: 100%;
    max-width: 320px;
    text-align: center;
    animation: fadeInUp 0.25s ease;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(15px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/*---------------------------
    Policy Summary
--------------------------*/
#policySummaryWrapper.sticky {
    position: fixed;
    left: 0;
    top: 0px;
    width: 100%;
    z-index: 1040;
    background-color: #38389c; /* Sticky blue */
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease-in-out;
}

    #policySummaryWrapper.sticky .card-section {
        padding: 0;
        background: none;
        color: #fff;
    }

    #policySummaryWrapper.sticky .container {
        margin: 0 auto;
        padding: 0.5rem 1rem;
    }

    /* Flex layout for the two sections */
    #policySummaryWrapper.sticky .policy-wrapper {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 2rem; /* space between cost and period sections */
        flex-wrap: wrap;
    }

        /* Make each col inline and compact */
        #policySummaryWrapper.sticky .policy-wrapper .col-md-4,
        #policySummaryWrapper.sticky .policy-wrapper .col-md-8 {
            flex: 0 0 auto;
            width: auto;
            display: flex;
            align-items: center;
            gap: 0.5rem;
            padding-top: 0.5rem;
            white-space: nowrap;
            color: #fff;
        }

    #policySummaryWrapper.sticky .card-section {
        margin: 1rem auto 1rem;
    }


    /* Border between the two */
    #policySummaryWrapper.sticky .policy-wrapper .col-md-8 {
        border-left: 1px solid #fff;
        padding-left: 1rem;
    }

    /* Inline label + value */
    #policySummaryWrapper.sticky h5 {
        font-size: 1.2rem;
        margin: 0;
        color: #fff;
        padding-top: 0;
        font-weight: 500;
    }

    #policySummaryWrapper.sticky .card-section .policy-cost,
    #policySummaryWrapper.sticky .card-section .policy-period {
        font-size: 1.2rem !important;
        color: #fff;
        padding-top: 0;
        font-weight: 600;
    }

/* Mobile adjustments */
@media (max-width: 576px) {
    #policySummaryWrapper.sticky .policy-wrapper {
        flex-direction: column;
        align-items: center;
        gap: 0.25rem;
    }

        #policySummaryWrapper.sticky .policy-wrapper .col-md-4,
        #policySummaryWrapper.sticky .policy-wrapper .col-md-8 {
            border-left: none;
            padding-left: 0;
            width: 100%;
            justify-content: center;
            flex-wrap: wrap;
            text-align: center;
        }

    #policySummaryWrapper.sticky h5 {
        font-size: 1.2rem;
        padding-top: 0;
    }

    #policySummaryWrapper.sticky .card-section .policy-cost,
    #policySummaryWrapper.sticky .card-section .policy-period {
        font-size: 1.2rem !important;
        padding-top: 0;
    }
}

.policy-summary-view li, .policy-summary-view a {
    color: #133467 !important;
}


/* Addons */
/* Base layout */

/* Add-ons container */
.add-ons {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: flex-start;
    margin-top: 1rem;
}

/* Add-on cards */
.addon-box {
    display: flex;
    align-items: center;
    background-color: #f1f3f5;
    border-radius: 0.75rem;
    padding: 1.25rem 1.25rem;
    position: relative;
    cursor: pointer;
    min-width: 220px;
    flex: 1 1 0;
    gap: 1rem;
    transition: background 0.3s ease;
}

    .addon-box.active {
        background: #d7edda;
    }

    .addon-box:hover {
        background-color: #e8ebee;
    }

    .addon-box .addon-input.form-check-input {
        margin-left: 32px !important;
    }

    .addon-box .addon-text {
        margin-left: 32px;
    }


/* Label layout */

/* Wrap title + price together vertically */
.addon-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

/* Title and price styling */
.addon-title {
    font-weight: 600;
    color: #000;
}

.addon-price {
    font-weight: 700;
    color: #38389c;
    font-size: 0.9rem;
}

/* ---------------------------
   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;
    }

/*-------------------------------------------------
    Proceed
    Btn style is for the lets go / purchase 
---------------------------------------------------*/

.proceed-section {
    padding: 2rem 3rem;
    color: #7CBC47;
    background: #E4A838;
    margin: 3rem 0;
    background: #fff;
    margin: 3rem 0;
    border-radius: 20px !important;
    border: 3px solid #7CBC47;
}

.proceed-section .btn {
    padding: 1rem 3.5rem;
    min-width: 165px;
    background: #E4A838;
    font-weight: 700;
    color: #fff !important;
}

.proceed-section .btn:hover,
.proceed-section .btn:focus,
.proceed-section .btn:active,
.proceed-section .btn:focus:active {
    background: #E4A838 !important;
    color: #fff !important;
    box-shadow: none !important;
    outline: none !important;
}

/*---------------
   Addons
-----------------*/
/* Tick when checked */
.addon-input:checked + .custom-checkbox::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 6px;
    width: 5px;
    height: 10px;
    border: solid #0d1b3d;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* Content styles */
.addon-content {
    cursor: pointer;
    flex-grow: 1;
}

.addon-title {
    font-weight: 700;
    color: #0d1b3d;
    display: block;
}

.addon-price {
    font-size: 0.875rem;
    color: #333;
}

/* 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;
}

@media (max-width: 768px) {
    .add-ons {
        flex-direction: column;
    }

    .addon-box {
        flex: none;
        width: 100%;
    }

    .outer-container {
        width: 100% !important;
    }

    .proceed-section {
        padding: 1rem 1rem;
    }


    /*-------------------
        Pricing Cards
    -------------------*/
    .hero-overlay {
        display: none;
    }

    .hero-banner {
        background-image: none;
    }

    .pricing-card.most-popular h2 {
        margin-top: 1rem;
        font-size: 1.3em;
    }

    .pricing-card.most-popular .price {
        font-size: 2.2rem;
    }

    .pricing-card.most-popular .buy-btn {
        width: 78%;
        bottom: -30px;
    }

    .most-popular .pricing-card-body .hero-banner {
        background-image: none;
    }

    .most-popular .pricing-card-body .hero-overlay {
        display: none;
    }
}

/* Outer container (full height minus header/footer) */
.outer-container {
    margin: 0 auto;
    width: 75%;
}

/* Back link left outside form container */

 .backLink {
    position: absolute;
    left: 30px;
    top: 150px;
    cursor: pointer;
    text-decoration: none;
    color: #111;
    font-weight: 600;
    text-decoration: none;
    user-select: none;
    display: none;
    z-index: 10;
}

.backLink a {
    color: black !important;
    cursor: pointer;
    text-decoration: none;
    font-weight: 600;
    text-decoration: none;
}


.backLink i {
    font-size: 1rem;
}

@media (min-width: 0) and (max-width: 1025px) {

    .backLink {
        display: none;
        top: 25px;
        left: 3px;
        color: #fff;
        font-weight: 800;
    }

        .backLink i {
            font-size: 1.8rem;
        }

    .backLinkText {
        display: none;
    }

    .logo {
        margin-left: 16px !important;
    }
}


.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;
}

/*---------------------------
    Stepper styles
-------------------------*/
.stepper-wrapper {
    overflow: hidden;
    width: 100%;
    padding: 20px 0;
    position: relative;
    margin: 20px 0 50px
}

.stepper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 80%;
    margin: 0 auto;
    transition: transform 0.3s;
}

.step-item {
    flex: 1 1 0;
    text-align: center;
    position: relative;
    z-index: 1;
    transition: opacity 0.3s, transform 0.3s;
    height: 64px;
}


/* Connectors */
.step-item-connector::after {
    content: "";
    position: absolute;
    top: 20px;
    right: -50%;
    width: 100%;
    height: 2px;
    border-top: 2px dotted var(--green);
    z-index: -1;
}

.step-circle {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background-color: #D4EAC8;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    color: transparent; /* hide numbers by default */
    transition: all 0.3s;
    margin: 5px auto 0;
    font-size: 24px;
    user-select: none;
    color: #D4EAC8;
}

    .step-circle.active {
        width: 48px;
        height: 48px;
        background-color: #72BC4C;
        color: white;
        font-size: 20px;
        margin-top: 0;
    }

    .step-circle.completed {
        background-color: #7CBC47;
        color: white;
        position: relative;
        margin-top: 5px;
    }

        .step-circle.completed::after {
            content: "";
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 24px; /* size of the tick circle */
            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='%237CBC47'/%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; /* scales to fit width/height */
        }

    /* Show number only on active step */
    .step-circle:not(.active) {
        color: transparent !important;
    }

.step-label {
    margin-top: 1.5rem;
    font-size: 0.85rem;
    color: #72BC4C;
    font-weight: bold;
    user-select: none;
}

/* Step 1 icons */
.step-item.active .step-label {
    margin-top: 0.5rem;
}

.step1-icons {
    color: #03006a;
    margin-top: 32px;
}

.step1-icon-item i {
    font-size: 28px;
    color: #03006a;
}

.step1-icon-item img {
    height: 24px;
}

.step1-icon-text {
    font-size: 12px;
    margin: 0 16px 0 0;
}

/* ---- MOBILE BEHAVIOUR ---- */
@media (max-width: 576px) {
    .stepper {
        justify-content: center; /* center active step */
    }

    /* Hide non-active steps entirely */
    .step-item:not(.active) {
        display: none;
    }

    /* Stack circle and label vertically for active step */
    .step-item.active {
        flex-direction: column;
        align-items: center;
    }

        /* Move label below the circle */
        .step-item.active .step-label {
            margin-top: 0.5rem;
            font-size: 1rem;
            text-align: center;
        }
}

/*--------------------
    Form styles
--------------------*/
form {
    background: white;
}

.step {
    display: none;
}

    .step.active {
        display: block;
    }

/* Chunky inputs with grey background and rounded corners */
input.form-control,
select.form-select {
    height: 66px;
    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;
}

/*--------------
    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;
}

@media (max-width: 600px) {
}


/*-------------------
Vehicle Reg Input
---------------------*/
.vehicle-reg-input {
    height: 94px;
    border: 2px solid #1D2B47;
    border-radius: 8px;
}

    .vehicle-reg-input .form-control {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
        background-color: white;
        text-transform: uppercase;
        font-size: 2.6rem;
        min-height: 90px;
        letter-spacing: 2px;
        color: #111;
        height: 76px;
        font-style: normal;
    }

        .vehicle-reg-input .form-control::placeholder {
            color: #D2D5DA;
            opacity: 1; /* ensure full opacity (some browsers make it semi-transparent) */
        }

.vehicle-reg {
    border-left: 2px solid #1D2B47;
}

.vehicle-reg-input .input-group-text {
    border-right: 0;
    width: 70px;
}


@media (max-width: 767.98px) {
    .vehicle-reg-input .form-control {
        font-size: 1.8rem;
        letter-spacing: 1px;

    }
    .post-code-lookup-entry.post-code-lookup-entry {
        font-size: 1rem !important;
    }
}


/* 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);
    }
}


/*------------------------
    Post Code
----------------------*/
.post-code-clear-button {
    background: none;
    border: none;
    font-size: 18px;
    color: #888;
    margin-left: 5px;
    cursor: pointer;
}

.post-code-lookup-loading-img {
    display: none;
    margin-left: 10px;
    color: #0078D4;
}

#postCodeLookupResults {
    height: 200px;
    overflow-y: auto;
}

.post-code-lookup-close {
    display: none;
}

.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1080;
    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: underline;
    }


/* 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 .policy-details-container {
    background-color: #eaeaf3;
    color: #37388b;
}

.payments .validation-message,
.payments .payment-failed-message {
    color: red;
    font-weight: bold;
    text-align: center;
}

.payments .capture-payment-details-container {
    background-color: #ff0094;
    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 {
    color: #72bc4c;
}

.payments .check-mark-container {
    color: #72bc4c;
    font-size: 110px;
    line-height: 110px;
}

.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 .policy-details-container,
    .payments .capture-payment-details-container {
        border-radius: 0.75rem
    }
}

@media (min-width: 1200px) {
    .payments .policy-details-container {
        padding-right: 6rem !important;
        padding-left: 6rem !important;
    }
}


/*---------------
    File Link
--------------------*/

/* Ensure Bootstrap Icons CSS is loaded first */
.file-link {
    display: inline-flex;
    align-items: center;
    /*text-decoration: none;*/
    color: inherit;
    filter: brightness(0) invert(1);
    padding-left: 1.5em; /* space for the icon */
    background: url('https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/icons/file-earmark-text.svg') no-repeat left center;
    background-size: 1em 1em;
}


.popover-body .file-link{
    color:#fff !important;
}
