/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap');

:root {
    --primary: #1a237e;
    --primary-light: #534bae;
    --primary-dark: #000051;
    --secondary: #ffd700;
    /* Gold */
    --accent: #ff5722;
    --text-main: #333333;
    --text-muted: #666666;
    --bg-light: #f5f7fa;
    --white: #ffffff;
    --glass: rgba(255, 255, 255, 0.9);
    --shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
    --transition: all 0.3s ease;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Outfit', sans-serif;
    line-height: 1.6;
    color: var(--text-main);
    background-color: var(--bg-light);
    overflow-x: hidden;
}

/* Header & Navigation Wrapper */
.header-wrapper {
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 1000;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

/* Top Header: White background */
.top-header {
    background: linear-gradient(to right, #ffffff, #f8f9fa);
    padding: 0.8rem 0;
    width: 100%;
    border-bottom: 1px solid #e0e0e0;
}

.utility-group {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    /* More space to push functions further right */
    justify-content: flex-end;
    /* Align to the right edge */
}

.selector-group {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--text-main);
}

.selector-group select {
    background: #f8f9fa;
    color: var(--text-main);
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 2px 5px;
    font-size: 0.8rem;
    cursor: pointer;
    outline: none;
}

.header-contact {
    text-decoration: none;
    color: var(--text-main);
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.8rem;
    border-radius: 6px;
    font-weight: 600;
    transition: var(--transition);
    font-size: 0.85rem;
}

.header-contact.hotline {
    background: var(--accent);
    color: var(--white);
    box-shadow: 0 2px 10px rgba(255, 87, 34, 0.3);
}

.header-contact.email {
    background: #f8f9fa;
    border: 1px solid #ddd;
    margin-right: 0;
    /* Ensure no right margin on the email block */
}

.header-contact:hover {
    transform: translateY(-1px);
    filter: brightness(1.05);
}

/* Bottom Bar: Blue background */
.bottom-bar {
    background: var(--primary-dark);
    padding: 0.6rem 0;
    /* Smaller vertical padding */
    width: 100%;
}

.bottom-bar-container {
    max-width: 1400px;
    /* Base for ribbon */
    margin: 0 auto;
    padding: 0;
}

.main-nav ul {
    display: flex;
    list-style: none;
    justify-content: space-between;
    /* Evenly distribute items */
    align-items: stretch;
    gap: 0;
    width: 980px;
    /* Align with top-header nav-container width */
    margin: 0 auto;
    /* Center the container itself */
}

.main-nav ul li {
    position: relative;
    display: flex;
    align-items: center;
    padding: 0;
    /* Clear padding to use space-between distribution precisely */
    flex: 1;
    /* Each item takes equal space */
    justify-content: center;
    /* Center text within each slot */
}

/* Specific alignment for extreme items */
.main-nav ul li:first-child {
    justify-content: flex-start;
    /* 'Home' left aligned in its slot */
}

.main-nav ul li:last-child {
    justify-content: flex-end;
    /* 'About Us' right aligned in its slot */
}

/* Visual Separators */
.main-nav ul li:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 25%;
    height: 50%;
    width: 1px;
    background-color: rgba(255, 255, 255, 0.3);
}

.main-nav ul li a {
    color: var(--white);
    text-decoration: none;
    font-weight: 600;
    font-size: 1rem;
    transition: var(--transition);
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 6px;
    text-transform: uppercase;
    /* Space between text and arrow */
}



.main-nav ul li a:hover,
.main-nav ul li.dropdown:hover>a,
.main-nav ul li a.active,
.main-nav ul li.dropdown.active>a {
    color: var(--secondary);
}

/* Dropdown Styles */
.dropdown {
    position: relative;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: var(--primary-dark);
    min-width: 250px;
    box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.3);
    z-index: 1001;
    top: 100%;
    left: 0;
    border-top: 3px solid var(--secondary);
    padding: 0.5rem 0;
}

.dropdown-content a {
    color: var(--white) !important;
    padding: 12px 20px !important;
    text-decoration: none;
    display: block !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    transition: var(--transition);
    text-align: left;
}

.dropdown-content a:last-child {
    border-bottom: none;
}

.dropdown-content a:hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: var(--secondary) !important;
    padding-left: 25px !important;
}

.dropdown:hover>.dropdown-content,
.dropdown.open>.dropdown-content {
    display: block;
}

.dropdown .arr {
    font-size: 0.5rem;
    margin-left: 4px;
    transition: transform 0.3s;
}



/* Tablet responsiveness for Nav */
@media (max-width: 1200px) {
    .main-nav ul li {
        padding: 0 0.8rem;
    }

    .main-nav ul li a {
        font-size: 0.8rem;
    }
}

/* Scrolled state */
.header-wrapper.scrolled .top-header {
    padding: 0.5rem 0;
}

.nav-container {
    max-width: 980px;
    /* Slightly narrower than blue ribbon */
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0;
    /* Removed padding to align perfectly with edges */
}

.header-wrapper.scrolled .bottom-bar {
    padding: 0.6rem 0;
}

.logo {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--primary);
    text-decoration: none;
    line-height: 1;
    letter-spacing: -0.5px;
    display: block;
    /* Ensure it behaves as a block in its group */
}

.slogan {
    font-size: 0.72rem;
    /* Scaled down slogan to match logo width */
    color: var(--text-muted);
    font-weight: 500;
    margin-top: 2px;
    max-width: 350px;
    /* Allow more width to prevent drop but keep it small */
    white-space: nowrap;
    /* Prevent character drop */
    letter-spacing: 0.2px;
}

/* Scrolled state */
.header-wrapper.scrolled .top-header {
    padding: 0.5rem 0;
}

.header-wrapper.scrolled .bottom-bar {
    padding: 0.6rem 0;
}

/* Hero Section */
.hero {
    min-height: 100vh;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    padding-top: 160px;
    padding-bottom: 40px;
}

.hero-bg-slider {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}

.hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: 115%;
    /* Zoomed in to hide watermarks at edges */
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 2s ease-in-out;
    /* GPU layer promotion to prevent repaint lag */
    will-change: transform, opacity;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform: translateZ(0);
}

.hero-bg.active {
    opacity: 1;
    animation: kenBurns 30s linear infinite;
}

/* Background image assignments */
.hero-bg:nth-child(1) {
    background-image: url('../images/home_blog_general/hero-1.jpg');
    filter: brightness(0.7);
}

.hero-bg:nth-child(2) {
    background-image: url('../images/home_blog_general/hero-2.jpg');
    filter: brightness(0.7);
}

/* Floating CTA Buttons */
.floating-cta-container {
    position: fixed;
    bottom: 20px;
    right: 20px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    z-index: 9999;
    align-items: center;
}

.cta-btn {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    text-decoration: none;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
    transition: all 0.3s ease;
    overflow: visible;
    position: relative;
    background-size: 200% 200%;
    animation: vibration 3s infinite;
}

.cta-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: inherit;
    z-index: -1;
    opacity: 0.7;
    animation: signalWave 1.5s infinite;
}

.cta-btn svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
    z-index: 2;
}

.cta-btn:hover {
    transform: translateY(-5px) scale(1.1);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4);
}

/* Brand Colors & Gradients */
.cta-call {
    background: linear-gradient(135deg, #FF3D00, #FF6E40);
}

.cta-email {
    background: linear-gradient(135deg, #2196F3, #21CBF3);
}

.cta-email svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 2px;
}



.cta-messenger {
    background: linear-gradient(135deg, #00B2FF, #006AFF);
}

.cta-whatsapp {
    background: linear-gradient(135deg, #25D366, #128C7E);
}

@keyframes kenBurns {
    0% {
        transform: scale3d(1.1, 1.1, 1) translate3d(0, 0, 0);
    }

    50% {
        transform: scale3d(1.2, 1.2, 1) translate3d(-2%, -2%, 0);
    }

    100% {
        transform: scale3d(1.1, 1.1, 1) translate3d(0, 0, 0);
    }
}

.hero-bg::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0.65));
}

@keyframes slideTL {
    from {
        background-position: 0% 0%;
    }

    to {
        background-position: 8% 0%;
    }
}

@keyframes slideTR {
    from {
        background-position: 92% 0%;
    }

    to {
        background-position: 100% 0%;
    }
}

@keyframes slideBL {
    from {
        background-position: 0% 92%;
    }

    to {
        background-position: 8% 100%;
    }
}

@keyframes slideBR {
    from {
        background-position: 92% 92%;
    }

    to {
        background-position: 100% 100%;
    }
}

@keyframes vibration {

    0%,
    100% {
        transform: rotate(0deg);
    }

    20% {
        transform: rotate(-2deg);
    }

    40% {
        transform: rotate(2deg);
    }

    60% {
        transform: rotate(-2deg);
    }

    80% {
        transform: rotate(2deg);
    }
}

@keyframes signalWave {
    0% {
        transform: scale(1);
        opacity: 0.7;
    }

    100% {
        transform: scale(1.6);
        opacity: 0;
    }
}

.hero-content {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1rem;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 1.5rem;
    align-items: center;
}

/* Typing Effect */
.typing-container {
    font-size: 2.2rem;
    /* Smaller slogan */
    font-weight: 800;
    color: var(--white);
    margin-bottom: 0.4rem;
    min-height: 50px;
    line-height: 1.1;
    text-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
}

.cursor {
    animation: blink 1s infinite;
    color: var(--secondary);
}

@keyframes blink {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0;
    }
}

/* Service List */
.service-list-container {
    margin-bottom: 1rem;
    color: var(--white);
}

.service-list-title {
    font-size: 1.3rem;
    margin-bottom: 0.3rem;
    font-weight: 800;
    color: var(--secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.service-list-items {
    list-style: none;
    counter-reset: service-counter;
    padding-left: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.service-list-items li {
    counter-increment: service-counter;
    position: relative;
    padding-left: 2rem;
    font-size: 1.05rem;
    font-weight: 600;
}

.service-list-items li::before {
    content: counter(service-counter) ".";
    position: absolute;
    left: 0;
    font-weight: 800;
    color: var(--secondary);
}

.service-list-items a {
    color: var(--white);
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-block;
    padding: 2px 0;
    border-bottom: 1px solid transparent;
}

.service-list-items a::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
}

.service-list-items a:hover {
    color: var(--secondary);
    padding-left: 5px;
    border-bottom-color: var(--secondary);
    transform: translateX(2px);
}

/* USPs */
.usp-list {
    list-style: none;
    margin-bottom: 1rem;
}

.usp-list li {
    color: var(--white);
    font-size: 0.9rem;
    margin-bottom: 0.1rem;
    display: flex;
    align-items: center;
    gap: 12px;
    background: none;
    padding: 1px 0;
    border-radius: 8px;
    width: fit-content;
    border: none;
}

.usp-list li::before {
    content: "";
    width: 8px;
    height: 8px;
    background: var(--secondary);
    border-radius: 50%;
    display: block;
    flex-shrink: 0;
    margin-right: 2px;
}

/* Stats Bar */
.stats-bar {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 1.2rem;
    background: none;
    /* removed box */
    padding: 5px 0;
    /* removed padding */
    border: none;
    /* removed border */
    width: fit-content;
}

.stat-item {
    display: flex;
    flex-direction: column;
}

.stat-item.border-left {
    border-left: 1px solid rgba(255, 255, 255, 0.2);
    padding-left: 1.2rem;
}

.stat-val {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--secondary);
}

.stat-lbl {
    font-size: 0.7rem;
    color: rgba(255, 255, 255, 0.8);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-top: 2px;
}

/* Partner Logos */
.partner-logos {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.partner-label {
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.85rem;
    font-weight: 600;
}

.logos-grid {
    display: flex;
    gap: 1.5rem;
    align-items: center;
}

.partner-logo-item {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--white);
    font-size: 1rem;
    font-weight: 500;
    transition: var(--transition);
}

.logo-dot {
    width: 10px;
    height: 10px;
    border: 2px solid var(--secondary);
    border-radius: 50%;
    display: inline-block;
    transition: var(--transition);
}

.partner-logo-item:hover {
    transform: translateX(5px);
    color: var(--secondary);
}

.partner-logo-item:hover .logo-dot {
    background: var(--secondary);
    box-shadow: 0 0 10px var(--secondary);
}

/* Booking Engine */
.booking-engine {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(15px) saturate(180%);
    -webkit-backdrop-filter: blur(15px) saturate(180%);
    border-radius: 20px;
    padding: 1.5rem;
    /* Smaller padding */
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.4);
    position: relative;
    max-width: 450px;
    /* Constrain width slightly */
}

.locations-wrapper {
    position: relative;
    display: flex;
    flex-direction: column;
    /* gap is handled by form-group margin */
}

.input-wrapper {
    display: flex;
    gap: 8px;
    /* Gap between location select and terminal select */
    width: 100%;
}

.input-wrapper input[type="text"] {
    position: relative;
    /* Required for z-index to work */
    flex: 1;
    padding-right: 40px;
    /* Prevent text from going under the reverse button */
    z-index: 5;
    /* Ensure clickable */
    background: #fff;
    /* Ensure it covers anything behind */
    background-image: none !important;
    /* Remove any potential validation icons */
    box-shadow: none !important;
    /* Remove any potential validation shadows */
}

/* Blog Page Styling */
.blog-header {
    background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('../images/home_blog_general/hero-2.jpg');
    background-size: cover;
    background-position: center;
    color: var(--white);
    height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 100px;
    text-align: center;
    margin-bottom: 3rem;
    padding: 0;
    position: relative;
}

.blog-header h1 {
    font-size: 3rem;
    font-weight: 800;
    margin-bottom: 1rem;
    text-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
}

.blog-container {
    max-width: 1200px;
    /* Slightly narrower for readability */
    margin: 0 auto;
    padding: 0 1rem 4rem;
}

.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 2rem;
    margin-bottom: 4rem;
}

.blog-card {
    background: var(--white);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    transition: var(--transition);
    display: flex;
    flex-direction: column;
}

.blog-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
}

.blog-img-wrapper {
    height: 220px;
    overflow: hidden;
    position: relative;
}

.blog-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.blog-card:hover .blog-img-wrapper img {
    transform: scale(1.05);
}

.blog-content {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.blog-content h3 {
    font-size: 1.3rem;
    font-weight: 700;
    margin-bottom: 0.8rem;
    color: var(--primary);
    line-height: 1.3;
}

.blog-content p {
    font-size: 0.95rem;
    color: var(--text-muted);
    margin-bottom: 1.5rem;
    flex-grow: 1;
    /* Pushes the button to the bottom */
    display: -webkit-box;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    /* Limit description lines */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

.blog-btn {
    display: inline-block;
    padding: 0.6rem 1.2rem;
    background: var(--primary);
    color: var(--white);
    text-decoration: none;
    border-radius: 6px;
    font-weight: 600;
    transition: var(--transition);
    text-align: center;
    border: 1px solid transparent;
}

.blog-btn:hover {
    background: var(--white);
    color: var(--primary);
    border-color: var(--primary);
}

/* Pagination */
.pagination {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 2rem;
}

.page-link {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--white);
    color: var(--text-main);
    text-decoration: none;
    font-weight: 600;
    border: 1px solid #ddd;
    transition: var(--transition);
}

.page-link.active,
.page-link:hover {
    background: var(--primary);
    color: var(--white);
    border-color: var(--primary);
}

.page-link.disabled {
    opacity: 0.5;
    pointer-events: none;
    background: #f5f5f5;
}

/* Responsive */
@media (min-width: 900px) {
    .blog-content p {
        -webkit-line-clamp: 6;
        line-clamp: 6;
        /* Show more text on larger screens if needed */
    }
}

.pac-container {
    z-index: 10000 !important;
    font-family: 'Outfit', sans-serif;
    border-radius: 8px;
    margin-top: 5px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.input-wrapper select {
    flex: 1;
    z-index: 5;
}

.terminal-select {
    width: auto;
    /* Flex removed to allow content width */
    padding: 0.6rem 0.4rem;
    /* Smaller padding */
    text-align: center;
    min-width: 140px;
    /* Ensure enough space for longer text */
}

.btn-reverse {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    /* Smaller button */
    height: 36px;
    border-radius: 50%;
    background: var(--white);
    border: 1px solid #ddd;
    color: var(--primary);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    transition: var(--transition);
    z-index: 10;
}

.btn-reverse:hover {
    background: var(--secondary);
    color: var(--primary-dark);
    transform: translateY(-50%) rotate(180deg);
}

.btn-reverse svg {
    width: 20px;
    height: 20px;
}

.hidden {
    display: none !important;
}

.booking-engine h2 {
    color: var(--primary-dark);
    margin-bottom: 1rem;
    font-size: 1.3rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.form-options {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 1rem;
}

.checkbox-container {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: 0.9rem;
    color: var(--primary-dark);
    font-weight: 500;
}

.checkbox-container input {
    width: 16px;
    height: 16px;
    accent-color: var(--primary);
}

.form-group {
    margin-bottom: 0.8rem;
    /* Tighter */
}

.form-group label {
    display: block;
    margin-bottom: 0.3rem;
    font-weight: 700;
    /* Bolder */
    color: var(--primary-dark);
    font-size: 1rem;
    /* Bigger Label */
}

.form-control {
    width: 100%;
    padding: 0.6rem 0.8rem;
    /* Smaller inputs */
    border: 1px solid #ddd;
    border-radius: 8px;
    font-family: inherit;
    font-size: 0.9rem;
    transition: var(--transition);
}

.form-control:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(26, 35, 126, 0.1);
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.8rem;
}

.btn-quote {
    width: 100%;
    background: var(--primary);
    color: var(--white);
    border: none;
    padding: 1rem;
    border-radius: 8px;
    font-size: 1.1rem;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition);
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 4px 15px rgba(26, 35, 126, 0.3);
}

.btn-quote:hover {
    background: var(--primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(26, 35, 126, 0.4);
}

/* Date & Time Button */
.btn-datetime {
    text-align: left;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23666' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z'/%3E%3C/svg%3E") no-repeat right 10px center;
    background-size: 16px;
    cursor: pointer;
    color: #555;
    position: relative;
    z-index: 5;
}

.btn-datetime.filled {
    color: var(--primary-dark);
    font-weight: 600;
}

.hidden-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    height: 0;
    padding: 0;
    margin: 0;
    border: none;
}

/* Airport Details */
.airport-details {
    margin-top: 5px;
    animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Validation Message */
.validation-msg {
    color: #dc2626;
    font-size: 0.9rem;
    margin-bottom: 1rem;
    padding: 0.5rem;
    background: #fee2e2;
    border-radius: 4px;
    border: 1px solid #fecaca;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* --- Unified Booking Flow Modal (Wizard) --- */
#confirmation-modal {
    position: fixed;
    z-index: 10000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    background-color: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(5px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 15px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

#confirmation-modal.active {
    opacity: 1;
    visibility: visible;
}

#confirmation-modal .modal-content {
    background: #fff;
    border-radius: 16px;
    width: 100%;
    max-width: 650px;
    max-height: 95vh;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transform: translateY(30px);
    transition: all 0.3s ease;
}

#confirmation-modal.active .modal-content {
    transform: translateY(0);
}

#confirmation-modal .modal-header {
    background: var(--primary);
    color: #fff;
    padding: 1.2rem 2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-shrink: 0;
}

#confirmation-modal .modal-header h2 {
    margin: 0;
    font-size: 1.4rem;
    font-weight: 700;
    color: #fff !important;
}

#confirmation-modal .close-modal {
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.8);
    font-size: 2.2rem;
    cursor: pointer;
    line-height: 1;
    padding: 0;
    transition: color 0.2s;
}

#confirmation-modal .close-modal:hover {
    color: #fff;
}

#confirmation-modal .modal-body {
    padding: 2rem;
    overflow-y: auto;
    flex: 1;
    -webkit-overflow-scrolling: touch;
}

#confirmation-modal .step-indicator {
    display: flex;
    justify-content: space-between;
    margin-bottom: 2.5rem;
    position: relative;
    padding: 0 10%;
}

#confirmation-modal .step-indicator::before {
    content: '';
    position: absolute;
    top: 15px;
    left: 10%;
    right: 10%;
    height: 2px;
    background: #eee;
    z-index: 1;
}

#confirmation-modal .step {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #eee;
    color: #999;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.85rem;
    position: relative;
    z-index: 2;
    border: 3px solid #fff;
}

#confirmation-modal .step.active {
    background: var(--secondary);
    color: var(--primary);
}

#confirmation-modal .step.completed {
    background: var(--primary);
    color: #fff;
}

#confirmation-modal .step-label {
    position: absolute;
    top: 35px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.7rem;
    white-space: nowrap;
    color: #888;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

#confirmation-modal .step.active .step-label {
    color: var(--primary);
}

#confirmation-modal .modal-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.2rem;
}

#confirmation-modal .modal-form .form-group.full-width {
    grid-column: span 2;
}

#confirmation-modal .modal-form label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
    color: #444;
    font-size: 0.85rem;
}

#confirmation-modal .modal-form .form-control {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 0.95rem;
    transition: all 0.2s;
}

#confirmation-modal .modal-form .form-control:focus {
    border-color: var(--primary);
    outline: none;
    box-shadow: 0 0 0 3px rgba(26, 35, 126, 0.1);
}

#confirmation-modal .modal-footer {
    padding: 1.2rem 2rem;
    background: #f8f9fa;
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    flex-shrink: 0;
    border-top: 1px solid #eee;
}

#confirmation-modal .btn-confirm {
    background: var(--primary);
    color: #fff;
    border: none;
    padding: 10px 25px;
    border-radius: 8px;
    font-weight: 700;
    cursor: pointer;
    font-size: 0.9rem;
    transition: background 0.2s;
}

#confirmation-modal .btn-confirm:hover {
    background: var(--primary-dark);
}

#confirmation-modal .btn-back {
    background: #eee;
    color: #444;
    border: none;
    padding: 10px 20px;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    font-size: 0.9rem;
}

/* Payment Card Styling Standardized */
#confirmation-modal .payment-options-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    width: 100%;
}

#confirmation-modal .pay-option {
    cursor: pointer;
}

#confirmation-modal .pay-option input[type="radio"] {
    display: none;
}

#confirmation-modal .pay-card {
    border: 2px solid #eee;
    padding: 15px;
    border-radius: 12px;
    text-align: center;
    transition: all 0.2s ease;
    background: #fff;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

#confirmation-modal .pay-option input[type="radio"]:checked+.pay-card {
    border-color: var(--primary);
    background: rgba(26, 35, 126, 0.05);
}

.pay-title {
    font-weight: 800;
    font-size: 1.1rem;
    color: var(--primary-dark);
    display: block;
    margin-bottom: 5px;
}

.pay-desc {
    font-size: 0.85rem;
    color: #666;
}



@media (max-width: 600px) {
    .modal-form {
        grid-template-columns: 1fr;
    }

    .modal-form .form-group.full-width {
        grid-column: span 1;
    }

    .payment-options-grid {
        grid-template-columns: 1fr;
    }
}

/* Fleet Section */
.fleet {
    padding: 5rem 2rem;
    max-width: 1200px;
    margin: 0 auto;
}

.section-title {
    text-align: center;
    margin-bottom: 3rem;
}

.section-title h2 {
    font-size: 2.5rem;
    color: var(--primary-dark);
}

.fleet-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
}

@media (max-width: 1024px) {
    .fleet-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .fleet-grid {
        grid-template-columns: 1fr;
    }
}

.car-card {
    background: var(--white);
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    transition: var(--transition);
    display: flex;
    flex-direction: column;
    height: 100%;
}

.car-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}

.car-img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    background: #f9f9f9;
    padding: 0;
}

.car-info {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.car-info h3 {
    margin-bottom: 0.8rem;
    color: var(--primary);
    font-size: 1.25rem;
}

.service-desc-list {
    list-style-type: disc;
    padding-left: 1.2rem;
    font-size: 0.9rem;
    color: var(--text-muted);
    margin-bottom: 1rem;
    flex-grow: 1;
    text-align: left;
}

.service-desc-list li {
    margin-bottom: 0.4rem;
    line-height: 1.4;
}

.car-features {
    display: flex;
    gap: 1rem;
    margin-bottom: 1rem;
    font-size: 0.9rem;
    color: var(--text-muted);
}

/* Packages Section */
.packages {
    padding: 5rem 2rem;
    background: #f0f2f5;
}

.packages-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
}

.package-card {
    background: var(--white);
    border-radius: 20px;
    overflow: hidden;
    position: relative;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    transition: var(--transition);
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.package-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
}

.package-badge {
    position: absolute;
    top: 20px;
    right: -30px;
    background: var(--accent);
    color: var(--white);
    padding: 5px 40px;
    transform: rotate(45deg);
    font-size: 0.8rem;
    font-weight: 700;
    z-index: 1;
}

.package-content {
    padding: 2.5rem;
    text-align: center;
}

.package-content h3 {
    font-size: 1.5rem;
    color: var(--primary);
    margin-bottom: 1rem;
}

.package-content p {
    color: var(--text-muted);
    margin-bottom: 1.5rem;
}

.package-price {
    font-size: 2rem;
    font-weight: 800;
    color: var(--primary-dark);
    margin-bottom: 1.5rem;
}

.btn-book-pack {
    display: inline-block;
    padding: 0.8rem 2rem;
    background: var(--primary);
    color: var(--white);
    text-decoration: none;
    border-radius: 50px;
    font-weight: 600;
    transition: var(--transition);
}

.btn-book-pack:hover {
    background: var(--primary-dark);
    transform: scale(1.05);
}

/* About Page Specific Styles */
.about-container .booking-engine {
    margin-left: auto;
    background: var(--primary) !important;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.about-container .booking-engine h2,
.about-container .booking-engine label,
.about-container .booking-engine .form-control,
.about-container .booking-engine .btn-datetime,
.about-container .booking-engine .btn-quote,
.about-container .booking-engine .cb-label,
.about-container .booking-engine .validation-msg {
    color: var(--secondary) !important;
}

.about-container .booking-engine .form-control {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 215, 0, 0.3);
}

.about-container .booking-engine .btn-quote {
    background: var(--primary-dark);
    border: 1px solid var(--secondary);
}

.about-container .booking-engine .form-control::placeholder {
    color: rgba(255, 215, 0, 0.5);
}


.about-text {
    flex: 1;
    text-align: justify;
    padding-left: 2rem;
    /* Shift right */
}

.about-text p {
    font-size: 0.95rem;
    /* Reduced size for refined look */
    margin-bottom: 1.2rem;
    line-height: 1.6;
}

/* About Section */
.about {
    padding: 2rem 2rem 2rem 22rem;
    /* Increased padding to fit image */
    background-color: var(--white);
    background-image: url('../images/about_us/about_hero.png');
    background-repeat: no-repeat;
    background-position: -3rem center;
    /* Positioned on the left */
    background-size: 25rem auto;
    /* Sized to fit nicely */
}

.about-container {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    /* Widened text column (left) significantly */
    gap: 3rem;
    /* Reduced gap slightly */
    align-items: center;
}

.about-image img {
    width: 100%;
    border-radius: 30px;
    box-shadow: 20px 20px 0 var(--primary-light);
}

.about-text h2 {
    font-size: 2.5rem;
    color: var(--primary-dark);
    margin-bottom: 1.5rem;
}

.about-text p {
    font-size: 0.9rem;
    /* Further reduced from 0.95rem */
    margin-bottom: 1.5rem;
    color: var(--text-muted);
}

.about-stats {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 2rem;
    flex-wrap: wrap;
    /* Safety for smaller screens */
}

.about-stats .stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    /* Center align text */
    text-align: center;
    flex: 1;
    /* Distribute space evenly */
    min-width: 80px;
}

.about-stats .stat-num {
    font-size: 2.5rem;
    /* Increased from 2rem to stand out more */
    font-weight: 800;
    color: var(--primary);
    line-height: 1;
    margin-bottom: 0.5rem;
    font-variant-numeric: tabular-nums;
    /* Prevents jitter during animation */
}

.about-stats .stat-label {
    font-size: 0.8rem;
    color: var(--text-muted);
    font-weight: 500;
    line-height: 1.2;
}

/* Services Section Refinement */
#services {
    background: var(--white);
    /* Changed to white */
    padding: 3rem 0;
    /* Adjusted padding if needed */
}

/* Align title specifically for About Us page context if needed, 
   but generalized .section-title centering might affect others. 
   User asked "Align 'Why Choose Us?' so it is left-aligned and vertically aligned with the 'About Us' heading".
   'About Us' heading is inside .about-text. 'Why Choose Us?' is inside #services .section-title.
   We need to match the container width/padding of .about-container.
*/

#services .section-title {
    text-align: center;
    max-width: 1200px;
    margin: 0 auto 2rem auto;
    padding-left: 0;
    box-sizing: border-box;
    width: 100%;
}

#services .section-title h2 {
    margin-left: 0;
    padding-left: 0;
}


.choose-us-grid {
    /* Center the group of cards within the page layout */
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    /* 4 columns for 8 items */
    gap: 2rem;
    /* Increased gap slightly */
    padding: 0 1rem;
    /* Standardized centering */
}

/* Responsive adjustment */
@media (max-width: 900px) {
    .choose-us-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    #services .section-title {
        padding-left: 2rem;
        /* Reset for mobile */
    }
}

@media (max-width: 500px) {
    .choose-us-grid {
        grid-template-columns: 1fr;
    }
}

.choose-card {
    padding: 2.5rem 1.5rem;
    /* Increased size (padding) */
    border-radius: 12px;
    text-align: center;
    border: none;
    /* Removed border */
    position: relative;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: default;
    color: var(--white);
    /* Text white on solid bg */
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100px;
    /* Increased min-height */
}

.choose-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
}

/* Shiny Metallic Effect via pseudo-element */
.choose-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 50%;
    height: 100%;
    background: linear-gradient(to right,
            rgba(255, 255, 255, 0) 0%,
            rgba(255, 255, 255, 0.4) 50%,
            rgba(255, 255, 255, 0) 100%);
    transform: skewX(-25deg);
    transition: 0.5s;
    pointer-events: none;
}

.choose-card:hover::after {
    left: 150%;
    transition: 0.7s ease-in-out;
}

.choose-card h3 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--white);
    margin: 0;
    line-height: 1.3;
}

/* Brand Colors: Navy Blue, Yellow, Dark Orange */
.card-navy {
    background-color: #003366;
    color: #fff;
}

.card-yellow {
    background-color: #F5B041;
    color: #000;
}

/* Text black on yellow for contrast */
.card-orange {
    background-color: #E67E22;
    color: #fff;
}

/* Override specific text colors if needed */
.card-yellow h3 {
    color: #003366;
}

/* Navy text on yellow */

.card-dark {
    background-color: #34495e;
}

/* Keep existing .services-grid for other pages if needed */
.services-grid {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 3rem;
    text-align: center;
}

.service-item {
    padding: 2rem;
    background: var(--white);
    border-radius: 20px;
    transition: var(--transition);
}

.service-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
}

.service-icon {
    font-size: 3.5rem;
    margin-bottom: 1.5rem;
    display: block;
}

/* Footer */
footer {
    background: linear-gradient(135deg, var(--primary-dark) 0%, #000 100%);
    color: var(--white);
    padding: 6rem 2rem 3rem;
}

.footer-content {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    gap: 3rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding-bottom: 2rem;
}

.footer-section h4 {
    margin-bottom: 1.5rem;
    font-size: 1.1rem;
}

.footer-section {
    flex: 1;
    width: 0;
    overflow-wrap: break-word;
    word-break: break-word;
    font-size: 0.9rem;
}

.footer-section ul {
    list-style: none;
    padding-left: 0;
}

.footer-section ul li {
    margin-bottom: 0.8rem;
}

.footer-section ul li a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: var(--transition);
}

.footer-section ul li a:hover {
    color: var(--secondary);
}



.copyright {
    text-align: center;
    margin-top: 2rem;
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.8rem;
}

.payment-methods {
    display: flex;
    gap: 0.5rem;
    margin-top: 1rem;
    flex-wrap: nowrap;
    /* Single row */
}

.payment-methods img {
    height: 20px;
    /* Reduced size */
    width: auto;
    background: #fff;
    padding: 3px;
    /* Uniform padding */
    border-radius: 3px;
    object-fit: contain;
}

/* Responsive */
@media (max-width: 992px) {
    .hero-content {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .hero {
        height: auto;
        padding-bottom: 5rem;
    }

    .hero-text h1 {
        font-size: 2.5rem;
    }
}

/* New Booking Form Styles */
.booking-engine {
    padding: 1.5rem;
    max-width: 500px;
    /* Constrain width like the app-like mock */
    margin: 0 auto;
}

.input-group-row {
    display: flex;
    margin-bottom: 0.8rem;
    position: relative;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
    border-radius: 4px;
    overflow: hidden;
}

.input-label-box {
    background: var(--primary-dark);
    color: var(--white);
    padding: 0.8rem;
    width: 120px;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
    font-weight: 600;
    flex-shrink: 0;
}

.input-icon {
    font-size: 1.2rem;
}

.input-container {
    flex-grow: 1;
    background: #f0f2f5;
    position: relative;
}

.input-container .form-control {
    border: none;
    background: transparent;
    height: 100%;
    border-radius: 0;
    font-size: 1rem;
    font-weight: 500;
}

.input-container .form-control:focus {
    box-shadow: none;
    background: #eef1f6;
}

.swap-btn {
    position: absolute;
    right: -10px;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    background: #1976D2;
    /* Brighter blue */
    color: white;
    border: 2px solid white;
    border-radius: 50%;
    cursor: pointer;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
}

.swap-btn:hover {
    transform: translateY(-50%) rotate(180deg);
}

/* Options Row */
.options-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 0.8rem;
    flex-wrap: wrap;
}

.checkbox-container {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-size: 0.9rem;
    color: var(--primary-dark);
    font-weight: 500;
    gap: 0.5rem;
}

.checkbox-container input {
    display: none;
}

.checkmark {
    width: 20px;
    height: 20px;
    background: var(--primary-dark);
    border-radius: 4px;
    position: relative;
}

.checkbox-container input:checked~.checkmark::after {
    content: '✓';
    color: white;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    font-size: 0.8rem;
}

.promo-container {
    flex-grow: 1;
    min-width: 120px;
}

.promo-input {
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 0.5rem;
    font-size: 0.9rem;
    width: 100%;
}

/* Split Rows */
.form-row-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.8rem;
    margin-bottom: 0.8rem;
}

.input-group-simple {
    display: flex;
    border-radius: 4px;
    overflow: hidden;
    background: #f0f2f5;
}

.label-box-simple {
    background: #1976D2;
    /* Lighter blue for inner labels */
    color: white;
    padding: 0.6rem;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    width: 80px;
    flex-shrink: 0;
}

.input-group-simple .form-control {
    border: none;
    background: transparent;
    border-radius: 0;
    padding: 0.5rem;
    height: auto;
}

.input-with-icon {
    position: relative;
}

.input-with-icon .form-control {
    padding-right: 2rem;
}

.input-icon-right {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #888;
}

/* Updated Button */
.btn-quote {
    background: #FF9800;
    /* Orange */
    color: white;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 700;
    box-shadow: 0 4px 10px rgba(255, 152, 0, 0.3);
}

.btn-quote:hover {
    background: #F57C00;
}


/* Refined Booking Form Styles */

.location-group-container {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0;
    /* Stack them close */
}

/* Floating Swap Button */
.swap-btn-floating {
    position: absolute;
    top: 50%;
    left: 80%;
    /* Adjust as needed, usually right side */
    transform: translate(-50%, -50%);
    width: 36px;
    height: 36px;
    background: #1976D2;
    color: white;
    border: 3px solid var(--white);
    /* Thick border to separate from inputs */
    border-radius: 50%;
    z-index: 10;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
}

.swap-btn-floating:hover {
    transform: translate(-50%, -50%) rotate(180deg);
    background: #1565C0;
}

/* Prominent CTA */
.btn-quote.prominent {
    width: 100%;
    background: linear-gradient(135deg, #FF6D00 0%, #FF9100 100%);
    padding: 1rem;
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: 1px;
    border: none;
    box-shadow: 0 5px 15px rgba(255, 109, 0, 0.4);
    position: relative;
    overflow: hidden;
    margin-top: 1rem;
}

.btn-quote.prominent:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(255, 109, 0, 0.6);
    background: linear-gradient(135deg, #FF9100 0%, #FF6D00 100%);
}

.btn-quote.prominent::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.3) 0%, transparent 60%);
    opacity: 0;
    transform: scale(0.5);
    transition: opacity 0.3s, transform 0.3s;
}

.btn-quote.prominent:active::after {
    opacity: 1;
    transform: scale(1);
    transition: 0s;
}

/* --- UPDATE: Transfer Packages Visuals --- */

/* 1. Remove background and enlarge images */
.car-img {
    background: transparent !important;
    height: 240px;
    /* Increased from 200px */
    padding: 0;
    mix-blend-mode: multiply;
    /* Ensures white backgrounds in images turn transparent */
}

/* 2. Highlight Recommended Package (Comfort Sedan) */
.car-card {
    position: relative;
    overflow: hidden;
    /* CRITICAL: Ensures shine effect does not leak to other cards */
    display: flex;
    flex-direction: column;
    background: var(--white);
    /* Ensure base is white for multiply to work */
    z-index: 1;
    /* reset stacking context */
}

.car-card.recommended {
    transform: scale(1.05);
    /* Larger */
    border: 2px solid #ff6600;
    /* Orange border to match */
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
    z-index: 5;
}

/* Make sure the center recommended card stays prominent on mobile/smaller screens too */
@media (max-width: 768px) {
    .car-card.recommended {
        transform: scale(1.02);
    }
}

/* 3. Shiny Metallic Hover Effect - ISOLATED */
.car-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(120deg,
            transparent,
            rgba(255, 255, 255, 0.4),
            transparent);
    transition: all 0.6s;
    z-index: 10;
    pointer-events: none;
}

/* Only trigger on the specific hovered card */
.car-card:hover::before {
    left: 100%;
}

/* 4. Price Enlarged and Blue */
.price-tag {
    color: #0056b3;
    /* Blue */
    font-size: 1.2rem;
    font-weight: 700;
}

.price-tag .currency-value {
    font-size: 2rem;
    /* Enlarged */
    color: #0056b3;
}

/* 5. Reserve Button */
.btn-reserve {
    display: block;
    width: 100%;
    text-align: center;
    background: var(--primary);
    color: var(--white);
    padding: 12px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 700;
    margin-top: auto;
    /* Push to bottom */
    transition: background 0.3s;
}

.btn-reserve:hover {
    background: var(--primary-dark);
}

/* 6. Push content down to accommodate larger image */
.car-info {
    padding-top: 0.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Ensure the badge looks correct */
.package-badge {
    position: absolute;
    top: 25px;
    right: -30px;
    background: #FF8C00;
    /* Orange (Dark Orange) */
    color: white;
    padding: 5px 40px;
    transform: rotate(45deg);
    font-weight: bold;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    z-index: 20;
}

/* --- Accordion Styles --- */
.package-details-accordion {
    margin-top: 1rem;
    border-top: 1px solid #eee;
}

.accordion-btn {
    background-color: transparent;
    color: var(--primary);
    cursor: pointer;
    padding: 10px 0;
    width: 100%;
    border: none;
    text-align: left;
    outline: none;
    font-size: 0.9rem;
    font-weight: 600;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: color 0.3s;
}

.accordion-btn:hover,
.accordion-btn.active {
    color: var(--secondary);
}

.accordion-btn .arr {
    font-size: 0.8rem;
    transition: transform 0.3s;
}

.accordion-btn.active .arr {
    transform: rotate(180deg);
}

.accordion-panel {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
    background-color: #f9f9f9;
}

/* Static Section Styles */
.shared-accordion.static-section {
    border-top: 1px solid #eee;
    padding-top: 2rem;
}

.shared-accordion.static-section .accordion-btn {
    cursor: default;
    pointer-events: none;
    border-bottom: none;
    padding-bottom: 1rem;
    color: var(--primary-dark);
}

.shared-accordion.static-section .accordion-btn .arr {
    display: none;
}

.shared-accordion.static-section .accordion-panel {
    max-height: none !important;
    overflow: visible !important;
    background-color: transparent;
}

.accordion-panel p,
.accordion-panel ul {
    font-size: 0.85rem;
    line-height: 1.5;
    color: var(--text-muted);
    margin: 0;
    padding: 10px;
}

.detail-list {
    list-style-type: disc;
    padding-left: 20px !important;
    /* Ensure bullets are visible */
}

.detail-list li {
    margin-bottom: 5px;
}

/* Shared Accordion Spacing */
.shared-accordion {
    max-width: 800px;
    margin: 3rem auto 0;
    padding: 0 1rem;
    border-top: none;
    /* Remove default top border if preferred, or keep it */
}

/* Ensure the button text is visible against background */
.shared-accordion .accordion-btn {
    font-size: 1rem;
    border-bottom: 1px solid #eee;
}

/* Increase font size for accordion headers */
.shared-accordion .accordion-btn {
    font-size: 1.2rem;
    /* Increased from 1rem */
}

/* Change active/hover color for accordion to Orange for better visibility */
.accordion-btn:hover,
.accordion-btn.active {
    color: #FF6600 !important;
    /* Orange */
}

/* --- Highlight Destinations Slider --- */
.destinations-section {
    padding: 4rem 1rem;
    background: #fff;
    text-align: center;
}

.destinations-wrapper {
    max-width: 1100px;
    margin: 0 auto;
    overflow: hidden;
    position: relative;
    padding: 1rem 0;
}

.destinations-track {
    display: flex;
    transition: transform 0.8s ease-in-out;
    width: 100%;
    /* Will depend on content */
}

.destination-item {
    flex: 0 0 33.333%;
    /* Strict 1/3 width */
    width: 33.333%;
    padding: 0 15px;
    box-sizing: border-box;
    flex-shrink: 0;
}

.dest-img-box {
    width: 100%;
    height: 300px;
    /* Preserve acceptable height as requested */
    border-radius: 15px;
    overflow: hidden;
    margin-bottom: 1rem;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    position: relative;
    background-color: #f8f9fa;
    /* Fallback background */
}

.dest-img-box img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    /* Uniform scaling without distortion */
    display: block;
    transition: transform 0.5s ease, filter 0.5s ease;
}

.destination-item:hover .dest-img-box img {
    transform: scale(1.15);
}

.destination-item h3 {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--primary);
}

/* Responsiveness: 1 item on mobile? User said "display max 3". 
   Assume desktop. On mobile, 3 might be too small, but user didn't specify mobile. 
   I'll keep 3 to satisfy "max 3" strictness, 
   but usually 1 on mobile is better. 
   User said "At any time, display a maximum of 3 images." 
   I'll stick to 3 (33%) for now on desktop, maybe 50% or 100% on mobile? 
   User instructions are strict. I'll stick to 3 to be safe on requested constraint.
   But 3 on a phone is tiny. I'll add a media query for mobile to show 1 to be user-friendly, 
   as "max 3" allows < 3. */

@media (max-width: 768px) {
    .destination-item {
        min-width: 100%;
        /* Show 1 item on mobile */
    }
}

/* --- Highlight Destinations Update --- */

/* Arrows */
.slider-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid #ddd;
    border-radius: 50%;
    cursor: pointer;
    z-index: 10;
    font-size: 1.2rem;
    color: var(--primary);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.slider-arrow:hover {
    background: var(--primary);
    color: white;
}

.slider-arrow.prev {
    left: 10px;
}

.slider-arrow.next {
    right: 10px;
}

/* Buttons in Slider */
.dest-btn-group {
    display: flex;
    gap: 10px;
    justify-content: center;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
}

.dest-btn {
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 600;
    padding: 8px 16px;
    border-radius: 20px;
    transition: all 0.3s;
}

.quote-btn {
    border: 1px solid var(--primary);
    color: var(--primary);
    background: transparent;
}

.quote-btn:hover {
    background: var(--primary);
    color: white;
}

.reserve-btn {
    background: var(--primary);
    color: white;
    border: 1px solid var(--primary);
}

.reserve-btn:hover {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
}

/* Base scale for images */
.dest-img-box img {
    transform: scale(1.1);
}

.destination-item:hover .dest-img-box img {
    transform: scale(1.25) !important;
}

/* --- Updated Highlight Destinations Styles --- */

/* Optimize Track Animation */
.destinations-track {
    will-change: transform;
    /* Hint for GPU acceleration */
    transition-timing-function: cubic-bezier(0.25, 1, 0.5, 1);
    /* Smoother ease */
}

/* Image Box Relative for Overlay */
.dest-img-box {
    position: relative;
    cursor: pointer;
    /* Hint valid interaction */
}

.dest-img-box img {
    backface-visibility: hidden;
    /* Prevent flickering */
}

.destination-item:hover .dest-img-box img {
    filter: grayscale(100%);
    /* Transform scale is already handled in previous rule, but ensure it works together */
}

/* Overlay Button Group */
.dest-img-box .dest-btn-group {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease;
    z-index: 5;
    width: 100%;
    flex-direction: column;
    /* Stack buttons or keeping row? User didn't specify. Row is better for 2 buttons. */
    align-items: center;
}

/* Make buttons visible on hover OVER THE IMAGE */
.destination-item:hover .dest-btn-group {
    opacity: 1;
    pointer-events: auto;
}

/* Adjust button styles for overlay visibility */
.dest-btn.quote-btn {
    background: rgba(255, 255, 255, 0.9);
    /* Semi-transparent white bg for readability */
    border: none;
    color: var(--primary);
}

.dest-btn.reserve-btn {
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    /* Pop out */
}

.dest-btn:hover {
    transform: scale(1.05);
    /* Slight grow on interact */
}

/* Get Quote Button Orange Color (Match GET QUOTE NOW) */
.dest-btn.quote-btn {
    background: linear-gradient(135deg, #FF6B00 0%, #FF8C00 100%) !important;
    color: white !important;
    border: none !important;
}

.dest-btn.quote-btn:hover {
    background: linear-gradient(135deg, #E65C00 0%, #FF7500 100%) !important;
}

/* --- Customer Reviews Section --- */
.reviews-section {
    padding: 2rem 1rem;
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    text-align: center;
}

.reviews-section .section-title p {
    color: var(--text-muted);
    font-size: 1.1rem;
    margin-top: 0.5rem;
}

/* Platform Tabs */
.reviews-platform-tabs {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 2rem;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.platform-tab {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0.6rem 1.2rem;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 50px;
    cursor: pointer;
    transition: all 0.3s ease;
    font-family: inherit;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--text-main);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.platform-tab:hover {
    border-color: var(--primary);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.platform-tab.active {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
    box-shadow: 0 4px 15px rgba(26, 35, 126, 0.3);
}

.platform-tab .tab-icon {
    font-size: 1rem;
}

.platform-tab .tab-icon.booking-icon {
    font-family: Arial, sans-serif;
    font-weight: 700;
    color: #003580;
}

.platform-tab.active .tab-icon.booking-icon {
    color: #fff;
}

.platform-tab .tab-icon.agoda-icon {
    font-weight: 700;
    color: #fff;
    background: #3a4ba1;
    border-radius: 4px;
    padding: 2px 5px;
    font-size: 0.85rem;
}

.platform-tab.active .tab-icon.agoda-icon {
    color: #fff;
}

.platform-tab .tab-icon.tripadvisor-icon {
    color: #00AF87;
}

.platform-tab.active .tab-icon.tripadvisor-icon {
    color: #fff;
}

.platform-tab .tab-rating {
    font-weight: 700;
    color: #f59e0b;
}

.platform-tab.active .tab-rating {
    color: var(--secondary);
}

/* Overall Rating */
.reviews-summary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.rating-big {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
}

.rating-number {
    font-size: 3.5rem;
    font-weight: 800;
    color: var(--primary-dark);
    line-height: 1;
}

.rating-stars {
    display: flex;
    gap: 4px;
}

.rating-stars .star {
    font-size: 1.5rem;
    color: #fbbf24;
}

.rating-stars .star.half {
    background: linear-gradient(90deg, #fbbf24 50%, #e5e7eb 50%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.rating-count {
    font-size: 0.9rem;
    color: var(--text-muted);
}

.btn-write-review {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0.8rem 1.8rem;
    background: linear-gradient(135deg, #FF6B00, #FF8C00);
    color: #fff;
    border: none;
    border-radius: 50px;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(255, 107, 0, 0.3);
}

.btn-write-review:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(255, 107, 0, 0.4);
}

/* Reviews Carousel */
.reviews-carousel-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    padding: 1rem 0;
}

.reviews-track {
    display: flex;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: transform;
}

.review-card {
    min-width: 25% !important;
    width: 25% !important;
    max-width: 25% !important;
    flex: 0 0 25% !important;
    padding: 0 5px;
    box-sizing: border-box;
    flex-shrink: 0;
}

/* Override all responsive stacking to keep 4 columns */
@media (max-width: 992px) {
    .review-card {
        min-width: 25%;
    }
}

@media (max-width: 768px) {
    .review-card {
        min-width: 25%;
    }

    /* Scale down text for tablet/mobile */
    .review-card .review-text {
        font-size: 0.8rem;
        padding: 0.2rem;
        line-height: 1.2;
    }

    .reviewer-name {
        font-size: 0.8rem;
    }
}

@media (max-width: 480px) {
    .review-card {
        min-width: 25%;
    }

    /* Drastic scale down for mobile to fit 4 cards */
    .review-card .review-text {
        font-size: 0.6rem;
    }

    .reviewer-name {
        font-size: 0.65rem;
    }

    .reviewer-email {
        display: none;
        /* Hide email on tiny screens */
    }

    .review-date {
        font-size: 0.6rem;
    }

    .review-card .review-header {
        padding: 0.3rem 0.2rem;
    }
}

.review-card {
    display: flex;
    flex-direction: column;
}


.review-card>.review-header,
.review-card>.review-text,
.review-card>.review-footer {
    background: #fff;
}

/* Actual Card Styling */
.review-card .review-header {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 0.4rem 1rem 0.1rem;
    /* Reduced V-padding */
    background: #fff;
    border-radius: 16px 16px 0 0;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.03);
    position: relative;
}

.review-card .review-text {
    flex: 1;
    padding: 0.15rem 1rem;
    /* Compact padding */
    background: #fff;
    font-size: 0.9rem;
    line-height: 1.3;
    /* Reduced line height */
    color: var(--text-main);
    text-align: left;
}

.review-card .review-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.1rem 1rem 0.6rem;
    /* Reduced V-padding */
    background: #fff;
    border-radius: 0 0 16px 16px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.06);
}

/* Reviewer Avatar */
.reviewer-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    font-weight: 700;
    color: #fff;
    flex-shrink: 0;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

.reviewer-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    text-align: left;
}

.reviewer-name {
    font-weight: 700;
    color: var(--primary-dark);
    font-size: 1rem;
}

.reviewer-email {
    font-size: 0.8rem;
    color: var(--text-muted);
}

.review-rating {
    display: flex;
    gap: 2px;
}

.review-rating .star {
    font-size: 0.9rem;
    color: #fbbf24;
}

.review-rating .star.empty {
    color: #e5e7eb;
}

/* Review Footer */
.review-date {
    font-size: 0.8rem;
    color: var(--text-muted);
}

.review-platform {
    font-size: 0.75rem;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 20px;
}

.review-platform.booking {
    background: #003580;
    color: #fff;
}

.review-platform.agoda {
    background: linear-gradient(135deg, #5392f9, #3a7bd5);
    color: #fff;
}

.review-platform.tripadvisor {
    background: #00AF87;
    color: #fff;
}

/* Reviews Arrows */
.reviews-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid #e5e7eb;
    border-radius: 50%;
    cursor: pointer;
    z-index: 10;
    font-size: 1.2rem;
    color: var(--primary);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.reviews-arrow:hover {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
    transform: translateY(-50%) scale(1.1);
}

.reviews-arrow.prev {
    left: 0;
}

.reviews-arrow.next {
    right: 0;
}

/* Review Dots */
.reviews-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 1.5rem;
}

.reviews-dots .dot {
    width: 10px;
    height: 10px;
    background: #e5e7eb;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.3s ease;
}

.reviews-dots .dot.active {
    background: var(--primary);
    width: 28px;
    border-radius: 10px;
}

.reviews-dots .dot:hover:not(.active) {
    background: #cbd5e1;
}

/* Card hover effect */
.review-card:hover .review-header,
.review-card:hover .review-text,
.review-card:hover .review-footer {
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
}

.review-card {
    transition: transform 0.3s ease;
}

.review-card:hover {
    transform: translateY(-5px);
}

/* Collaboration Section */
#collaboration {
    padding: 3rem 0 6rem;
    background: var(--bg-light);
}

#collaboration .section-title {
    text-align: center;
    margin-bottom: 2rem;
}

.collab-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    /* 5 cards in a single row */
    gap: 1.5rem;
    max-width: 1400px;
    /* Wider container for 5 items */
    margin: 0 auto;
    padding: 0 1rem;
}

.collab-card {
    background: var(--white);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    /* Subtle shadow for news-card look */
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease;
}

.collab-card:hover {
    transform: translateY(-5px);
}

.collab-img {
    width: 100%;
    height: 150px;
    /* Fixed height for uniformity */
    overflow: hidden;
}

.collab-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.collab-card:hover .collab-img img {
    transform: scale(1.05);
}

.collab-content {
    padding: 1.2rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.collab-content h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--primary-dark);
    margin-bottom: 0.8rem;
    line-height: 1.4;
}

.collab-content p {
    font-size: 0.85rem;
    color: var(--text-muted);
    line-height: 1.5;
    margin: 0;
}

/* Responsive */
@media (max-width: 1024px) {
    .collab-grid {
        grid-template-columns: repeat(3, 1fr);
        /* 3 row on tablet */
    }
}

/* Partners Section */
#partners {
    padding: 3rem 0;
    background: var(--white);
    overflow: hidden;
    /* Hide overflow from slider */
}

#partners .section-title {
    text-align: center;
    margin-bottom: 2rem;
}

.partners-slider-wrapper {
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
    display: flex;
    align-items: center;
    padding: 0 3rem;
    /* Space for arrows */
}

.partners-track-container {
    overflow: hidden;
    width: 100%;
}

.partners-track {
    display: flex;
    transition: transform 0.5s ease-in-out;
    width: 200%;
    /* 2 slides */
}

.partners-slide {
    width: 50%;
    /* Each slide takes half the total track (100% of container) */
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 1.5rem;
    padding: 0.5rem;
}

.partner-logo {
    width: 100%;
    aspect-ratio: 3/2;
    border: 1px solid #eee;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}

.nav-btn {
    background: var(--white);
    border: 1px solid #ddd;
    color: var(--primary-color);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
}

.nav-btn:hover {
    background: var(--primary-color);
    color: var(--white);
    border-color: var(--primary-color);
}

.prev-btn {
    left: 0;
}

.next-btn {
    right: 0;
}

/* Responsive Partners */
@media (max-width: 768px) {
    .partners-slide {
        grid-template-columns: repeat(2, 1fr);
        /* 2 cols on tablet -> 4 rows */
        grid-template-rows: repeat(4, auto);
    }
}

/* Payment Page Styles */
.payment-section {
    padding: 180px 1rem 80px;
    max-width: 1000px;
    margin: 0 auto;
}

.payment-title {
    text-align: center;
    margin-bottom: 3rem;
    color: var(--primary-dark);
}

.payment-title h1 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
}

.payment-title p {
    color: var(--text-muted);
    font-size: 1.1rem;
}

.payment-table-container {
    overflow-x: auto;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    border-radius: 12px;
    background: white;
}

.payment-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 600px;
}

.payment-table th {
    background-color: #dbeafe;
    color: #1e3a8a;
    padding: 1.2rem 1rem;
    text-align: center;
    font-weight: 700;
    border: 1px solid #cce0ff;
}

.payment-table td {
    padding: 1.5rem 1rem;
    text-align: center;
    border: 1px solid #eee;
    vertical-align: middle;
    color: var(--text-main);
}

.payment-table tr:hover {
    background-color: #f9fafb;
}

.payment-method-col {
    font-weight: 600;
    color: var(--primary);
}

.type-list {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.currency-list {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-family: monospace;
    font-weight: 600;
}

/* Animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fade-in-up {
    opacity: 0;
    animation: fadeInUp 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

.delay-100 {
    animation-delay: 0.1s;
}

.delay-200 {
    animation-delay: 0.2s;
}

.delay-300 {
    animation-delay: 0.3s;
}

/* Modern Table */
.modern-table-wrapper {
    overflow-x: auto;
    border-radius: 12px;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
    /* Softer shadow */
}

.modern-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    min-width: 600px;
}

.modern-table thead tr {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    color: #fff;
    text-align: left;
}

.modern-table th,
.modern-table td {
    padding: 1rem 1.2rem;
    font-size: 0.95rem;
}

.modern-table tbody tr {
    border-bottom: 1px solid #f0f0f0;
    transition: all 0.2s ease;
}

.modern-table tbody tr:last-of-type {
    border-bottom: 2px solid var(--primary);
}

.modern-table tbody tr:hover {
    background-color: #f8f9fa;
    transform: scale(1.005);
    /* Slight pop */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
    z-index: 1;
    position: relative;
}

.modern-table td.highlight-cell {
    font-weight: 700;
    color: var(--primary);
}

/* Card Improvements */
.section-box {
    border: none;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    /* Softer, deeper shadow */
    border-radius: 16px;
    transition: transform 0.3s ease;
}

.section-box:hover {
    transform: translateY(-5px);
}

/* Destination Grid Hover Override */
.destination-item {
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    cursor: pointer;
}

.destination-img-box {
    overflow: hidden;
    border-radius: 12px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.destination-img {
    transition: transform 0.6s ease;
}

.destination-item:hover .dest-img-box img {
    transform: scale(1.15);
}

.destination-item:hover .destination-caption {
    color: var(--accent);
}

/* Enhanced Form */
.subpage-booking-form {
    background: linear-gradient(145deg, var(--primary), var(--primary-dark));
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);
}

.subpage-booking-form .form-control:focus {
    box-shadow: 0 0 0 3px rgba(255, 215, 0, 0.3);
    /* Gold glow */
    border-color: var(--secondary);
}

.btn-pulse {
    animation: pulse-gold 2s infinite;
}

@keyframes pulse-gold {
    0% {
        box-shadow: 0 0 0 0 rgba(255, 215, 0, 0.7);
    }

    70% {
        box-shadow: 0 0 0 10px rgba(255, 215, 0, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(255, 215, 0, 0);
    }
}

/* Vehicles & Baggage Section Styles */
.vehicles-modern-section {
    padding: 6rem 2rem;
    background-color: var(--white);
}

.vehicles-modern-container {
    max-width: 1400px;
    margin: 0 auto;
}

.vehicle-category-block {
    margin-bottom: 5rem;
    display: grid;
    grid-template-columns: 350px 1fr;
    gap: 4rem;
    align-items: start;
}

@media (max-width: 1100px) {
    .vehicle-category-block {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

.category-info-panel {
    background: var(--bg-light);
    padding: 2.5rem;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
    border: 1px solid rgba(0, 0, 0, 0.05);
    position: sticky;
    top: 160px;
}

.category-info-panel h3 {
    font-size: 2.5rem;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 1.5rem;
    line-height: 1.1;
}

.category-specs-list {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.spec-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--text-main);
}

.spec-icon {
    width: 44px;
    height: 44px;
    background: var(--white);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
    font-size: 1.4rem;
}

.vehicle-showcase-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 2rem;
}

.vehicle-model-card {
    background: var(--white);
    padding: 1rem;
    border-radius: 16px;
    text-align: center;
    transition: var(--transition);
    border: 1px solid transparent;
}

.vehicle-model-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.08);
    border-color: rgba(26, 35, 126, 0.1);
}

.vehicle-model-card img {
    width: 100%;
    height: 180px;
    object-fit: contain;
    margin-bottom: 1rem;
    transition: var(--transition);
}

.vehicle-model-card:hover img {
    transform: scale(1.05);
}

.vehicle-model-name {
    display: block;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--primary-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.category-divider {
    height: 1px;
    background: linear-gradient(to right, transparent, #e0e0e0, transparent);
    margin: 4rem 0;
}

/* Airport Route Selection */
.radio-box {
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 10px;
    cursor: pointer;
    text-align: center;
    transition: all 0.2s;
    background: #f9f9f9;
}

.radio-box:hover {
    background: #f0f0f0;
    border-color: #ccc;
}

.radio-box.active {
    background: #e3f2fd;
    border-color: #2196f3;
    color: #0d47a1;
}

.radio-box strong {
    display: block;
    margin-bottom: 4px;
    font-size: 0.95rem;
}

.radio-box small {
    font-size: 0.8rem;
    color: #666;
}

.radio-box.active small {
    color: #1976d2;
}

/* --- Write a Review Modal --- */
#review-modal {
    position: fixed;
    z-index: 10001;
    left: 0;
    top: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(5px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 15px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

#review-modal.active {
    opacity: 1;
    visibility: visible;
}

#review-modal .modal-content {
    background: #fff;
    border-radius: 16px;
    width: 100%;
    max-width: 500px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
    overflow: hidden;
    transform: translateY(30px);
    transition: all 0.3s ease;
}

#review-modal.active .modal-content {
    transform: translateY(0);
}

#review-modal .modal-header {
    background: var(--primary);
    color: #fff;
    padding: 1rem 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

#review-modal .modal-header h2 {
    margin: 0;
    font-size: 1.2rem;
    color: #fff !important;
}

#review-modal .close-modal {
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.8);
    font-size: 2rem;
    cursor: pointer;
    line-height: 1;
    transition: color 0.2s;
}

#review-modal .close-modal:hover {
    color: #fff;
}

#review-modal .modal-body {
    padding: 2rem;
}

#review-modal .form-group {
    margin-bottom: 1.2rem;
}

#review-modal .form-group label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 600;
    font-size: 0.9rem;
    color: #333;
}

#review-modal .form-control {
    width: 100%;
    padding: 0.8rem;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 0.95rem;
    transition: border-color 0.3s;
}

#review-modal .form-control:focus {
    border-color: var(--primary);
    outline: none;
}

#review-modal .btn-submit-review {
    width: 100%;
    background: linear-gradient(135deg, #FF6B00, #FF8C00);
    color: #fff;
    border: none;
    padding: 1rem;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    margin-top: 1rem;
    box-shadow: 0 4px 10px rgba(255, 107, 0, 0.2);
}

#review-modal .btn-submit-review:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(255, 107, 0, 0.3);
}

/* Success Message Styles */
#review-success {
    text-align: center;
    padding: 1rem 0;
    animation: fadeIn 0.4s ease;
}

#review-success .success-icon {
    width: 60px;
    height: 60px;
    background: #4CAF50;
    color: white;
    font-size: 2rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    box-shadow: 0 4px 10px rgba(76, 175, 80, 0.3);
}

#review-success h3 {
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
    color: var(--primary-dark);
}

#review-success p {
    color: var(--text-muted);
    margin-bottom: 1.5rem;
}

#review-success .btn-close-success {
    background: #f5f5f5;
    color: #333;
    border: none;
    padding: 0.8rem 2.5rem;
    border-radius: 50px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

#review-success .btn-close-success:hover {
    background: #e0e0e0;
}

/* Star Rating Input Styles */
.star-rating-input {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.2rem;
}

.star-rating-input .star-icon {
    font-size: 2rem;
    color: #ddd;
    cursor: pointer;
    transition: color 0.2s ease, transform 0.2s ease;
    line-height: 1;
}

.star-rating-input .star-icon:hover {
    transform: scale(1.1);
}

.star-rating-input .star-icon.active {
    color: #ffc107;
}

.star-rating-input .star-icon.hover {
    color: #ffe082;
}

/* Ensure hidden input doesn't disrupt layout but stays validatable */
#review-rating {
    pointer-events: none;
}

/* ==========================================================================
   Footer Fixes
   ========================================================================== */
/* Override .reserve-btn styles when used in footer links to maintain text-only appearance */
.footer-section ul li a.reserve-btn {
    background: transparent !important;
    border: none !important;
    color: rgba(255, 255, 255, 0.7) !important;
    padding: 0 !important;
    box-shadow: none !important;
    display: inline !important;
    font-weight: 400 !important;
}

.footer-section ul li a.reserve-btn:hover {
    background: transparent !important;
    border: none !important;
    color: var(--secondary) !important;
    transform: none !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

/* Disabled Payment Option (Pay Now – Coming Soon) */
.pay-option.disabled {
    opacity: 0.45;
    pointer-events: none;
    cursor: not-allowed;
    filter: grayscale(40%);
}

.pay-option.disabled .pay-card {
    color: #999;
    background: #f0f0f0;
    border-color: #ddd;
}

.pay-option.disabled input {
    display: none;
}

/* "Coming Soon" pill badge inside Pay Now */
.pay-soon-badge {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #fff;
    background: #aaa;
    border-radius: 20px;
    padding: 1px 7px;
    margin-left: 6px;
    vertical-align: middle;
    text-transform: uppercase;
}

/* Nested Dropdown Styles */
.dropdown-submenu {
    position: relative;
    width: 100%;
}

.dropdown-submenu>.dropdown-content {
    top: 0;
    left: 100%;
    margin-top: -3px;
    display: none;
    border-top: none;
    /* override standard top border */
    border-left: 3px solid var(--secondary);
    /* visual cues */
}

/* Show submenu on hover */
.dropdown-submenu:hover>.dropdown-content {
    display: block;
}

/* Adjust the link inside submenu container to allow arrow placement */
.dropdown-submenu>a {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
}

/* Arrow indicator */
.dropdown-submenu>a::after {
    content: "▶";
    font-size: 0.6rem;
    color: var(--secondary);
    margin-left: 10px;
}

/* Global Highlight Effect for navigation/cards */
.highlight-active {
    transform: translateY(-12px) scale(1.05) !important;
    box-shadow: 0 20px 40px rgba(255, 87, 34, 0.45) !important;
    border-color: var(--accent) !important;
    z-index: 100 !important;
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.4s ease, border-color 0.4s ease !important;
}
