 :root {
            --primary-color: #ffc107; --primary-dark: #e0a800; --accent-color: #4CAF50;
            --accent-dark: #45a049; --text-color-dark: #2c3e50; --text-color-medium: #555;
            --text-color-light: #7f8c8d; --background-light: #fdfdfe; --background-body: #f7f9fb;
            --border-color: #e0e6ed; --shadow-light: 0 2px 4px rgba(0, 0, 0, 0.05);
            --shadow-medium: 0 6px 12px rgba(0, 0, 0, 0.1); --shadow-deep: 0 12px 24px rgba(0, 0, 0, 0.15);
            --border-radius-sm: 8px; --border-radius-md: 12px; --border-radius-lg: 16px;
            --offer-tag-color: #e74c3c; --offer-tag-text-color: #fff;
        }
        body {
            font-family: 'Inter', sans-serif; background-color: var(--background-body); margin: 0;
            padding: 0; box-sizing: border-box; line-height: 1.6; color: var(--text-color-medium);
            -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
        }
        .site-header {
            text-align: center; padding: 20px; background-color: #fff; border-bottom: 1px solid var(--border-color);
            margin-bottom: 20px; box-shadow: var(--shadow-light);
        }
        .site-header img { max-width: 200px; height: auto; display: block; margin: 0 auto; }
        .main-container { padding: 20px; max-width: 1200px; margin: 0 auto; }
        .main-header {
            text-align: center; margin-bottom: 10px; font-size: clamp(2em, 5vw, 3em);
            color: var(--text-color-dark); font-weight: 700; letter-spacing: -0.02em;
        }
        .main-subheader {
             text-align: center; margin-bottom: 40px; font-size: clamp(1.1em, 3vw, 1.4em);
             color: var(--text-color-medium); font-weight: 400;
        }
        
        /* ADDED: Styles for Recently Viewed section */
        .recently-viewed-container {
            display: none;
            margin-bottom: 40px;
            padding: 25px;
            background-color: var(--background-light);
            border-radius: var(--border-radius-lg);
            box-shadow: var(--shadow-light);
        }

        i.fa-solid.fa-location-dot
        {
            color: red;
            font-size: 28px;
        }

        button.tab-button{width: 150px;}

        #recentlyViewedContainer
        {
            display: none!important;
        }
        .recently-viewed-header {
            text-align: center;
            font-size: 1.8em;
            color: var(--text-color-dark);
            margin-top: 0;
            margin-bottom: 25px;
        }
        .recently-viewed-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
            gap: 25px;
        }
        .recent-card-item {
            background-color: #fff;
            border-radius: var(--border-radius-md);
            box-shadow: var(--shadow-medium);
            overflow: hidden;
            text-decoration: none;
            color: var(--text-color-dark);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .recent-card-item:hover {
            transform: translateY(-8px);
            box-shadow: var(--shadow-deep);
        }
        .recent-card-item img {
            width: 100%;
            height: 120px;
            object-fit: cover;
            display: block;
        }
        .recent-card-item-content {
            padding: 15px;
            text-align: center;
        }
        .recent-card-item-content h3 {
            margin: 0 0 5px 0;
            font-size: 1.1em;
        }
        .recent-card-item-content p {
            margin: 0;
            font-size: 0.9em;
            color: var(--text-color-light);
        }

        .tabs-container {
            display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-bottom: 40px;
            background-color: var(--background-light); padding: 18px; border-radius: var(--border-radius-lg);
            box-shadow: var(--shadow-light); overflow-x: auto; -webkit-overflow-scrolling: touch;
        }
        .tab-button {
            padding: 12px 28px; border: none; background-color: #f0f2f5; color: var(--text-color-medium);
            font-size: 1.05em; font-weight: 600; border-radius: var(--border-radius-sm); cursor: pointer;
            transition: all 0.3s ease; white-space: nowrap; flex-shrink: 0;
            display: inline-flex; align-items: center; justify-content: center;
        }
        .tab-button i { margin-right: 8px; font-size: 1.1em; color: var(--text-color-medium); transition: color 0.3s ease; }
        .tab-button:hover { background-color: #e2e6eb; transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08); }
        .tab-button.active { background-color: var(--primary-color); color: var(--text-color-dark); box-shadow: var(--shadow-medium); }
        .tab-button.active:hover { background-color: var(--primary-dark); transform: translateY(-1px); }
        .tab-button.active i { color: var(--text-color-dark); }
        .cards-container { display: grid; grid-template-columns: 1fr; gap: 35px; max-width: 1200px; margin: 0 auto; padding: 0; }
        @keyframes card-enter { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }
        @keyframes card-exit { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.95); } }
        .card-item {
            background-color: var(--background-light); border-radius: var(--border-radius-lg); box-shadow: var(--shadow-medium);
            overflow: hidden; display: flex; flex-direction: column; transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
            border: 1px solid var(--border-color); position: relative;
            animation: card-enter 0.4s ease-in-out forwards;
        }
        .card-exiting { animation: card-exit 0.3s ease-in-out forwards; }
        .card-item:hover { transform: translateY(-10px); box-shadow: var(--shadow-deep); }
        .card-header { padding: 25px; border-bottom: 1px solid var(--border-color); font-size: 1.6em; font-weight: 700; color: var(--text-color-dark); text-align: center; }
        .card-content { padding: 30px; flex-grow: 1; display: flex; flex-direction: column;text-align:justify; }
        .card-content p { margin-bottom: 18px; font-size: 1em; color: var(--text-color-medium); }
        .card-content p:last-of-type { margin-bottom: 0; }
        .card-content p i { margin-right: 12px; color: #000; font-size: 1.2em; min-width: 20px; text-align: center; }
        .card-media-wrapper {
            position: relative; width: 100%; height: 330px; background-color: #f0f2f5; overflow: hidden;
            display: flex; align-items: center; justify-content: center;
        }
        .card-media-wrapper.loading::after {
            content: '\f110'; font-family: 'Font Awesome 6 Free'; font-weight: 900;
            position: absolute; font-size: 2em; color: var(--primary-color); animation: fa-spin 1.5s infinite linear;
        }
        .card-media-wrapper img { width: 100%; height: 100%; object-fit: cover; display: block; transition: opacity 0.4s ease; }
        .card-media-wrapper.loading img { opacity: 0; }
        .carousel-arrow {
            position: absolute; top: 50%; transform: translateY(-50%); background-color: rgba(0, 0, 0, 0.5);
            color: #fff; border: none; padding: 8px 12px; cursor: pointer; font-size: 1.2em; z-index: 5;
            opacity: 0; transition: opacity 0.3s ease, background-color 0.2s ease; border-radius: 50%;
        }
        .card-media-wrapper:hover .carousel-arrow { opacity: 0.8; }
        .carousel-arrow:hover { background-color: rgba(0, 0, 0, 0.7); }
        .carousel-arrow.left { left: 10px; }
        .carousel-arrow.right { right: 10px; }
        .carousel-dots { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; z-index: 5; }
        .carousel-dot { width: 10px; height: 10px; background-color: rgba(255, 255, 255, 0.6); border-radius: 50%; transition: background-color 0.3s ease; }
        .carousel-dot.active { background-color: var(--primary-color); }
        .offer-tag {
            position: absolute; top: 15px; left: 15px; background-color: var(--offer-tag-color);
            color: var(--offer-tag-text-color); padding: 6px 12px; border-radius: var(--border-radius-sm);
            font-size: 0.8em; font-weight: 700; z-index: 10; box-shadow: var(--shadow-light); text-transform: uppercase;
        }
        .card-amenities { display:none!important;margin-top: 25px; padding-top: 20px; border-top: 1px solid var(--border-color); }
        .card-amenities-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; list-style: none; padding: 0; margin: 0; }
        .card-amenities-list li { font-size: 0.95em; color: var(--text-color-medium); display: flex; align-items: center; gap: 8px; }
        .card-amenities-list li i { color: var(--primary-color); font-size: 1em; min-width: 18px; text-align: center; flex-shrink: 0; }
        .card-cta-group {
            padding: 20px 25px 25px; border-top: 1px solid var(--border-color); display: flex;
            flex-wrap: wrap; gap: 10px; justify-content: center; align-items: center; margin-top: auto;
        }
        .cta-button {
            display: inline-flex; align-items: center; justify-content: center; background-color: var(--primary-color);
            color: var(--text-color-dark); padding: 12px 20px; text-decoration: none; border-radius: var(--border-radius-sm);
            font-weight: 600; font-size: 1em; transition: all 0.3s ease; box-shadow: var(--shadow-light);
            border: 1px solid transparent; flex-grow: 1; flex-basis: calc(50% - 15px); max-width: 175px;
        }
        .cta-button i { margin-right: 8px; font-size: 1.1em; }
        .cta-button:hover { background-color: var(--primary-dark); transform: translateY(-2px); box-shadow: var(--shadow-medium); }
        .cta-button.directions { flex-grow: 0; flex-basis: 50px; background-color: #edebeb; color: #fff; min-width: 50px; height: 50px; padding: 0; }
        .cta-button.directions i { margin-right: 0; }
        .cta-button.directions:hover { background-color: #edebeb; }
        
        .cta-button.directions { position: relative; }
        .cta-button.directions::before,
        .cta-button.directions::after {
            position: absolute; left: 50%; transform: translateX(-50%);
            opacity: 0; visibility: hidden; transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out;
            z-index: 10;
        }
        .cta-button.directions::before {
            content: attr(data-tooltip); bottom: 115%; background-color: var(--text-color-dark);
            color: #fff; padding: 6px 12px; border-radius: var(--border-radius-sm);
            font-size: 0.9em; font-weight: 500; white-space: nowrap;
        }
        .cta-button.directions::after {
            content: ''; bottom: 115%; transform: translateX(-50%) translateY(23px);
            border: 6px solid transparent; border-top-color: var(--text-color-dark);
        }
        .cta-button.directions:hover::before,
        .cta-button.directions:hover::after {
            opacity: 1; visibility: visible; transform: translateX(-50%) translateY(-5px);
        }
        
        .modal-overlay {
            position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.7);
            display: flex; justify-content: center; align-items: center; z-index: 1000;
            opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease;
        }
        .modal-overlay.active { opacity: 1; visibility: visible; }
        .modal-content {
            background-color: var(--background-light); padding: 30px; border-radius: var(--border-radius-lg);
            box-shadow: var(--shadow-deep); width: 90%; max-width: 700px; max-height: 90vh;
            overflow-y: auto; position: relative; transform: scale(0.95); opacity: 0;
            transition: transform 0.3s ease, opacity 0.3s ease;
        }
        .modal-overlay.active .modal-content { transform: scale(1); opacity: 1; }
        .modal-close {
            position: absolute; top: 15px; right: 15px; background: none; border: none; font-size: 1.8em;
            color: var(--text-color-light); cursor: pointer; padding: 5px; transition: color 0.3s ease;
        }
        .modal-close:hover { color: var(--text-color-dark); }
        .modal-header { font-size: 1.8em; color: var(--text-color-dark); margin-bottom: 20px; text-align: center; }
        .modal-body { padding: 10px 0; }
        .full-description-modal-content h3 { font-size: 1.4em; color: var(--text-color-dark); margin-top: 25px; margin-bottom: 15px; border-bottom: 1px solid var(--border-color); padding-bottom: 10px; }
        .full-description-modal-content p { margin-bottom: 15px; line-height: 1.7; }
        .full-description-modal-content p i { color: var(--primary-color); margin-right: 10px; font-size: 1.1em; }
        .modal-amenities-list { display: grid; list-style: none; padding: 0; margin: 0; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
        .modal-amenities-list li { font-size: 1em; color: var(--text-color-medium); display: flex; align-items: center; gap: 10px; }
        .modal-amenities-list li i { color: var(--primary-color); font-size: 1.1em; min-width: 20px; text-align: center; }
        .booking-form label { display: block; margin-bottom: 8px; font-weight: 500; color: var(--text-color-dark); }
        .booking-form input, .booking-form select {
            width: 100%; box-sizing: border-box; padding: 12px; margin-bottom: 20px; border: 1px solid var(--border-color);
            border-radius: var(--border-radius-sm); font-size: 1em; color: var(--text-color-dark);
            background-color: #f8fafd; transition: border-color 0.3s ease, box-shadow 0.3s ease;
        }
        .booking-form input:focus, .booking-form select:focus {
            border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(255, 193, 7, 0.2); outline: none;
        }
        .presets-container { display: flex; gap: 8px; margin-bottom: 20px; flex-wrap: wrap; }
        .preset-btn {
            padding: 8px 16px; border: 1px solid var(--border-color); background-color: #fff;
            border-radius: var(--border-radius-sm); cursor: pointer; font-weight: 500;
            color: var(--text-color-medium); transition: all 0.2s ease-in-out;
        }
        .preset-btn:hover { border-color: var(--primary-dark); background-color: #fffaf0; color: var(--text-color-dark); }
        .preset-btn.active { border-color: var(--primary-color); background-color: var(--primary-color); color: var(--text-color-dark); font-weight: 600; }
        .booking-form button.submit-button {
            width: 100%; padding: 15px; background-color: var(--accent-color); color: #fff; border: none;
            border-radius: var(--border-radius-sm); font-size: 1.1em; font-weight: 600; cursor: pointer;
            transition: background-color 0.3s ease, transform 0.2s ease; box-shadow: var(--shadow-medium);
        }
        .booking-form button.submit-button:hover { background-color: var(--accent-dark); transform: translateY(-2px); }
        .success-message { text-align: center; padding: 40px 20px; }
        .success-message .icon { font-size: 3em; color: var(--accent-color); margin-bottom: 20px; }
        .success-message h3 { font-size: 1.5em; color: var(--text-color-dark); margin-bottom: 10px; }
        .success-message p { color: var(--text-color-medium); margin-bottom: 30px; }
        .success-message .close-btn { background-color: var(--primary-color); color: var(--text-color-dark); padding: 12px 30px; border: none; border-radius: var(--border-radius-sm); font-weight: 600; cursor: pointer; transition: background-color 0.3s ease; }
        .success-message .close-btn:hover { background-color: var(--primary-dark); }
        @media (min-width: 768px) { .cards-container { grid-template-columns: repeat(2, 1fr); } }
        @media (max-width: 599px) {
            .card-cta-group { flex-direction: column; gap: 12px; }
            .cta-button, .cta-button.directions { max-width: 280px; width: 100%; flex-basis: auto; }
        }
        @media (max-width: 500px) {
            .modal-content { padding: 20px; }
            .modal-close { top: 10px; right: 10px; }
            .modal-header { font-size: 1.5em; }
            .modal-amenities-list { grid-template-columns: 1fr; }
        }