/* ==========================================================================
   Chenies Events – Frontend Styles
   Palette: #5C6D6B (dark), #7B8E8C (mid), #91A19F (light/background)
   ========================================================================== */

:root {
    --ce-dark:   #5C6D6B;
    --ce-mid:    #7B8E8C;
    --ce-light:  #91A19F;
    --ce-white:  #ffffff;
    --ce-radius: 3px;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.ce-btn {
    display:         inline-flex;
    align-items:     center;
    gap:             8px;
    padding:         10px 26px;
    border-radius:   var(--ce-radius);
    font-family:     'Marcellus', serif;
    font-size:       1rem;
    font-weight:     700;
    text-transform:  uppercase;
    text-decoration: none !important;
    transition:      background .2s, color .2s, border-color .2s;
    border:          1px solid transparent;
    cursor:          pointer;
}
.ce-btn svg {
    width:       16px;
    height:      16px;
    fill:        currentColor;
    flex-shrink: 0;
}
.ce-btn--primary {
    background:   var(--ce-dark);
    color:        var(--ce-white);
    border-color: rgba(255,255,255,.3);
}
.ce-btn--primary:hover {
    background: #3e4e4c;
    color:      var(--ce-white);
}
.ce-btn--tickets {
    display:         block;
    width:           100%;
    text-align:      center;
    background:      #5C6D6B;
    color:           var(--ce-white);
    border-color:    transparent;
    margin-bottom:   12px;
}
.ce-btn--tickets:hover {
    background: #3e4e4c;
    color:      var(--ce-white);
}
.ce-btn--outline {
    background:   transparent;
    color:        var(--ce-white);
    border-color: rgba(255,255,255,.5);
}
.ce-btn--outline:hover {
    background: rgba(255,255,255,.15);
    color:      var(--ce-white);
}

/* --------------------------------------------------------------------------
   [ce_event_content] — outer wrapper
   -------------------------------------------------------------------------- */
.ce-event-content {
    width: 100%;
}

/* Body: main (left) + sidebar (right) */
.ce-event-body {
    display:     flex;
    gap:         40px;
    width:       100%;
    margin:      32px auto 0;
    align-items: stretch;
}

.ce-event-main    { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; }
.ce-event-sidebar { flex: 0 0 calc(25% - 30px); }

/* Description — fills height of main column */
.ce-event-description {
    background:    #5C6D6B;
    border-radius: 3px;
    padding:       24px;
    line-height:   1.75;
    flex:          1;
}
.ce-event-description p { margin-bottom: .8em; }

/* Section labels */
.ce-section-label {
    letter-spacing: .12em;
    text-transform: uppercase;
    color:          rgba(255,255,255,.55);
    margin-bottom:  10px;
    font-weight:    600;
}

/* Date */
.ce-event-dates {
    margin-bottom: 16px;
}



/* Features */
.ce-features {
    list-style:  none;
    padding:     16px 0 0;
    margin:      16px 0 0;
    display:     flex;
    flex-wrap:   wrap;
    gap:         8px;
    border-top:  1px solid rgba(255,255,255,.15);
}
.ce-features__item {
    display:       inline-flex;
    align-items:   center;
    gap:           7px;
    background:    var(--ce-mid);
    border-radius: var(--ce-radius);
    padding:       9px 14px;
    font-size:     .9rem;
    font-weight:   400;
    color:         var(--ce-white);
}
.ce-features__item svg {
    width:    14px;
    height:   14px;
    fill:     var(--ce-white);
    opacity:  .9;
    flex-shrink: 0;
}
.ce-feature-icon {
    width:       14px;
    height:      14px;
    object-fit:  contain;
    flex-shrink: 0;
    filter:      brightness(0) invert(1);
}

/* --------------------------------------------------------------------------
   Pricing sidebar
   -------------------------------------------------------------------------- */
.ce-pricing-box {
    background:    var(--ce-dark);
    border-radius: var(--ce-radius);
    padding:       20px 22px;
}

.ce-pricing-section {
    margin-bottom: 14px;
}
.ce-pricing-section:last-child {
    margin-bottom: 0;
}

.ce-pricing-section__heading {
    display:        flex;
    align-items:    center;
    gap:            7px;
    font-weight:    700;
    text-transform: uppercase;
    letter-spacing: .1em;
    margin-bottom:  8px;
    padding-bottom: 7px;
    border-bottom:  1px solid rgba(255,255,255,.15);
}
.ce-pricing-section__icon {
    width:       15px;
    height:      15px;
    object-fit:  contain;
    filter:      brightness(0) invert(1);
    flex-shrink: 0;
}

.ce-price-row {
    display:         flex;
    justify-content: space-between;
    align-items:     baseline;
    padding:         6px 0;
    border-bottom:   1px solid rgba(255,255,255,.08);
    gap:             10px;
}
.ce-price-row:last-child  { border-bottom: none; }
.ce-price-row__label      { }
.ce-price-row__price      { font-weight: 700; white-space: nowrap; }

/* --------------------------------------------------------------------------
   Gallery — full width strip
   -------------------------------------------------------------------------- */
.ce-gallery {
    display:               grid;
    grid-template-columns: repeat(4, 1fr);
    gap:                   40px;
    width:                 100%;
    margin:                24px auto 0;
}
.ce-gallery__item         { display: block; overflow: hidden; border-radius: var(--ce-radius); aspect-ratio: 1; }
.ce-gallery__item img     { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.ce-gallery__item:hover img { transform: scale(1.03); }

/* --------------------------------------------------------------------------
   [ce_events_list] — archive card grid
   -------------------------------------------------------------------------- */
.ce-events-list {
    display:               grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap:                   20px;
    padding:               8px 0 40px;
}
.ce-card {
    display:         flex;
    flex-direction:  column;
    border-radius:   var(--ce-radius);
    overflow:        hidden;
    text-decoration: none;
    color:           inherit;
    background:      var(--ce-dark);
    transition:      transform .2s, box-shadow .2s;
}
.ce-card:hover          { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0,0,0,.2); }
.ce-card--past          { opacity: .7; }
.ce-card__image         { position: relative; height: 200px; background-size: cover; background-position: center; }
.ce-card__badge         { position: absolute; top: 10px; left: 10px; background: rgba(0,0,0,.55); color: #fff; font-size: .75rem; padding: 4px 10px; border-radius: 20px; }
.ce-card__body          { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.ce-card__title         { margin: 0 0 6px; font-size: 1.05rem; color: var(--ce-white); }
.ce-card__dates         { margin: 0 0 10px; font-size: .8rem; color: rgba(255,255,255,.6); font-weight: 600; }
.ce-card__excerpt       { flex: 1; margin: 0 0 16px; font-size: .85rem; color: rgba(255,255,255,.75); line-height: 1.55; }
.ce-card__link          { font-size: .8rem; color: rgba(255,255,255,.6); font-weight: 600; }

/* --------------------------------------------------------------------------
   [ce_banner] — homepage banner
   -------------------------------------------------------------------------- */
.ce-banner {
    position:            relative;
    background-size:     cover;
    background-position: center;
    background-color:    var(--ce-dark);
    min-height:          380px;
    display:             flex;
    align-items:         center;
}
.ce-banner__overlay  { width: 100%; background: rgba(0,0,0,.52); padding: 60px 24px; }
.ce-banner__content  { max-width: 700px; margin: 0 auto; text-align: center; color: var(--ce-white); }
.ce-banner__label    { text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; color: rgba(255,255,255,.6); margin: 0 0 10px; font-weight: 600; }
.ce-banner__title    { font-size: clamp(1.6rem, 3.5vw, 2.6rem); margin: 0 0 12px; }
.ce-banner__dates    { font-size: .95rem; margin: 0 0 10px; color: rgba(255,255,255,.7); font-weight: 500; }
.ce-banner__desc     { font-size: .9rem; margin: 0 0 28px; opacity: .8; line-height: 1.65; }
.ce-banner__actions  { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media ( max-width: 768px ) {
    .ce-event-body,
    .ce-gallery       { width: 100%; padding: 0 20px; }
    .ce-event-body    { flex-direction: column; }
    .ce-event-sidebar { width: 100%; }
    .ce-gallery       { grid-template-columns: repeat(2, 1fr); padding: 0; }
    .ce-events-list   { grid-template-columns: 1fr; }
}
