/* Public journey refinements: centralised so shared screens cannot drift. */


/* contact.php */

.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}


/* camping-booking.php */

/* (intentionally left empty; styles live in your CSS files) */


/* hosted-classes.php */

.workshops-list-section { margin-top: clamp(16px, 3vw, 28px); }
.stalls-list-section { margin-top: clamp(16px, 3vw, 28px); }
.workshops-page .guideline-header.workshop-level-beginner { background-color: var(--teal); color: #fff; }
.workshops-page .guideline-header.workshop-level-intermediate { background-color: var(--orange); color: #fff; }
.workshops-page .guideline-header.workshop-level-advanced { background-color: var(--pink); color: #fff; }
.stallholders-page .guideline-header.stall-card-header { background-color: var(--teal); color: #fff; }
.host-access-prompt, .host-help-prompt { max-width: 680px; margin: clamp(28px, 5vw, 44px) auto 0; padding-inline: var(--ys-gutter); text-align: center; }
.host-access-prompt h3 { margin-top: 0; }
.host-access-prompt .account-btn { margin-top: 16px; }
.stall-access-prompt, .stall-help-prompt { max-width: 680px; margin: clamp(28px, 5vw, 44px) auto 0; padding-inline: var(--ys-gutter); text-align: center; }
.stall-access-prompt h3 { margin-top: 0; }
.stall-access-prompt .account-btn { margin-top: 16px; }
.stall-auth-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 16px; }

/* overlay */
    .modal {
        position: fixed;
        top: 0; left: 0;
        width: 100vw; height: 100vh;
        display: none;
        align-items: center;
        justify-content: center;
        background: rgba(0,0,0,0.5);
        z-index: 1000;
    }
    .modal.active {
        display: flex;
    }
    /* Shared workshop and stall dialog container */
    .modal-wide {
        background: #fff;
        border-radius: 14px;
        width: min(92vw, 960px);
        max-height: 90vh;
        overflow: auto;
        padding: clamp(20px, 4vw, 32px);
        box-shadow: 0 18px 52px rgba(0,0,0,0.24);
        position: relative;
    }
    .modal-close {
        position: absolute;
        top: 0.5rem;
        right: 0.5rem;
        background: none;
        border: none;
        font-size: 1.5rem;
        line-height: 1;
        cursor: pointer;
    }
    .modal-actions {
        margin-top: 1.5rem;
        text-align: right;
    }
    .modal-actions button,
.modal-actions a {
        margin-left: 0.5rem;
    }
    .workshop-learning {
        margin: 1rem 0;
    }
    .workshop-learning > strong {
        display: block;
        margin-bottom: 0.45rem;
    }
    .workshop-modal-booking-link {
        text-align: center;
    }
    @media (max-width: 600px) {
        .modal-wide {
            width: min(94vw, 960px);
            max-width: none;
        }
    }

    /* Additional styling for lists */
    ul.no-bullets {
        list-style: none;
        padding-left: 0;
    }
    ul.no-bullets li {
        margin-bottom: 0.5rem;
        display: flex;
        align-items: flex-start;
    }
    ul.no-bullets li i {
        margin-right: 8px;
        font-size: 1.1em;
        line-height: 1.5;
        color: var(--teal);
    }


/* stalls.php */

/* New and refined styles for image lightbox modal */
#image-lightbox-modal {
    z-index: 1001; /* Higher than other modals */
    /* These properties already ensure it covers the whole screen */
}
#image-lightbox-modal .modal-content {
    background: none; /* Transparent background for image */
    padding: 0;
    width: 95vw; /* Allow content to take up 95% of viewport width */
    height: 95vh; /* Allow content to take up 95% of viewport height */
    max-width: 95vw; /* Explicitly cap max width */
    max-height: 95vh; /* Explicitly cap max height */
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box; /* Include padding/border in width/height */
}
#image-lightbox-modal .modal-content img {
    max-width: 100%; /* Image will not exceed the width of its parent (.modal-content) */
    max-height: 100%; /* Image will not exceed the height of its parent (.modal-content) */
    width: auto; /* Allow image to scale naturally */
    height: auto; /* Allow image to scale naturally */
    object-fit: contain; /* Scales the image to fit while preserving aspect ratio */
    display: block; /* Remove any extra space below image */
}
#image-lightbox-modal .modal-close {
    color: #fff; /* White close button for dark background */
    font-size: 2.5rem;
    right: 1rem;
    top: 1rem;
    text-shadow: 0px 0px 5px rgba(0,0,0,0.7); /* Visible on bright images */
}
.stall-modal-thumbnail {
    display: inline-block;
    width: 100px;
    height: 76px;
    margin: 5px;
    border-radius: 8px;
    object-fit: cover;
    cursor: pointer; /* Indicate it's clickable */
    transition: transform 0.2s ease;
}
.stall-modal-thumbnail:hover {
    transform: scale(1.05); /* Slight hover effect */
}


/* camping-guidelines.php */

.guidelines-intro{max-width:760px;margin:0 auto 28px;text-align:center}.guidelines-intro p{color:#68606a;line-height:1.7}.guideline-content p:last-child{margin-bottom:0}
