:root {
    /* Colors */
    --primary: #ea1d2c;
    --primary-dark: #c01723;
    --secondary: #f2994a;
    --danger: #ea1d2c;
    --success: #27ae60;
    --star-rating: #f2c94c;

    /* Light Theme Palette (Delivery App Style) */
    --bg-main: #f5f5f5;
    --bg-card: #ffffff;
    --bg-muted: #f9f9f9;
    --text-main: #111827;
    --text-muted: #6b7280;
    --border: #e5e7eb;
    --glass-bg: rgba(255, 255, 255, 0.85);

    /* Shadows & Effects */
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.12);
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 20px;
    --radius-full: 9999px;

    /* Layout */
    --header-height: auto;
    --nav-height: 70px;
    --container-max: 1200px;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}

body {
    font-family: 'Outfit', 'Montserrat', sans-serif;
    background-color: var(--bg-main);
    color: var(--text-main);
    line-height: 1.5;
    overflow-x: hidden;
}

/* Utils */
.pulse {
    width: 8px;
    height: 8px;
    background-color: var(--secondary);
    border-radius: 50%;
    margin-right: 8px;
    display: inline-block;
    animation: pulse-animation 2s infinite;
}

@keyframes pulse-animation {
    0% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(242, 153, 74, 0.7);
    }

    70% {
        transform: scale(1);
        box-shadow: 0 0 0 10px rgba(242, 153, 74, 0);
    }

    100% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(242, 153, 74, 0);
    }
}

/* Header & Banner Light Theme */
.main-header.light-theme {
    background: var(--bg-main);
    position: relative;
    padding-bottom: 2rem;
}

.banner-container {
    height: 180px;
    position: relative;
    overflow: hidden;
}

.hero-banner {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Floating Banner Elements */
.banner-floating-elements {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.social-icons-top {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: flex;
    gap: 0.5rem;
    pointer-events: auto;
}

.icon-btn-light {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: white;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    border: none;
    color: #4b5563;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform 0.2s;
}

.icon-btn-light svg,
.icon-btn-light i {
    width: 18px;
    height: 18px;
}

.icon-btn-light:hover {
    transform: scale(1.05);
}

.floating-promo-badge {
    position: fixed;
    /* Changed from absolute to fixed to follow scrolling */
    top: 1rem;
    right: 1rem;
    background: var(--danger);
    color: white;
    padding: 0.5rem 0.75rem;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 15px rgba(234, 29, 44, 0.4);
    z-index: 2000;
    /* High z-index to stay above everything */
    border: 1px solid rgba(255, 255, 255, 0.2);
    pointer-events: auto;
    transform-origin: right center;
    animation: slideInRight 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes slideInRight {
    0% {
        transform: translateX(100%);
        opacity: 0;
    }

    100% {
        transform: translateX(0);
        opacity: 1;
    }
}

.close-badge-btn {
    position: absolute;
    top: -6px;
    right: -6px;
    background: white;
    color: var(--danger);
    border: none;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.close-badge-btn i,
.close-badge-btn svg {
    width: 14px;
    height: 14px;
}

.badge-title {
    font-size: 0.7rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.15rem;
}

.badge-timer {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    font-weight: 500;
    font-size: 0.95rem;
    font-feature-settings: "tnum";
    font-variant-numeric: tabular-nums;
}

.badge-timer i {
    width: 14px;
    height: 14px;
}

/* Main White Card Overlapping */
.restaurant-card-wrapper {
    margin-top: -50px;
    padding: 0 1rem;
    position: relative;
    z-index: 20;
}

.restaurant-card {
    background: var(--bg-card);
    border-radius: 16px;
    padding: 1rem;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--border);
}

.logo-wrapper-light {
    width: 92px;
    height: 92px;
    background: white;
    border-radius: 16px;
    margin-top: -46px;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
    border: 3px solid white;
}

.logo-wrapper-light img {
    width: 95%;
    height: 95%;
    object-fit: contain;
}

.store-info-header {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.title-row-light {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.25rem;
}

.title-row-light h1 {
    font-size: 1.25rem;
    font-weight: 500;
    color: var(--text-main);
    letter-spacing: -0.02em;
}

.verified-badge-blue {
    color: #3b82f6;
    display: flex;
    align-items: center;
}

.verified-badge-blue i {
    width: 18px;
    height: 18px;
}

.meta-row-light {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.2rem;
}

.meta-item-light {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    color: #6b7280;
    /* lighter text matching image */
    font-size: 0.85rem;
}

.meta-item-light i {
    width: 14px;
    height: 14px;
    color: #9ca3af;
    /* muted icons matching image */
}

.free-text-green {
    color: #16a34a;
    font-weight: 500;
}

.rating-row-light {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.25rem;
}

.star-icon-yellow {
    color: #eab308;
    fill: #eab308;
    width: 14px;
    height: 14px;
}

.rating-value-dark {
    font-weight: 500;
    color: var(--text-main);
    font-size: 0.85rem;
}

.rating-count-light {
    color: var(--text-muted);
    font-size: 0.85rem;
}

.divider-light {
    height: 1px;
    background: var(--border);
    margin: 1rem 0;
}

/* Location Box Inside Card */
.location-box-light {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.loc-header-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.icon-circle-red-light {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(234, 29, 44, 0.1);
    color: var(--danger);
    display: flex;
    align-items: center;
    justify-content: center;
}

.icon-circle-red-light i {
    width: 18px;
    height: 18px;
}

.text-light .label-light {
    font-size: 0.75rem;
    color: var(--text-muted);
    line-height: 1;
    margin-bottom: 0.15rem;
}

.text-light .value-light {
    font-weight: 500;
    color: var(--text-main);
    font-size: 0.95rem;
    line-height: 1;
}

.loc-meta-row {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding-left: 0;
    margin-top: 0.5rem;
}

.meta-item-blue {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    color: #0284c7;
    font-size: 0.85rem;
    font-weight: 500;
}

.meta-item-blue svg,
.meta-item-light svg {
    width: 16px;
    height: 16px;
    stroke-width: 2.5;
}

/* Status Tags */
.status-tags-light {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.super-tag-light {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: #e5e7eb;
    /* The precise light grey from image */
    color: var(--text-main);
    padding: 0.3rem 0.75rem;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 500;
}

.super-icon-wrapper {
    background: #ea1d2c;
    width: 18px;
    height: 18px;
    border-radius: 5px;
    /* Creates the rounded square shape */
    display: flex;
    align-items: center;
    justify-content: center;
}

.super-icon-wrapper svg {
    color: white;
    fill: white;
    width: 11px;
    height: 11px;
}

.open-status-light {
    display: flex;
    align-items: center;
    color: #16a34a;
    font-weight: 500;
    font-size: 0.85rem;
}

.pulse.green {
    background-color: #16a34a;
    width: 6px;
    height: 6px;
    /* slightly smaller pulse in light theme */
}

.super-partner {
    background: var(--bg-muted);
    padding: 0.35rem 0.75rem;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.75rem;
    font-weight: 500;
}

.ifood-icon {
    width: 20px;
    height: 20px;
    background: var(--danger);
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
}

.ifood-icon i {
    width: 12px;
    height: 12px;
    fill: white;
}

.store-status.open {
    display: flex;
    align-items: center;
    color: var(--secondary);
    font-weight: 500;
    font-size: 0.875rem;
}

/* Main Content */
.content-container {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 1.5rem;
    padding-bottom: calc(var(--nav-height) + 2rem);
}

/* Search */
.search-section {
    margin-bottom: 2rem;
}

.search-wrapper {
    position: relative;
    width: 100%;
}

.search-icon {
    position: absolute;
    left: 1.25rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
}

.search-wrapper input {
    width: 100%;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: 1rem 1rem 1rem 3.5rem;
    color: var(--text-main);
    font-family: inherit;
    font-size: 1rem;
    transition: all 0.3s ease;
}

.search-wrapper input:focus {
    outline: none;
    border-color: var(--primary);
    background: var(--bg-muted);
    box-shadow: 0 0 0 4px rgba(155, 81, 224, 0.1);
}

/* Category Sections */
.section-title {
    font-size: 1.25rem;
    font-weight: 500;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.product-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Horizontal Product Card */
.product-card-horizontal {
    background: #ffffff;
    border-radius: 16px;
    padding: 14px 16px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 16px;
    align-items: start;
    cursor: pointer;
    transition: background 0.2s, transform 0.2s;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

.product-card-horizontal:active {
    background: #f9fafb;
    transform: scale(0.98);
}

.prod-info-left {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
}

.prod-title-light {
    font-weight: 500;
    font-size: 16px;
    color: #111827;
    margin-bottom: 4px;
    line-height: 1.2;
}

.prod-desc-light {
    font-size: 13px;
    color: #6b7280;
    line-height: 1.4;
    margin-bottom: 8px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.delivery-badge-blue {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #2563eb;
    font-size: 13px;
    font-weight: 500;
    margin-bottom: 8px;
}

.delivery-badge-blue svg {
    width: 16px;
    height: 16px;
    stroke-width: 2.5;
}

.prod-price-row-light {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
}

.old-price-light {
    text-decoration: line-through;
    color: #9ca3af;
    font-size: 12px;
}

.current-price-light {
    color: #111827;
    font-weight: 500;
    font-size: 18px;
}

.prod-img-right {
    position: relative;
    width: 96px;
    height: 96px;
    flex-shrink: 0;
    background: #f3f4f6;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.prod-img-light {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 12px;
}

.promo-badge-red {
    position: absolute;
    top: -6px;
    right: -6px;
    box-shadow: 0 2px 6px rgba(234, 29, 44, 0.4);
    background: #ea1d2c;
    color: white;
    font-size: 11px;
    font-weight: 500;
    padding: 4px 8px;
    border-radius: 6px;
    z-index: 10;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* New Badges and Info Labels */
.prod-badge-labeled {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.025em;
    border-radius: 6px;
    line-height: 1;
    margin-bottom: 8px;
}

.badge-success {
    background: #16a34a;
    color: white;
}

.badge-danger {
    background: #ea1d2c;
    color: white;
}

.stock-info-light {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #6B7280;
    margin-top: 8px;
}

.stock-info-light svg {
    width: 14px;
    height: 14px;
}

.stock-info-light i {
    width: 14px;
    height: 14px;
    color: #f97316;
}

.stock-info-light strong {
    color: #ea1d2c;
    font-weight: 500;
}

/* Category Splitting */
.category-divider {
    height: 1px;
    background: #e5e7eb;
    margin: 1.5rem 1rem 1rem;
}

/* Instagram Section */
.instagram-section {
    background: var(--bg-card);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
    margin-top: 3rem;
    border: 1px solid var(--border);
}

.insta-header {
    margin-bottom: 1.5rem;
}

.insta-profile {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.insta-avatar-ring {
    width: 60px;
    height: 60px;
    padding: 3px;
    border-radius: var(--radius-full);
    background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
}

.insta-avatar-ring img {
    width: 100%;
    height: 100%;
    border-radius: var(--radius-full);
    border: 2px solid var(--bg-card);
    object-fit: contain;
}

.insta-meta h3 {
    font-size: 0.875rem;
    font-weight: 500;
}

.insta-meta p {
    font-size: 0.75rem;
    color: var(--text-muted);
}

.follow-btn {
    margin-left: auto;
    background: linear-gradient(to right, #f2994a, #dc2743);
    border: none;
    color: white;
    font-weight: 500;
    font-size: 0.75rem;
    padding: 0.5rem 1.25rem;
    border-radius: 6px;
    cursor: pointer;
}

.insta-stats {
    display: flex;
    justify-content: center;
    gap: 3rem;
    padding: 1rem 0;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.insta-stats .stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 0.75rem;
}

.insta-stats .stat strong {
    font-size: 1.125rem;
}

.insta-stats .stat span {
    color: var(--text-muted);
}

.insta-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    margin: 1.5rem 0;
}

.insta-post {
    aspect-ratio: 1/1;
    background: var(--bg-muted);
    border-radius: 6px;
    overflow: hidden;
}

.view-more-link {
    display: block;
    text-align: center;
    color: var(--primary);
    text-decoration: none;
    font-weight: 500;
    font-size: 0.875rem;
}

/* Reviews */
.reviews-section {
    background: var(--bg-card);
    border-radius: 16px;
    padding: 2rem 1.5rem;
    margin-top: 3rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--border);
}

.reviews-header {
    text-align: center;
    margin-bottom: 2rem;
}

.total-rating {
    font-size: 2.5rem;
    font-weight: 500;
    display: block;
}

.stars {
    display: flex;
    justify-content: center;
    gap: 0.15rem;
    color: #eab308;
    margin: 0.25rem 0 0.5rem;
}

.stars i {
    fill: #eab308;
    width: 20px;
    height: 20px;
}

.rating-subtext {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8rem;
    color: var(--text-muted);
}

.recent-rating strong {
    color: var(--text-main);
}

.total-rating-count {
    font-size: 0.75rem;
}

.reviews-grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 1rem;
    max-width: 1000px;
    margin: 0 auto;
}

@media (min-width: 768px) {
    .reviews-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
    }
}

.review-card {
    background: #f5f5f5;
    /* Light grey matching the reference image's internal card background */
    border-radius: 12px;
    padding: 1.25rem;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    border: none;
}

.review-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.reviewer-meta {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.reviewer-meta strong {
    font-weight: 500;
    font-size: 0.95rem;
    color: var(--text-main);
}

.review-rating {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    /* Larger gap for visual breathing room */
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--text-main);
    /* Darker text for the number */
}

.stars-mini {
    display: flex;
    align-items: center;
    /* Critical to lock stars inline with the text */
    gap: 0.15rem;
}

.stars-mini svg {
    width: 14px;
    height: 14px;
}

.review-text {
    font-size: 0.8rem;
    line-height: 1.4;
    color: var(--text-muted);
    margin-top: 0.5rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.review-img-wrapper {
    width: 84px;
    height: 84px;
    border-radius: 10px;
    overflow: hidden;
    flex-shrink: 0;
}

.review-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Footer */
.main-footer {
    padding: 3rem 1.5rem 5rem;
    /* Extra padding to float above bottom nav */
    text-align: center;
    background: #f4f4f5;
}

.partner-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 0.75rem;
}

.ifood-logo {
    height: 18px;
    /* Small discrete logo like in image */
    margin-bottom: 1.25rem;
    object-fit: contain;
}

.partner-info p {
    font-size: 0.9rem;
    font-weight: 500;
    color: #111827;
}

.copyright {
    font-size: 0.75rem;
    color: #9ca3af;
}

/* Nav */
.mobile-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 64px;
    background: #f4f4f5;
    border-top: 1px solid var(--border);
    display: flex;
    justify-content: space-around;
    align-items: center;
    z-index: 100;
    padding-bottom: env(safe-area-inset-bottom);
}

.nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    color: var(--text-muted);
    font-family: inherit;
    font-size: 11px;
    font-weight: 500;
    gap: 4px;
    cursor: pointer;
    flex: 1;
    height: 100%;
}

.nav-item.active {
    color: var(--primary);
}

.nav-item .icon-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
}

.nav-item i,
.nav-item svg {
    width: 22px;
    height: 22px;
    stroke-width: 1.5;
}

.nav-item.active i,
.nav-item.active svg {
    stroke-width: 2;
}

.cart-badge {
    position: absolute;
    top: -4px;
    right: -6px;
    background: var(--danger);
    color: white;
    font-size: 10px;
    font-weight: 700;
    height: 18px;
    min-width: 18px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    border: 2px solid #f4f4f5;
}

/* Tablet / Desktop */
@media (min-width: 768px) {
    .banner-container {
        height: 300px;
    }

    .profile-section {
        flex-direction: row;
        align-items: flex-end;
        gap: 2rem;
        margin-top: -4rem;
        max-width: var(--container-max);
        margin-left: auto;
        margin-right: auto;
    }

    .logo-wrapper {
        width: 140px;
        height: 140px;
        margin-bottom: 0;
    }

    .store-info h1 {
        font-size: 2.25rem;
    }
}

/* Location Selector Flow */
.location-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    /* Much softer gray overlay */
    backdrop-filter: blur(2px);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    transition: opacity 0.5s ease, visibility 0.5s;
}

.location-overlay.hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.location-modal {
    background: var(--bg-card);
    border: none;
    border-radius: 24px;
    /* Big rounded corners matching image */
    width: 100%;
    max-width: 440px;
    padding: 2.5rem 2rem;
    position: relative;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

@media (max-width: 480px) {
    .location-overlay {
        padding: 1rem;
    }

    .location-modal {
        padding: 1.5rem;
        max-width: 100%;
    }
}

.location-step {
    display: none;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.location-step.active {
    display: flex;
    animation: fadeIn 0.4s ease forwards;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.loc-icon-main {
    width: 64px;
    height: 64px;
    background: #fce8e8;
    /* Pale red backdrop */
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
}

.loc-icon-main i,
.loc-icon-main svg {
    width: 32px;
    height: 32px;
    color: #ea1d2c !important;
    /* Red map pin */
    stroke: #ea1d2c !important;
}

.loc-header h2 {
    font-size: 1.35rem;
    /* Better balance */
    font-weight: 500;
    margin-bottom: 0.75rem;
    color: #111827;
}

.loc-header p {
    color: #6b7280;
    font-size: 0.95rem;
    line-height: 1.4;
    max-width: 90%;
    margin: 0 auto;
}

@media (max-width: 480px) {
    .location-step h2 {
        font-size: 1.25rem;
    }
}

.loc-form {
    width: 100%;
    max-width: 100%;
    margin-top: 2rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.form-group {
    text-align: left;
}

.form-group label {
    display: block;
    font-size: 0.9rem;
    font-weight: 500;
    color: #1f2937;
    margin-bottom: 0.5rem;
}

.form-group select {
    width: 100%;
    padding: 0.85rem 1rem;
    border: 1px solid #fca5a5;
    /* Soft red border for the active select */
    border-radius: 8px;
    font-family: inherit;
    font-size: 0.95rem;
    color: #4b5563;
    background: white;
    appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 1em;
    cursor: pointer;
}

.form-group select:focus {
    outline: none;
    border-color: var(--primary);
}

.form-group select:disabled {
    background-color: #f9fafb;
    border: 1px solid #f3f4f6;
    /* Nearly invisible border for disabled */
    color: #9ca3af;
    cursor: not-allowed;
}

.loc-btn {
    width: 100%;
    padding: 1rem;
    border: none;
    border-radius: 8px;
    /* Slightly tighter rounding */
    font-family: inherit;
    font-size: 1rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.loc-btn.primary {
    background: #f87171;
    /* Soft pink-red */
    color: white;
}

.loc-btn.primary:disabled {
    background: #fca5a5 !important;
    /* Even softer disabled state */
    color: white !important;
    cursor: not-allowed;
    opacity: 1 !important;
    /* Override standard browser faint disabled buttons */
}

.loc-btn.success {
    background: var(--success);
    color: white;
}

.loc-btn:hover:not(:disabled) {
    transform: scale(1.02);
    filter: brightness(1.1);
}

/* Loader */
.loader-container {
    margin: 3rem 0;
}

.custom-spinner {
    width: 48px;
    height: 48px;
    border: 3px solid rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    border-top-color: var(--danger);
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.success-icon {
    width: 64px;
    height: 64px;
    color: var(--success);
    margin: 0 auto 1.5rem;
    border: 3px solid var(--success);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: transparent;
}

.success-icon i,
.success-icon svg {
    width: 32px;
    height: 32px;
    stroke-width: 2.5;
}

/* Promotional Modal Elements */
.promo-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(8px);
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    transition: opacity 0.3s ease, visibility 0.3s;
}

.promo-overlay.hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.promo-modal {
    background: white;
    border-radius: 1.5rem;
    /* 24px */
    width: 100%;
    max-width: 380px;
    position: relative;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    overflow: hidden;
    animation: zoomIn 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

@keyframes zoomIn {
    0% {
        opacity: 0;
        transform: scale(0.95);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}

.promo-header {
    background: #FF3B3F;
    /* Exact red from reference */
    padding: 3.5rem 2rem 2rem;
    text-align: center;
    color: white;
    position: relative;
}

.promo-close-btn {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    width: 32px;
    height: 32px;
    background: transparent;
    border: 2px solid #FCD34D;
    /* Yellow ring */
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    cursor: pointer;
    z-index: 10;
    transition: transform 0.2s;
}

.promo-close-btn:hover {
    transform: scale(1.05);
}

.promo-close-btn svg {
    width: 16px;
    height: 16px;
}

.gift-icon-wrapper {
    width: 80px;
    height: 80px;
    background: white;
    border-radius: 50%;
    margin: 0 auto 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.gift-icon-wrapper svg {
    width: 40px;
    height: 40px;
}

.promo-header h2 {
    font-size: 1.5rem;
    font-weight: 500;
    margin-bottom: 0.5rem;
    letter-spacing: -0.025em;
}

.promo-header p {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.95);
    line-height: 1.4;
    max-width: 250px;
    margin: 0 auto;
}

.promo-body {
    padding: 2rem;
    text-align: center;
}

.promo-offer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.cup-icon {
    color: #4B5563;
    /* Dark gray for the outline cup */
}

.offer-highlight {
    font-size: 1.75rem;
    font-weight: 500;
    color: #EA1D2C;
    letter-spacing: -0.025em;
}

.promo-desc {
    color: #6B7280;
    font-size: 0.95rem;
    line-height: 1.5;
    margin-bottom: 2rem;
    padding: 0 0.5rem;
}

.promo-timer-box {
    background: #FCE8E8;
    /* Very Light pale pink */
    border-radius: 12px;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}

.timer-label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    color: #EA1D2C;
    font-size: 0.9rem;
    font-weight: 500;
    margin-bottom: 0.25rem;
}

.timer-countdown {
    font-size: 2.5rem;
    font-weight: 500;
    color: #EA1D2C;
    line-height: 1;
    letter-spacing: -0.05em;
}

.claim-btn {
    width: 100%;
    background: #EA1D2C;
    color: white;
    padding: 1rem;
    border-radius: 12px;
    font-weight: 500;
    border: none;
    font-size: 1.1rem;
    cursor: pointer;
    transition: background 0.2s, transform 0.2s;
    font-family: inherit;
    letter-spacing: -0.025em;
}

.claim-btn:hover {
    background: #cc1825;
    transform: scale(1.02);
}

/* Fake Social Proof Toast */
.social-toast {
    position: fixed;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%) translateY(0);
    background: white;
    border-radius: 12px;
    padding: 0.75rem 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    z-index: 1500;
    width: 90%;
    max-width: 400px;
    transition: transform 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55), opacity 0.5s ease;
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.social-toast.hidden {
    transform: translateX(-50%) translateY(150%);
    opacity: 0;
    pointer-events: none;
}

.toast-icon-wrapper {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #8b5cf6;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.emoji-icon {
    font-size: 1.1rem;
}

.toast-text-content {
    font-size: 0.85rem;
    color: var(--text-main);
    line-height: 1.3;
}

.toast-text-content strong {
    font-weight: 500;
}

/* Dynamic Scarcity Engine Classes */
.sold-out-card {
    opacity: 0.5;
    filter: grayscale(100%);
    pointer-events: none;
    transition: all 0.5s ease;
}

.sold-out-card .delivery-badge-blue {
    display: none !important;
}

.sold-out-badge {
    background: #6B7280 !important;
    color: white !important;
}

.coupon-expired-badge {
    background: #64748B !important;
    /* Dark slate */
    color: white !important;
}

.sold-out-msg-pill {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: #F3F4F6;
    border: 1px solid #D1D5DB;
    border-radius: 12px;
    padding: 0.5rem 0.75rem;
    color: #64748B;
    font-size: 0.85rem;
    font-weight: 500;
    margin-top: 0.75rem;
    width: fit-content;
}

.sold-out-msg-pill svg {
    margin-top: 1px;
}

/* ==========================================================================
   PRODUCT CUSTOMIZER MODAL (NEW)
   ========================================================================== */

.customizer-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    /* Slides up from bottom on mobile */
    opacity: 1;
    transition: opacity 0.3s ease;
}

.customizer-overlay.hidden {
    opacity: 0;
    pointer-events: none;
}

.customizer-modal {
    background: #f4f4f5;
    width: 100%;
    height: 95vh;
    border-radius: 20px 20px 0 0;
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform: translateY(0);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.customizer-overlay.hidden .customizer-modal {
    transform: translateY(100%);
}

.customizer-close-btn,
.customizer-back-btn {
    position: absolute;
    top: 16px;
    z-index: 10;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: white;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #111827;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.customizer-back-btn {
    left: 16px;
}

.customizer-close-btn {
    right: 16px;
}

.customizer-hero-image {
    width: 100%;
    height: 280px;
    flex-shrink: 0;
    background: white;
    position: relative;
}

.customizer-hero-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 20px;
}

.customizer-content {
    flex-grow: 1;
    overflow-y: auto;
    background: #f4f4f5;
    padding-bottom: 120px;
    /* Space for footer */
}

.customizer-header {
    background: #f4f4f5;
    padding: 20px 20px 16px;
}

.customizer-header h2 {
    font-size: 20px;
    font-weight: 500;
    color: #111827;
    margin-bottom: 6px;
    line-height: 1.2;
}

.customizer-desc {
    font-size: 14px;
    color: #6b7280;
    margin-bottom: 16px;
    line-height: 1.4;
}

.current-price-red {
    font-size: 24px;
    font-weight: 500;
    color: #ea1d2c;
    display: block;
}

.customizer-divider {
    height: 8px;
    background: #e5e7eb;
    /* Thicker divider between hero and addons */
    width: 100%;
}

/* Addons Section */
.addon-section {
    background: white;
    margin-bottom: 8px;
    padding: 16px 20px;
}

.addon-section-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 16px;
}

.addon-section-title-wrap {
    display: flex;
    flex-direction: column;
}

.addon-section-title {
    font-size: 16px;
    font-weight: 500;
    color: #111827;
}

.addon-section-subtitle {
    font-size: 13px;
    color: #6b7280;
    margin-top: 2px;
}

.addon-status-indicator {
    display: flex;
    align-items: center;
}

.addon-required-badge {
    background: #27272a;
    color: white;
    font-size: 10px;
    font-weight: 500;
    padding: 4px 8px;
    border-radius: 4px;
    letter-spacing: 0.5px;
}

.addon-required-badge.optional {
    background: #e5e7eb;
    color: #6b7280;
}

.addon-check-circle {
    width: 24px;
    height: 24px;
    background: #22c55e;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    color: white;
}

.addon-check-circle svg {
    width: 14px;
    height: 14px;
    stroke-width: 3;
}

.addon-section.is-fulfilled .addon-required-badge {
    display: none;
}

.addon-section.is-fulfilled .addon-check-circle {
    display: flex;
}

.addon-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 0;
    border-bottom: 1px solid #f3f4f6;
}

.addon-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.addon-name {
    font-size: 15px;
    color: #111827;
    font-weight: 500;
}

/* Modifiers / Incremental Controls */
.addon-controls {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 4px 12px;
    background: white;
}

.addon-btn {
    background: none;
    border: none;
    color: #ef4444;
    /* iFood red for control texts */
    font-size: 20px;
    font-weight: 400;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    cursor: pointer;
    padding: 0;
}

.addon-btn:disabled {
    color: #d1d5db;
    cursor: not-allowed;
}

.addon-qty {
    font-size: 15px;
    font-weight: 500;
    color: #111827;
    min-width: 12px;
    text-align: center;
}

/* Modal Footer */
.customizer-footer {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background: white;
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
    display: flex;
    align-items: center;
    gap: 16px;
    z-index: 20;
    box-shadow: 0 -4px 10px rgba(0, 0, 0, 0.05);
}

.customizer-qty-control {
    display: flex;
    align-items: center;
    gap: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 8px 16px;
}

.qty-btn {
    background: none;
    border: none;
    color: #ea1d2c;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.qty-btn svg {
    width: 18px;
    height: 18px;
}

.qty-value {
    font-size: 16px;
    font-weight: 500;
    color: #111827;
    min-width: 16px;
    text-align: center;
}

.add-to-cart-btn {
    flex-grow: 1;
    background: #ea1d2c;
    color: white;
    border: none;
    border-radius: 12px;
    height: 48px;
    padding: 0 20px;
    font-size: 16px;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    transition: background 0.2s;
}

.add-to-cart-btn:disabled {
    background: #fca5a5;
    /* lighter red */
    cursor: not-allowed;
}

.validation-message {
    position: absolute;
    bottom: 80px;
    width: 100%;
    text-align: center;
    font-size: 13px;
    color: #059669;
    /* Green success color for UX toast */
    background: #d1fae5;
    padding: 8px 0;
    font-weight: 500;
    display: none;
}

/* ==========================================================================
   CART VIEW MODULE (NEW FLAT DESIGN)
   ========================================================================== */

.cart-view {
    background: #ffffff;
    min-height: 100vh;
    padding-bottom: 90px;
    position: relative;
    z-index: 10;
    display: flex;
    flex-direction: column;
}

.cart-view.hidden,
.cart-footer.hidden,
.cart-empty-state.hidden {
    display: none !important;
}

.cart-header {
    background: #ffffff;
    height: 60px;
    display: flex;
    align-items: center;
    padding: 0 20px;
    box-shadow: none;
    border-bottom: 1px solid #e5e7eb;
    position: sticky;
    top: 0;
    z-index: 20;
}

.back-btn {
    background: none;
    border: none;
    color: #ea1d2c;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    margin-right: 16px;
}

.cart-header h2 {
    font-size: 18px;
    font-weight: 500;
    color: #111827;
}

.cart-items-list {
    padding: 0 20px;
    display: flex;
    flex-direction: column;
}

.cart-item-card {
    background: transparent;
    padding: 20px 0;
    border-bottom: 1px solid #f3f4f6;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.cart-item-card:last-child {
    border-bottom: none;
}

.cart-item-main {
    display: flex;
    align-items: center;
    gap: 16px;
    flex: 1;
}

.cart-item-img {
    width: 60px;
    height: 60px;
    border-radius: 8px;
    /* Soft rounding */
    background: #f9fafb;
    object-fit: cover;
    flex-shrink: 0;
}

.cart-item-details {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
}

.cart-item-title {
    font-size: 14px;
    font-weight: 500;
    color: #111827;
    line-height: 1.2;
}

.cart-item-price {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    /* Dark text for price in flat design */
}

.cart-item-addons {
    font-size: 12px;
    color: #9ca3af;
    line-height: 1.4;
    margin-top: 2px;
}

.cart-item-controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

/* Small quantity block for cart item */
.cart-qty-block {
    display: flex;
    align-items: center;
    background: #f9fafb;
    border-radius: 8px;
    padding: 4px;
    border: 1px solid transparent;
}

.cart-qty-block .qty-btn {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    color: #ea1d2c;
    /* Red icons */
    cursor: pointer;
    border-radius: 6px;
    transition: background 0.2s;
}

.cart-qty-block .qty-btn:active,
.cart-qty-block .qty-btn:hover {
    background: #fee2e2;
    /* Very light red hover */
}

.cart-qty-block .qty-btn svg,
.cart-qty-block .qty-btn i {
    width: 16px;
    height: 16px;
    stroke-width: 2.5;
    /* Bolder outline icons */
}

.cart-qty-block .qty-value {
    width: 24px;
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    text-align: center;
}

.cart-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    text-align: center;
    flex-grow: 1;
    margin-top: 40px;
}

.empty-cart-icon-wrapper {
    width: 96px;
    height: 96px;
    background-color: rgba(0, 0, 0, 0.04);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
}

.empty-cart-icon-wrapper i,
.empty-cart-icon-wrapper svg {
    width: 40px;
    height: 40px;
    color: #6b7280;
    stroke-width: 2;
}

.cart-empty-state h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 8px;
}

.cart-empty-state p {
    font-size: 0.95rem;
    color: #6b7280;
    margin-bottom: 24px;
}

.browse-btn {
    background: #ea1d2c;
    color: white;
    border: none;
    border-radius: 8px;
    padding: 12px 28px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(234, 29, 44, 0.2);
}

/* Cart Footer Panel */
.cart-footer {
    position: fixed;
    bottom: 60px;
    /* Above mobile nav */
    left: 0;
    width: 100%;
    background: white;
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
    z-index: 20;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
}

.cart-total-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}

.total-label {
    font-size: 16px;
    color: #111827;
}

.total-value {
    font-size: 18px;
    font-weight: 500;
    color: #111827;
}

.cart-actions-row {
    display: flex;
    gap: 12px;
}

.clear-cart-btn {
    background: white;
    color: #ea1d2c;
    border: 1px solid #ea1d2c;
    border-radius: 8px;
    height: 48px;
    padding: 0 16px;
    font-size: 15px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.checkout-btn {
    flex-grow: 1;
    background: #ea1d2c;
    color: white;
    border: none;
    border-radius: 8px;
    height: 48px;
    font-size: 16px;
    font-weight: 500;
    cursor: pointer;
}

/* ==========================================================================
   SUPER MODAL (NEW)
   ========================================================================== */

.super-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    transition: opacity 0.3s ease, visibility 0.3s;
}

.super-overlay.hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.super-modal {
    background: white;
    border-radius: 20px;
    width: 100%;
    max-width: 420px;
    position: relative;
    padding: 2.5rem 1.5rem 2rem;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
    animation: zoomIn 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

.super-close-btn {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: transparent;
    border: none;
    color: #ea1d2c;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.super-close-btn svg {
    width: 20px;
    height: 20px;
}

.super-modal-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.super-icon-large {
    width: 40px;
    height: 40px;
    background: #ea1d2c;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
}

.super-icon-large svg {
    width: 24px;
    height: 24px;
}

.super-modal-header h2 {
    font-size: 1.5rem;
    font-weight: 800;
    color: #111827;
}

.super-modal-desc {
    color: #4b5563;
    font-size: 1rem;
    line-height: 1.4;
    margin-bottom: 2rem;
}

.super-modal-desc strong {
    color: #111827;
    font-weight: 700;
}

.super-level-container {
    margin-bottom: 2rem;
}

.super-level-bars {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 0.25rem;
    height: 6px;
    margin-bottom: 0.75rem;
    position: relative;
}

.level-bar {
    flex: 1;
    background: #e5e7eb;
    border-radius: 4px;
}

.level-bar.active {
    background: #ea1d2c;
}

.level-bar.final {
    position: relative;
}

.final-star-ring {
    position: absolute;
    right: -8px;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    background: white;
    border: 2px solid #ea1d2c;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ea1d2c;
}

.final-star-ring svg {
    width: 18px;
    height: 18px;
}

.super-level-labels {
    display: flex;
    justify-content: space-between;
    font-size: 0.75rem;
    color: #6b7280;
    font-weight: 500;
}

.super-label-red {
    color: #ea1d2c;
    font-weight: 800;
    padding-right: 4px;
    /* Align with the expanded star ring */
}

.super-features-grid {
    display: flex;
    gap: 0.75rem;
}

.super-feature-card {
    flex: 1;
    background: #f9fafb;
    border-radius: 12px;
    padding: 1.25rem 0.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border: 1px solid transparent;
    /* Keeps sizing stable if border changes */
}

.feature-icon {
    position: relative;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.75rem;
}

.feature-icon>i {
    width: 32px;
    height: 32px;
    color: #6b7280;
    stroke-width: 1.5;
}

.check-badge {
    position: absolute;
    bottom: 2px;
    right: 2px;
    background: #10b981;
    color: white;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #f9fafb;
}

.check-badge i {
    width: 12px;
    height: 12px;
    stroke-width: 3;
}

.super-feature-card span {
    font-size: 0.75rem;
    color: #6b7280;
    line-height: 1.2;
    font-weight: 500;
}

/* ==========================================================================
   TAB VIEWS (SEARCH & ACCOUNT)
   ========================================================================== */

.tab-view {
    padding: 1rem 1.5rem;
    padding-bottom: 6rem;
    /* Space for nav bar */
    background-color: var(--bg-main);
    min-height: 100vh;
}

.tab-view.hidden {
    display: none;
}

/* Base Tab Header */
.tab-header {
    margin-bottom: 1.5rem;
}

.tab-header h2 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-main);
}

/* Search View Styles */
.search-input-container {
    position: relative;
    width: 100%;
    margin-bottom: 4rem;
}

.search-input-container .search-icon {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: #9ca3af;
    width: 20px;
    height: 20px;
    pointer-events: none;
}

.search-input-container input {
    width: 100%;
    height: 48px;
    padding: 0 1rem 0 2.75rem;
    border: 1px solid var(--danger);
    border-radius: 8px;
    font-size: 0.95rem;
    color: var(--text-main);
    background-color: transparent;
    transition: all 0.2s;
}

.search-input-container input:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(234, 29, 44, 0.1);
}

.search-input-container input::placeholder {
    color: #9ca3af;
}

.search-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem 0;
    text-align: center;
    color: #9ca3af;
}

.search-empty-state .huge-icon {
    width: 64px;
    height: 64px;
    margin-bottom: 1rem;
    stroke-width: 2;
    color: #d1d5db;
    /* lighter grey for huge icon */
}

.search-empty-state p {
    font-size: 1rem;
    font-weight: 400;
}

/* Account View Styles */
.account-greeting {
    display: flex;
    align-items: center;
    background-color: white;
    padding: 1.25rem;
    border-radius: 12px;
    margin-bottom: 1.5rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

.avatar-circle {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background-color: rgba(234, 29, 44, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 1rem;
}

.avatar-circle i {
    color: var(--danger);
    width: 28px;
    height: 28px;
}

.greeting-text h2 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 0.25rem;
}

.greeting-text p {
    font-size: 0.9rem;
    color: #6b7280;
}

.account-menu {
    background-color: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

.account-menu-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 1.25rem 1.5rem;
    background: transparent;
    border: none;
    cursor: pointer;
    transition: background-color 0.2s;
}

.account-menu-item:active {
    background-color: #f9fafb;
}

.account-menu-item .item-left {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.item-left span {
    font-size: 1rem;
    color: var(--text-main);
    font-weight: 500;
}

.icon-red {
    color: var(--danger);
    width: 20px;
    height: 20px;
    stroke-width: 2;
}

.icon-gray {
    color: #9ca3af;
    width: 18px;
    height: 18px;
}

.menu-divider {
    height: 1px;
    background-color: var(--border);
    margin: 0 1.5rem;
}

/* ==========================================================================
   PAYMENT METHODS FULL SCREEN MODAL
   ========================================================================== */

.full-screen-modal {
    position: fixed;
    inset: 0;
    background-color: var(--bg-main);
    z-index: 3000;
    display: flex;
    flex-direction: column;
    padding: 1rem 1.5rem;
    transition: transform 0.3s ease-in-out, opacity 0.3s;
}

.full-screen-modal.hidden {
    transform: translateX(100%);
    opacity: 0;
    pointer-events: none;
}

.payment-header {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 2rem;
    position: relative;
    z-index: 10;
}

.payment-header button {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, 0.04);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.payment-header button i,
.payment-header button svg {
    width: 20px;
    height: 20px;
    color: #4b5563;
    pointer-events: none;
    /* Let the button wrapper handle all clicks */
}

.payment-header h2 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-main);
}

.payment-options-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.payment-option {
    display: flex;
    align-items: center;
    padding: 1.25rem;
    background-color: white;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
    border: 2px solid transparent;
    position: relative;
    transition: all 0.2s;
}

.payment-option.selectable {
    cursor: pointer;
}

.payment-option.disabled {
    cursor: not-allowed;
    opacity: 0.8;
}

.payment-option.disabled.no-hover {
    opacity: 0.6;
}

.payment-option.active {
    border-color: var(--danger);
}

.payment-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 1.25rem;
    color: white;
}

.payment-icon i {
    width: 24px;
    height: 24px;
}

.bg-pix {
    background-color: #14b8a6;
}

.bg-credit {
    background-color: #5c5fe0;
}

.bg-ifood {
    background-color: #ea1d2c;
}

.bg-gray {
    background-color: #cbd5e1;
}

.ifood-text-logo {
    font-size: 14px;
    font-weight: 800;
    font-style: italic;
    letter-spacing: -0.5px;
}

.payment-info h3 {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--text-main);
    margin-bottom: 0.25rem;
}

.payment-info p {
    font-size: 0.9rem;
    color: #6b7280;
}

.opacity-low {
    opacity: 0.6;
}

.check-circle {
    position: absolute;
    right: 1.25rem;
    width: 28px;
    height: 28px;
    background-color: var(--danger);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.check-circle i {
    color: white;
    width: 16px;
    height: 16px;
    stroke-width: 3;
}

.check-circle.hidden {
    display: none;
}

.x-circle {
    position: absolute;
    right: 1.25rem;
    width: 28px;
    height: 28px;
    background-color: rgba(0, 0, 0, 0.05);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.x-circle i {
    color: #9ca3af;
    width: 16px;
    height: 16px;
    stroke-width: 3;
}

/* Expanded section */
.add-card-btn {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1rem 1.25rem;
    background-color: white;
    border-radius: 12px;
    border: none;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
    cursor: pointer;
    margin-top: -0.5rem;
    /* tight gap */
    width: 90%;
    align-self: center;
}

.add-card-btn.hidden {
    display: none;
}

.add-icon-circle {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, 0.04);
    display: flex;
    align-items: center;
    justify-content: center;
}

.add-icon-circle i {
    width: 20px;
    height: 20px;
    color: #6b7280;
}

.add-card-btn span {
    font-size: 1rem;
    color: #6b7280;
    font-weight: 500;
}

.payment-footer-text {
    text-align: center;
    color: #6b7280;
    font-size: 0.9rem;
    margin-top: 1.5rem;
}

/* ==========================================================================
   ADD CARD MODAL
   ========================================================================== */

.add-card-modal {
    background: white;
    border-radius: 20px;
    width: 100%;
    max-width: 420px;
    padding: 1.5rem;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
    animation: slideUp 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

@keyframes slideUp {
    from {
        transform: translateY(50px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.add-card-header {
    text-align: center;
    margin-bottom: 1.5rem;
}

.add-card-header h3 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--text-main);
}

.add-card-form .form-group {
    margin-bottom: 1.25rem;
}

.add-card-form .form-group label {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-main);
    margin-bottom: 0.5rem;
}

.add-card-form .form-group input {
    width: 100%;
    height: 48px;
    padding: 0 1rem;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    font-size: 0.95rem;
    color: var(--text-main);
    background-color: transparent;
    transition: all 0.2s;
}

.add-card-form .form-group input:focus {
    outline: none;
    border-color: #9ca3af;
}

.add-card-form .form-group input.input-focus-danger {
    border-color: var(--danger);
}

.add-card-form .form-group input.input-focus-danger:focus {
    border-color: var(--danger);
    box-shadow: 0 0 0 1px var(--danger);
}

.add-card-form .form-row {
    display: flex;
    gap: 1rem;
}

.add-card-form .form-row .form-group {
    flex: 1;
}

.btn-primary-full {
    width: 100%;
    background-color: var(--danger);
    color: white;
    font-weight: 600;
    font-size: 1rem;
    padding: 14px;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    margin-top: 0.5rem;
}

/* ==========================================================================
   GENERIC EMPTY STATES (ORDERS & ADDRESSES)
   ========================================================================== */

.generic-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    flex-grow: 1;
    margin-top: -60px;
    /* offset header height to truly center */
}

.huge-icon-dark {
    width: 96px;
    height: 96px;
    margin-bottom: 1.5rem;
    color: #374151;
    /* Dark gray */
}

.huge-icon-dark svg {
    width: 100%;
    height: 100%;
    stroke-width: 2;
}

.generic-empty-state h3 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 0.5rem;
}

.generic-empty-state p {
    font-size: 0.95rem;
    color: #6b7280;
    line-height: 1.4;
}

/* Light Modal Theme (Orders & Addresses) */
.full-screen-modal.modal-light {
    background-color: #f9fafb;
}

.modal-light .payment-header button {
    background-color: #e5e7eb;
}

.modal-light .payment-header button i,
.modal-light .payment-header button svg {
    color: #111827;
}

.modal-light .payment-header h2 {
    color: #111827;
}

/* ==========================================================================
   CHECKOUT PROCESS (3-STEPS)
   ========================================================================== */

.checkout-view {
    background: #f4f4f5;
    min-height: 100vh;
    padding-bottom: 110px;
    /* Space for checkout footer */
    position: relative;
    z-index: 10;
    display: flex;
    flex-direction: column;
}

.checkout-view.hidden,
.checkout-step.hidden {
    display: none !important;
}

.hidden {
    display: none !important;
}

.checkout-header {
    background: #f9fafb;
    height: 70px;
    display: flex;
    align-items: center;
    padding: 0 16px;
    border-bottom: 1px solid #e5e7eb;
    position: sticky;
    top: 0;
    z-index: 20;
}

.checkout-title-wrapper {
    display: flex;
    flex-direction: column;
    margin-left: 12px;
}

.checkout-title-wrapper h2 {
    font-size: 1.1rem;
    font-weight: 700;
    color: #111827;
}

.checkout-title-wrapper span {
    font-size: 0.8rem;
    color: #6b7280;
}

.checkout-stepper {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    background: #ffffff;
    padding: 24px 20px 16px;
    border-bottom: 1px solid #f3f4f6;
    position: relative;
}

.step-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 2;
    gap: 8px;
    width: 33.33%;
}

.step-circle {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
    position: relative;
    z-index: 2;
}

.step-circle svg {
    width: 20px;
    height: 20px;
    color: #9ca3af;
}

.step-item span {
    font-size: 0.8rem;
    font-weight: 400;
    color: #6b7280;
}

.step-item.active .step-circle {
    background: #ea1d2c;
    border-color: #ea1d2c;
}

.step-item.active .step-circle svg {
    color: white;
}

.step-item.active span {
    color: #ea1d2c;
    font-weight: 500;
}

.step-item.completed .step-circle {
    background: #ffffff;
    border-color: #ea1d2c;
}

.step-item.completed .step-circle svg {
    color: #ea1d2c;
}

.step-item.completed span {
    color: #ea1d2c;
}

/* Hardcode inner checkmark using Lucide in JS for completed steps */

.step-line {
    flex-grow: 1;
    height: 1px;
    background: #e5e7eb;
    margin: 22px -15% 0 -15%;
    position: relative;
    z-index: 1;
    transition: background 0.3s ease;
}

.step-line.active {
    background: #ea1d2c;
}

.checkout-content-scroll {
    flex-grow: 1;
    padding: 16px;
    overflow-y: auto;
}

.checkout-card {
    background: white;
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

.bg-light-red {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #fee2e2;
    display: flex;
    align-items: center;
    justify-content: center;
}

.text-red {
    color: #ea1d2c;
    width: 20px;
    height: 20px;
}

.card-header-text h3 {
    font-size: 1.05rem;
    font-weight: 700;
    color: #111827;
}

.card-header-text p {
    font-size: 0.85rem;
    color: #6b7280;
}

.checkout-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.form-group label {
    font-size: 0.85rem;
    font-weight: 600;
    color: #111827;
}

.form-group label span {
    color: #ea1d2c;
}

.form-group input {
    background: #f3f4f6;
    border: 1px solid transparent;
    border-radius: 8px;
    padding: 14px 16px;
    font-size: 1rem;
    color: #111827;
    transition: border-color 0.2s;
}

.form-group input:focus {
    outline: none;
    background: white;
    border-color: #d1d5db;
}

.form-group input::placeholder {
    color: #9ca3af;
}

.checkout-mini-summary-card {
    background: white;
    border-radius: 12px;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    margin-bottom: 16px;
}

.mini-summary-left {
    display: flex;
    align-items: center;
    gap: 16px;
}

.summary-cart-icon {
    color: #111827;
    width: 24px;
    height: 24px;
}

.mini-summary-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.mini-summary-text span {
    font-size: 0.85rem;
    color: #6b7280;
}

.mini-summary-text strong {
    font-size: 1rem;
    font-weight: 700;
    color: #111827;
}

.text-btn {
    background: none;
    border: none;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
}

.text-btn.red-text {
    color: #ea1d2c;
}

.checkout-footer-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #f4f4f5;
    padding: 16px 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    z-index: 20;
}

.continue-btn {
    background: #fca5a5;
    /* Disabled light red by default */
    color: white;
    border: none;
    border-radius: 12px;
    height: 54px;
    font-size: 1.1rem;
    font-weight: 700;
    width: 100%;
    cursor: not-allowed;
    transition: background 0.3s;
}

.continue-btn.active {
    background: #ea1d2c;
    cursor: pointer;
}

.secure-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: #6b7280;
    font-size: 0.75rem;
    font-weight: 500;
}

.secure-badge svg {
    width: 14px;
    height: 14px;
}

/* --- Checkout Step 2 (Endereço) Specifics --- */
.cep-header-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6px;
}

.cep-header-row label {
    margin-bottom: 0;
}

.form-row-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.checkbox-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
}

.checkbox-row input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border: 1.5px solid #ea1d2c;
    border-radius: 50%;
    outline: none;
    cursor: pointer;
    background: transparent;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.checkbox-row input[type="checkbox"]:checked::after {
    content: '';
    width: 10px;
    height: 10px;
    background: #ea1d2c;
    border-radius: 50%;
}

.checkbox-row label {
    font-size: 0.9rem;
    color: #4b5563;
    font-weight: 500;
    cursor: pointer;
}

.address-empty-info-box {
    background: #f3f4f6;
    border-radius: 8px;
    padding: 16px;
    margin-top: 16px;
}

.address-empty-info-box strong {
    display: block;
    color: #111827;
    font-size: 0.95rem;
    margin-bottom: 4px;
}

.address-empty-info-box p {
    color: #6b7280;
    font-size: 0.85rem;
    line-height: 1.4;
}

/* --- Checkout Step 3 (Pagamento) Specifics --- */
.payment-method-options {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.payment-option-label {
    display: flex;
    align-items: center;
    padding: 14px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.payment-option-label:has(input:checked) {
    border-color: #ea1d2c;
    background: #fff5f5;
}

.payment-option-label input[type="radio"] {
    width: 20px;
    height: 20px;
    accent-color: #ea1d2c;
    margin-right: 12px;
    cursor: pointer;
}

.payment-option-content {
    display: flex;
    align-items: center;
    gap: 12px;
}

.payment-option-content svg {
    width: 22px;
    height: 22px;
}

.payment-option-content span {
    font-weight: 500;
    color: #111827;
    font-size: 0.95rem;
}

.order-summary-card {
    margin-top: 16px;
    margin-bottom: 24px;
}

.summary-title {
    font-size: 1.05rem;
    color: #111827;
    font-weight: 600;
    margin-bottom: 16px;
}

.summary-line {
    display: flex;
    justify-content: space-between;
    font-size: 0.95rem;
    color: #4b5563;
    margin-bottom: 12px;
}

.summary-total-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 16px;
    margin-top: 4px;
    border-top: 1px dashed #e5e7eb;
    font-size: 1.1rem;
    color: #111827;
}

.summary-total-line strong {
    font-weight: 700;
    color: #ea1d2c;
}

/* --- PIX Modal --- */
.pix-modal {
    max-width: 400px;
    text-align: center;
    padding: 30px;
}

.pix-modal-header {
    margin-bottom: 20px;
}

.pix-qr-container {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.pix-qr-container img {
    max-width: 200px;
    max-height: 200px;
    display: block;
}

.pix-copy-container {
    text-align: left;
    margin-bottom: 20px;
}

.copy-input-group {
    display: flex;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    overflow: hidden;
}

.copy-input-group input {
    flex: 1;
    border: none;
    padding: 12px;
    font-size: 0.9rem;
    color: #4b5563;
    background: #f9fafb;
    outline: none;
}

.copy-btn {
    background: #f3f4f6;
    border: none;
    border-left: 1px solid #d1d5db;
    padding: 0 16px;
    color: #374151;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: all 0.2s;
}

.copy-btn:hover {
    background: #e5e7eb;
}

.pix-timer-container {
    background: #fff5f5;
    color: #ea1d2c;
    padding: 12px;
    border-radius: 8px;
    font-weight: 500;
}

.spinner-border {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    vertical-align: text-bottom;
    border: 0.25em solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: spinner-border .75s linear infinite;
    color: #ea1d2c;
}

@keyframes spinner-border {
    to {
        transform: rotate(360deg);
    }
}

/* --- New Payment Option Cards --- */
.payment-option-card-new {
    display: block;
    margin-bottom: 12px;
    cursor: pointer;
    position: relative;
    /* For the badge */
}

.hidden-radio {
    display: none;
}

.payment-option-content-new {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 16px;
    transition: all 0.2s;
    background: #fff;
    min-height: 76px;
    overflow: hidden;
    /* Ensure badge fits the corner if absolute inside */
}

.payment-option-card-new.active .payment-option-content-new {
    border-color: #ea1d2c;
    border-width: 2px;
    padding: 15px;
    /* Adjust for border width change to avoid jumping */
    background: #fffafa;
}

.badge-aprovacao {
    position: absolute;
    top: -1px;
    right: -1px;
    background: #10b981;
    color: white;
    font-size: 0.65rem;
    font-weight: 800;
    padding: 4px 8px;
    border-top-right-radius: 12px;
    border-bottom-left-radius: 8px;
    text-transform: uppercase;
    z-index: 2;
}

.payment-option-card-new.active .badge-aprovacao {
    top: 0;
    right: 0;
}

.payment-left {
    display: flex;
    align-items: center;
    gap: 16px;
}

.icon-box {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.payment-text strong {
    font-size: 1rem;
    font-weight: 700;
    color: #111827;
    display: block;
}

.payment-text p {
    font-size: 0.85rem;
    color: #6b7280;
    margin: 0;
    margin-top: 2px;
}

.payment-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.radio-check-circle {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid #d1d5db;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}

.radio-check-circle svg {
    width: 14px;
    height: 14px;
    color: white;
    opacity: 0;
}

.payment-option-card-new.active .radio-check-circle {
    background: #ea1d2c;
    border-color: #ea1d2c;
}

.payment-option-card-new.active .radio-check-circle svg {
    opacity: 1;
}

/* --- Checkout Step 2 UI Enhancements --- */
.checkout-form .form-group {
    margin-bottom: 16px;
}

.checkout-form .form-group label {
    font-size: 0.85rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 6px;
    display: block;
}

.checkout-form .form-group label span {
    color: #ea1d2c;
}

.checkout-form .form-group input {
    width: 100%;
    padding: 14px 16px;
    background: #f3f4f6;
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: 0.95rem;
    color: #111827;
    transition: all 0.2s;
    outline: none;
}

.checkout-form .form-group input:focus {
    border-color: #ea1d2c;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(234, 29, 44, 0.1);
}

.checkout-form .form-row-2 {
    display: flex;
    gap: 12px;
}

.checkout-form .form-row-2 .form-group {
    flex: 1;
}

/* Checkbox Sem Número */
.checkbox-row {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.checkbox-row input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border: 2px solid #d1d5db;
    border-radius: 4px;
    outline: none;
    transition: all 0.2s;
    position: relative;
    cursor: pointer;
    background: #fff;
}

.checkbox-row input[type="checkbox"]:checked {
    background: #ea1d2c;
    border-color: #ea1d2c;
}

.checkbox-row input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 2px;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.checkbox-row label {
    font-size: 0.9rem;
    color: #4b5563;
    font-weight: 500;
    margin: 0;
    cursor: pointer;
}

/* Empty State Box */
.address-empty-info-box {
    background: #f3f4f6;
    border-radius: 12px;
    padding: 16px 20px;
    text-align: left;
    margin-top: 12px;
    margin-bottom: 24px;
}

.address-empty-info-box strong {
    display: block;
    color: #111827;
    font-size: 0.95rem;
    margin-bottom: 4px;
}

.address-empty-info-box p {
    color: #6b7280;
    font-size: 0.85rem;
    margin: 0;
    line-height: 1.4;
}

/* Email Suggestion Dropdown */
.email-dropdown {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
    z-index: 50;
    overflow: hidden;
    border: 1px solid #e5e7eb;
    transition: opacity 0.2s, transform 0.2s;
    transform-origin: top;
}

.email-dropdown.hidden {
    opacity: 0;
    transform: scaleY(0.95);
    pointer-events: none;
    visibility: hidden;
}

.email-dropdown-header {
    background: #f9fafb;
    padding: 10px 16px;
    font-size: 0.8rem;
    color: #6b7280;
    font-weight: 500;
    border-bottom: 1px solid #e5e7eb;
}

.email-dropdown-list {
    max-height: 250px;
    overflow-y: auto;
}

.email-dropdown-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    cursor: pointer;
    transition: background-color 0.2s;
    border-bottom: 1px solid #f3f4f6;
}

.email-dropdown-item:last-child {
    border-bottom: none;
}

.email-dropdown-item:hover {
    background-color: #f9fafb;
}

.email-dropdown-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.email-dropdown-icon img,
.email-dropdown-icon svg {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.email-dropdown-text {
    display: flex;
    flex-direction: column;
}

.email-dropdown-email {
    font-size: 0.95rem;
    color: #111827;
    font-weight: 500;
}

.email-dropdown-domain {
    font-size: 0.75rem;
    color: #6b7280;
}

/* --- Cart Orderbump Section (Peça também) --- */
.cart-orderbump-section {
    margin-top: 1.5rem;
    padding: 0;
}

.cart-orderbump-section.hidden {
    display: none;
}

.orderbump-title {
    font-size: 1.05rem;
    color: #111827;
    font-weight: 700;
    margin-bottom: 16px;
    padding: 0 20px;
    /* Align with cart list padding */
}

.orderbump-carousel {
    display: flex;
    overflow-x: auto;
    gap: 16px;
    padding: 4px 20px 16px 20px;
    /* Essential: Left/Right padding prevents edge clipping of shadows and buttons */
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
}

.orderbump-carousel::-webkit-scrollbar {
    display: none;
}

.orderbump-card {
    flex: 0 0 auto;
    width: 105px;
    display: flex;
    flex-direction: column;
    scroll-snap-align: start;
    position: relative;
}

.orderbump-img-wrapper {
    width: 105px;
    height: 105px;
    background: #f3f4f6;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 8px;
    position: relative;
}

.orderbump-img-wrapper img {
    width: 75%;
    height: 75%;
    object-fit: contain;
}

.orderbump-card-btn {
    position: absolute;
    bottom: -6px;
    right: -6px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #fff;
    border: none;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ea1d2c;
    cursor: pointer;
    z-index: 2;
    transition: transform 0.2s;
}

.orderbump-card-btn:hover {
    transform: scale(1.05);
}

.orderbump-card-btn.selected {
    color: #10b981;
}

.orderbump-card-price {
    font-size: 0.95rem;
    color: #111827;
    margin-bottom: 2px;
    text-align: left;
}

.orderbump-card-title {
    font-size: 0.8rem;
    color: #4b5563;
    text-align: left;
}

/* Payment Options Disabled State */
.payment-option.disabled,
.payment-option-card-new.disabled {
    opacity: 0.6;
    pointer-events: none !important;
    filter: grayscale(100%);
    cursor: not-allowed;
}

.payment-option.disabled .payment-info h3,
.payment-option-card-new.disabled .payment-text strong {
    color: #9ca3af !important;
}

.payment-option.disabled .payment-info p,
.payment-option-card-new.disabled .payment-text p {
    color: #9ca3af !important;
}

.payment-option.disabled .bg-credit,
.payment-option-card-new.disabled .icon-box {
    background: #f3f4f6 !important;
    border: 1px solid #e5e7eb !important;
}

.payment-option.disabled .icon-red,
.payment-option-card-new.disabled .text-red {
    color: #9ca3af !important;
}