/* ======================================================
   ORACLE TREE – STALL DIRECTORY STYLESHEET
   ====================================================== */


/* ======================================================
   GLOBAL DIRECTORY LAYOUT
   ====================================================== */

.stall-directory {

    max-width:1200px;
    margin:auto;
    padding:40px 20px;

}

.stall-layout{

    display:block;

}

.stall-sidebar{

    position:static;
    margin-bottom:0px;
    padding-bottom:7px;

}

.stall-sidebar h3{

    margin-bottom:8px;

}


/* ======================================================
   FILTER GROUP LAYOUT
   ====================================================== */

.stall-fair-filters,
.stall-category-filters{

    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px;
    margin-bottom:14px;

}

.stall-fair-filters button,
.stall-category-filters button{

    margin-right:6px;

}

.filter-controls{

    display:flex;
    gap:10px;
    margin-bottom:10px;

}


/* ======================================================
   FILTER CHIPS
   ====================================================== */

.filter-chip input{
    display:none;
}

.filter-chip span{

    display:inline-block;
    padding:8px 16px;
    margin:3px 2px;
    border-radius:30px;
    font-size:14px;
    cursor:pointer;
    border:1px solid rgba(255,255,255,0.15);
    background:#1b2a3f;
    color:#ffffff;
    transition:all .15s ease;
}

/* checked state */

.filter-chip input:checked + span{

    background:#ffffff;
    color:#d6921f;

    border-color:#ffffff;
    box-shadow:0 0 0 2px rgba(214,146,31,.35) inset;

}

/* hover */

.filter-chip span:hover{

    background:#243652;

}



/* ======================================================
   FILTER CHIP POLISH
   ====================================================== */

/* smoother interaction */

.filter-chip span{

transition:
background .15s ease,
color .15s ease,
border-color .15s ease,
transform .15s ease,
box-shadow .15s ease;

}

/* hover lift */

.filter-chip span:hover{

transform:translateY(-1px);

box-shadow:0 2px 6px rgba(0,0,0,.25);

}

/* active chip glow */

.filter-chip input:checked + span{

box-shadow:0 0 0 2px rgba(214,146,31,.25);

}

/* animate count updates */

.filter-chip span.count-update{

animation:countPulse .22s cubic-bezier(.3,1.5,.4,1);

}

@keyframes countPulse{

0%{transform:scale(1);}
50%{transform:scale(1.12);}
100%{transform:scale(1);}

}

#stall-count{

font-weight:600;
color:#d6921f;

}

/* ======================================================
   FILTER BUTTONS
   ====================================================== */

.stall-directory button{

    padding:6px 10px;

    border-radius:6px;

    border:1px solid rgba(255,255,255,0.15);

    background:#1b2a3f;

    color:white;

    font-size:13px;

    cursor:pointer;

    transition:.15s;

}

.stall-directory button:hover{

    background:#243652;

}


/* ======================================================
   PAST FAIR TOGGLE
   ====================================================== */

.past-fairs, #past-filter-controls{

    display:none;

}

.show-past-toggle{

    cursor:pointer;
    font-size:14px;
    opacity:.75;
    margin:12px 0 6px;
    color:#d6921f;
    font-weight:500;

}

.show-past-toggle::after{
    content:" ▾";
}


/* ======================================================
   RESULTS HEADER
   ====================================================== */

.stall-results{

    margin:25px 0 10px;
    padding-top:15px;
    border-top:1px solid rgba(255,255,255,0.15);
    font-size:15px;
    opacity:.85;

}


/* ======================================================
   STALL GRID
   ====================================================== */

.stall-grid{

    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
    gap:28px;

}


/* ======================================================
   STALL CARD
   ====================================================== */

.stall-card{

    display:block;
    margin-bottom:37px;

    text-decoration:none;
    color:inherit;

    transition:transform .18s ease, box-shadow .18s ease;

}

.stall-card:hover{

    transform:translateY(-4px);
    box-shadow:0 8px 20px rgba(0,0,0,.15);

}


/* ======================================================
   STALL IMAGE
   ====================================================== */

.stall-card-image{

    overflow:hidden;
    border-radius:8px;

}

.stall-card-image img{

    width:100%;
    aspect-ratio:1/1;

    object-fit:cover;

    transition:transform .25s ease;

}

.stall-card:hover img{

    transform:scale(1.06);

}


/* ======================================================
   STALL TEXT
   ====================================================== */

.stall-card-title{

    margin-top:10px;

    font-size:18px;
    font-weight:600;

}

.stall-card-product{

    font-size:14px;
    opacity:.75;

}


/* ======================================================
   SINGLE STALL PAGE
   ====================================================== */

.stall-page{

    max-width:900px;
    margin:auto;
    padding:40px 20px;

}

.stall-title{

    text-align:center;
    margin-bottom:30px;

}


/* ======================================================
   STALL IMAGE GALLERY
   ====================================================== */

.stall-gallery{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:12px;

    margin-bottom:30px;

}

.stall-image{

    width:100%;
    height:100%;

    object-fit:cover;

    aspect-ratio:1 / 1;

}

.stall-image-1{

    grid-column:span 2;

    aspect-ratio:16 / 9;

}


/* ======================================================
   STALL DESCRIPTION
   ====================================================== */

.stall-description{

    font-size:18px;
    line-height:1.6;
    margin-bottom:30px;

}


/* ======================================================
   SOCIAL LINKS
   ====================================================== */

.stall-links{

    display:flex;
    flex-wrap:wrap;

    gap:12px;

}

.stall-link{

    background:#333;
    color:white;

    padding:10px 16px;

    border-radius:6px;

    text-decoration:none;

}

.stall-link:hover{
    background:black;
}


/* ======================================================
   SINGLE STALL PAGE
   ====================================================== */

.post-type-stall .has-small-font-size, .post-type-stall .wp-block-post-navigation-link__label {
display:none;
}

.stall-back{
margin-bottom:25px;
font-size:14px;
}

.stall-back a{
text-decoration:none;
color:#d6921f;
}

.stall-back a:hover{
text-decoration:underline;
}

.stall-fairs{
margin-top:25px;
font-size:16px;
opacity:.85;
}

.single-stall .wp-block-post-content{
margin-top:0;
padding-top:0;
}

.post-type-stall .wp-block-group.alignfull.has-global-padding{
padding-top:0;
}

.post-type-stall main > .wp-block-group{
padding-bottom:0;
}

.single-stall .wp-block-post-title{
margin-bottom:20px;
}

.single-stall .wp-block-post-content{
margin-bottom:0;
}

.post-type-stall .stall-page{
margin-top:0;
}

.stall-links{
margin:25px 0 0;
}

.single-stall .wp-block-post-navigation-link{
margin-top:40px;
}

html {
scroll-behavior: smooth;
}


/* ======================================================
   RESPONSIVE
   ====================================================== */

@media (max-width:1100px){

    .stall-layout{
        grid-template-columns:200px 1fr;
    }

}

@media (max-width:700px){

    .stall-layout{
        grid-template-columns:1fr;
    }

    .stall-sidebar{
        position:static;
    }

}

@media (max-width:700px){

.stall-gallery{

grid-template-columns:1fr;

}

.stall-image-1{

grid-column:span 1;
aspect-ratio:1 / 1;

}

}