/* ==================== TAXIJAKT CUSTOM STYLES ==================== */
/* All custom styles for TaxiJakt website */

html, body {
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

*, *::before, *::after {
    box-sizing: border-box !important;
}

/* ==================== NAVIGATION STYLES ==================== */

/* Make navigation menus bold and larger - very specific selectors */
nav.navbar .nav-link,
nav.navbar .navbar-nav .nav-link,
nav.navbar .dropdown-toggle,
nav.navbar .navbar-brand,
nav.navbar .btn,
nav.navbar .navbar-toggler,
nav.navbar .dropdown-menu,
nav.navbar .dropdown-menu .dropdown-item,
.navbar .nav-link,
.navbar-nav .nav-link,
.navbar .dropdown-toggle,
.navbar .navbar-brand,
.navbar .btn,
.navbar-toggler,
.dropdown-menu,
.dropdown-menu .dropdown-item,
.bgtheme .btn,
.bgtheme .dropdown-toggle,
.bgtheme .navbar-brand {
    font-size: 1.6em !important;
    font-weight: 700 !important;
    line-height: 1.5 !important;
    transition: all 0.3s ease !important;
}

/* Increase padding proportionally - desktop */
nav.navbar .nav-link,
nav.navbar .navbar-nav .nav-link,
.navbar .nav-link,
.navbar-nav .nav-link {
    padding: 1rem 1.5rem !important;
    position: relative;
    margin: 0 0.25rem;
}

/* Better visual hierarchy - spacing between nav items */
nav.navbar .navbar-nav {
    gap: 0.5rem;
    align-items: center;
}

nav.navbar .navbar-nav .nav-item {
    margin: 0 0.25rem;
}

/* Better separation between elements */
nav.navbar {
    padding: 1rem 0 !important;
}

nav.navbar .container-fluid {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

/* Improved contrast and readability */
nav.navbar .nav-link,
.navbar .nav-link {
    color: #333 !important;
    font-weight: 700 !important;
}

nav.navbar .nav-link:hover,
.navbar .nav-link:hover {
    color: #666 !important;
    opacity: 1 !important;
}

/* Better visual separation for dropdown dividers */
nav.navbar .dropdown-menu .dropdown-divider,
.dropdown-menu .dropdown-divider {
    margin: 0.75rem 0 !important;
    border-top: 2px solid rgba(0, 0, 0, 0.1) !important;
    opacity: 0.3;
}

/* Better hover states with smooth transitions */
nav.navbar .nav-link:hover,
.navbar .nav-link:hover,
.navbar-nav .nav-link:hover {
    color: #666 !important;
    opacity: 1 !important;
    transform: translateY(-2px);
}

/* Active state - show current page */
nav.navbar .nav-link.active,
.navbar .nav-link.active {
    color: #faa719 !important;
    border-bottom: 3px solid #faa719;
    font-weight: 900 !important;
}

/* Focus states for accessibility */
nav.navbar .nav-link:focus,
.navbar .nav-link:focus,
nav.navbar .nav-link:focus-visible,
.navbar .nav-link:focus-visible {
    outline: 3px solid #faa719;
    outline-offset: 3px;
    border-radius: 4px;
}

nav.navbar .dropdown-menu,
.dropdown-menu {
    font-size: 0.95em !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15) !important;
    border: 1px solid rgba(0, 0, 0, 0.1) !important;
    padding: 0.5rem 0 !important;
    margin-top: 0.5rem !important;
    animation: fadeInDown 0.3s ease !important;
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

nav.navbar .dropdown-menu .dropdown-item,
.dropdown-menu .dropdown-item {
    padding: 0.75rem 1.5rem !important;
    font-size: 0.95em !important;
    font-weight: 700 !important;
    transition: all 0.2s ease !important;
    border-radius: 0 !important;
}

nav.navbar .dropdown-menu .dropdown-item:hover,
.dropdown-menu .dropdown-item:hover {
    background-color: #fff3e0 !important;
    color: #faa719 !important;
    transform: translateX(5px);
    padding-left: 2rem !important;
}

nav.navbar .dropdown-menu .dropdown-item:focus,
.dropdown-menu .dropdown-item:focus {
    background-color: #fff3e0 !important;
    outline: 2px solid #faa719;
    outline-offset: -2px;
}

nav.navbar .dropdown-menu .dropdown-divider,
.dropdown-menu .dropdown-divider {
    margin: 0.5rem 0 !important;
    opacity: 0.2;
}

nav.navbar .navbar-brand,
.navbar-brand {
    font-size: 1.6em !important;
    font-weight: 700 !important;
}

/* Logo Text Styling - Enhanced interactions - Always larger than nav links */
.logo-text {
    font-size: 2.2em !important;
    font-weight: 900 !important;
    text-decoration: none !important;
    letter-spacing: -0.5px;
    display: inline-flex;
    align-items: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    padding: 0.75rem 1rem !important;
    border-radius: 10px;
    position: relative;
    overflow: hidden;
    text-transform: uppercase !important;
}

/* Logo hover effect with background color */
.logo-text::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(250, 167, 25, 0.15), transparent);
    transition: left 0.5s ease;
}

.logo-text:hover {
    transform: scale(1.08);
    background-color: rgba(250, 167, 25, 0.12);
    box-shadow: 0 4px 12px rgba(250, 167, 25, 0.2);
}

.logo-text:hover::before {
    left: 100%;
}

/* Logo focus state for accessibility */
.logo-text:focus {
    outline: 3px solid #faa719;
    outline-offset: 4px;
    background-color: rgba(250, 167, 25, 0.1);
}

.logo-text:focus-visible {
    outline: 3px solid #faa719;
    outline-offset: 4px;
}

/* Smooth scale animation on click */
.logo-text:active {
    transform: scale(0.98);
}

.logo-main {
    color: #000;
    font-weight: 900;
}

.logo-accent {
    color: #000;
    font-weight: 900;
}

.bgtheme .logo-text {
    color: #000;
}

.bgtheme .logo-main {
    color: #000;
}

.bgtheme .logo-accent {
    color: #000;
}

/* Enhanced Hamburger Menu */
nav.navbar .navbar-toggler,
.navbar-toggler {
    font-size: 1.6em !important;
    padding: 0.75rem 1rem !important;
    min-width: 48px !important;
    min-height: 48px !important;
    border-radius: 10px !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    position: relative;
    overflow: hidden;
}

/* Hamburger hover effect with background color */
nav.navbar .navbar-toggler::before,
.navbar-toggler::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(250, 167, 25, 0.15);
    transform: translate(-50%, -50%);
    transition: width 0.4s ease, height 0.4s ease;
}

nav.navbar .navbar-toggler:hover,
.navbar-toggler:hover {
    background-color: rgba(250, 167, 25, 0.15) !important;
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(250, 167, 25, 0.25);
}

nav.navbar .navbar-toggler:hover::before,
.navbar-toggler:hover::before {
    width: 100%;
    height: 100%;
}

/* Hamburger focus state for accessibility */
nav.navbar .navbar-toggler:focus,
.navbar-toggler:focus,
nav.navbar .navbar-toggler:focus-visible,
.navbar-toggler:focus-visible {
    outline: 3px solid #faa719;
    outline-offset: 3px;
    background-color: rgba(250, 167, 25, 0.1);
}

/* Active state */
nav.navbar .navbar-toggler:active,
.navbar-toggler:active {
    transform: scale(0.95);
}

/* Hamburger icon animation */
nav.navbar .navbar-toggler-icon {
    transition: all 0.3s ease;
    position: relative;
    z-index: 1;
}

nav.navbar .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
    transform: rotate(90deg);
}

/* For logged in navigation */
.bgtheme .btn,
.bgtheme .dropdown-toggle {
    font-size: 1.6em !important;
    font-weight: 700 !important;
    padding: 0.75rem 1.25rem !important;
    border-radius: 8px !important;
}

.bgtheme .btn:hover,
.bgtheme .dropdown-toggle:hover {
    background-color: rgba(255, 255, 255, 0.1) !important;
    transform: translateY(-2px);
}

.bgtheme .dropdown-menu {
    background-color: white !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15) !important;
}

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

/* Mobile-friendly improvements */
@media (max-width: 768px) {
    /* Smooth mobile menu collapse animation */
    .navbar-collapse {
        transition: all 0.3s ease !important;
    }

    .navbar-collapse.collapsing {
        transition: height 0.35s ease !important;
    }

    nav.navbar .nav-link,
    nav.navbar .navbar-nav .nav-link,
    nav.navbar .dropdown-toggle,
    .navbar .nav-link,
    .navbar-nav .nav-link,
    .navbar .dropdown-toggle {
        font-size: 1.8em !important;
        font-weight: 700 !important;
        padding: 1.25rem 1.5rem !important;
        min-height: 56px !important;
        display: flex !important;
        align-items: center !important;
        width: 100% !important;
        text-align: left !important;
        border-radius: 8px !important;
        margin-bottom: 0.5rem !important;
    }

    nav.navbar .nav-link:hover,
    .navbar .nav-link:hover {
        background-color: rgba(250, 167, 25, 0.1) !important;
        transform: translateX(5px);
    }

    nav.navbar .nav-link:active,
    .navbar .nav-link:active {
        background-color: rgba(250, 167, 25, 0.2) !important;
    }

    nav.navbar .dropdown-menu .dropdown-item,
    .dropdown-menu .dropdown-item {
        font-size: 1.0em !important;
        font-weight: 700 !important;
        padding: 1.25rem 1.75rem !important;
        min-height: 56px !important;
        display: flex !important;
        align-items: center !important;
        border-radius: 8px !important;
        margin: 0.25rem 0.5rem !important;
    }

    nav.navbar .dropdown-menu .dropdown-item:hover,
    .dropdown-menu .dropdown-item:hover {
        background-color: #fff3e0 !important;
        transform: translateX(8px);
    }

    /* Better mobile dropdown menu */
    nav.navbar .dropdown-menu,
    .dropdown-menu {
        margin-top: 0.5rem !important;
        border-radius: 12px !important;
        padding: 0.5rem !important;
    }

    nav.navbar .navbar-toggler,
    .navbar-toggler {
        font-size: 2em !important;
        padding: 1rem 1.25rem !important;
        min-width: 64px !important;
        min-height: 64px !important;
        border-radius: 12px !important;
    }

    /* Larger touch target on mobile */
    nav.navbar .navbar-toggler:active,
    .navbar-toggler:active {
        transform: scale(0.9);
        background-color: rgba(250, 167, 25, 0.2) !important;
    }

    /* Better spacing on mobile */
    nav.navbar .navbar-nav {
        padding-top: 1rem;
        padding-bottom: 1rem;
    }

    nav.navbar .navbar-nav .nav-item {
        margin-bottom: 0.5rem;
    }

    nav.navbar .navbar-brand,
    .navbar-brand {
        font-size: 1.8em !important;
        padding: 0.75rem 0 !important;
    }

    .logo-text {
        font-size: 2.0em !important;
    }

    .navbar-nav {
        padding: 0.75rem 0 !important;
    }

    .navbar-collapse {
        margin-top: 0.75rem !important;
    }
}

/* Touch-friendly spacing */
@media (hover: none) and (pointer: coarse) {
    .navbar .nav-link,
    .navbar-nav .nav-link,
    .dropdown-menu .dropdown-item,
    .navbar .dropdown-toggle {
        min-height: 48px !important;
        min-width: 48px !important;
    }
}

/* ==================== CITIES MODAL ==================== */

/* Cities Modal Styling */
#citiesModal .modal-header {
    background-color: #f8f9fa;
    border-bottom: 2px solid #faa719;
}

#citiesModal .modal-title {
    font-size: 1.5em;
    color: #333;
}

#citiesModal .city-btn {
    padding: 0.875rem 1rem;
    border-radius: 8px;
    transition: all 0.3s ease;
    min-height: 48px;
    font-size: 0.57em;
    border: 2px solid #333;
    color: #333;
    text-align: left;
}

#citiesModal .city-btn:hover {
    background-color: #faa719;
    color: #000 !important;
    border-color: #faa719;
    transform: translateX(5px);
    box-shadow: 0 4px 12px rgba(250, 167, 25, 0.3);
}

#citiesModal .city-btn:active,
#citiesModal .city-btn:focus {
    background-color: #faa719;
    color: #000 !important;
    border-color: #faa719;
    box-shadow: 0 4px 12px rgba(250, 167, 25, 0.3);
}

#citiesModal .city-btn i {
    font-size: 1.1em;
    width: 20px;
    text-align: center;
}

#citiesModal .modal-body {
    padding: 2rem !important;
}

#citiesModal .modal-footer {
    background-color: #f8f9fa;
    border-top: 1px solid #dee2e6;
}

#citiesModal .btn-secondary {
    background-color: #6c757d;
    border: none;
    padding: 0.5rem 1.5rem;
    font-weight: 600;
}

#citiesModal .btn-secondary:hover {
    background-color: #5a6268;
}

@media (max-width: 768px) {
    #citiesModal .city-btn {
        padding: 1rem 1.25rem;
        min-height: 56px;
        font-size: 0.72em !important;
    }

    #citiesModal .city-btn i {
        font-size: 1.32em !important;
    }

    #citiesModal .modal-body {
        padding: 1.5rem !important;
    }

    #citiesModal .modal-title {
        font-size: 1.3em;
    }
}

/* ==================== SERVICE CARDS ==================== */

/* Services Section Styling */
.service-card {
    transition: all 0.3s ease;
    border-radius: 15px !important;
    overflow: hidden;
}

.service-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15) !important;
}

.service-icon {
    width: 100px;
    height: 100px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(250, 167, 25, 0.1), rgba(250, 167, 25, 0.05));
    border-radius: 50%;
    transition: all 0.3s ease;
}

.service-card:hover .service-icon {
    background: linear-gradient(135deg, rgba(250, 167, 25, 0.2), rgba(250, 167, 25, 0.1));
    transform: scale(1.1);
}

.service-card .card-body {
    padding: 2.5rem 1.5rem !important;
}

.service-card h4 {
    color: #333;
    font-size: 1.5em;
    margin-bottom: 1rem;
}

.service-card p {
    font-size: 1em;
    line-height: 1.6;
}

@media (max-width: 768px) {
    .service-card .card-body {
        padding: 2rem 1.25rem !important;
    }

    .service-card h4 {
        font-size: 1.3em;
    }

    .service-icon {
        width: 80px;
        height: 80px;
    }

    .service-icon i {
        font-size: 2em !important;
    }
}

/* ==================== CAR OPTIONS ==================== */

#car-options {
    margin: 0 !important;
    padding: 0 !important;
}

.car-option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 5px 0;
    margin: 0;
    background-color: #333;
    border-radius: 5px;
    white-space: nowrap;
}

.car-option span {
    padding: 0 5px;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.car-option .col-4 {
    flex: 1;
    padding: 0;
    text-align: center;
    white-space: nowrap;
}

/* ==================== AUTOCOMPLETE - ENHANCED FOR EASY CLICKING ==================== */

.autocomplete-container {
    position: relative;
    margin-bottom: 20px;
}

.autocomplete-suggestions {
    display: none;
    position: fixed !important;
    background: #fff !important;
    border: 1px solid #ddd !important;
    border-radius: 8px !important;
    max-height: 300px !important;
    overflow-y: auto !important;
    z-index: 2147483647 !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25) !important;
    pointer-events: auto !important;
}

.autocomplete-suggestion {
    padding: 16px 20px !important;
    cursor: pointer !important;
    font-size: 15px !important;
    border-bottom: 1px solid #f0f0f0;
    transition: all 0.2s ease !important;
    user-select: none !important;
    -webkit-tap-highlight-color: transparent !important;
    /* Prevent text selection on double-click */
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
}

.autocomplete-suggestion:last-child {
    border-bottom: none;
}

.autocomplete-suggestion:hover {
    background: linear-gradient(135deg, #fff3e0 0%, #ffe082 100%) !important;
    color: #1a1a2e !important;
    font-weight: 600 !important;
    transform: translateX(4px) !important;
    padding-left: 24px !important;
}

.autocomplete-suggestion.active {
    background: linear-gradient(135deg, #ffc107 0%, #ffb300 100%) !important;
    color: #1a1a2e !important;
    font-weight: 700 !important;
}

/* Mobile-friendly larger touch targets */
@media (max-width: 768px) {
    .autocomplete-suggestion {
        padding: 20px 20px !important;
        font-size: 16px !important;
        min-height: 56px !important;
    }
    
    .autocomplete-suggestions {
        max-height: 250px;
        box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
    }
}

/* ==================== MAP & BOOKING FORM ==================== */

/* KARTA - FULL WIDTH, INGEN MARGIN (SAMMA SOM NAVIGATION) */
.map-section-wrapper {
    position: relative !important;
    width: 100% !important;
    height: 600px !important;
    margin: 0 !important;
    padding: 0 !important;
    left: 0 !important;
    right: 0 !important;
    overflow: hidden !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.booking-form-wrapper {
    position: absolute !important;
    top: 20px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    z-index: 1000 !important;
    margin: 0 !important;
    max-width: 600px !important;
    width: calc(100% - 40px) !important;
    animation: slideDown 0.6s ease-out !important;
    pointer-events: auto !important;
}

.booking-form-card {
    background: rgba(255, 255, 255, 0.98) !important;
    backdrop-filter: blur(10px) !important;
    border: none !important;
    border-radius: 20px !important;
    padding: 25px !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12) !important;
    position: relative !important;
    z-index: 1001 !important;
    transition: all 0.3s ease !important;
}

.booking-form-card:hover {
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.18) !important;
    transform: translateY(-2px) !important;
}

/* REMOVED - No visual header needed */

/* Enhanced input styling */
.booking-form-card .form-control {
    border: 2px solid #e0e0e0 !important;
    border-radius: 12px !important;
    padding: 14px 18px !important;
    font-size: 15px !important;
    transition: all 0.3s ease !important;
    background: white !important;
}

.booking-form-card .form-control:focus {
    border-color: #ffc107 !important;
    box-shadow: 0 0 0 4px rgba(255, 193, 7, 0.1) !important;
    outline: none !important;
    transform: translateY(-1px) !important;
}

.booking-form-card .form-control::placeholder {
    color: #999 !important;
    font-weight: 400 !important;
}

/* Enhanced label styling */
.booking-form-card label {
    font-weight: 600 !important;
    color: #333 !important;
    margin-bottom: 8px !important;
    font-size: 13px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    text-align: center !important;
    display: block !important;
}

/* Better button styling */
.booking-form-card .btn {
    border-radius: 12px !important;
    font-weight: 600 !important;
    padding: 14px 24px !important;
    transition: all 0.3s ease !important;
    border: none !important;
    box-shadow: 0 4px 12px rgba(255, 193, 7, 0.3) !important;
}

.booking-form-card .btn:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(255, 193, 7, 0.4) !important;
}

.booking-form-card .btn:active {
    transform: translateY(0) !important;
}

/* Date/Time row improvements - FORCE SAME ROW */
.booking-form-card .row {
    gap: 8px !important;
}

.booking-form-card .row.g-2 {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    margin-bottom: 15px !important;
}

.booking-form-card .row.g-2 .col-6 {
    flex: 0 0 50% !important; /* DATE tar 50% */
    min-width: 0 !important;
    padding: 0 4px !important;
}

.booking-form-card .row.g-2 .col-3 {
    flex: 0 0 25% !important; /* HOUR och MIN tar 25% var */
    min-width: 0 !important;
    padding: 0 4px !important;
}

.booking-form-card .row.g-2 label {
    font-weight: 600 !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    color: #666 !important;
    margin-bottom: 6px !important;
    display: block !important;
}

@media (max-width: 768px) {
    .booking-form-card .row.g-2 {
        gap: 6px !important;
    }
    
    .booking-form-card .row.g-2 .col-6,
    .booking-form-card .row.g-2 .col-3 {
        padding: 0 2px !important;
    }
    
    .booking-form-card .row.g-2 label {
        font-size: 10px !important;
    }
}

/* Add subtle animation on load */
@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }
}

/* ========================================
   DATEPICKER - SVENSKT FORMAT (ENHANCED UX)
   ======================================== */

/* Datepicker container - OVER ALL ELEMENTS */
/* DATEPICKER - CENTRERAD PÅ SKÄRMEN */
.datepicker,
.datepicker-dropdown,
div.datepicker,
div.datepicker-dropdown {
    z-index: 99999999 !important;
    position: fixed !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
    width: auto !important;
    max-width: none !important;
    min-width: auto !important;
    box-sizing: content-box !important;
}

/* Enhanced datepicker styling */
.datepicker-enhanced {
    border: none !important;
    border-radius: 16px !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2) !important;
    padding: 10px !important;
    animation: datepickerSlideIn 0.3s ease-out !important;
}

@keyframes datepickerSlideIn {
    from {
        opacity: 0;
        transform: translateY(-10px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Datepicker table styling */
.datepicker table {
    background: white !important;
    border-radius: 12px !important;
    margin: 0 !important;
}

/* Header styling */
.datepicker .datepicker-switch,
.datepicker .prev,
.datepicker .next,
.datepicker tfoot tr th {
    padding: 12px 10px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #1a1a2e !important;
    background: white !important;
    transition: all 0.2s ease !important;
}

.datepicker .datepicker-switch {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #1a1a2e !important;
}

.datepicker .prev:hover,
.datepicker .next:hover {
    background: #f5f5f5 !important;
    border-radius: 8px !important;
}

/* Days of week */
.datepicker table tr th.dow {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #666 !important;
    padding: 8px 5px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

/* Datepicker cells - LARGER TOUCH TARGETS */
.datepicker table tr td,
.datepicker table tr th {
    border-radius: 8px !important;
    padding: 8px !important;
    width: 40px !important;
    height: 40px !important;
    text-align: center !important;
    transition: all 0.2s ease !important;
}

.datepicker table tr td.day {
    font-size: 14px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
}

/* Selected date - BRIGHT & CLEAR */
.datepicker table tr td.active,
.datepicker table tr td.active:hover,
.datepicker table tr td.selected {
    background: linear-gradient(135deg, #ffc107 0%, #ffb300 100%) !important;
    color: #1a1a2e !important;
    font-weight: 700 !important;
    box-shadow: 0 4px 12px rgba(255, 193, 7, 0.4) !important;
    transform: scale(1.05) !important;
}

/* Today - CLEAR INDICATOR */
.datepicker table tr td.today {
    background: #fff3e0 !important;
    color: #1a1a2e !important;
    font-weight: 600 !important;
    border: 2px solid #ffc107 !important;
}

.datepicker table tr td.today:hover {
    background: #ffe082 !important;
}

/* Hover effect - SMOOTH & RESPONSIVE */
.datepicker table tr td:hover {
    background: #ffe082 !important;
    color: #1a1a2e !important;
    transform: scale(1.08) !important;
}

/* Weekend highlight */
.datepicker table tr td.day.weekend {
    color: #ff5722 !important;
    font-weight: 600 !important;
}

/* Disabled dates */
.datepicker table tr td.disabled,
.datepicker table tr td.disabled:hover {
    color: #ccc !important;
    background: transparent !important;
    cursor: not-allowed !important;
    transform: none !important;
}

/* Old/New month dates */
.datepicker table tr td.old,
.datepicker table tr td.new {
    color: #bbb !important;
}

/* Today button styling */
.datepicker tfoot tr th.today {
    background: linear-gradient(135deg, #ffc107 0%, #ffb300 100%) !important;
    color: #1a1a2e !important;
    font-weight: 700 !important;
    padding: 12px !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}

.datepicker tfoot tr th.today:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 12px rgba(255, 193, 7, 0.4) !important;
}

/* Input focus styling */
.input-focused {
    animation: inputPulse 0.3s ease !important;
}

@keyframes inputPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.02); }
}

/* Date selected animation */
.date-selected {
    animation: dateSelectPulse 0.3s ease !important;
}

@keyframes dateSelectPulse {
    0%, 100% { 
        transform: scale(1);
        box-shadow: 0 2px 8px rgba(255, 193, 7, 0.2);
    }
    50% { 
        transform: scale(1.05);
        box-shadow: 0 4px 16px rgba(255, 193, 7, 0.4);
    }
}

/* MOBILE RESPONSIVE - LARGER TOUCH TARGETS */
@media (max-width: 768px) {
    .datepicker-enhanced {
        border-radius: 20px !important;
        padding: 15px !important;
        max-width: 90vw !important;
    }
    
    .datepicker table tr td,
    .datepicker table tr th {
        width: 45px !important;
        height: 45px !important;
        padding: 10px !important;
    }
    
    .datepicker table tr td.day {
        font-size: 16px !important;
    }
    
    .datepicker .datepicker-switch {
        font-size: 18px !important;
    }
    
    .datepicker table tr th.dow {
        font-size: 14px !important;
    }
}

/* Extra small devices */
@media (max-width: 480px) {
    .datepicker-enhanced {
        width: 100% !important;
        max-width: 95vw !important;
    }
    
    .datepicker table tr td,
    .datepicker table tr th {
        width: 40px !important;
        height: 40px !important;
    }
}

@media (max-width: 991px) {
    .booking-form-wrapper {
        width: calc(100% - 20px) !important;
        max-width: 500px !important;
    }
}

@media (max-width: 768px) {
    /* Booking form - behåll transform för centrering, använd calc för margin */
    .booking-form-wrapper {
        width: calc(100% - 1rem) !important;
        max-width: calc(100% - 1rem) !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
    }
    
    .booking-form-card {
        padding: 25px 20px !important;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.12) !important;
    }
    
    /* Options modal - regler flyttade till slutet av filen för bättre specificitet */
    
    /* Karta - INGEN MARGIN (kartan är nu utanför .container) */
    .map-section-wrapper {
        margin: 0 !important;
        width: 100% !important;
    }
    
    #map {
        margin: 0 !important;
    }
    
    /* Datepicker - CENTRERAD PÅ SKÄRMEN */
    .datepicker,
    .datepicker-dropdown,
    div.datepicker,
    div.datepicker-dropdown {
        z-index: 99999999 !important;
        position: fixed !important;
        left: 50% !important;
        top: 50% !important;
        transform: translate(-50%, -50%) !important;
        width: auto !important;
        max-width: none !important;
    }
    
}

/* Ensure form elements are visible */
.booking-form-card .form-container,
.booking-form-card .form-control,
.booking-form-card .btn-wrapper {
    position: relative !important;
    z-index: 1001 !important;
}

/* Ensure booking form wrapper is always on top */
.map-section-wrapper .booking-form-wrapper {
    position: absolute !important;
    z-index: 1000 !important;
}

.map-section-wrapper .booking-form-card {
    position: relative !important;
    z-index: 1001 !important;
}

/* Map positioning - FIXED 600px HEIGHT, 100% WIDTH */
#map {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 600px !important;
    z-index: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.w-100#map {
    width: 100% !important;
    max-width: 100% !important;
    z-index: 1 !important;
}

.w-100#map {
    width: 100% !important;
    max-width: 100% !important;
}

/* Container adjustments */
/* Container för karta har speciella regler */
main .map-section-wrapper .container {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Container i main (för innehåll) ska ha samma styling */
main section .container {
    max-width: 1400px !important;
    margin: 0 auto !important;
    padding: 0 2rem !important;
}

main {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow-x: hidden !important;
}


.services-section {
    background: linear-gradient(135deg, #f5f1e8 0%, #faf7f0 100%) !important;
    padding: 80px 0 !important;
    margin: 0 !important;
    width: 100% !important;
}

.services-container {
    max-width: 1400px !important;
    margin: 0 auto !important;
    padding: 0 2rem !important;
}

.services-header {
    text-align: center !important;
    margin-bottom: 60px !important;
}

.services-subtitle {
    color: #ffc107 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    margin-bottom: 15px !important;
}

.services-title {
    color: #1a1a2e !important;
    font-size: 42px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    margin: 0 !important;
}

@media (max-width: 991px) {
    .services-title {
        font-size: 36px !important;
    }
}

@media (max-width: 576px) {
    .services-title {
        font-size: 28px !important;
    }
}

.services-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 30px !important;
}

@media (max-width: 1200px) {
    .services-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 25px !important;
    }
}

@media (max-width: 576px) {
    .services-grid {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
}

.services-section .service-card-new {
    background: linear-gradient(135deg, #1a1a2e 0%, #2d2d44 100%) !important;
    border-radius: 20px !important;
    padding: 40px 30px !important;
    position: relative !important;
    overflow: hidden !important;
    transition: all 0.4s ease !important;
    border-bottom: 4px solid #ffc107 !important;
    min-height: 300px !important;
    display: flex !important;
    flex-direction: column !important;
}

.services-section .service-card-new::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    width: 200px !important;
    height: 200px !important;
    background: rgba(255, 193, 7, 0.05) !important;
    border-radius: 50% !important;
    transform: translate(50%, -50%) !important;
    transition: all 0.4s ease !important;
}

.services-section .service-card-new:hover {
    background: linear-gradient(135deg, #ffc107 0%, #ffb300 100%) !important;
    transform: translateY(-10px) !important;
    box-shadow: 0 15px 40px rgba(255, 193, 7, 0.4) !important;
}

.services-section .service-card-new:hover::before {
    background: rgba(0, 0, 0, 0.05) !important;
}

.services-section .service-icon-new {
    width: 60px !important;
    height: 60px !important;
    margin-bottom: 25px !important;
    position: relative !important;
    z-index: 2 !important;
}

.services-section .service-icon-new i {
    color: #ffc107 !important;
    font-size: 48px !important;
    transition: color 0.4s ease !important;
}

.services-section .service-card-new:hover .service-icon-new i {
    color: #1a1a2e !important;
}

.services-section .service-number {
    position: absolute !important;
    top: 30px !important;
    right: 30px !important;
    background: white !important;
    color: #1a1a2e !important;
    width: 50px !important;
    height: 50px !important;
    border-radius: 12px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    z-index: 2 !important;
}

.services-section .service-title-card {
    color: #ffc107 !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    margin-bottom: 15px !important;
    position: relative !important;
    z-index: 2 !important;
    transition: color 0.4s ease !important;
}

.services-section .service-card-new:hover .service-title-card {
    color: #1a1a2e !important;
}

.services-section .service-description {
    color: #b0b0b0 !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
    margin: 0 !important;
    position: relative !important;
    z-index: 2 !important;
    transition: color 0.4s ease !important;
}

.services-section .service-card-new:hover .service-description {
    color: #1a1a2e !important;
}
.faq-section {
    background: linear-gradient(135deg, #f5f1e8 0%, #faf7f0 100%) !important;
    padding: 80px 0 !important;
    margin: 0 !important;
    width: 100% !important;
}

.faq-container {
    max-width: 1400px !important;
    margin: 0 auto !important;
    padding: 0 2rem !important;
}

.faq-row {
    display: grid !important;
    grid-template-columns: 1fr 1.2fr !important;
    gap: 60px !important;
    align-items: start !important;
}

@media (max-width: 991px) {
    .faq-row {
        grid-template-columns: 1fr !important;
        gap: 40px !important;
    }
}

/* LEFT COLUMN - IMAGE & STATS */
.faq-left {
    position: relative !important;
}

.faq-subtitle {
    color: #ffc107 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    margin-bottom: 15px !important;
}

.faq-main-title {
    color: #1a1a2e !important;
    font-size: 42px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 40px !important;
    line-height: 1.2 !important;
}

@media (max-width: 991px) {
    .faq-main-title {
        font-size: 32px !important;
    }
}

@media (max-width: 576px) {
    .faq-main-title {
        font-size: 26px !important;
    }
}

.faq-image-container {
    position: relative !important;
    background: linear-gradient(135deg, #e0e0e0 0%, #f0f0f0 100%) !important;
    border-radius: 20px !important;
    padding: 60px 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 400px !important;
    overflow: hidden !important;
}

.faq-image-container img {
    max-width: 100% !important;
    height: auto !important;
    border-radius: 10px !important;
    position: relative !important;
    z-index: 2 !important;
}

.faq-stats-badge {
    position: absolute !important;
    bottom: 30px !important;
    right: 30px !important;
    background: linear-gradient(135deg, #ffc107 0%, #ffb300 100%) !important;
    border-radius: 15px !important;
    padding: 30px 40px !important;
    box-shadow: 0 10px 30px rgba(255, 193, 7, 0.3) !important;
    z-index: 3 !important;
}

.faq-stats-number {
    font-size: 48px !important;
    font-weight: 800 !important;
    color: #1a1a2e !important;
    line-height: 1 !important;
    margin-bottom: 5px !important;
}

.faq-stats-text {
    font-size: 13px !important;
    color: #1a1a2e !important;
    font-weight: 600 !important;
    text-align: center !important;
}

/* RIGHT COLUMN - ACCORDION */
.faq-right {
    display: flex !important;
    flex-direction: column !important;
    gap: 15px !important;
}

.faq-accordion-item {
    background: white !important;
    border-radius: 15px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05) !important;
    transition: all 0.3s ease !important;
}

.faq-accordion-item:hover {
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1) !important;
}

.faq-accordion-header {
    background: white !important;
    padding: 20px 25px !important;
    cursor: pointer !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 20px !important;
    transition: all 0.3s ease !important;
    border: none !important;
    width: 100% !important;
    text-align: left !important;
}

.faq-accordion-header:hover {
    background: #f8f8f8 !important;
}

.faq-accordion-question {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #1a1a2e !important;
    margin: 0 !important;
}

.faq-accordion-icon {
    width: 36px !important;
    height: 36px !important;
    background: #ffc107 !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    transition: all 0.3s ease !important;
}

.faq-accordion-icon i {
    color: #1a1a2e !important;
    font-size: 14px !important;
    transition: transform 0.3s ease !important;
}

.faq-accordion-item.active .faq-accordion-icon {
    background: #1a1a2e !important;
}

.faq-accordion-item.active .faq-accordion-icon i {
    color: #ffc107 !important;
    transform: rotate(180deg) !important;
}

.faq-accordion-content {
    max-height: 0 !important;
    overflow: hidden !important;
    transition: max-height 0.4s ease, padding 0.4s ease !important;
    padding: 0 25px !important;
}

.faq-accordion-item.active .faq-accordion-content {
    max-height: 500px !important;
    padding: 0 25px 20px 25px !important;
}

.faq-accordion-answer {
    color: #666 !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
    margin: 0 !important;
}
.app-download-section {
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%) !important;
    padding: 100px 0 !important;
    margin: 0 !important;
    width: 100% !important;
    position: relative !important;
    overflow: hidden !important;
}

.app-download-container {
    max-width: 1400px !important;
    margin: 0 auto !important;
    padding: 0 2rem !important;
}

.app-download-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 60px !important;
    align-items: center !important;
}

@media (max-width: 991px) {
    .app-download-row {
        grid-template-columns: 1fr !important;
        gap: 40px !important;
    }
}

/* LEFT COLUMN - TEXT & BUTTONS */
.app-download-left {
    display: flex !important;
    flex-direction: column !important;
    gap: 25px !important;
}

.app-download-subtitle {
    color: #ffc107 !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    text-transform: capitalize !important;
    letter-spacing: 1px !important;
    margin: 0 !important;
}

.app-download-title {
    color: #ffc107 !important;
    font-size: 52px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    margin: 0 !important;
    line-height: 1.1 !important;
}

@media (max-width: 991px) {
    .app-download-title {
        font-size: 40px !important;
    }
}

@media (max-width: 576px) {
    .app-download-title {
        font-size: 32px !important;
    }
}

.app-download-description {
    color: #b0b0b0 !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}

.app-download-buttons {
    display: flex !important;
    gap: 15px !important;
    flex-wrap: nowrap !important;
    margin-top: 10px !important;
}

@media (max-width: 576px) {
    .app-download-buttons {
        gap: 10px !important;
    }
}

.app-store-btn {
    background: linear-gradient(135deg, #ffc107 0%, #ffb300 100%) !important;
    border: none !important;
    border-radius: 12px !important;
    padding: 15px 30px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    text-decoration: none !important;
    box-shadow: 0 5px 20px rgba(255, 193, 7, 0.3) !important;
    flex-shrink: 1 !important;
    min-width: 0 !important;
}

@media (max-width: 576px) {
    .app-store-btn {
        padding: 12px 20px !important;
        gap: 8px !important;
    }
}

.app-store-btn:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 30px rgba(255, 193, 7, 0.5) !important;
}

.app-store-btn-icon {
    font-size: 28px !important;
    color: #1a1a2e !important;
    flex-shrink: 0 !important;
}

@media (max-width: 576px) {
    .app-store-btn-icon {
        font-size: 24px !important;
    }
}
.app-store-btn-text {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    min-width: 0 !important;
}

.app-store-btn-small {
    font-size: 11px !important;
    color: #1a1a2e !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    white-space: nowrap !important;
}

@media (max-width: 576px) {
    .app-store-btn-small {
        font-size: 9px !important;
    }
}

.app-store-btn-large {
    font-size: 18px !important;
    color: #1a1a2e !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
}

@media (max-width: 576px) {
    .app-store-btn-large {
        font-size: 15px !important;
    }
}

/* RIGHT COLUMN - PHONE MOCKUP */
.app-download-right {
    position: relative !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

.app-phone-mockup {
    position: relative !important;
    max-width: 650px !important;
    width: 100% !important;
    height: auto !important;
}

.app-phone-mockup img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
}

@media (max-width: 991px) {
    .app-download-right {
        order: -1 !important;
    }
}
.cta-booking-section {
    background: transparent !important;
    padding: 0 !important;
    margin: 60px 0 !important;
    width: 100% !important;
}

.cta-booking-container {
    max-width: 1400px !important;
    margin: 0 auto !important;
    padding: 0 2rem !important;
}

.cta-booking-wrapper {
    position: relative !important;
    overflow: hidden !important;
    border-radius: 20px !important;
    min-height: 200px !important;
    display: flex !important;
    align-items: center !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1) !important;
}

/* LARGE SCREEN LAYOUT - Diagonal Split */
@media (min-width: 992px) {
    .cta-booking-wrapper {
        display: flex !important;
        position: relative !important;
        min-height: 200px !important;
    }
    
    .cta-booking-left {
        background: linear-gradient(135deg, #ffc107 0%, #ffb300 100%) !important;
        padding: 50px 60px !important;
        position: relative !important;
        flex: 0 0 55% !important;
        clip-path: polygon(0 0, 100% 0, 90% 100%, 0% 100%) !important;
        z-index: 2 !important;
    }
    
    .cta-booking-left::before {
        content: '24/7' !important;
        position: absolute !important;
        font-size: 180px !important;
        font-weight: 900 !important;
        color: rgba(255, 255, 255, 0.15) !important;
        top: 50% !important;
        left: 50% !important;
        transform: translate(-50%, -50%) !important;
        z-index: 0 !important;
        pointer-events: none !important;
    }
    
    .cta-booking-right {
        background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%) !important;
        padding: 50px 60px 50px 120px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 30px !important;
        flex: 1 !important;
        margin-left: -100px !important;
        z-index: 1 !important;
    }
}

/* MEDIUM SCREEN LAYOUT - Horizontal Split */
@media (min-width: 577px) and (max-width: 991px) {
    .cta-booking-wrapper {
        display: flex !important;
        position: relative !important;
        min-height: 200px !important;
    }
    
    .cta-booking-left {
        background: linear-gradient(135deg, #ffc107 0%, #ffb300 100%) !important;
        padding: 40px 30px !important;
        position: relative !important;
        flex: 0 0 50% !important;
        clip-path: polygon(0 0, 100% 0, 88% 100%, 0% 100%) !important;
        z-index: 2 !important;
    }
    
    .cta-booking-left::before {
        content: '24/7' !important;
        position: absolute !important;
        font-size: 120px !important;
        font-weight: 900 !important;
        color: rgba(255, 255, 255, 0.15) !important;
        top: 50% !important;
        left: 50% !important;
        transform: translate(-50%, -50%) !important;
        z-index: 0 !important;
        pointer-events: none !important;
    }
    
    .cta-booking-right {
        background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%) !important;
        padding: 40px 30px 40px 60px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 20px !important;
        flex: 1 !important;
        margin-left: -60px !important;
        z-index: 1 !important;
    }
}

/* MOBILE LAYOUT - Vertical Stack */
@media (max-width: 576px) {
    .cta-booking-wrapper {
        display: flex !important;
        flex-direction: column !important;
        border-radius: 15px !important;
    }
    
    .cta-booking-left {
        background: linear-gradient(135deg, #ffc107 0%, #ffb300 100%) !important;
        padding: 40px 30px !important;
        position: relative !important;
        border-radius: 15px 15px 0 0 !important;
    }
    
    .cta-booking-left::before {
        content: '24/7' !important;
        position: absolute !important;
        font-size: 100px !important;
        font-weight: 900 !important;
        color: rgba(255, 255, 255, 0.15) !important;
        top: 50% !important;
        left: 50% !important;
        transform: translate(-50%, -50%) !important;
        z-index: 0 !important;
        pointer-events: none !important;
    }
    
    .cta-booking-right {
        background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%) !important;
        padding: 40px 30px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 20px !important;
        border-radius: 0 0 15px 15px !important;
    }
}

/* LEFT SIDE - TEXT */
.cta-booking-subtitle {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #1a1a2e !important;
    margin: 0 0 10px 0 !important;
    position: relative !important;
    z-index: 1 !important;
}

.cta-booking-title {
    font-size: 32px !important;
    font-weight: 800 !important;
    color: #1a1a2e !important;
    margin: 0 !important;
    line-height: 1.2 !important;
    position: relative !important;
    z-index: 1 !important;
}

@media (max-width: 991px) {
    .cta-booking-title {
        font-size: 26px !important;
    }
}

@media (max-width: 576px) {
    .cta-booking-title {
        font-size: 22px !important;
        text-align: center !important;
    }
    
    .cta-booking-subtitle {
        text-align: center !important;
    }
}

/* RIGHT SIDE - PHONE & BUTTON */
.cta-phone-wrapper {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
}

.cta-phone-wrapper:hover {
    transform: scale(1.05) !important;
}

.cta-phone-wrapper:hover .cta-phone-number {
    color: #ffc107 !important;
}

.cta-phone-wrapper:hover .cta-phone-icon {
    background: #ffc107 !important;
}

.cta-phone-wrapper:hover .cta-phone-icon i {
    color: #1a1a2e !important;
}

.cta-phone-icon {
    width: 50px !important;
    height: 50px !important;
    background: white !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}

.cta-phone-icon i {
    color: #1a1a2e !important;
    font-size: 22px !important;
}

.cta-phone-text {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
}

.cta-phone-label {
    font-size: 13px !important;
    color: #ffc107 !important;
    font-weight: 600 !important;
    margin: 0 !important;
}

.cta-phone-number {
    font-size: 24px !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    margin: 0 !important;
    text-decoration: none !important;
}

.cta-phone-number:hover {
    color: #ffc107 !important;
}

@media (max-width: 576px) {
    .cta-phone-number {
        font-size: 20px !important;
    }
}

.cta-book-btn {
    background: linear-gradient(135deg, #ffc107 0%, #ffb300 100%) !important;
    color: #1a1a2e !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    padding: 15px 35px !important;
    border-radius: 10px !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    text-decoration: none !important;
    box-shadow: 0 5px 20px rgba(255, 193, 7, 0.3) !important;
    white-space: nowrap !important;
}

.cta-book-btn:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 30px rgba(255, 193, 7, 0.5) !important;
}

.cta-book-btn i {
    font-size: 18px !important;
}

@media (max-width: 991px) {
    .cta-book-btn {
        padding: 12px 30px !important;
        font-size: 15px !important;
    }
}


/* ========================================
   ALL INLINE STYLES FROM INDEX.PHP HAVE BEEN SUCCESSFULLY MOVED TO THIS FILE
   ========================================
   
   Last Migration: Sat Dec 20 08:42:45 PM CET 2025
   - Services Section (lines 771-938)
   - FAQ Section (lines 992-1191)
   - Mobile App Download Section (lines 1308-1497)
   - CTA Call-to-Action Section (lines 1540-1815)
   
   All sections are now externalized for better performance and maintainability.
   ======================================== */




/* ========================================
   EXTREME MAP FULL WIDTH FIX
   ======================================== */

/* KARTA - FULL WIDTH, INGEN MARGIN (kartan är nu utanför .container) */
div.map-section-wrapper,
.map-section-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    left: 0 !important;
    right: 0 !important;
    position: relative !important;
}

/* Ensure main container doesn't restrict width */
main {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow-x: hidden !important;
}

/* Force body and html to allow full width */
body, html {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Ensure any container doesn't restrict the map */
/* Container-fluid behåller full width */
.container-fluid {
    max-width: 100% !important;
}

/* Container - samma styling som services-container */
section .container,
.container {
    max-width: 1400px !important;
    margin: 0 auto !important;
    padding: 0 2rem !important;
}

/* Map element must be 100% of wrapper */
#map, div#map, .w-100#map {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    height: 600px !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
}

/* =====================================================
   SUPER AGGRESSIV DATEPICKER FIX - CENTRERAD PÅ SKÄRMEN
   ===================================================== */
.datepicker,
.datepicker-dropdown,
div.datepicker,
div.datepicker-dropdown,
.datepicker.datepicker-dropdown,
body .datepicker,
body .datepicker-dropdown {
    position: fixed !important;
    z-index: 2147483647 !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: auto !important;
    max-width: none !important;
    min-width: auto !important;
    box-sizing: content-box !important;
    background: white !important;
}

.datepicker table,
.datepicker-dropdown table {
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    max-width: none !important;
}

/* =====================================================
   OVERLAY FIX - Klickbar för att stänga modal
   ===================================================== */
.overlay {
    display: none;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
    z-index: 99999 !important;
    cursor: pointer;
}

/* =====================================================
   SUPER AGGRESSIV OPTIONS MODAL FIX - LÄNGST NER I FILEN
   Säkerställ att modalen är DOLD som standard och rätt placerad
   OBS: Använd INTE !important på display - JS sätter inline style
   ===================================================== */

/* DEFAULT STATE - HIDDEN - Gäller för alla skärmstorlekar */
.option-page,
div.option-page,
body .option-page,
body div.option-page {
    display: none; /* Hidden by default - JS shows it on click */
    position: fixed !important;
    top: 50% !important;
    right: 50% !important;
    transform: translate(50%, -50%) !important;
    z-index: 100000 !important;
    background: white !important;
    border-radius: 12px !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2) !important;
}

/* Desktop sizing */
@media screen and (min-width: 769px) {
    .option-page,
    div.option-page,
    body .option-page,
    body div.option-page {
        width: 40% !important;
        max-width: 500px !important;
    }
}

/* Mobile-specific sizing */
@media screen and (max-width: 768px) {
    .option-page,
    div.option-page,
    body .option-page,
    body div.option-page {
        width: calc(100% - 1.5rem) !important;
        max-width: calc(100% - 1.5rem) !important;
        height: auto !important;
        max-height: 90vh !important;
        min-height: auto !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }
}

/* ==================== HERO CONTENT CARD - UX OPTIMIZED ==================== */
.hero-content-card {
    background: #ffffff;
    border-radius: 24px;
    padding: 3rem 2.5rem;
    box-shadow: 0 2px 15px rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(0, 0, 0, 0.06);
    position: relative;
    overflow: hidden;
    text-align: center;
}

/* Hero Badge */
.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: linear-gradient(135deg, #faa719 0%, #ff8c00 100%);
    color: white;
    padding: 8px 20px;
    border-radius: 50px;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 4px 15px rgba(250, 167, 25, 0.3);
}

/* Hero Title */
.hero-title {
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 900;
    color: #1a1a2e;
    line-height: 1.2;
    margin-bottom: 1rem;
}

.hero-title .text-highlight {
    color: #faa719;
}

.hero-title .subtitle-line {
    display: block;
    font-size: clamp(1.2rem, 3vw, 1.8rem);
    font-weight: 700;
    color: #333;
    margin-top: 0.5rem;
}

/* Hero Features */
.hero-features {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.5rem;
    margin: 2rem 0;
    padding: 1.5rem 0;
    border-top: 2px solid rgba(250, 167, 25, 0.1);
    border-bottom: 2px solid rgba(250, 167, 25, 0.1);
}

.feature-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 24px;
    background: #f8f9fa;
    border-radius: 50px;
    transition: all 0.3s ease;
    font-weight: 600;
    color: #333;
    font-size: 15px;
}

.feature-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(250, 167, 25, 0.2);
    background: #fff;
}

.feature-item i {
    color: #faa719;
    font-size: 18px;
}

/* Hero Description */
.hero-description {
    font-size: 1.125rem;
    line-height: 1.8;
    color: #555;
    max-width: 900px;
    margin: 0 auto 2rem;
}

.hero-description strong {
    color: #1a1a2e;
    font-weight: 700;
}

/* Trust Indicators */
.trust-indicators {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 3rem;
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 2px solid rgba(250, 167, 25, 0.1);
}

.trust-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.trust-number {
    font-size: 2.5rem;
    font-weight: 900;
    color: #faa719;
    line-height: 1;
}

.trust-label {
    font-size: 14px;
    font-weight: 600;
    color: #666;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Responsive Design */
@media (max-width: 768px) {
    .hero-content-card {
        padding: 2rem 1.5rem;
        border-radius: 16px;
    }

    .hero-title {
        font-size: 1.8rem;
    }

    .hero-title .subtitle-line {
        font-size: 1.1rem;
    }

    .hero-features {
        gap: 0.75rem;
    }

    .feature-item {
        padding: 10px 16px;
        font-size: 13px;
    }

    .feature-item i {
        font-size: 16px;
    }

    .hero-description {
        font-size: 1rem;
    }

    .trust-indicators {
        gap: 1.5rem;
    }

    .trust-number {
        font-size: 2rem;
    }

    .trust-label {
        font-size: 12px;
    }
}

@media (max-width: 480px) {
    .hero-features {
        flex-direction: column;
        align-items: stretch;
    }

    .feature-item {
        justify-content: center;
        width: 100%;
    }

    .trust-indicators {
        flex-direction: column;
        gap: 1rem;
    }
}






 
.city-page-hero {
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
  padding: 80px 0 60px;
  color: #fff;
  text-align: center;
}

.city-page-hero h1 {
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 900;
  margin-bottom: 1rem;
}

.city-page-hero p {
  font-size: 1.1rem;
  opacity: 0.9;
  max-width: 600px;
  margin: 0 auto;
}

.cities-section {
  padding: 60px 0;
  background: #f8f9fa;
}

.city-card {
  display: flex;
  align-items: center;
  padding: 1rem 1.25rem;
  background: #fff;
  border-radius: 12px;
  border: 2px solid #e9ecef;
  text-decoration: none;
  color: #333;
  font-weight: 600;
  font-size: 1rem;
  transition: all 0.3s ease;
  margin-bottom: 1rem;
}

.city-card:hover {
  border-color: #faa719;
  background: #faa719;
  color: #000;
  transform: translateY(-3px);
  box-shadow: 0 8px 25px rgba(250, 167, 25, 0.3);
  text-decoration: none;
}

.city-card i {
  color: #faa719;
  margin-right: 12px;
  font-size: 1.2rem;
  transition: all 0.3s ease;
}

.city-card:hover i {
  color: #000;
}

.city-card .arrow {
  margin-left: auto;
  opacity: 0;
  transform: translateX(-10px);
  transition: all 0.3s ease;
}

.city-card:hover .arrow {
  opacity: 1;
  transform: translateX(0);
}

.section-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1a1a2e;
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 3px solid #faa719;
  display: inline-block;
}

.region-section {
  margin-bottom: 3rem;
}

@media (max-width: 768px) {
  .city-page-hero {
    padding: 60px 0 40px;
  }
  
  .cities-section {
    padding: 40px 0;
  }
  
  .city-card {
    padding: 0.875rem 1rem;
    font-size: 0.95rem;
  }
}
 