/*
Theme Name: AllVintage Child
Theme URI: https://allvintage.com.au
Description: Custom child theme for AllVintage built on Twenty Twenty-Five.
Author: AllVintage
Template: twentytwentyfive
Version: 0.5.1
Text Domain: allvintage
*/

/*
This file intentionally starts lightweight.
Global styles will be managed through theme.json.
*/

body {
	margin: 0;
}

/* Only zero top margin on main / dashboard shell, not every site-blocks child */
:where(.wp-site-blocks) > main {
	margin-block-start: 0;
}

:where(.wp-site-blocks) > .av-dash {
	margin-block-start: 0;
}

/* Front page: no gap between stacked full-bleed sections */
body.home :where(.wp-site-blocks) > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* =====================================
   Allow full width sections to escape
   WordPress global padding
===================================== */

.entry-content.has-global-padding > .alignfull {
    margin-left: calc(var(--wp--style--root--padding-left) * -1);
    margin-right: calc(var(--wp--style--root--padding-right) * -1);
    width: auto;
}

/* Prevent unwanted spacing only on header/footer containers */

.allvintage-header .wp-block-group,
.allvintage-footer .wp-block-group {

    padding-top:0;
    padding-bottom:0;

}

.allvintage-header .wp-block-group > *,
.allvintage-footer .wp-block-group > * {

    margin-top:0;
    margin-bottom:0;

}

/* =====================================
   LAYOUT HELPERS
===================================== */

.alignfull {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.no-layout {
    max-width: none !important;
}

.no-layout.is-layout-constrained {
    display: block;
}

/* Page Heading styles live in blocks/page-heading/style.css */

.av-submission-form {
    max-width: 600px;
    margin: 40px auto;
    display: flex;
    flex-direction: column;
    gap: 20px;
    font-family: Lato, sans-serif;
}

.av-submission-form label {
    display: flex;
    flex-direction: column;
    font-weight: 700;
    color: #3A1F0A;
    font-size: 14px;
}

.av-submission-form input,
.av-submission-form select,
.av-submission-form textarea {
    padding: 12px;
    border: 1px solid #D4B87A;
    border-radius: 4px;
    font-size: 15px;
    background: #FFF8EC;
}

.av-submission-form button {
    background: #3A1F0A;
    color: #C4A55A;
    padding: 12px 20px;
    border: none;
    border-radius: 4px;
    font-weight: 700;
    cursor: pointer;
    font-size: 15px;
}

.av-submission-form button:hover {
    background: #5A3A1A;
}

.vpe-page-heading h1 {
    font-family: "Playfair Display", serif;
    font-size: clamp(1.8rem
28.8px
, 4vw, 2.8rem);
    font-weight: 700;
    color: #3A1F0A;
    line-height: 1.2;
    margin-bottom: 16px;
}

.vpe-eyebrow {
    color: #6B7340;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 12px;
}

/* FILTER BOX */
.vpe-filter-box {
    background-color: #fff8ec;
    border: 1px solid #e0c88a;
    border-radius: 8px;
    padding: 20px 24px;
    margin-bottom: 32px;
}

.vpe-filter-inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
    width: 100%;
}

.vpe-filter-row--state-past {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 24px;
    width: 100%;
}

.vpe-filter-row--state-past .vpe-filter-group,
.vpe-filter-row--state-past .vpe-filter-past-col {
    flex: 1 1 200px;
    min-width: 0;
}

.vpe-filter-past-col {
    display: flex;
    align-items: center;
    padding-bottom: 4px;
}

.vpe-filter-tags {
    width: 100%;
}

.vpe-filter-heading {
    margin: 0 0 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #8a6030;
}

.vpe-filter-tag-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    align-items: center;
}

.vpe-filter-tag-option {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: #3a1f0a;
    white-space: nowrap;
}

.vpe-filter-tag-row-break {
    flex-basis: 100%;
    width: 100%;
    height: 0;
    margin: 0;
    border: 0;
}

.vpe-filter-actions {
    display: flex;
    justify-content: flex-end;
    width: 100%;
}

.vpe-filter-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #8a6030;
}

.vpe-filter-select {
    padding: 9px 36px 9px 12px;
    border-radius: 4px;
    border: 1.5px solid #e0c88a;
    background-color: #fff;
    color: #3a1f0a;
    font-size: 14px;
    font-weight: 600;
    min-width: 148px;
    width: 100%;
    max-width: 280px;
}

.vpe-filter-divider {
    width: 1px;
    height: 44px;
    background-color: #e0c88a;
}

.vpe-filter-checkbox {
    display: flex;
    align-items: center;
    gap: 10px;
}

.vpe-filter-checkbox input {

    width:18px;
    height:18px;

    accent-color:#3a1f0a;

}
.vpe-filter-button {
    background-color: #3a1f0a;
    color: #c4a55a;
    padding: 10px 24px;
    border-radius: 4px;
    font-weight: 700;
    font-size: 14px;
    border: none;
    cursor: pointer;
}

/* RESULTS HEADER */
.vpe-results-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}

.vpe-results-count {
    font-size: 14px;
    color: #8a6030;
    font-weight: 600;
}

/* TOGGLE */
.vpe-toggle {
    display: flex;
    border: 1.5px solid #e0c88a;
    border-radius: 6px;
    overflow: hidden;
}

.vpe-toggle-btn {
    padding: 7px 16px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    background-color: #fff8ec;
    color: #8a6030;
}

.vpe-toggle-btn.active {
    background-color: #3a1f0a;
    color: #c4a55a;
}

/* GRID HEADER — 4 columns incl. actions */
.vpe-grid-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 180px 200px 48px;
    background-color: #e8d5a0;
    border-bottom: 1px solid #e0c88a;
    padding: 10px 20px;
    gap: 12px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #8a6030;
}

/* EVENT ROWS */
.vpe-event-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 180px 200px 48px;
    padding: 14px 20px;
    gap: 12px;
    align-items: center;
    border-bottom: 1px solid #e0c88a;
    background-color: #fff8ec;
    cursor: pointer;
}

.vpe-events-grid > .vpe-event-row:nth-child(4n + 3) {
    background-color: #ffffff;
}

.vpe-event-col-title {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    flex-wrap: nowrap;
}

.vpe-event-title-text {
    font-size: 14px;
    font-weight: 700;
    color: #3a1f0a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vpe-multiday-badge {
    background-color: #6b7340;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 3px;
    flex-shrink: 0;
}

.vpe-event-col-location {
    font-size: 13px;
    color: #5a3a1a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vpe-event-col-date {
    font-size: 13px;
    color: #8a6030;
    font-weight: 600;
    white-space: nowrap;
}

.vpe-event-col-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-shrink: 0;
}

.vpe-event-view-details-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color: #3a1f0a;
    text-decoration: none;
    flex-shrink: 0;
}

.vpe-event-view-details-icon:hover,
.vpe-event-view-details-icon:focus {
    color: #c4a55a;
}

/* Accordion — theme card layout */
.vpe-event-accordion {
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transition: max-height 0.35s ease, opacity 0.25s ease, padding 0.25s ease;
    background: #fff;
    border: 1px solid #e0c88a;
    border-top: none;
    padding: 0 20px;
    margin: 0;
}

.vpe-event-accordion.is-open {
    max-height: 2000px;
    opacity: 1;
    padding: 20px;
    margin-bottom: 8px;
}

.vpe-event-accordion[hidden] {
    display: none;
}
/* ==========================
   EVENTS MOBILE OPTIMISATION
========================== */


/* Filter box */

.vpe-filter-inner {
    width:100%;
}


.vpe-checkbox-label {
    font-size:14px;
    color:#3a1f0a;
}


/* Results header */

@media(max-width:768px){


    .vpe-filter-box {
        padding:20px 16px;
    }


    .vpe-filter-inner {

        flex-direction:column;

        align-items:stretch;

        gap:16px;

    }

    .vpe-filter-row--state-past {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .vpe-filter-select {
        max-width: none;
    }

    .vpe-filter-actions {
        justify-content: stretch;
    }

    .vpe-filter-button {
        width: 100%;
    }


    .vpe-filter-group {

        width:100%;

    }


    .vpe-filter-select {

        width:100%;

        min-width:0;

    }


    .vpe-filter-divider {

        display:none;

    }


    .vpe-filter-checkbox {

        padding:10px 0;

    }


    .vpe-filter-button {

        width:100%;

    }



    /* results heading */


    .vpe-results-header {

        flex-direction:column;

        align-items:flex-start;

        gap:15px;

    }



    .vpe-toggle {

        width:100%;

    }


    .vpe-toggle-btn {

        flex:1;

    }



    /*
       Hide desktop table heading
    */

    .vpe-grid-header {

        display:none;

    }



    /*
       Event cards
    */


    .vpe-events-grid {

        display:flex;

        flex-direction:column;

        gap:12px;

    }



    .vpe-event-row {

        display:grid;

        grid-template-columns: minmax(0, 1fr) 40px;

        grid-template-areas:
            "title actions"
            "location location"
            "date date";

        align-items:center;

        gap:8px;

        padding:18px 16px;

        border:1px solid #e0c88a;

        border-radius:8px;

    }

    .vpe-event-col-title { grid-area: title; min-width: 0; }
    .vpe-event-col-location { grid-area: location; }
    .vpe-event-col-date { grid-area: date; }
    .vpe-event-col-actions { grid-area: actions; }



    .vpe-event-col-title {

        width:100%;

        flex-wrap:nowrap;

    }


    .vpe-event-title-text {

        font-size:16px;

    }


    .vpe-event-col-location,
    .vpe-event-col-date {

        font-size:14px;

    }


}

/* ==========================
   EVENT DETAIL (Batch 7)
========================== */

.vpe-event-detail-wrap {
    margin-top: 0;
}

.vpe-event-detail-title.wp-block-heading {
    margin-top: 0.5em;
    margin-bottom: 0.4em;
}

.vpe-edit-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 1rem;
}

.vpe-event-detail-meta {
    display: flex;
    flex-direction: column;
    gap: var(--wp--preset--spacing--50, 1.5rem);
    margin-top: var(--wp--preset--spacing--50, 1.5rem);
}

.vpe-detail-section {
    padding-bottom: var(--wp--preset--spacing--40, 1rem);
    border-bottom: 1px solid #e0c88a;
}

.vpe-detail-section:last-child {
    border-bottom: none;
}

.vpe-detail-section .wp-block-heading {
    margin-top: 0;
    margin-bottom: 0.6em;
    font-size: 1.15rem;
}

.vpe-event-tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0.5em 0 0;
    padding: 0;
}

.vpe-event-tag-list li {
    background: #e8d5a0;
    color: #3a1f0a;
    padding: 4px 10px;
    font-size: 13px;
    font-weight: 600;
}

/* Map container — Batch 8 fills this */
.vpe-event-map,
#event-map {
    width: 100%;
    min-height: 240px;
    margin-top: 1rem;
    background: #f5efe0;
    border: 1px solid #e0c88a;
}

.vpe-map-coords {
    font-size: 0.9em;
    color: #8a6030;
}

/* Amenities flex + tooltip */
.vpe-amenity-term-list {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 20px;
    list-style: none;
    margin: 0.75em 0 0;
    padding: 0;
}

.vpe-amenity-item {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: #fff8ec;
    border: 1px solid #e0c88a;
}

.vpe-amenity-item img {
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.vpe-amenity-icon {
    font-size: 1.25rem;
    line-height: 1;
}

.vpe-amenity-tooltip {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 6px);
    transform: translateX(-50%);
    background: #3a1f0a;
    color: #e8d5a0;
    font-size: 12px;
    padding: 6px 10px;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.15s ease;
    z-index: 2;
}

.vpe-amenity-item:hover .vpe-amenity-tooltip,
.vpe-amenity-item:focus-within .vpe-amenity-tooltip {
    opacity: 1;
    visibility: visible;
}

.vpe-amenities-list {
    margin: 0.5em 0 0;
    padding-left: 1.2em;
}

/* Pricing */
.vpe-pricing-table {
    width: 100%;
    max-width: 420px;
    border-collapse: collapse;
    margin: 0.5em 0 1em;
}

.vpe-pricing-table + .vpe-pricing-table {
    margin-top: 1.25em;
}

.vpe-pricing-table td {
    padding: 8px 0;
    border-bottom: 1px solid #e0c88a;
    vertical-align: baseline;
}

.vpe-pricing-table .vpe-price-amount {
    text-align: right;
    font-weight: 700;
    color: #3a1f0a;
    white-space: nowrap;
    padding-left: 1.5rem;
}

.vpe-free-entry {
    font-weight: 700;
    color: #6b7340;
}

/* Organiser */
.vpe-section-organiser {
    display: flex;
    flex-direction: column;
    gap: 0.35em;
}

.vpe-section-organiser .wp-block-heading {
    margin-bottom: 0.5em;
}

.vpe-organiser-name {
    font-weight: 700;
    margin: 0;
}

.vpe-organiser-email,
.vpe-organiser-phone,
.vpe-organiser-website {
    margin: 0;
}

.vpe-section-organiser a {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.vpe-event-detail-description {
    margin-top: var(--wp--preset--spacing--50, 1.5rem);
}

.vpe-event-description-body {
    margin-top: 0.75em;
}

.vpe-schedule-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 0.5em;
    font-size: 0.95em;
}

.vpe-schedule-table th,
.vpe-schedule-table td {
    padding: 8px 10px;
    border-bottom: 1px solid #e0c88a;
    text-align: left;
}

.vpe-schedule-table th {
    background: #e8d5a0;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #8a6030;
}
