/* ========================================
   CATERING PROZON
   Calculator/request form powered by site-editor theme variables.

   Uses the shared site design variables defined by the page/theme.
======================================== */

.pz-catering {



    width: 100%;
    margin: 0;
    padding-block: 0;
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: var(--size-body);
}

.pz-catering,
.pz-catering * {
    box-sizing: border-box;
}

.pz-catering a {
    color: var(--color-link);
    text-decoration: underline;
    transition: color var(--animation-duration) ease;
}

.pz-catering a:hover,
.pz-catering a:focus-visible {
    color: var(--color-link-hover);
}

.pz-catering__card {
    width: 100%;
    margin: 0;
    border: 1px solid var(--color-card-border);
    border-radius: var(--radius-card);
    background: var(--color-card-bg);
    box-shadow: var(--shadow-card);
    overflow: hidden;
}

.pz-catering__intro {
    padding: calc(var(--spacing) * 1.5) calc(var(--spacing) * 1.5) 0;
}

.pz-catering__eyebrow {
    margin: 0 0 calc(var(--spacing) * .45);
    color: var(--color-text);
    font-size: var(--size-eyebrow);
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;

    font-family: var(--font-eyebrow);}

.pz-catering__title {
    margin: 0;
    color: var(--color-title);
    font-family: var(--font-title);
    font-size: var(--size-title);
    line-height: 1.15;
}

.pz-catering__subtitle {
    margin: calc(var(--spacing) * .55) 0 0;
    line-height: 1.45;

    font-family: var(--font-subtitle);
    font-size: var(--size-subtitle);}

.pz-catering__message {
    margin: var(--spacing) calc(var(--spacing) * 1.5) 0;
    padding: calc(var(--spacing) * .9);
    border: 1px dashed var(--color-card-border);
    border-radius: calc(var(--radius-card) * .7);
}

.pz-catering__form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--section-gap);
    padding: calc(var(--spacing) * 1.5);
}

.pz-catering__section {
    min-width: 0;
}

.pz-catering h3 {
    margin: 0 0 calc(var(--spacing) * .75);
    color: var(--color-subtitle);
    font-family: var(--font-subtitle);
    font-size: var(--size-subtitle);
}

.pz-catering__grid,
.pz-catering__controls {
    display: grid;
    gap: var(--spacing);
}

.pz-catering__controls {
    grid-template-columns: 1fr 1fr;
    margin: var(--spacing) 0;
}

.pz-catering label {
    display: block;
    margin-bottom: calc(var(--spacing) * .35);
    font-weight: 700;
}

.pz-catering label span,
.pz-catering__muted {
    color: var(--color-text);
    font-weight: 400;
}

.pz-catering input,
.pz-catering select,
.pz-catering textarea {
    width: 100%;
    border: 1px solid var(--color-input-border);
    border-radius: calc(var(--radius-card) * .7);
    background: var(--color-input-bg);
    color: var(--color-input-text);
    padding: calc(var(--spacing) * .65) calc(var(--spacing) * .7);
    outline: none;
    font: inherit;
    transition:
        border-color var(--animation-duration) ease,
        box-shadow var(--animation-duration) ease,
        background-color var(--animation-duration) ease,
        color var(--animation-duration) ease;
}

.pz-catering textarea {
    min-height: 92px;
    resize: vertical;
}

.pz-catering input:focus,
.pz-catering select:focus,
.pz-catering textarea:focus {
    border-color: var(--color-focus);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-focus) 20%, transparent);
}

.pz-catering__wide {
    grid-column: 1 / -1;
}

.pz-catering__items {
    display: grid;
    gap: calc(var(--spacing) * .65);
}

.pz-catering__item-row {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr) 90px 90px;
    gap: calc(var(--spacing) * .65);
    align-items: center;
}

.pz-catering__item-head {
    color: var(--color-text);
    font-size: .85rem;
}

.pz-catering__item-row input[type="checkbox"] {
    width: 16px;
    height: 16px;
}

.pz-catering__item-row input[type="number"] {
    width: 100%;
    height: 100%;
    min-width: 0;
    text-align: center !important;
    border-radius: calc(var(--radius-card) * .7) 0 0 calc(var(--radius-card) * .7);
    appearance: textfield;
    -moz-appearance: textfield;
}

/* Use our own quantity arrows instead of browser-native number spinners.
   Firefox can render native spinner glyphs as blank/white squares under
   some theme combinations, so this keeps the control consistent. */
.pz-catering__item-row input[type="number"]::-webkit-inner-spin-button,
.pz-catering__item-row input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.pz-catering__qty-control {
    width: 90px;
    min-height: 2.7rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 26px;
    align-items: stretch;
}

.pz-catering__qty-buttons {
    display: grid;
    grid-template-rows: 1fr 1fr;
}

.pz-catering button.pz-catering__qty-step {
    min-width: 0;
    width: 26px;
    margin: 0;
    padding: 0;
    border: 1px solid var(--color-card-border);
    border-left: 0;
    border-radius: 0;
    background: var(--color-input-bg);
    color: var(--color-input-text);
    box-shadow: none;
    font: inherit;
    font-size: var(--size-button);
    font-weight: 700;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: none;
    filter: none;

    font-family: var(--font-button);}

.pz-catering button.pz-catering__qty-step:first-child {
    border-radius: 0 calc(var(--radius-card) * .7) 0 0;
    border-bottom-width: 0;
}

.pz-catering button.pz-catering__qty-step:last-child {
    border-radius: 0 0 calc(var(--radius-card) * .7) 0;
}

.pz-catering button.pz-catering__qty-step:hover,
.pz-catering button.pz-catering__qty-step:focus-visible {
    background: color-mix(in srgb, var(--color-link) 10%, var(--color-input-bg));
    color: var(--color-input-text);
    border-color: var(--color-focus);
    filter: none;
    transform: none;
}

.pz-catering__guest-summary {
    display: flex;
    align-items: stretch;
    gap: calc(var(--spacing) * .6);
}

.pz-catering__guest-count {
    flex: 0 0 10ch;
    width: 10ch;
}

.pz-catering__serving-estimate {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: .45em;
    padding: calc(var(--spacing) * .55) calc(var(--spacing) * .7);
    border: 1px solid var(--color-card-border);
    border-radius: calc(var(--radius-card) * .7);
    background: color-mix(in srgb, var(--color-link) 7%, var(--color-card-bg));
    line-height: 1.15;
    transition: background-color var(--animation-duration) ease, box-shadow var(--animation-duration) ease, transform var(--animation-duration) ease;
}

.pz-catering__serving-estimate span {
    color: var(--color-text);
    font-size: .86rem;
}

.pz-catering__serving-estimate strong {
    color: var(--color-subtitle);
    font-size: 1.15rem;
    font-variant-numeric: tabular-nums;
}

.pz-catering__serving-estimate--changed {
    background: color-mix(in srgb, var(--color-link) 18%, var(--color-card-bg));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-link) 16%, transparent);
    transform: scale(1.025);
}

.pz-catering__serving-help {
    display: block;
    margin-top: calc(var(--spacing) * .35);
    color: var(--color-text);
    font-size: .82rem;
}

.pz-catering__meal-type {
    min-width: min(35ch, 100%);
    width: 100%;
}

/* Keep the numeric Qty and Total columns centered regardless of the
   parent page/zone text-alignment setting exported by the site editor. */
.pz-catering .pz-catering__line-total,
.pz-catering .pz-catering__item-head div:nth-child(3),
.pz-catering .pz-catering__item-head div:nth-child(4) {
    text-align: center !important;
    font-variant-numeric: tabular-nums;
}

.pz-catering__item-title {
    font-weight: 700;
    line-height: 1.25;
}

.pz-catering__item-price {
    color: var(--color-text);
    font-size: .88rem;
    font-weight: 400;
}

.pz-catering__adjustment {
    margin-top: calc(var(--spacing) * .75);
    padding: calc(var(--spacing) * .8) calc(var(--spacing) * .9);
    border-radius: calc(var(--radius-card) * .7);
    background: color-mix(in srgb, var(--color-link) 10%, var(--color-card-bg));
    border: 1px solid var(--color-card-border);
}

.pz-catering__actions {
    display: flex;
    justify-content: flex-end;
    gap: calc(var(--spacing) * .75);
    margin-top: calc(var(--spacing) * .85);
    flex-wrap: wrap;
}

.pz-catering button {
    border: 1px solid var(--color-cta-border);
    background: var(--color-cta-bg);
    color: var(--color-cta-text);
    font-family: var(--font-cta);
    font-size: var(--size-cta-small);
    font-weight: 800;
    line-height: 1;
    padding: .75em 1em;
    border-radius: var(--radius-cta-small);
    cursor: pointer;
    box-shadow: var(--shadow-card);
    transition:
        transform var(--animation-duration) ease,
        background-color var(--animation-duration) ease,
        border-color var(--animation-duration) ease,
        color var(--animation-duration) ease,
        box-shadow var(--animation-duration) ease,
        filter var(--animation-duration) ease;
}

.pz-catering button:hover,
.pz-catering button:focus-visible {
    background: var(--color-cta-hover-bg);
    color: var(--color-cta-hover-text);
    border-color: var(--color-cta-hover-bg);
    filter: brightness(.96);
    transform: translateY(-1px);
}

.pz-catering button:disabled {
    cursor: wait;
    opacity: .72;
    transform: none;
}

.pz-catering__secondary {
    background: var(--color-button-bg) !important;
    color: var(--color-button-text) !important;
    border-color: var(--color-button-border) !important;
    box-shadow: none !important;
}

.pz-catering__totals {
    margin-top: calc(var(--spacing) * .85);
    border-top: 1px dashed var(--color-card-border);
    padding-top: calc(var(--spacing) * .8);
    display: grid;
    gap: calc(var(--spacing) * .4);
}

.pz-catering__totals div {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: calc(var(--spacing) * .75);
}

.pz-catering__totals div:last-child {
    font-size: 1.15rem;
    color: var(--color-title);
}

.pz-catering__submit-note {
    margin: var(--spacing) 0 0;
    color: var(--color-text);
    line-height: 1.45;
}

.pz-catering__submit-actions {
    justify-content: center;
}

.pz-catering__honeypot {
    position: absolute;
    left: -10000px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

@media (max-width: 980px) {
    .pz-catering__form {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .pz-catering__controls {
        grid-template-columns: 1fr;
    }

    .pz-catering__guest-summary {
        flex-wrap: wrap;
    }

    .pz-catering__serving-estimate {
        flex: 1 1 12rem;
    }

    .pz-catering__item-row {
        grid-template-columns: 26px minmax(0, 1fr) 84px;
    }

    .pz-catering__qty-control {
        width: 84px;
        grid-template-columns: minmax(0, 1fr) 24px;
    }

    .pz-catering button.pz-catering__qty-step {
        width: 24px;
    }

    .pz-catering__line-total {
        grid-column: 2 / 4;
    }

    .pz-catering__item-head {
        display: none;
    }
}


/* Successful request confirmation stays inside the Prozon. */
.pz-catering__confirmation {
    margin: calc(var(--spacing) * 1.5);
    padding: calc(var(--spacing) * 1.5);
    border: 1px solid var(--color-card-border);
    border-radius: var(--radius-card);
    background: color-mix(in srgb, var(--color-accent) 10%, var(--color-card-bg));
    color: var(--color-text);
    box-shadow: var(--shadow-card);
    outline: none;
}

.pz-catering__confirmation-eyebrow {
    margin: 0 0 calc(var(--spacing) * .45);
    color: var(--color-eyebrow);
    font-family: var(--font-eyebrow);
    font-size: var(--size-eyebrow);
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pz-catering__confirmation-title {
    margin: 0;
    color: var(--color-title);
    font-family: var(--font-title);
    font-size: var(--size-title);
    line-height: 1.15;
}

.pz-catering__confirmation-text {
    margin: calc(var(--spacing) * .65) 0 0;
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: var(--size-body);
    line-height: 1.55;
}
