/**
 * Booking, checkout and payment presentation.
 * Loaded only when the commerce module is enabled.
 */

.jda-booking-page .jda-section-light,
.jda-checkout-page .jda-section-light,
.jda-confirmation-page .jda-section-light { min-height: 64vh; }

.jda-booking-hero { max-width: 760px; padding-block: clamp(4.5rem, 9vw, 8rem); }
.jda-booking-hero h1 { max-width: 760px; margin-bottom: 1rem; }

.jda-checkout-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin: 0 0 clamp(2rem, 5vw, 3.75rem);
    padding: 0;
    list-style: none;
}
.jda-checkout-steps li {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-width: 0;
    color: var(--jda-muted);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.jda-checkout-steps li::after {
    height: 1px;
    flex: 1;
    margin-left: .25rem;
    background: #ded8cc;
    content: "";
}
.jda-checkout-steps li:last-child::after { display: none; }
.jda-checkout-steps span {
    display: grid;
    width: 31px;
    height: 31px;
    flex: 0 0 31px;
    border: 1px solid #d6cfc2;
    border-radius: 50%;
    background: #fff;
    color: var(--jda-muted);
    place-items: center;
}
.jda-checkout-steps .is-active { color: var(--jda-text); }
.jda-checkout-steps .is-active span {
    border-color: var(--jda-primary);
    background: var(--jda-primary);
    color: #fff;
}

.jda-public-notice {
    margin: 0 0 1.5rem;
    padding: 1rem 1.15rem;
    border: 1px solid #d8c9a7;
    border-left: 4px solid var(--jda-primary);
    background: #fffaf0;
    color: #51452f;
}
.jda-public-notice p:first-child { margin-top: 0; }
.jda-public-notice p:last-child { margin-bottom: 0; }
.jda-public-notice .jda-button { margin-top: .7rem; }
.jda-public-notice--error {
    border-color: #e1b7b7;
    border-left-color: #a83c3c;
    background: #fff7f7;
    color: #782e2e;
}

.jda-booking-selection,
.jda-checkout-layout {
    display: grid;
    grid-template-columns: minmax(270px, .82fr) minmax(0, 1.18fr);
    gap: clamp(1.5rem, 4vw, 4rem);
    align-items: start;
}
.jda-booking-product-summary,
.jda-checkout-summary,
.jda-checkout-form,
.jda-booking-form,
.jda-confirmation-card {
    border: 1px solid #e2ddd3;
    border-radius: var(--jda-card-radius);
    background: #fff;
    box-shadow: 0 18px 54px rgba(18, 16, 12, .07);
}
.jda-booking-product-summary,
.jda-checkout-summary { overflow: hidden; }
.jda-booking-product-summary > img,
.jda-checkout-summary > img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.jda-booking-product-summary > :not(img),
.jda-checkout-summary > :not(img) { margin-inline: clamp(1.25rem, 3vw, 2rem); }
.jda-booking-product-summary > .jda-eyebrow,
.jda-checkout-summary > .jda-eyebrow { display: block; margin-top: clamp(1.4rem, 3vw, 2rem); }
.jda-booking-product-summary > :last-child,
.jda-checkout-summary > :last-child { margin-bottom: clamp(1.4rem, 3vw, 2rem); }

.jda-booking-price {
    display: block;
    margin-top: 1.25rem;
    color: var(--jda-primary);
    font-family: var(--jda-font-heading);
    font-size: clamp(1.55rem, 3vw, 2.1rem);
}
.jda-booking-price small,
.jda-booking-product-card strong small {
    margin-left: .15rem;
    color: var(--jda-muted);
    font-family: var(--jda-font-body);
    font-size: .78rem;
    font-weight: 600;
}

.jda-booking-form,
.jda-checkout-form { padding: clamp(1.35rem, 4vw, 2.6rem); }
.jda-booking-form h2,
.jda-checkout-form legend { font-family: var(--jda-font-heading); }
.jda-booking-form > label,
.jda-booking-form .jda-form-grid label,
.jda-checkout-form .jda-form-grid label {
    display: grid;
    gap: .45rem;
    color: var(--jda-text);
    font-size: .82rem;
    font-weight: 750;
}
.jda-booking-form input,
.jda-booking-form select,
.jda-checkout-form input,
.jda-checkout-form select,
.jda-checkout-form textarea {
    width: 100%;
    min-height: 48px;
    border: 1px solid #d8d1c5;
    border-radius: max(2px, calc(var(--jda-button-radius) * .55));
    background: #fff;
    color: var(--jda-text);
    font: inherit;
}
.jda-booking-form input,
.jda-booking-form select,
.jda-checkout-form input,
.jda-checkout-form select { padding: .72rem .82rem; }
.jda-booking-form input:focus,
.jda-booking-form select:focus,
.jda-checkout-form input:focus,
.jda-checkout-form select:focus,
.jda-checkout-form textarea:focus {
    border-color: var(--jda-primary);
    outline: 3px solid color-mix(in srgb, var(--jda-primary) 22%, transparent);
    outline-offset: 1px;
}
.jda-booking-form > * + * { margin-top: 1rem; }
.jda-form-note {
    color: var(--jda-muted);
    font-size: .78rem;
    line-height: 1.55;
}
.jda-button--wide { width: 100%; justify-content: center; }
.jda-button[disabled] { cursor: progress; opacity: .7; }

.jda-booking-product-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}
.jda-booking-product-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #e2ddd3;
    border-radius: var(--jda-card-radius);
    background: #fff;
    box-shadow: 0 12px 38px rgba(18, 16, 12, .055);
}
.jda-booking-product-card > img,
.jda-booking-product-card > .jda-card-placeholder {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.jda-booking-product-card > div:last-child {
    display: flex;
    min-height: 100%;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    padding: 1.25rem;
}
.jda-booking-product-card h2,
.jda-booking-product-card h3 { margin: .45rem 0 .65rem; }
.jda-booking-product-card h2 a,
.jda-booking-product-card h3 a { color: inherit; text-decoration: none; }
.jda-booking-product-card p { color: var(--jda-muted); }
.jda-booking-product-card strong {
    display: block;
    margin-top: auto;
    padding-top: .75rem;
    color: var(--jda-primary);
    font-size: 1.1rem;
}
.jda-booking-product-card .jda-button { margin-top: 1rem; }

.jda-checkout-summary {
    position: sticky;
    top: calc(var(--jda-header-height, 76px) + 1.5rem);
}
.jda-checkout-summary h1 { font-size: clamp(1.8rem, 4vw, 2.55rem); }
.jda-checkout-summary dl,
.jda-confirmation-card dl { margin: 1.5rem 0 0; }
.jda-checkout-summary dl div,
.jda-confirmation-card dl div {
    display: grid;
    grid-template-columns: minmax(110px, .8fr) minmax(0, 1.2fr);
    gap: 1rem;
    padding: .75rem 0;
    border-top: 1px solid #eee9df;
}
.jda-checkout-summary dt,
.jda-confirmation-card dt {
    color: var(--jda-muted);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.jda-checkout-summary dd,
.jda-confirmation-card dd {
    margin: 0;
    text-align: right;
    font-weight: 750;
}
.jda-checkout-summary .jda-checkout-total {
    color: var(--jda-text);
    font-size: 1.05rem;
}
.jda-checkout-summary .jda-checkout-total dd { color: var(--jda-primary); font-size: 1.25rem; }

.jda-checkout-form fieldset {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}
.jda-checkout-form fieldset + fieldset {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid #eee9df;
}
.jda-checkout-form legend {
    margin-bottom: 1.15rem;
    padding: 0;
    font-size: 1.4rem;
    font-weight: 700;
}
.jda-checkout-form .jda-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.jda-payment-options { display: grid; gap: .8rem; }
.jda-payment-option {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .85rem;
    padding: 1rem;
    border: 1px solid #ddd6ca;
    border-radius: max(3px, var(--jda-button-radius));
    background: #fcfbf8;
    cursor: pointer;
}
.jda-payment-option:has(input:checked) {
    border-color: var(--jda-primary);
    background: #fffaf0;
    box-shadow: inset 0 0 0 1px var(--jda-primary);
}
.jda-payment-option input { width: 18px; min-height: 18px; margin-top: .1rem; }
.jda-payment-option strong,
.jda-payment-option small { display: block; }
.jda-payment-option small { margin-top: .2rem; color: var(--jda-muted); line-height: 1.5; }

.jda-consent {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .75rem;
    align-items: start;
    margin-top: .8rem;
    color: var(--jda-muted);
    font-size: .82rem;
    line-height: 1.55;
}
.jda-consent input { width: 18px; min-height: 18px; margin-top: .18rem; }
.jda-consent a { color: var(--jda-text); font-weight: 750; }

.jda-confirmation-card {
    max-width: 720px;
    margin-inline: auto;
    padding: clamp(1.5rem, 5vw, 3.25rem);
    text-align: center;
}
.jda-confirmation-mark {
    display: grid;
    width: 72px;
    height: 72px;
    margin: 0 auto 1.25rem;
    border: 1px solid #d9c38f;
    border-radius: 50%;
    background: #fff8e9;
    color: var(--jda-primary);
    font-size: 2rem;
    place-items: center;
}
.jda-confirmation-card > p { max-width: 590px; margin-inline: auto; color: var(--jda-muted); }
.jda-confirmation-card dl { text-align: left; }
.jda-confirmation-card .jda-button { margin-top: 1.5rem; }

@supports not (color: color-mix(in srgb, #000 20%, transparent)) {
    .jda-booking-form input:focus,
    .jda-booking-form select:focus,
    .jda-checkout-form input:focus,
    .jda-checkout-form select:focus,
    .jda-checkout-form textarea:focus { outline-color: rgba(184, 137, 57, .25); }
}

@media (max-width: 960px) {
    .jda-booking-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .jda-booking-selection,
    .jda-checkout-layout { grid-template-columns: 1fr; }
    .jda-checkout-summary { position: static; }
}

@media (max-width: 680px) {
    .jda-checkout-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .75rem 1rem;
    }
    .jda-checkout-steps li::after { display: none; }
    .jda-booking-product-grid,
    .jda-checkout-form .jda-form-grid { grid-template-columns: 1fr; }
    .jda-checkout-summary dl div,
    .jda-confirmation-card dl div { grid-template-columns: 1fr; gap: .25rem; }
    .jda-checkout-summary dd,
    .jda-confirmation-card dd { text-align: left; }
}

/* Version 1.5.0 final responsive checkout refinement. */
.jda-checkout-layout { align-items: start; }
.jda-checkout-summary { position: sticky; top: calc(var(--jda-header-height, 76px) + 28px); }
.jda-checkout-step { scroll-margin-top: calc(var(--jda-header-height, 76px) + 24px); }
.jda-checkout-progress { overflow-x: auto; scrollbar-width: thin; }
.jda-checkout-progress > * { min-width: max-content; }
.jda-payment-option { min-height: 70px; }
.jda-order-line { min-width: 0; }
.jda-order-line > * { overflow-wrap: anywhere; }
@media (max-width: 900px) {
    .jda-checkout-layout { grid-template-columns: 1fr; }
    .jda-checkout-summary { position: static; order: -1; }
    .jda-checkout-progress { margin-inline: -18px; padding-inline: 18px; }
}
@media (max-width: 560px) {
    .jda-checkout-shell { padding-inline: 14px; }
    .jda-checkout-card,
    .jda-checkout-summary { padding: 22px 18px; }
    .jda-checkout-actions { display: grid; grid-template-columns: 1fr; }
    .jda-checkout-actions .jda-button { width: 100%; justify-content: center; }
}
