.custom-pill-btn {
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    color: #495057;
    border-radius: 50rem;
    padding: 10px 24px;
    font-weight: 600;
    transition: all 0.2s ease-in-out;
}

.custom-pill-btn:hover:not(.disabled-pill) {
    background-color: #e2e6ea;
    border-color: #dae0e5;
}

.custom-pill-btn.active {
    background-color: #f28b00;
    border-color: #f28b00;
    color: white;
    box-shadow: 0 4px 8px rgba(242, 139, 0, 0.3);
}

.custom-pill-btn.disabled-pill {
    opacity: 0.4;
    cursor: not-allowed;
    background-color: #f8f9fa;
    border-color: #dee2e6;
    color: #6c757d;
}

/* Custom CSS for the detailed eSIM information table */
.spec-icon i {
    width: 24px;
    text-align: center;
    color: #f28b00; /* Synchronized with eSimly's brand color */
}

.text-warning-custom {
    color: #ef8c00 !important;
}

/* Creates smart vertical column dividers that only appear on computer screens */
@media (min-width: 768px) {
    .border-end-md {
        border-right: 1px solid #dee2e6 !important;
    }
    .border-bottom-md {
        border-bottom: 1px solid #dee2e6 !important;
    }
}

.custom-pill-btn.active {
    background-color: #f28b00 !important;
    color: #ffffff !important;
    border-color: #f28b00 !important;
    box-shadow: 0 4px 10px rgba(242, 139, 0, 0.3) !important;
}

/* --- ADDED FIX FOR ALPINE.JS FLICKERING ERROR (Important for Core Vitals SEO) --- */
[x-cloak] {
    display: none !important;
}

/* --- OPTIMIZE CATEGORY IMAGE --- */
.category-image-wrapper {
    width: 100%;
    /* Aspect ratio 16:9 or 3:2 helps prevent image distortion on mobile */
    aspect-ratio: 16/9;
    flex-shrink: 0;
}

/* On desktop/tablet devices, switch to a fixed-size container */
@media (min-width: 768px) {
    .category-image-wrapper {
        width: 240px;
        height: 160px;
        aspect-ratio: auto;
    }
}

/* --- OPTIMIZE UX ON MOBILE (Sticky Add to Cart) --- */
@media (max-width: 767px) {
    /* Add padding to the body/shop section so the shopping cart bar doesn't cover the text */
    .shop.py-5 {
        padding-bottom: 140px !important;
    }

    /* Transforms the shopping cart form into a fixed adhesive strip at the bottom of the screen */
    .cart-action-bar {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        background: #ffffff;
        z-index: 1040;
        box-shadow: 0 -10px 20px rgba(0, 0, 0, 0.08) !important;
        padding: 15px !important;
        border-radius: 20px 20px 0 0 !important;
        margin-top: 0 !important;
        border: none !important;
        border-top: 1px solid #dee2e6 !important;
    }
}



.device-list-container {
    max-height: 400px;
    overflow-y: auto;
}
.device-list-container::-webkit-scrollbar {
    width: 6px;
}
.device-list-container::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}
.device-list-container::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 4px;
}
.device-list-container::-webkit-scrollbar-thumb:hover {
    background: #a8a8a8;
}

.device-section {
    margin-bottom: 1.5rem;
}
.device-section-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #495057;
    margin-bottom: 0.5rem;
    padding-bottom: 0.3rem;
    border-bottom: 2px solid #e9ecef;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.device-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.device-item {
    padding: 8px 12px;
    font-size: 0.95rem;
    color: #333;
    border-radius: 6px;
    transition: background-color 0.2s ease;
}
.device-item:hover {
    background-color: #f8f9fa;
    color: #0d6efd;
    cursor: default;
}

.highlight-text {
    background-color: #fff3cd;
    font-weight: bold;
    color: #856404;
}