/*!
 * ============================================================================
 * Taste Caloundra - StayCaloundra.com.au
 * ----------------------------------------------------------------------------
 * Built by Gravity Projex — https://gravityprojex.com.au
 * Theme Name: Taste Caloundra (c) 2026 
 * Theme URI: https://tastecaloundra.com.au
 * License: PROPRIETARY SOFTWARE LICENSE- GRAVITY PROJEX (c) 2026
 * Author: Gravity Projex
 * Author URI: https://gravityprojex.com.au
 * Description: Custom theme for Taste Caloundra for Caloundra Chamber of Commerce 
 * Version: 4.6.3
 * Requires PHP: 8+
 * Text Domain: taste-caloundra
 * License: PROPRIETARY SOFTWARE LICENSE- GRAVITY PROJEX
 * Gravity Projex - Intellectual Property (Framework,software,scripts,codes,and all other material) 
 * Copyright (c) 2026 Gravity Projex. All Rights Reserved. 
 * Business located in Australia.
 * This software and associated documentation files (the "Software") are proprietary and confidential to Gravity Projex.The source code contained or described herein and all documents related to the source code ("Material") and website framework are owned by Gravity Projex or its licensors and authorised representatives. Title to the Material remains with Gravity Projex or its licensors and authorised representatives. The Material contains trade secrets and proprietary and confidential information of Gravity Projex or its licensors and authorised representatives. 
 * RESTRICTIONS:
 * 1. You may NOT copy, modify, distribute, or sell copies of the Software or coding, scripts or framework
 * 2. You may NOT reverse engineer, decompile, or disassemble the Software or coding, scripts or framework
 * 3. You may NOT remove any proprietary notices or labels on the Software or coding, scripts or framework
 * 4. Unauthorized use may result in legal action and monetary damages
 * The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without Gravity Projex prior express written permission.
 * No license under any patent, copyright, trade secret or other intellectual property right is granted to or conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement, estoppel or otherwise. Any license under such intellectual property rights must be expressed and approved by Gravity Projex in writing.
 * OWNERSHIP: The Software is owned by Gravity Projex and is protected by Australian copyright laws and international treaty provisions.
 * CONTACT:
 * For licensing enquiries: admin@gravityprojex.com or website: https://gravityprojex.com
 * VIOLATIONS: Unauthorized copying or use of this Software will result in:
 * - Immediate cease and desist notice
 * - Legal action under Australian Copyright Act 1968
 * - Monetary damages and legal fees
 */

/* ── Page Header ─────────────────────────────────────────────────────────── */

.tc-page-header--stay {
    background: var(--tc-brand-charcoal);
    padding-block: clamp(3.5rem, 7vw, 6rem) clamp(2.5rem, 5vw, 4.5rem);
    position: relative;
    overflow: hidden;
}

.tc-page-header--stay::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg,
        rgba(212, 160, 23, 0.12) 0%,
        rgba(45, 45, 45, 0.0) 60%,
        rgba(58, 143, 159, 0.08) 100%);
    pointer-events: none;
}

.tc-page-header--stay .tc-section-eyebrow { color: var(--tc-brand-primary); }

.tc-page-header--stay .tc-page-header__title {
    color: #fff;
}

.tc-page-header--stay .tc-page-header__desc {
    color: rgba(255, 255, 255, 0.7);
    max-width: 52ch;
}

/* has-image variant (inherits from global --has-image rules in style.css) */
.tc-page-header--stay.tc-page-header--has-image {
    background-image: var(--hero-bg-img);
    background-size: cover;
    background-position: center;
}

.tc-page-header--stay.tc-page-header--has-image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom,
        rgba(30, 28, 26, 0.65) 0%,
        rgba(30, 28, 26, 0.5) 100%);
}

.tc-page-header--stay.tc-page-header--has-image .tc-container {
    position: relative;
    z-index: 2;
}

/* ── Hero Listing ─────────────────────────────────────────────────────────── */

.tc-stay-hero {
    padding-block: clamp(3rem, 6vw, 5rem);
    background: var(--tc-bg-primary);
}

.tc-stay-hero__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 4vw, 4rem);
    align-items: center;
    background: var(--tc-bg-secondary);
    border-radius: var(--tc-radius-xl);
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}

.tc-stay-hero__image-wrap {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.tc-stay-hero__img,
.tc-stay-hero__img-placeholder {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.tc-stay-hero__img-placeholder {
    background: linear-gradient(135deg, var(--tc-brand-sand) 0%, var(--tc-neutral-200) 100%);
}

.tc-stay-hero__image-badges {
    position: absolute;
    top: 14px;
    left: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.tc-stay-hero__content {
    padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 3vw, 2.5rem) 0;
}

.tc-stay-hero__agency {
    font-size: var(--tc-text-sm);
    font-weight: 600;
    color: var(--tc-brand-primary);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--tc-space-2);
}

.tc-stay-hero__title {
    font-family: var(--tc-font-heading);
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 700;
    line-height: 1.15;
    color: var(--tc-text-primary);
    margin-bottom: var(--tc-space-3);
}

.tc-stay-hero__location {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: var(--tc-text-sm);
    color: var(--tc-text-secondary);
    margin-bottom: var(--tc-space-3);
}

.tc-stay-hero__location svg { flex-shrink: 0; color: var(--tc-brand-ocean); }

.tc-stay-hero__desc {
    font-size: var(--tc-text-base);
    color: var(--tc-text-secondary);
    line-height: 1.65;
    margin-bottom: var(--tc-space-5);
}

.tc-stay-hero__specs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--tc-space-3);
    margin-bottom: var(--tc-space-4);
    padding: var(--tc-space-4);
    background: var(--tc-bg-primary);
    border-radius: var(--tc-radius-md);
    border: 1px solid var(--tc-neutral-200);
}

.tc-stay-spec {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--tc-text-sm);
    font-weight: 600;
    color: var(--tc-text-primary);
}

.tc-stay-spec svg { color: var(--tc-brand-ocean); flex-shrink: 0; }

.tc-stay-spec--sm {
    font-size: var(--tc-text-xs);
    color: var(--tc-text-secondary);
}

.tc-stay-hero__price {
    font-family: var(--tc-font-heading);
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--tc-brand-charcoal);
    margin-bottom: var(--tc-space-5);
}

[data-theme="dark"] .tc-stay-hero__price { color: var(--tc-brand-primary-light); }

.tc-stay-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--tc-space-3);
    align-items: center;
}

/* ── Badges ──────────────────────────────────────────────────────────────── */

.tc-stay-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    line-height: 1.3;
}

.tc-stay-badge--hero {
    background: var(--tc-brand-primary);
    color: var(--tc-brand-charcoal);
}

.tc-stay-badge--featured {
    background: var(--tc-brand-ocean);
    color: #fff;
}

.tc-stay-badge--type {
    background: rgba(45, 45, 45, 0.75);
    color: #fff;
    backdrop-filter: blur(4px);
}

.tc-stay-badge--custom {
    background: rgba(212, 96, 58, 0.9);
    color: #fff;
}

/* ── Filter Bar ─────────────────────────────────────────────────────────── */

.tc-stay-filters {
    background: var(--tc-bg-secondary);
    border-bottom: 1px solid var(--tc-neutral-200);
    position: sticky;
    top: 0;
    z-index: 40;
}

.tc-stay-filters__inner {
    display: flex;
    gap: var(--tc-space-2);
    padding-block: var(--tc-space-3);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.tc-stay-filters__inner::-webkit-scrollbar { display: none; }

.tc-stay-filter-btn {
    flex-shrink: 0;
    padding: 8px 18px;
    border-radius: 999px;
    border: 1.5px solid var(--tc-neutral-300);
    background: transparent;
    color: var(--tc-text-secondary);
    font-size: var(--tc-text-sm);
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
    white-space: nowrap;
}

.tc-stay-filter-btn:hover {
    border-color: var(--tc-brand-primary);
    color: var(--tc-brand-primary-dark);
    background: rgba(212, 160, 23, 0.05);
}

.tc-stay-filter-btn.is-active {
    background: var(--tc-brand-charcoal);
    border-color: var(--tc-brand-charcoal);
    color: var(--tc-brand-accent);
}

[data-theme="dark"] .tc-stay-filter-btn.is-active {
    background: var(--tc-brand-primary);
    border-color: var(--tc-brand-primary);
    color: var(--tc-brand-charcoal);
}

/* ── Listings Grid ───────────────────────────────────────────────────────── */

.tc-stay-grid-section { background: var(--tc-bg-primary); }

.tc-stay-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: clamp(1.25rem, 2.5vw, 2rem);
}

/* ── Listing Card ────────────────────────────────────────────────────────── */

.tc-stay-card {
    background: var(--tc-bg-secondary);
    border-radius: var(--tc-radius-lg);
    overflow: hidden;
    border: 1px solid var(--tc-neutral-200);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    display: flex;
    flex-direction: column;
}

.tc-stay-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.1);
}

.tc-stay-card--featured {
    border-color: var(--tc-brand-ocean);
    border-width: 2px;
}

.tc-stay-card[hidden] { display: none; }

.tc-stay-card__image {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.tc-stay-card__image img,
.tc-stay-card__img-placeholder {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.tc-stay-card:hover .tc-stay-card__image img { transform: scale(1.04); }

.tc-stay-card__img-placeholder {
    background: linear-gradient(135deg, var(--tc-brand-sand) 0%, var(--tc-neutral-200) 100%);
}

.tc-stay-card__image-badges {
    position: absolute;
    top: 10px;
    left: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.tc-stay-card__body {
    padding: var(--tc-space-4) var(--tc-space-4) var(--tc-space-5);
    display: flex;
    flex-direction: column;
    flex: 1;
}

.tc-stay-card__agency {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--tc-brand-primary-dark);
    margin-bottom: var(--tc-space-2);
}

.tc-stay-card__title {
    font-family: var(--tc-font-heading);
    font-size: clamp(1rem, 1.5vw, 1.2rem);
    font-weight: 700;
    line-height: 1.25;
    color: var(--tc-text-primary);
    margin-bottom: var(--tc-space-2);
}

.tc-stay-card__location {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: var(--tc-text-xs);
    color: var(--tc-text-secondary);
    margin-bottom: var(--tc-space-2);
}

.tc-stay-card__location svg { color: var(--tc-brand-ocean); flex-shrink: 0; }

.tc-stay-card__excerpt {
    font-size: var(--tc-text-sm);
    color: var(--tc-text-secondary);
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: var(--tc-space-3);
}

.tc-stay-card__specs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--tc-space-3);
    margin-bottom: var(--tc-space-3);
    padding: var(--tc-space-3);
    background: var(--tc-bg-tertiary, var(--tc-neutral-100));
    border-radius: var(--tc-radius-sm);
}

.tc-stay-card__price {
    font-family: var(--tc-font-heading);
    font-size: 1rem;
    font-weight: 700;
    color: var(--tc-brand-charcoal);
    margin-bottom: var(--tc-space-4);
    margin-top: auto;
    padding-top: var(--tc-space-3);
}

[data-theme="dark"] .tc-stay-card__price { color: var(--tc-brand-primary-light); }

.tc-stay-card__actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: auto;
    padding-top: 0;
}

.tc-stay-card__actions-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.tc-stay-card__actions-social {
    display: flex;
    flex-direction: row;
    gap: 8px;
    align-items: center;
    padding-top: 10px;
    border-top: 1px solid #e5e5e5;
}

/* ── No Results ─────────────────────────────────────────────────────────── */

.tc-stay-no-results {
    text-align: center;
    padding: var(--tc-space-8) 0;
    color: var(--tc-text-secondary);
}

/* ── Empty State ─────────────────────────────────────────────────────────── */

.tc-stay-empty {
    text-align: center;
    padding: var(--tc-space-8) 0;
    color: var(--tc-text-secondary);
}

.tc-stay-empty svg {
    display: block;
    margin: 0 auto var(--tc-space-4);
    color: var(--tc-neutral-400);
}

.tc-stay-empty h2 {
    font-family: var(--tc-font-heading);
    font-size: 1.5rem;
    margin-bottom: var(--tc-space-3);
    color: var(--tc-text-primary);
}

/* ── Partner CTA ─────────────────────────────────────────────────────────── */

.tc-stay-partner-cta {
    background: linear-gradient(135deg, var(--tc-brand-charcoal) 0%, var(--tc-brand-charcoal-light) 100%);
    color: #fff;
}

.tc-stay-partner-cta__inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: clamp(2rem, 4vw, 4rem);
    align-items: center;
}

.tc-stay-partner-cta__heading {
    font-family: var(--tc-font-heading);
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    font-weight: 700;
    color: #fff;
    margin-bottom: var(--tc-space-3);
}

.tc-stay-partner-cta .tc-section-eyebrow { color: var(--tc-brand-primary); }

.tc-stay-partner-cta p {
    color: rgba(255, 255, 255, 0.72);
    font-size: var(--tc-text-base);
    line-height: 1.65;
    max-width: 56ch;
    margin-bottom: 0;
}

/* ── Responsive ──────────────────────────────────────────────────────────── */

@media (max-width: 900px) {
    .tc-stay-hero__inner {
        grid-template-columns: 1fr;
    }

    .tc-stay-hero__image-wrap {
        aspect-ratio: 16 / 9;
    }

    .tc-stay-hero__content {
        padding: var(--tc-space-5);
    }

    .tc-stay-partner-cta__inner {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .tc-stay-grid {
        grid-template-columns: 1fr;
    }

    .tc-stay-hero__actions { flex-direction: column; }
    .tc-stay-hero__actions .tc-btn { width: 100%; justify-content: center; }

    .tc-stay-filter-btn { padding: 7px 14px; font-size: 12px; }
}

/* ── Social Icon Buttons ─────────────────────────────────────────────────── */

.tc-stay-social-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    box-sizing: border-box;
    border-radius: 50%;
    border: 1.5px solid #c8c8c8;
    color: #666;
    background: transparent;
    text-decoration: none;
    transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
    flex-shrink: 0;
    padding: 0;
}

.tc-stay-social-icon svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    display: block;
}

.tc-stay-social-icon:hover {
    border-color: var(--tc-brand-primary, #D4A017);
    color: var(--tc-brand-primary-dark, #b8880f);
    background: rgba(212, 160, 23, 0.08);
}

.tc-stay-social-icon--sm {
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
}

[data-theme="dark"] .tc-stay-social-icon {
    border-color: #555;
    color: #aaa;
}

[data-theme="dark"] .tc-stay-social-icon:hover {
    border-color: var(--tc-brand-primary, #D4A017);
    color: var(--tc-brand-primary-light, #e8bc3a);
}

/* ── Local Offers / Packages Section ─────────────────────────────────────── */

.tc-stay-offers {
    background: var(--tc-brand-sand, #F5F0E8);
    padding-block: clamp(3rem, 5vw, 4.5rem);
}

[data-theme="dark"] .tc-stay-offers {
    background: var(--tc-bg-secondary);
}

.tc-stay-offers__header {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem clamp(2rem, 4vw, 4rem);
    align-items: end;
    margin-bottom: clamp(2rem, 3vw, 2.5rem);
}

.tc-stay-offers__heading {
    font-family: var(--tc-font-heading);
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    font-weight: 700;
    color: var(--tc-text-primary);
    margin-bottom: 0;
    line-height: 1.2;
}

.tc-stay-offers__sub {
    font-size: var(--tc-text-sm);
    color: var(--tc-text-secondary);
    line-height: 1.6;
    max-width: 40ch;
    margin-bottom: 0;
    padding-bottom: 4px;
}

.tc-stay-offers__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(1.25rem, 2.5vw, 1.75rem);
}

/* ── Offer Card ──────────────────────────────────────────────────────────── */

.tc-stay-offer-card {
    background: var(--tc-bg-primary);
    border-radius: var(--tc-radius-lg);
    overflow: hidden;
    border: 1px solid var(--tc-neutral-200);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.tc-stay-offer-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.09);
}

.tc-stay-offer-card__image {
    position: relative;
    aspect-ratio: 3 / 2;
    overflow: hidden;
}

.tc-stay-offer-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.tc-stay-offer-card:hover .tc-stay-offer-card__image img {
    transform: scale(1.04);
}

.tc-stay-offer-card__urgency {
    position: absolute;
    top: 12px;
    right: 12px;
    background: var(--tc-brand-coral, #D4603A);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 999px;
}

.tc-stay-offer-card__body {
    padding: var(--tc-space-4) var(--tc-space-4) var(--tc-space-5);
    display: flex;
    flex-direction: column;
    flex: 1;
}

.tc-stay-offer-card__host {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--tc-brand-primary-dark);
    margin-bottom: var(--tc-space-2);
}

.tc-stay-offer-card__title {
    font-family: var(--tc-font-heading);
    font-size: clamp(1rem, 1.4vw, 1.15rem);
    font-weight: 700;
    line-height: 1.25;
    color: var(--tc-text-primary);
    margin-bottom: var(--tc-space-3);
}

.tc-stay-offer-card__desc {
    font-size: var(--tc-text-sm);
    color: var(--tc-text-secondary);
    line-height: 1.65;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: var(--tc-space-3);
}

.tc-stay-offer-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--tc-space-3);
    margin-bottom: var(--tc-space-4);
    margin-top: auto;
    padding-top: var(--tc-space-3);
}

.tc-stay-offer-card__expiry,
.tc-stay-offer-card__venue {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: var(--tc-text-xs);
    color: var(--tc-text-secondary);
}

.tc-stay-offer-card__expiry svg,
.tc-stay-offer-card__venue svg {
    color: var(--tc-brand-ocean);
    flex-shrink: 0;
}

/* ── Responsive ──────────────────────────────────────────────────────────── */

@media (max-width: 900px) {
    .tc-stay-offers__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 720px) {
    .tc-stay-offers__header {
        grid-template-columns: 1fr;
    }

    .tc-stay-offers__sub {
        max-width: none;
    }

    .tc-stay-offers__grid {
        grid-template-columns: 1fr;
    }
}