.craft-event-page { background: #170b13; color: #f9e6c4; }
.craft-event-page [hidden] { display: none !important; }
.craft-event-hero { padding-block: 48px; }
.craft-event-hero .craft-show-inner { min-height: 540px; }
.craft-event-hero h1 {
    margin: 16px 0;
    color: #f3d399;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(35px, 4.2vw, 65px);
    font-weight: 400;
    line-height: 1.06;
    text-shadow: 0 3px 15px #0007;
}
.craft-event-ended, .craft-event-availability {
    max-width: 760px;
    margin: 20px auto;
    padding: 0 20px;
    text-align: center;
    line-height: 1.6;
}
.craft-event-ended { padding: 18px 24px; border: 1px solid #a77d48; background: #092e29; }
.craft-event-products { padding: 32px 16px 60px; font-family: Georgia, "Times New Roman", serif; }
.craft-event-heading { max-width: 640px; margin: auto; text-align: center; }
.craft-event-heading h2 { color: #f3d399; font-weight: 400; font-size: clamp(28px, 4vw, 40px); }
.craft-event-heading p { margin-top: 12px; line-height: 1.6; }
.craft-event-categories { display: flex; gap: 10px; max-width: 950px; margin: 24px auto; padding: 6px; overflow-x: auto; }
.craft-event-categories button {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 10px 20px;
    border: 1px solid #a77d48;
    border-radius: 4px;
    background: #170b13;
    color: #f9e6c4;
    font: inherit;
    cursor: pointer;
}
.craft-event-categories button[aria-pressed="true"], .craft-event-categories button:hover { background: #092e29; border-color: #e9c98d; }
.craft-event-page button:focus-visible, .craft-event-page a:focus-visible, #craft-products:focus-visible { outline: 2px solid #f3d399; outline-offset: 4px; }
.craft-event-empty { max-width: 760px; margin: 28px auto; padding: 42px 24px; border: 1px solid #a77d48; background: linear-gradient(135deg, #390e1e, #170b13); text-align: center; }
.craft-event-empty h3 { font-size: 24px; font-weight: 400; color: #f3d399; }
.craft-event-empty p { margin-top: 12px; line-height: 1.6; }
.craft-event-gallery { position: relative; width: min(1180px, 100%); margin: 24px auto 0; padding: 0 60px; }
.craft-event-gallery .product-carousel {
    --product-card-width: 54%;
    padding-inline: calc((100% - var(--product-card-width)) / 2);
    scroll-padding-inline: calc((100% - var(--product-card-width)) / 2);
    touch-action: pan-x pan-y;
}
.craft-event-gallery .product-card { flex-basis: var(--product-card-width); margin: 0; }
.craft-event-gallery .is-repositioning .product-image { transition: none; }
.craft-event-gallery [role="button"] { cursor: zoom-in; }
.craft-event-gallery [role="button"]:focus-visible { outline: 2px solid #f3d399; outline-offset: -2px; }
/* Percentage widths inside a padded flex track would shrink the intended cards. */
.craft-event-gallery .product-card { flex-basis: calc(100cqw * .54); }
.craft-event-gallery { container-type: inline-size; }
.craft-event-gallery button {
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 44px; height: 44px; border: 1px solid #b08553; border-radius: 50%;
    background: #092e29; color: #f3d399; font: 28px Georgia, serif; cursor: pointer;
}
.craft-event-gallery button:hover { background: #a77d48; color: #170b13; }
.craft-event-gallery button:disabled { opacity: .3; cursor: default; }
#craft-previous { left: 5px; }
#craft-next { right: 5px; }
.craft-event-details { min-height: 150px; max-width: 620px; margin: 12px auto 0; text-align: center; line-height: 1.5; }
.craft-event-details h3 { color: #f3d399; font-size: clamp(24px, 3vw, 32px); font-weight: 400; }
.craft-event-details p { margin-top: 8px; }
#craft-product-price { font-size: 22px; }
.craft-event-details.is-discounted #craft-product-price { font-size: 28px; font-weight: bold; color: #f3d399; }
#craft-regular-price { font-size: 15px; color: #c8ad83; }
#craft-product-savings { color: #f3d399; font-weight: bold; }
#craft-special-price-note { font-size: 14px; }
#craft-product-label { display: inline-block; border: 1px solid #a77d48; padding: 4px 12px; background: #092e29; }
#craft-product-category, #craft-product-position { font-size: 14px; color: #e9c98d; }
@media (max-width: 1000px) {
    .craft-event-hero .craft-show-inner { min-height: 0; }
    .craft-event-hero { padding-block: 30px; }
}
@media (max-width: 900px) {
    .craft-event-gallery .product-carousel { --product-card-width: 62%; }
    .craft-event-gallery .product-card { flex-basis: calc(100cqw * .62); }
}
@media (max-width: 700px) {
    .craft-event-hero { padding: 18px 14px 20px; }
    .craft-event-hero h1 { grid-column: 2; align-self: center; margin: 0; font-size: clamp(24px, 5.8vw, 32px); line-height: 1.1; text-wrap: balance; }
    .craft-event-hero .craft-show-time { font-size: 14px; line-height: 1.4; }
    .craft-event-products { padding-top: 24px; }
    .craft-event-categories {
        gap: 6px;
        margin-block: 12px 8px;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    .craft-event-categories::-webkit-scrollbar { display: none; }
    .craft-event-categories button {
        min-width: 44px;
        min-height: 44px;
        padding: 6px 12px;
        font-size: 14px;
        white-space: nowrap;
    }
    .craft-event-gallery { margin-top: 8px; padding: 0 8px; }
    .craft-event-gallery button { display: none; }
    .craft-event-gallery .product-carousel {
        --product-card-width: 58%;
        padding-top: 4px;
        padding-bottom: 6px;
    }
    .craft-event-gallery .product-card { flex-basis: calc(100cqw * .58); }
    .craft-event-gallery .product-image-frame { height: clamp(220px, 62vw, 300px); padding: 6px; }
    .craft-event-details { min-height: 0; margin-top: 8px; line-height: 1.4; }
    .craft-event-details h3 { line-height: 1.2; }
    .craft-event-details p { margin-top: 4px; }
    #craft-product-label { margin-top: 0; margin-bottom: 4px; padding: 3px 9px; }
}
@media (max-width: 600px) {
    /* Narrower cards keep neighboring portrait photographs visible on phones. */
    .craft-event-gallery .product-carousel { --product-card-width: 62%; }
    .craft-event-gallery .product-card { flex-basis: calc(100cqw * .62); }
}
@media (prefers-reduced-motion: reduce) {
    .craft-event-page, .craft-event-page .product-carousel { scroll-behavior: auto; }
    .craft-event-page .product-image { transition: none; }
}

/* The viewer is a separate top-layer dialog; carousel sizing stays unchanged. */
html.craft-photo-open { overflow: hidden; overscroll-behavior: none; scrollbar-gutter: stable; }
html.craft-photo-open body { overflow: hidden; }
.craft-photo-viewer {
    position: fixed;
    inset: 0;
    width: 100%; height: 100dvh;
    max-width: none; max-height: none;
    margin: 0; padding: 0; border: 0;
    overflow: hidden;
    touch-action: none;
    background: transparent;
    color: #f9e6c4;
}
.craft-photo-viewer::backdrop { background: rgba(20, 6, 16, .94); }
#craft-photo-close {
    position: absolute;
    top: max(10px, env(safe-area-inset-top));
    right: max(12px, env(safe-area-inset-right));
    z-index: 1;
    width: 44px; height: 44px;
    border: 1px solid #d7b477; border-radius: 5px;
    background: #390e1e; color: #f3d399;
    font: 32px/1 Georgia, serif; cursor: pointer;
}
#craft-photo-close:hover { background: #6d162a; }
#craft-photo-stage {
    position: absolute;
    inset: max(64px, calc(env(safe-area-inset-top) + 54px)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
    display: flex; align-items: center; justify-content: center;
    overflow: hidden; touch-action: none;
}
#craft-photo-large {
    display: block; flex: none;
    max-width: none; max-height: none;
    object-fit: contain; transform-origin: center;
    user-select: none; -webkit-user-select: none;
    cursor: zoom-in;
}
#craft-photo-stage.is-zoomed #craft-photo-large { cursor: grab; }
#craft-photo-stage.is-dragging #craft-photo-large { cursor: grabbing; }
#craft-photo-stage:focus-visible { outline: 2px solid #f3d399; outline-offset: -2px; }
#craft-photo-error { max-width: 32em; padding: 24px; text-align: center; }
#craft-photo-instructions { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
