.festive-order .festive-product {
    box-sizing: border-box;
    clear: both;
    width: 100%;
    margin: 0 0 20px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
}

.festive-order .festive-product[hidden] {
    display: none !important;
}

.festive-order .festive-product summary {
    cursor: pointer;
    font-size: 1.15em;
    font-weight: bold;
    margin: 0 30px 20px;
}

.festive-order .festive-product-controls {
    clear: both;
    padding: 0 30px 48px;
}

.festive-order .festive-product-controls p {
    margin-top: 12px; font-size: .9em;
}

.festive-order .festive-product-add,
.festive-order .festive-product-remove {
    display: block;
    clear: both;
    /* Match the theme's button[type="submit"] rules in css/_core.scss. */
    color: #fff;
    text-transform: uppercase;
    padding: 9px 18px;
    letter-spacing: 1.5px;
    font-family: "Barlow Condensed", sans-serif;
    text-decoration: none;
    border: 2px solid #fff;
    border-radius: 0;
    text-align: center;
    transition: all .3s;
    box-sizing: border-box;
    appearance: none;
    font-size: 1.4rem;
    background-color: transparent;
    cursor: pointer;
    max-width: 100%;
}

.festive-order .festive-product-remove {
    margin-left: 30px;
    margin-right: 30px;
    max-width: calc(100% - 60px);
}

.festive-order .festive-product-add:hover,
.festive-order .festive-product-remove:hover {
    color: #c8102e;
    border-color: #c8102e;
}

.festive-order button:focus-visible,
.festive-order summary:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 3px;
}

.festive-order .festive-product-add:disabled {
    opacity: .55;
    cursor: default;
}

@media (max-width: 767px) {
    .festive-order .festive-product-add {
        width: 100%;
    }
}

/* Use the same 30px gutters as the existing theme grid columns. */
.festive-order > h2,
.festive-order > p {
    margin-left: 30px;
    margin-right: 30px;
}

.festive-order .festive-product summary {
    list-style: disclosure-closed;
}

.festive-order .festive-product[open] > summary {
    list-style: disclosure-open;
}

.festive-order .festive-product::after {
    content: "";
    display: table;
    clear: both;
}

/* Fade the festive photograph into the black page while retaining its centre. */
.menus-festifs-visual { position: relative; overflow: hidden; }
.menus-festifs-visual img.premier { display: block; width: 100%; height: auto; margin: 0; }
.menus-festifs-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse at center, transparent 20%, rgba(3, 3, 3, .55) 60%, #000 100%),
        linear-gradient(to right, #000, transparent 22%, transparent 78%, #000),
        linear-gradient(to bottom, #000, transparent 22%, transparent 78%, #000);
}

@media (min-width: 768px) {
    .menus-festifs-intro {
        display: flex;
        align-items: center;
    }
    .menus-festifs-intro > div { float: none; }
}

/* Separate the product instructions from the first product row. */
.festive-order > div:has(+ details.festive-product) {
    padding-bottom: 24px;
}

@media (min-width: 1025px) {
    .menus-festifs-visual { transform: translateY(48px); }
}
