/* --- General Setup & Variables --- */
:root {
    --primary-teal: #113F38; /* The dark green color */
    --bg-light-gray: #F8F8F8;
    --text-dark: #222222;
    --text-gray: #666666;
    --card-white: #FFFFFF;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

body {
    background-color: #e0e0e0; /* Darker background outside the phone screen */
    display: flex;
    justify-content: center;
    min-height: 100vh;
}

/* The main container simulating the mobile screen */
.mobile-container {
    width: 100%;
    max-width: 414px; /* Typical large phone width */
    background-color: var(--bg-light-gray);
    position: relative;
    overflow: hidden;
    box-shadow: 0 0 20px rgba(0,0,0,0.1);
}

/* --- Header --- */
.app-header {
    background-color: var(--bg-light-gray);
    padding: 10px 20px 15px;
    position: sticky;
    top: 0;
    z-index: 10;
}

.status-bar-placeholder {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 15px;
}

.header-main {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 5px 0;
}

.header-main h1 {
    font-size: 24px;
    color: var(--text-dark);
}

/* --- Main Content Area --- */
.content-area {
    height: calc(100vh - 80px); /* Adjust based on header/nav height */
    overflow-y: auto; /* Allows vertical scrolling */
    padding-bottom: 20px;
}

/* Top Banner Placeholder */
.top-banner {
    margin: 0 20px 20px;
    height: 160px;
    background-color: var(--card-white);
    border-radius: 16px;
}

/* --- Icon Grid Section --- */
.icon-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3 columns */
    gap: 15px;
    padding: 0 20px 50px;
}

.menu-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

/* Placeholder styles for icons until SVGs are used */
.icon-box {
    width: 60px;
    height: 60px;
    background-color: var(--card-white);
    border-radius: 16px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 24px; /* For emoji placeholder size */
    margin-bottom: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.menu-item span {
    font-size: 12px;
    font-weight: 500;
    color: var(--text-dark);
}

/* --- Horizontal Scroll Sections --- */
.horizontal-section {
    padding-left: 20px; /* Left padding for the section title */
    margin-bottom: 45px;
    width: 100%;
}

.horizontal-section h2 {
    font-size: 18px;
    color: var(--text-dark);
    margin-bottom: 15px;
    padding-right: 20px;
}

/* The scrollable container */
.horizontal-scroll-container {
    display: flex;
    overflow-x: auto;       /* Enables horizontal scrolling */
    scroll-snap-type: x mandatory; /* Optional: Makes cards snap into place */
    gap: 15px;              /* Space between cards */
    padding-bottom: 10px;   /* Space for scrollbar (if visible) */
    padding-right: 20px;    /* Padding at the end of the list */
    
    /* Hiding the scrollbar for a clean mobile look */
    scrollbar-width: none;  /* Firefox */
    -ms-overflow-style: none;  /* IE */
}

/* Hide scrollbar for Chrome, Safari and Opera */
.horizontal-scroll-container::-webkit-scrollbar {
    display: none;
}

/* Ensure cards don't shrink and stay side-by-side */
.card {
    flex: 0 0 auto;         /* KEY: Don't shrink, stay at set width */
    scroll-snap-align: start; /* Optional: Snap alignment */
    background-color: var(--card-white);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

/* Specific Widths */
.food-card {
    width: 260px; /* Adjust based on preference */
}

.activity-card {
    width: 260px;
}

/* The container that handles the horizontal scrolling */
.horizontal-scroll-container {
    display: flex;
    overflow-x: auto;
    gap: 15px;
    padding-right: 20px; /* Ensure last card isn't cut off */
    /* Hide scrollbar for cleaner look (works in most modern browsers) */
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none;  /* IE 10+ */
}
.horizontal-scroll-container::-webkit-scrollbar {
    display: none; /* Chrome/Safari/Webkit */
}

/* --- General Card Styling --- */
.card {
    flex: 0 0 auto; /* Prevents cards from shrinking */
    background-color: var(--card-white);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.card-image-placeholder {
    width: 100%;
    height: 160px;
    background-color: #ddd; /* Gray placeholder color */
    background-size: cover;
    background-position: center;
}

.card-content {
    padding: 15px;
}

.card-content h3 {
    font-size: 16px;
    margin-bottom: 8px;
    color: var(--text-dark);
}

/* Specific Food Card Styles */
.food-card {
    width: 240px;
}
.food-card .price {
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: 15px;
}

/* Specific Activity Card Styles */
.activity-card {
    width: 240px;
}
.activity-card .activity-image {
    height: 180px; /* Taller image for activity cards */
}
.activity-card .date-time {
    font-size: 12px;
    color: var(--text-gray);
    margin-bottom: 15px;
}

/* Shared Button Style */
.btn-primary {
    width: 100%;
    padding: 12px;
    background-color: var(--primary-teal);
    color: white;
    border: none;
    border-radius: 25px;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
}

/* --- Bottom Navigation Bar --- */
.bottom-nav {
    position: fixed;
    bottom: 0;
    width: 100%;
    max-width: 414px; /* Match container max-width */
    height: 70px;
    background-color: var(--primary-teal);
    display: flex;
    justify-content: space-around;
    align-items: center;
}

.nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: rgba(255, 255, 255, 0.6); /* Inactive color */
}

.nav-item.active {
    color: white; /* Active color */
}

.nav-icon {
    font-size: 20px;
    margin-bottom: 4px;
}

.nav-item span {
    font-size: 10px;
}


/* =========================================
   Dining Page Specific Styles
   ========================================= */

/* --- Dining Header --- */
.header-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 10px;
}

.header-nav h1 {
    font-size: 20px;
    font-weight: 600;
    color: var(--text-dark);
    position: absolute; /* Centering the title absolutely */
    left: 50%;
    transform: translateX(-50%);
}

.icon-btn {
    font-size: 24px;
    text-decoration: none;
    color: var(--text-dark);
    cursor: pointer;
    z-index: 2; /* Ensure clickable over the centered title */
}

/* --- Filter Buttons Section (Updated for Sticky Header) --- */
.filter-section {
    position: sticky;       /* Enables the sticky behavior */
    top: 0;                 /* Sticks to the top of the scrollable main area */
    z-index: 5;             /* Ensures it sits on top of the food cards */
    background-color: var(--bg-light-gray); /* Solid background so items don't show through */
    padding: 15px 0 15px 20px; /* Add vertical padding for spacing */
    width: 100%;            /* Ensure full width */
    box-shadow: 0 4px 6px -4px rgba(0,0,0,0.1); /* Optional: Adds a subtle shadow when scrolling */
}

.filter-container {
    gap: 10px;
    padding-bottom: 5px; 
    /* Ensure the scrollbar doesn't conflict with the padding */
    padding-right: 20px; 
}

.filter-btn {
    padding: 10px 20px;
    border: none;
    border-radius: 25px;
    background-color: var(--card-white);
    color: var(--text-gray);
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap; 
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    cursor: pointer;
    flex: 0 0 auto; 
    transition: all 0.3s ease; /* Smooth transition for active state */
}

.filter-btn.active {
    background-color: var(--primary-teal);
    color: white;
    box-shadow: 0 4px 10px rgba(17, 63, 56, 0.3); /* Adds a nice glow to active button */
}

/* --- Two Column Food Grid --- */
.food-grid-section {
    padding: 20px 20px 20px 25px;
}

.two-column-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* Creates two equal columns */
    gap: 15px; /* Space between grid items */
}

/* Ensure cards fill their grid space */
.two-column-grid .card {
    width: 100%; /* Overrides specific widths set for horizontal scroll */
}

/* Slightly adjust card content for grid view if needed */
.two-column-grid .card h3 {
    font-size: 14px; /* Slightly smaller font for grid view */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* --- Filter Logic Styles --- */

/* Initially hide sections */
.hidden-section {
    display: none;
}

/* Show active section */
.active-section {
    display: block;
}

/* Simple Fade In Animation */
.fade-in {
    animation: fadeIn 0.4s ease-in-out;
}

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

.card .card-content .price{
    margin-bottom: 15px;
}


/* =========================================
   Food Detail Page Styles
   ========================================= */

/* Ensure content starts right after header without padding */
.detail-content-area {
    background-color: var(--card-white);
    min-height: calc(100vh - 150px); /* Ensures white background fills space */
}

/* Large Hero Image */
.detail-image-container {
    width: 100%;
    height: 250px; /* Fixed height for the banner */
    overflow: hidden;
}

.detail-hero-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Food Information Section */
.food-info-section {
    padding: 20px;
}

.food-info-section h2 {
    font-size: 22px;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 10px;
}

.food-description {
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-gray);
    margin-bottom: 20px;
}

.food-price {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 25px;
}

/* --- Action Area (Quantity + Button) --- */
.action-area {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

/* Quantity Selector Styling */
.quantity-selector {
    display: flex;
    align-items: center;
    gap: 15px;
}

/* Circular Buttons */
.qty-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid var(--text-dark);
    background-color: transparent;
    font-size: 18px;
    font-weight: 600;
    color: var(--text-dark);
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    padding-bottom: 3px; /* Slight adjustment for vertical centering of icons */
}

.qty-display {
    font-size: 18px;
    font-weight: 600;
    color: var(--text-dark);
    min-width: 20px;
    text-align: center;
}

/* Adjusting the primary button to fit alongside quantity */
.add-to-cart-btn {
    flex-grow: 1; /* Takes up remaining space */
    padding: 15px; /* Slightly taller button */
    font-size: 16px;
}


/* =========================================
   Cart Page Styles
   ========================================= */

/* --- Cart Item Card --- */
.cart-item {
    display: flex;
    gap: 15px;
    padding: 15px;
    background-color: var(--card-white);
    border-radius: 16px;
    margin-bottom: 15px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.cart-item-image {
    width: 80px;
    height: 80px;
    border-radius: 12px;
    object-fit: cover;
}

.cart-item-details {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.cart-item-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: 5px;
}

.cart-item-price {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-dark);
}

/* Cart Controls Container (Qty + Notes) */
.cart-controls {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 10px;
}

/* Smaller Qty Selector for Cart */
.cart-qty-selector {
    display: flex;
    align-items: center;
    gap: 10px;
}

.qty-btn-sm {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 1.5px solid var(--text-dark);
    background-color: transparent;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-dark);
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    padding-bottom: 2px;
}

.qty-display-sm {
    font-size: 14px;
    font-weight: 600;
    min-width: 15px;
    text-align: center;
}

/* Notes Icon */
.notes-btn {
    font-size: 18px;
    cursor: pointer;
    color: var(--text-gray);
}

/* Header Cart Badge */
.cart-icon-container {
    position: relative;
    cursor: pointer;
}
.cart-badge {
    position: absolute;
    top: -5px;
    right: -8px;
    background-color: var(--primary-teal);
    color: white;
    font-size: 10px;
    font-weight: 700;
    width: 16px;
    height: 16px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    border: 1px solid white;
}

/* --- Cart Footer Section (Totals & Pay Button) --- */
.cart-footer {
    position: fixed;
    bottom: 70px; /* Just above bottom nav */
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: 414px;
    background-color: var(--card-white);
    padding: 20px;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
    box-shadow: 0 -2px 10px rgba(0,0,0,0.05);
    z-index: 9;
}

.totals-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 5px;
}

.total-label {
    font-size: 16px;
    font-weight: 600;
    color: var(--text-dark);
}

.total-amount {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-dark);
}

.tax-disclaimer {
    font-size: 10px;
    color: var(--text-gray);
    margin-bottom: 15px;
}

/* Gold Pay Button */
.btn-pay {
    width: 100%;
    padding: 15px;
    /* A gold/brown color similar to the reference image */
    background-color: #B09665; 
    color: white;
    border: none;
    border-radius: 25px;
    font-weight: 600;
    font-size: 16px;
    cursor: pointer;
}



/* =========================================
   Facilities Page Styles
   ========================================= */

   .facility-card {
    background-color: var(--card-white);
    border-radius: 16px;
    overflow: hidden;
    margin-bottom: 20px; /* Spacing between cards */
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.facility-card-content {
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.facility-card-content h3 {
    font-size: 18px;
    font-weight: 600;
    color: var(--text-dark);
}

/* Modifier for a smaller button */
.btn-small {
    width: auto; /* Override full width */
    padding: 8px 24px;
    font-size: 12px;
    border-radius: 20px;
}



/* =========================================
   Facility Detail Page & Carousel Styles
   ========================================= */

/* Removes default padding for the carousel area */
.content-area[style*="padding: 0"] {
    padding-top: 0 !important;
 }
 
 /* --- Carousel Container --- */
 .carousel-container {
     position: relative;
     width: 100%;
     height: 250px; /* Fixed height for banner */
     margin-bottom: 20px;
 }
 
 /* --- Carousel Track (The scrolling part) --- */
 .carousel-track {
     display: flex;
     overflow-x: auto;
     /* Enables snapping behavior */
     scroll-snap-type: x mandatory;
     height: 100%;
     /* Hide scrollbar */
     scrollbar-width: none; /* Firefox */
     -ms-overflow-style: none;  /* IE */
 }
 
 .carousel-track::-webkit-scrollbar {
     display: none; /* Chrome/Safari */
 }
 
 /* --- Carousel Images --- */
 .carousel-image {
     flex: 0 0 100%; /* Each image takes full width */
     width: 100%;
     height: 100%;
     object-fit: cover;
     scroll-snap-align: start; /* Snap to the start of the image */
 }
 
 /* --- Navigation Dots --- */
 .carousel-dots {
     position: absolute;
     bottom: 15px;
     left: 50%;
     transform: translateX(-50%);
     display: flex;
     gap: 8px;
     z-index: 2;
 }
 
 .dot {
     width: 10px;
     height: 10px;
     border-radius: 50%;
     background-color: rgba(255, 255, 255, 0.5); /* Semi-transparent light gray */
     cursor: pointer;
     transition: background-color 0.3s ease;
 }
 
 .dot.active {
     background-color: var(--primary-teal); /* Active color */
 }
 
 /* --- Info Section Styles --- */
 .facility-info-section {
     padding: 0 20px 30px;
 }
 
 .facility-info-section h2 {
     font-size: 22px;
     font-weight: 700;
     color: var(--text-dark);
     margin-bottom: 10px;
 }
 
 .facility-description {
     font-size: 14px;
     line-height: 1.5;
     color: var(--text-gray);
     margin-bottom: 20px;
 }
 
 .open-hours {
     font-size: 16px;
     font-weight: 600;
     color: var(--text-dark);
     margin-bottom: 25px;
 }
 
 /* Wide button style */
 .btn-wide {
     width: 100%;
     padding: 15px;
     font-size: 16px;
     border-radius: 25px;
 }



 /* =========================================
   Spa Detail Page Styles
   ========================================= */

.form-label {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-dark);
    display: block;
    margin-bottom: 10px;
}

/* --- Custom Radio Buttons --- */
.radio-group {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-top: 15px;
}

/* The container */
.radio-container {
    display: block;
    position: relative;
    padding-left: 35px;
    margin-bottom: 12px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-dark);
    user-select: none;
}

/* Hide the browser's default radio button */
.radio-container input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
}

/* Create a custom radio button */
.checkmark {
    position: absolute;
    top: 0;
    left: 0;
    height: 24px;
    width: 24px;
    background-color: transparent;
    border: 2px solid var(--primary-teal);
    border-radius: 50%;
}

/* When the radio button is checked, add a background color */
.radio-container input:checked ~ .checkmark {
    background-color: var(--primary-teal);
}

/* Create the indicator (the dot/circle - hidden when not checked) */
.checkmark:after {
    content: "";
    position: absolute;
    display: none;
}

/* Show the indicator when checked */
.radio-container input:checked ~ .checkmark:after {
    display: block;
}

/* Style the indicator */
.radio-container .checkmark:after {
    top: 4px;
    left: 4px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: white;
}

/* --- Form Inputs & Error Messages --- */
.form-input {
    width: 100%;
    padding: 12px;
    border: 1px solid #E0E0E0;
    border-radius: 8px;
    font-size: 14px;
    color: var(--text-dark);
    background-color: #F8F8F8;
    outline: none;
}

.form-input:focus {
    border-color: var(--primary-teal);
}

.error-msg {
    color: #D32F2F; /* Red color for errors */
    font-size: 12px;
    margin-top: 5px;
    display: none; /* Hidden by default */
}

/* Gold button style */
.btn-gold {
    background-color: #B09665;
}



/* =========================================
   Bookings & Orders Page Styles
   ========================================= */

   .booking-card {
    background-color: var(--card-white);
    border-radius: 16px;
    padding: 20px;
    margin-bottom: 15px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.booking-info {
    flex: 1;
}

.booking-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 8px;
}

.booking-detail {
    font-size: 14px;
    color: var(--text-dark);
    margin-bottom: 12px;
}

.booking-meta {
    font-size: 12px;
    color: var(--text-gray);
}

/* --- Status Badges --- */
.status-badge {
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    color: white;
    white-space: nowrap;
}

.status-completed {
    background-color: #4CAF50; /* Green */
}

.status-progress {
    background-color: #CDDC39; /* Lime Green/Yellow */
    color: var(--text-dark);
}

.status-canceled {
    background-color: #D32F2F; /* Red */
}



/* =========================================
   Booking Detail Page Styles
   ========================================= */

/* Makes the card behave like a block for detail view */
.booking-detail-view {
    display: block; 
}

/* --- Detail Header --- */
.booking-detail-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 25px;
}

.booking-detail-info p {
    margin: 4px 0;
}

/* --- Detail Items (Food/Spa list) --- */
.booking-detail-item {
    display: flex;
    gap: 15px;
    padding: 15px 0;
    border-bottom: 1px solid #E0E0E0;
}

.booking-item-image {
    width: 60px;
    height: 60px;
    border-radius: 10px;
    object-fit: cover;
}

.booking-item-info {
    flex: 1;
}

.booking-item-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 5px;
}

.booking-item-detail {
    font-size: 12px;
    color: var(--text-dark);
    margin-bottom: 3px;
}

.booking-item-notes {
    font-size: 12px;
    color: var(--text-gray);
    margin-top: 10px;
}

/* --- Total Section --- */
.booking-total-section {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: 25px;
    padding-top: 15px;
}

.total-label {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-dark);
}

.total-amount {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-dark);
}

.tax-disclaimer {
    font-size: 10px;
    color: var(--text-gray);
}



/* =========================================
   Amenities Page Styles
   ========================================= */

/* --- Amenity List Item --- */
.amenity-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 0;
    border-bottom: 1px solid #E0E0E0;
}

.amenity-info {
    display: flex;
    align-items: center;
    gap: 15px;
}

.amenity-image {
    width: 60px;
    height: 60px;
    border-radius: 10px;
    background-color: #D9D9D9; /* Placeholder color */
    object-fit: cover;
}

.amenity-name {
    font-size: 16px;
    font-weight: 600;
    color: var(--text-dark);
}

/* Reusing and adjusting the quantity selector */
.amenity-qty-selector {
    display: flex;
    align-items: center;
    gap: 15px;
}

/* --- Fixed Amenities Footer --- */
.amenities-footer {
    position: fixed;
    bottom: 70px; /* Just above bottom nav */
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: 414px;
    background-color: var(--card-white);
    padding: 20px;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
    box-shadow: 0 -2px 10px rgba(0,0,0,0.05);
    z-index: 9;
}

.amenities-total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.btn-request {
    width: 100%;
    padding: 15px;
    border-radius: 25px;
    font-size: 16px;
    font-weight: 600;
}

.btn-request:disabled {
    background-color: #ccc;
    cursor: not-allowed;
}

/* --- Experiences Page Specifics --- */

.experience-card {
    background-color: #E0E0E0; /* Light gray background from screenshot */
    border-radius: 12px;
    height: 180px;
    position: relative;
    overflow: hidden;
    margin-bottom: 20px;
}

.experience-card .card-image-placeholder {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 100; /* Assuming blank gray per first screenshot, or remove this to show images */
}

/* If you want the gray box look from screenshot 1: */
.experience-card {
    background-color: #d9d9d9;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.experience-card-content {
    position: absolute;
    bottom: 0;
    width: 100%;
    padding: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: transparent; /* No white background */
}

.experience-card-content h3 {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-dark);
}

.btn-dark {
    background-color: #113F38; /* Dark Green */
    color: white;
    padding: 8px 24px;
    border-radius: 20px;
    border: none;
    font-size: 12px;
    cursor: pointer;
}


/* --- Experience Detail Page --- */

.exp-price-label {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-dark);
    margin-top: 10px;
    margin-bottom: 10px;
}

/* Underline Input Style (Date/Time) */
.underline-input {
    background-color: transparent;
    border: none;
    border-bottom: 1px solid #000;
    border-radius: 0;
    padding: 10px 5px;
}

.message-box-container {
    background-color: #F5F5F5;
    border-radius: 12px;
    padding: 10px;
}
.message-box-container textarea {
    background-color: transparent;
    border: none;
    resize: none;
}

/* Price Breakdown Section */
.price-breakdown-container {
    background-color: #F8F8F8; /* Very light gray */
    padding: 20px 0;
    margin-top: 20px;
}

.breakdown-title {
    font-size: 14px;
    color: var(--text-gray);
    margin-bottom: 15px;
}

.breakdown-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    font-size: 14px;
    color: var(--text-dark);
}

.total-final {
    font-weight: 700;
    font-size: 18px;
    margin-top: 15px;
    color: var(--text-dark);
}


/*the laundry bag icon */
.bag-icon {
    font-size: 24px;
    margin-right: 5px;
}


/* =========================================
   Help Page Styles
   ========================================= */

   .help-hero-image-container {
    width: 100%;
    height: 220px;
}

.help-hero-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.help-info-section {
    padding: 20px;
}

.help-info-section h2 {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 15px;
   
}

.contact-list {
    list-style-type: none;
    padding: 0;
    margin-bottom: 60px;
}

.contact-list li {
    font-size: 14px;
    color: var(--text-dark);
    margin-bottom: 12px;
    line-height: 1.4;
}

.contact-list a {
    color: inherit;
    text-decoration: none;
}


/* =========================================
   Settings Page Styles
   ========================================= */

   .settings-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 60px; /* Spacing from header */
}

.profile-section {
    text-align: center;
    margin-bottom: 60px;
}

.profile-icon-container {
    width: 130px;
    height: 130px;
    background-color: var(--card-white);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    margin-bottom: 20px;
    margin-left: auto;
    margin-right: auto;
}

.room-number {
    font-size: 20px;
    font-weight: 700;
    color: var(--text-dark);
}

.settings-buttons {
    width: 100%;
    padding: 0 30px;
}


/* =========================================
   Login Page Styles
   ========================================= */

   .login-container {
    background-color: var(--bg-light-gray);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.login-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 40px;
    /* Remove default padding from content-area */
    padding-bottom: 0; 
    height: auto;
}

.login-logo-placeholder {
    width: 150px;
    height: 150px;
    background-color: #D9D9D9; /* Gray placeholder from image */
    border-radius: 20px;
    margin-bottom: 60px;
}

#login-form {
    width: 100%;
    display: flex;
    flex-direction: column;
}

.login-input {
    text-align: center;
    background-color: #E0E0E0; /* Lighter gray from image */
    border: none;
    padding: 15px;
    border-radius: 25px; /* Rounder corners for input */
    font-weight: 500;
}

.login-input::placeholder {
    color: #999999;
}

/* ... existing styles ... */

/* --- Cart Quantity Buttons --- */
.cart-qty-selector {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 5px;
}

.qty-btn-sm {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 1px solid var(--text-dark);
    background-color: transparent;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 14px;
    cursor: pointer;
    color: var(--text-dark);
}

.qty-display-sm {
    font-size: 14px;
    font-weight: 600;
    min-width: 20px;
    text-align: center;
}