/**
Theme Name: astra-child-hhy
Author: @THS
Author URI: http://wpastra.com/about/
Description: A child theme for safe, update friendly astra-customisation. Make sure I have been enabled.

Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child-hhy
Template: astra
*/

h1 {
    color: white;
}

/* UPDATE THE BRANDING SOMETIME SOON */
.ast-footer-copyright {
    display: none;
}

/* Core Flexbox layout for your hardcoded directory structural columns */
.directory-container {
    display: flex;
    gap: 30px;
    padding: 20px;
}
.directory-sidebar { flex: 1; }
.directory-results { flex: 3; }

/* Ensure the JS sorting engine runs correctly */
.facetwp-template {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 20px;
}



/* OPTIONAL: Basic layout structural columns for side-by-side view */
.directory-container {
    display: flex;
    gap: 30px;
    padding: 20px;
}
.directory-sidebar { flex: 1; }
.directory-results { flex: 3; }


.service-card-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
    gap:18px;
    margin:30px 20px;
}


.service-icon{

    font-size:52px;

    margin-bottom:12px;

}

.service-label{

    font-size:1rem;

    font-weight:600;

}

.service-card {

    background:#2f6f8f;
    border:2px solid #2f6f8f;
    border-radius:18px;

    padding:20px 10px;

    cursor:pointer;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    min-height:150px;

    color:white;

    transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}


.service-card:hover {

    transform:translateY(-4px);

    background:#2ec156;
    border-color:#2ec156;

    box-shadow:0 8px 18px rgba(0,0,0,.08);

}

.directory-hero {
    padding:30px 20px;
    text-align:center;
    background:#2f6f8f;
    color:white;
    border-radius:18px;
    margin-bottom:25px;
}

.directory-hero h1 {
    margin-bottom:10px;
    font-size:2rem;
}

.directory-hero p {
    margin:0;
    font-size:1rem;
}

/* Listing results grid */

.listing-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 20px;
    width: 100%;
}


.listing-card {
    width: 100%;
    min-width: 0;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.listing-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.listing-card.hhy-map-selected {
    outline: 3px solid #0073aa;
    outline-offset: 3px;
    position: relative;
    z-index: 20;
    transform: translateY(-4px) scale(1.02);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18) !important;
}

/* Expanded description when a listing is selected */

.listing-description {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

.listing-card.hhy-map-selected .listing-description {
    display: block;
    -webkit-line-clamp: unset;
    overflow: visible;
}


@media (max-width: 767px) {

    .listing-grid {
        grid-template-columns: 1fr !important;
    }

}


@media (min-width: 768px) and (max-width: 1024px) {

    .listing-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

}


.service-buttons {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin: 30px 20px;
}

.service-buttons .service-card {
    width: 100%;
}

@media (max-width: 767px) {
    .hhy-map-qr {
        display: none !important;
    }
}

.listing-card.hhy-map-selected {
    border: 3px solid #2F6F6D !important;
    box-shadow: 0 0 0 4px rgba(47, 111, 109, 0.15) !important;
}

/* =========================================
   HHY — Clickable Listing Tile Cue
   ========================================= */

/* Make listing tiles feel interactive */
.listing-card {
    cursor: pointer;
    transition:
        transform 0.15s ease,
        box-shadow 0.15s ease;
}

/* Desktop / mouse users */
.listing-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

/* Touch / kiosk feedback */
.listing-card:active {
    transform: scale(0.98);
}

/* Selected tile */
.listing-card.hhy-map-selected {
    transform: translateY(-2px);
}

/* Emergency service card */

.emergency-card {
    grid-column: 1 / -1;
    width: 100%;
    border: 3px solid #d00000 !important;
    box-sizing: border-box;
}

.activities-card {

    grid-column: 1 / -1;

    width: 100%;

    box-sizing: border-box;

}

/* HHY CALL NOW BUTTON */

body.hhy-kiosk .hhy-call-now,
body.hhy-kiosk .hhy-health-call-button {
    display: none !important;
}

@media (max-width: 767px) {

    .hhy-call-now-button {
        display: block;
        width: 100%;
        box-sizing: border-box;
        text-align: center;
        background: #2F6F6D;
        color: #fff;
        padding: 10px;
        border-radius: 8px;
        text-decoration: none;
        font-weight: bold;
        font-size: 1rem;
        margin-bottom: 12px;
    }

    .hhy-call-now-button:hover,
    .hhy-call-now-button:focus {
        color: #fff;
        text-decoration: none;
    }

}

/* HHY PHONE NUMBER */

@media (max-width: 767px) {
    .hhy-phone-number {
        display: none;
    }
}

.hhy-health-source {

    margin: 8px 0 0;

    text-align: center;

    font-size: 0.75rem;

    color: #666;

}

/* ============================================================
 * HHY HEALTH EMERGENCY POP-UP
 * ============================================================ */

.hhy-health-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 999999;
    background: rgba(0, 0, 0, 0.75);
    padding: 20px;
    box-sizing: border-box;
    overflow-y: auto;
}

.hhy-health-modal.hhy-health-modal-open {
    display: flex;
    align-items: center;
    justify-content: center;
}

.hhy-health-modal-content {
    position: relative;
    width: 100%;
    max-width: 700px;
    max-height: 90vh;
    overflow-y: auto;
    background: #ffffff;
    border-radius: 12px;
    padding: 28px;
    box-sizing: border-box;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
}

.hhy-health-modal-content h2 {
    margin: 0 40px 12px 0;
    color: #c62828;
    font-size: 2rem;
    line-height: 1.1;
}

.hhy-health-intro {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 20px;
}

.hhy-health-modal-close {
    position: absolute;
    top: 12px;
    right: 15px;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: #eeeeee;
    color: #222222;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}

.hhy-health-emergency-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.hhy-health-emergency-list > div {
    padding: 12px 14px;
    border-left: 5px solid #d93838;
    background: #f7f7f7;
    border-radius: 4px;
}

.hhy-health-emergency-list strong {
    display: block;
    font-size: 1rem;
    margin-bottom: 3px;
}

.hhy-health-emergency-list span {
    display: block;
    font-size: 0.95rem;
    line-height: 1.35;
}

.hhy-health-modal-actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 24px;
}

.hhy-health-call-button {
    display: block;
    text-align: center;
    padding: 15px 20px;
    background: #c62828;
    color: #ffffff !important;
    border-radius: 8px;
    font-size: 1.2rem;
    font-weight: bold;
    text-decoration: none !important;
}

.hhy-health-continue-button {
    padding: 15px 20px;
    background: #eeeeee;
    color: #222222;
    border: 2px solid #cccccc;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: bold;
    cursor: pointer;
}

.hhy-health-111 {
    margin: 18px 0 0;
    text-align: center;
    font-size: 0.9rem;
}

.hhy-health-source {
    margin: 8px 0 0;
    text-align: center;
    font-size: 0.75rem;
    color: #666;
}

@media (max-width: 600px) {

    .hhy-health-modal {
        padding: 10px;
        align-items: flex-start;
    }

    .hhy-health-modal-content {
        margin-top: 10px;
        max-height: 95vh;
        padding: 20px 16px;
    }

    .hhy-health-modal-content h2 {
        font-size: 1.65rem;
    }

    .hhy-health-emergency-list > div {
        padding: 10px 11px;
    }

    .hhy-health-emergency-list span {
        font-size: 0.9rem;
    }

}

/* Hide FacetWP "Enable Map Filtering" control */
.facetwp-map-filtering {
    display: none !important;
}

/* ============================================================
 * HIDE SITE HEADER IN KIOSK MODE
 * ============================================================ */

.hhy-kiosk-mode .site-header {
    display: none !important;
}

.hhy-verified {
    margin-top: 12px;
    padding-top: 8px;
    font-size: 0.75rem;
    color: #666;
}

body.hhy-kiosk-mode .hhy-map-directions-link {
    display: none !important;
}

/* ============================================================
 * HHY — Selected Listing Card
 * ============================================================ */

.listing-card {
    position: relative;
    transition:
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.listing-card.hhy-map-selected {
    z-index: 20;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18) !important;
    transform: translateY(-4px);
}


/* ============================================================
 * HHY SERVICE CATEGORY COLOURS
 * ============================================================ */

:root {
    --hhy-shelter: #5B7FA3;
    --hhy-food: #C58A3A;
    --hhy-washing: #4F9A9A;
    --hhy-health: #C96B6B;
    --hhy-support: #8067A8;
    --hhy-recovery: #5F9568;
    --hhy-emergency: #B94A48;
}

/* ============================================================
 * SERVICE CATEGORY COLOUR ASSIGNMENTS
 * ============================================================ */

.service-shelter {
    --service-colour: var(--hhy-shelter);
}

.service-food {
    --service-colour: var(--hhy-food);
}

.service-washing {
    --service-colour: var(--hhy-washing);
}

.service-health {
    --service-colour: var(--hhy-health);
}

.service-support {
    --service-colour: var(--hhy-support);
}

.service-recovery {
    --service-colour: var(--hhy-recovery);
}

.service-emergency {
    --service-colour: var(--hhy-emergency);
}

/* ============================================================
 * SUBTLE SERVICE CATEGORY CUE
 * ============================================================ */

.service-buttons .service-card {
    border-bottom: 0 !important;
    box-shadow: 0 4px 0 var(--service-colour);
    transition:
        transform .2s ease,
        background .2s ease,
        box-shadow .2s ease;
}

/* Slightly stronger category cue on hover */

.service-buttons .service-card:hover,
.service-buttons .service-card:focus-visible {
    box-shadow:
        0 5px 12px rgba(0,0,0,.08),
        0 4px 0 var(--service-colour);
}

/* ============================================================
 * DIRECTORY LISTINGS SERVICE COLOUR
 * ============================================================ */

#hhy-directory-listings {
    --directory-service-tint: rgba(91, 127, 163, 0.055);

    background: var(--directory-service-tint);
    border-radius: 18px;
    padding: 12px;
    transition: background-color .25s ease;
}

/* Shelter */
#hhy-directory-listings.directory-service-shelter {
    --directory-service-tint: rgba(91, 127, 163, 0.14);
}

/* Food & Drink */
#hhy-directory-listings.directory-service-food {
    --directory-service-tint: rgba(197, 138, 58, 0.14);
}

/* Toilets & Washing */
#hhy-directory-listings.directory-service-washing {
    --directory-service-tint: rgba(79, 154, 154, 0.14);
}

/* Health */
#hhy-directory-listings.directory-service-health {
    --directory-service-tint: rgba(201, 107, 107, 0.14);
}

/* Support & Advice */
#hhy-directory-listings.directory-service-support {
    --directory-service-tint: rgba(128, 103, 168, 0.14);
}

/* Recovery */
#hhy-directory-listings.directory-service-recovery {
    --directory-service-tint: rgba(95, 149, 104, 0.14);
}

/* Emergency */
#hhy-directory-listings.directory-service-emergency {
    --directory-service-tint: rgba(185, 74, 72, 0.14);
}

/* Activities */
#hhy-directory-listings.directory-service-activities {
    --directory-service-tint: rgba(190, 160, 70, 0.14);
}