/* Specific overrides for kalkylator landing page */
        #main-header .nav-links a {
            color: #111111 !important;
        }
        #main-header .nav-links a:hover {
            color: #0284c7 !important;
        }
        #main-header #logo-img {
            filter: none !important;
            content: url('logo.png') !important;
        }
        #main-header .menu-toggle span {
            background-color: #111111 !important;
        }

        /* Kalkylator Specifik CSS */
        body.light-theme {
            background-color: #faf8f5 !important;
            font-family: 'Inter', sans-serif;
            margin: 0;
            padding: 0;
            display: flex;
            flex-direction: column;
            min-height: 100vh;
        }

        @keyframes flowingWater {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }

        .calc-main {
            flex-grow: 1;
            display: flex;
            justify-content: center;
            align-items: flex-start;
            padding: 140px 20px 60px 20px;
        }

        .calc-card {
            background: #ffffff;
            border-radius: 16px;
            box-shadow: 0 20px 50px rgba(2,132,199,0.08);
            width: 100%;
            max-width: 800px;
            padding: 40px;
            box-sizing: border-box;
            min-height: 650px; /* Håller formen konsekvent */
            display: flex;
            flex-direction: column;
            transition: min-height 0.4s ease;
        }

        #views-container {
            flex-grow: 1;
            display: flex;
            flex-direction: column;
        }

        /* Stepper */
        .stepper-container {
            display: flex;
            justify-content: space-between;
            position: relative;
            margin-bottom: 40px;
            padding-bottom: 10px;
        }
        
        .stepper-container::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 4px;
            background: #e2e8f0;
            border-radius: 4px;
            z-index: 1;
        }

        .stepper-progress {
            position: absolute;
            bottom: 0;
            left: 0;
            height: 4px;
            background: #0284c7;
            border-radius: 4px;
            z-index: 2;
            transition: width 0.4s ease;
        }

        .step-label {
            font-size: 0.8rem;
            font-weight: 600;
            color: #64748b;
            text-align: center;
            flex: 1;
            transition: color 0.3s;
        }

        .step-label.active {
            color: #0284c7;
        }

        /* Views */
        .calc-view {
            display: none;
            animation: fadeIn 0.4s ease;
            flex-grow: 1;
            flex-direction: column;
        }
        .calc-view.active {
            display: flex;
        }

        /* Gör så att action-row alltid hamnar i botten av kortet om innehållet är kort */
        .action-row {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-top: auto;
            padding-top: 2rem;
            gap: 20px;
        }

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

        .view-title {
            font-family: 'Outfit', sans-serif;
            font-size: 2rem;
            color: #0f172a;
            margin-bottom: 0.5rem;
            font-weight: 700;
            text-align: center;
        }

        .view-subtitle {
            font-size: 1.1rem;
            color: #475569;
            margin-bottom: 2rem;
            text-align: center;
        }

        /* Cards Grid */
        .options-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 20px;
            margin-bottom: 2rem;
        }

        .option-card {
            border: 1px solid #e2e8f0;
            border-radius: 8px;
            padding: 30px 20px;
            text-align: center;
            cursor: pointer;
            transition: all 0.2s;
            background: #ffffff;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
        }

        .option-card:hover {
            border-color: #93c5fd;
            box-shadow: 0 4px 12px rgba(2,132,199,0.05);
        }

        .option-card.selected {
            border-color: #0284c7;
            background: #f0f9ff;
            box-shadow: 0 4px 15px rgba(2,132,199,0.1);
        }

        .option-card.selected .option-title {
            color: #0284c7;
        }

        .option-icon {
            font-size: 2.5rem;
            margin-bottom: 15px;
            color: #0f172a;
            transition: color 0.3s;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        
        .option-card.selected .option-icon {
            color: #0284c7;
        }

        .option-title {
            font-size: 1.1rem;
            font-weight: 700;
            color: #0f172a;
            margin-bottom: 8px;
        }

        .option-desc {
            font-size: 0.9rem;
            color: #64748b;
            line-height: 1.4;
        }

        /* Checkbox List */
        .check-list {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 15px;
            margin-bottom: 2rem;
        }

        .check-item {
            border: 1px solid #e2e8f0;
            border-radius: 8px;
            padding: 15px 20px;
            display: flex;
            align-items: center;
            cursor: pointer;
            transition: all 0.2s;
        }

        .check-item:hover {
            border-color: #93c5fd;
            background: #f8fafc;
        }

        .check-item.selected {
            border-color: #0284c7;
            background: #f0f9ff;
        }

        .check-item input {
            margin-right: 15px;
            width: 20px;
            height: 20px;
            cursor: pointer;
            accent-color: #0284c7;
        }

        /* Toggle Box */
        .toggle-box {
            border: 1px solid #e2e8f0;
            border-radius: 8px;
            padding: 20px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 2rem;
        }

        /* Switch toggle CSS */
        .switch {
            position: relative;
            display: inline-block;
            width: 50px;
            height: 28px;
        }
        .switch input { opacity: 0; width: 0; height: 0; }
        .slider {
            position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0;
            background-color: #cbd5e1; transition: .4s; border-radius: 34px;
        }
        .slider:before {
            position: absolute; content: ""; height: 20px; width: 20px; left: 4px; bottom: 4px;
            background-color: white; transition: .4s; border-radius: 50%;
        }
        input:checked + .slider { background-color: #0284c7; }
        input:checked + .slider:before { transform: translateX(22px); }

        /* Buttons */
        .action-row.end {
            justify-content: flex-end;
        }

        .btn-back {
            color: #475569;
            background: #f1f5f9;
            border: 1px solid #e2e8f0;
            padding: 14px 24px;
            border-radius: 8px;
            font-weight: 600;
            font-size: 1rem;
            cursor: pointer;
            transition: all 0.2s;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            text-decoration: none;
        }
        .btn-back:hover {
            background: #e2e8f0;
            color: #0f172a;
        }

        .btn-primary {
            background: #0284c7;
            color: white;
            border: none;
            padding: 14px 30px;
            border-radius: 8px;
            font-weight: 700;
            font-size: 1.05rem;
            cursor: pointer;
            transition: all 0.2s;
            text-decoration: none;
            display: inline-block;
            box-shadow: 0 4px 14px rgba(2, 132, 199, 0.3);
        }
        .btn-primary:hover {
            background: #0369a1;
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(2, 132, 199, 0.4);
        }
        .btn-primary:disabled {
            background: #cbd5e1;
            cursor: not-allowed;
            transform: none;
            box-shadow: none;
        }

        /* Result View */
        .modern-result {
            background: #ffffff;
            border: 1px solid #e2e8f0;
            border-radius: 16px;
            margin: 0 auto 2.5rem auto;
            max-width: 500px;
            box-shadow: 0 10px 40px rgba(15, 23, 42, 0.04);
        }
        .modern-result-body {
            padding: 40px 35px;
            text-align: center;
        }
        .price-main {
            margin-bottom: 25px;
            padding-bottom: 30px;
            display: flex;
            flex-direction: row;
            justify-content: center;
            align-items: center;
            gap: 16px;
            border-bottom: 1px solid #f1f5f9;
        }
        .price-value {
            font-size: 4.5rem;
            font-family: 'Outfit', sans-serif;
            font-weight: 500;
            color: #0f172a;
            line-height: 1;
            letter-spacing: -0.03em;
        }
        .price-suffix {
            font-size: 0.9rem;
            font-weight: 600;
            color: #64748b;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            padding-top: 8px;
        }
        .price-details {
            text-align: left;
        }
        .detail-row {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 16px 0;
            color: #475569;
            font-size: 1.05rem;
            border-bottom: 1px solid #f1f5f9;
        }
        .detail-row:last-child {
            margin-bottom: 0;
            border-bottom: none;
            padding-bottom: 0;
        }
        .detail-row.highlight {
            color: #0f172a;
            font-weight: 600;
            padding-top: 24px;
            margin-top: 8px;
        }
        .detail-row.highlight span:last-child {
            color: #10b981;
            font-size: 1.2rem;
            font-weight: 700;
        }

        .info-box {
            background: #f0f9ff;
            border: 1px solid #bae6fd;
            border-radius: 8px;
            padding: 20px;
            margin-bottom: 20px;
            display: flex;
            align-items: flex-start;
            gap: 15px;
        }
        .info-box.neutral {
            background: #f8fafc;
            border-color: #e2e8f0;
        }
        .info-icon {
            color: #0284c7;
            flex-shrink: 0;
            margin-top: 2px;
        }
        .info-box.neutral .info-icon {
            color: #64748b;
        }

        /* Modal/Alerts */
        .brf-alert {
            display: none;
            text-align: center;
            padding: 40px 20px;
        }
        
        @media (max-width: 768px) {
            .calc-card { padding: 25px 15px; }
            .options-grid { grid-template-columns: 1fr; }
            .step-label { font-size: 0.7rem; }
            .result-price { font-size: 2.5rem; }
        }
        
        /* Quantity List Items */
        .qty-list {
            display: flex;
            flex-direction: column;
            gap: 12px;
        }
        .qty-item {
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            padding: 15px 20px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            background: #ffffff;
            transition: all 0.3s;
        }
        .qty-item:hover {
            border-color: #bae6fd;
        }
        .qty-item-info {
            display: flex;
            align-items: center;
            gap: 15px;
        }
        .qty-item-icon {
            color: #0284c7;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .qty-item-text {
            display: flex;
            flex-direction: column;
        }
        .qty-item-title {
            font-weight: 700;
            color: #0f172a;
            font-size: 1.05rem;
            margin-bottom: 2px;
        }
        .qty-item-subtitle {
            font-size: 0.85rem;
            color: #64748b;
        }
        .qty-controls {
            display: flex;
            align-items: center;
            gap: 15px;
        }
        .qty-btn {
            width: 36px;
            height: 36px;
            border-radius: 50%;
            border: 1px solid #e2e8f0;
            background: #ffffff;
            color: #0f172a;
            font-size: 1.2rem;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.2s;
        }
        .qty-btn:hover {
            background: #f1f5f9;
            border-color: #cbd5e1;
        }
        .qty-value {
            font-weight: 700;
            font-size: 1.1rem;
            width: 20px;
            text-align: center;
            color: #0f172a;
        }
        .qty-subitem {
            background: #f0f9ff;
            border: 1px solid #bae6fd;
            border-radius: 12px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            overflow: hidden;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            
            /* Hidden state */
            max-height: 0;
            padding: 0 20px;
            margin-top: -5px;
            margin-bottom: 0;
            opacity: 0;
            border-width: 0;
            pointer-events: none;
            visibility: hidden;
        }
        .qty-subitem.active {
            /* Visible state */
            max-height: 120px;
            padding: 15px 20px;
            margin-bottom: 12px;
            opacity: 1;
            border-width: 1px;
            pointer-events: auto;
            visibility: visible;
        }

        /* Distance Grid */
        .distance-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 10px;
        }
        @media (max-width: 600px) {
            .distance-grid { grid-template-columns: repeat(2, 1fr); }
        }
        .distance-card {
            border: 1px solid #e2e8f0;
            background: #ffffff;
            border-radius: 8px;
            padding: 12px;
            text-align: center;
            cursor: pointer;
            transition: all 0.3s;
            color: #475569;
            font-weight: 600;
            font-size: 0.95rem;
        }
        .distance-card:hover {
            border-color: #bae6fd;
            background: #f0f9ff;
        }
        .distance-card.selected {
            border-color: #0284c7;
            color: #0284c7;
            background: #f0f9ff;
            box-shadow: 0 0 0 1px #0284c7;
        }

        @media (max-width: 768px) {
            .action-row .btn-back, 
            .action-row .btn-primary {
                flex: 1;
                justify-content: center;
                text-align: center;
                white-space: nowrap;
                padding-left: 5px;
                padding-right: 5px;
            }
            .action-row {
                gap: 10px; /* Reduce gap on mobile to give buttons more space */
            }
        }

ze: 1.4rem !important;
        margin-bottom: 10px !important;
    }
    .view-subtitle {
        font-size: 0.95rem !important;
        margin-bottom: 25px !important;
    }
    .option-card {
        padding: 12px 10px !important;
        min-height: auto !important;
    }
    .option-title {
        font-size: 0.95rem !important;
        margin-bottom: 4px !important;
    }
    .option-desc {
        font-size: 0.8rem !important;
    }
    .option-icon {
        font-size: 1.8rem !important;
        margin-bottom: 8px !important;
    }
    
    /* Smaller CTA buttons */
    .action-row .btn-back,
    .action-row .btn-primary {
        font-size: 0.85rem !important;
        padding: 10px 5px !important;
        border-radius: 6px !important;
    }
    .action-row {
        gap: 8px !important;
        padding-top: 1.5rem !important;
    }
    .calc-card {
        padding: 20px 12px !important;
    }
}

ze: 1.15rem !important; /* Even smaller heading */
        margin-bottom: 8px !important;
        line-height: 1.3 !important;
    }
    .view-subtitle {
        font-size: 0.9rem !important;
        margin-bottom: 20px !important;
        padding-bottom: 0 !important;
        line-height: 1.4 !important;
    }
    
    /* Option Cards */
    .option-card {
        padding: 12px 10px !important; /* Reduced padding */
        min-height: auto !important;
    }
    .option-title {
        font-size: 0.9rem !important;
        margin-bottom: 2px !important;
        white-space: normal !important; /* Allow wrapping so they don't force width */
    }
    .option-desc {
        font-size: 0.75rem !important;
        line-height: 1.2 !important;
    }
    
    /* Make icons visually the same size */
    .option-icon {
        margin-bottom: 8px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
    .option-icon svg {
        height: 28px !important;
        width: auto !important;
        transform: none !important;
    }
    
    /* Option Cards (Step 4 - distance) */
    .distance-card {
        padding: 8px !important;
        font-size: 0.85rem !important;
    }

    /* Qty Items (Step 3) */
    .qty-item {
        padding: 10px 15px !important;
    }
    .qty-item span {
        font-size: 0.9rem !important;
    }
    .qty-btn {
        width: 28px !important;
        height: 28px !important;
        font-size: 1rem !important;
    }
    
    /* Action Buttons */
    .action-row .btn-back,
    .action-row .btn-primary,
    .action-row a.btn-primary {
        font-size: 0.85rem !important;
        padding: 10px 8px !important;
        border-radius: 6px !important;
        height: auto !important;
    }
    
    .action-row {
        gap: 8px !important;
        padding-top: 1rem !important;
    }
}

/* MOBILE OVERRIDES FROM USER REQUEST */
@media (max-width: 768px) {
    /* Layout - MUST have huge padding to clear the pipes */
    .calc-card {
        padding: 40px 42px !important; /* Increased drastically so content clears the pipes completely */
    }

    /* Headings */
    .view-title {
        font-size: 1.1rem !important; /* Even smaller heading */
        margin-bottom: 8px !important;
        line-height: 1.3 !important;
    }
    .view-subtitle {
        font-size: 0.85rem !important;
        margin-bottom: 20px !important;
        padding-bottom: 0 !important;
        line-height: 1.4 !important;
    }
    
    /* Option Cards */
    .option-card {
        padding: 12px 10px !important; 
        min-height: auto !important;
    }
    .option-title {
        font-size: 0.85rem !important;
        margin-bottom: 2px !important;
        white-space: normal !important; 
    }
    .option-desc {
        font-size: 0.75rem !important;
        line-height: 1.2 !important;
    }
    
    /* Make icons visually the same size */
    .option-icon {
        margin-bottom: 8px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
    .option-icon svg {
        height: 26px !important;
        width: auto !important;
        transform: none !important;
    }
    
    /* Option Cards (Step 4 - distance) */
    .distance-card {
        padding: 8px !important;
        font-size: 0.85rem !important;
    }

    /* Qty Items (Step 3) */
    .qty-item {
        padding: 10px 15px !important;
    }
    .qty-item span {
        font-size: 0.85rem !important;
    }
    .qty-btn {
        width: 28px !important;
        height: 28px !important;
        font-size: 1rem !important;
    }
    
    /* Action Buttons */
    .action-row .btn-back,
    .action-row .btn-primary,
    .action-row a.btn-primary {
        font-size: 0.85rem !important;
        padding: 12px 10px !important;
        border-radius: 6px !important;
        height: auto !important;
    }
    
    .action-row {
        gap: 12px !important;
        padding-top: 1rem !important;
    }
}
