.single-product {
    background: #000;
}

.single-product .product,
.single-product .woocommerce-breadcrumb,
.single-product .woocommerce-notices-wrapper,
.single-product .woocommerce-tabs,
.single-product .related.products,
.single-product .upsells.products {
    max-width: min(82rem, calc(100% - 2rem));
    margin-inline: auto;
}

.ddb-product-hero {
    position: relative;
    width: 100%;
    min-height: clamp(18rem, 36vw, 28rem);
    display: flex;
    align-items: flex-end;
    margin-top: 0;
    background-color: #111;
    background-size: cover;
    background-position: center top;
    overflow: hidden;
    border-radius: 1.5rem;
}

.ddb-product-hero__content {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: min(82rem, calc(100% - 2rem));
    margin-inline: auto;
    padding: clamp(1rem, 2.8vw, 1.75rem) 0 clamp(1.5rem, 3.2vw, 2.2rem);
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

@media (min-width: 980px) {
    .ddb-product-hero {
        background-position: center 12%;
    }
}

.sbdp-context-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin: 0 0 1rem;
    padding: 0.8rem 1rem;
    background: #0f0f0f;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 1rem;
    color: rgba(255,255,255,.78);
}

.sbdp-booking-form-wrapper,
#sbdp-booking-form {
    display: block;
    width: 100%;
    box-sizing: border-box;
    background: #0a0a0a;
    color: #f5f5f5;
    border: none;
    border-radius: 1.5rem;
    padding: 1.25rem;
    box-shadow: 0 18px 42px rgba(0,0,0,.28);
}

.sbdp-booking-form-wrapper .sbdp-form-header {
    display: grid;
    gap: 0.45rem;
    margin-bottom: 0.75rem;
}

.sbdp-booking-form-wrapper .sbdp-form-header h3 {
    margin: 0;
    font-size: clamp(1.4rem, 2vw, 1.9rem);
    line-height: 1.08;
    letter-spacing: -0.03em;
    color: #fff;
}

.sbdp-booking-form-wrapper .sbdp-intro,
.sbdp-booking-form-wrapper .sbdp-duration,
.sbdp-booking-form-wrapper .sbdp-product-intro {
    margin: 0;
    color: rgba(255,255,255,.68);
}

.sbdp-grid-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 22rem);
    gap: 1rem;
    align-items: start;
}

@media (max-width: 980px) {
    .sbdp-grid-shell {
        grid-template-columns: 1fr;
    }
}

.sbdp-summary-card {
    background: #111;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 1.25rem;
    padding: 1rem;
    position: sticky;
    top: 1rem;
}

@media (max-width: 980px) {
    .sbdp-summary-card {
        position: relative;
        top: auto;
    }
}

.sbdp-field-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
}

@media (max-width: 720px) {
    .sbdp-field-grid {
        grid-template-columns: 1fr;
    }
}

.sbdp-field {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    padding: .85rem;
    background: #101010;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 1rem;
    min-width: 0;
}

.sbdp-field label,
.sbdp-label-heading {
    color: #fff;
    font-weight: 700;
}

.sbdp-field input,
.sbdp-field select {
    width: 100%;
    min-width: 0;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: .9rem;
    background: #050505;
    color: #fff;
    padding: .8rem .9rem;
}

.sbdp-number-control {
    display: flex;
    align-items: center;
    gap: .45rem;
    width: 100%;
    border: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
}

.sbdp-number-control > button,
.sbdp-number-control > .ui-btn {
    flex: 0 0 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.12);
    background: #151515;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.sbdp-number-display {
    flex: 1 1 auto;
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    padding: .55rem .85rem;
    border-radius: .95rem;
    border: 1px solid rgba(255,255,255,.08);
    background: #050505;
}

#sbdp_participants {
    width: 3ch;
    min-width: 3ch;
    max-width: 3.5ch;
    text-align: right;
    border: 0;
    background: transparent;
    color: #fff;
    font-weight: 700;
    padding: 0;
}

#sbdp_participants_suffix,
.sbdp-number-display__suffix {
    color: rgba(255,255,255,.62);
    font-weight: 600;
}

.sbdp-chip-row,
.sbdp-slot-chips,
.sbdp-slot-grid {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.ui-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .7rem .95rem;
    min-height: 2.5rem;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.1);
    background: #111;
    color: #fff;
    text-align: center;
}

.ui-chip.is-active,
.ui-chip[aria-pressed="true"] {
    background: #d6a44a;
    border-color: #d6a44a;
    color: #050505;
}

.ui-chip.is-disabled {
    opacity: .35;
    pointer-events: none;
}

.sbdp-combi-list {
    display: grid;
    gap: .7rem;
    margin-top: .35rem;
}

.sbdp-combi-option {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .8rem;
    align-items: center;
    padding: .9rem 1rem;
    border-radius: 1rem;
    border: 1px solid rgba(255,255,255,.08);
    background: #101010;
    color: #fff;
}

.sbdp-combi-option.is-active {
    border-color: rgba(214,164,74,.7);
    background: rgba(214,164,74,.12);
}

.sbdp-combi-option img {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: .85rem;
    object-fit: cover;
}

.sbdp-combi-info {
    min-width: 0;
    display: grid;
    gap: .2rem;
}

.sbdp-combi-label {
    color: #fff;
    font-weight: 700;
}

.sbdp-combi-meta,
.sbdp-combi-description,
.sbdp-combi-price {
    color: rgba(255,255,255,.68);
}

.sbdp-combi-timing {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: .55rem;
}

.sbdp-combi-timing-option {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .45rem .7rem;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.1);
    background: #050505;
    color: #fff;
}

.sbdp-combi-timing-option:has(input:checked) {
    border-color: rgba(214,164,74,.7);
    background: rgba(214,164,74,.12);
}

.sbdp-summary-breakdown-line,
[data-summary-breakdown] > * {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .75rem;
    padding-top: .7rem;
    margin-top: .7rem;
    border-top: 1px solid rgba(255,255,255,.08);
    color: rgba(255,255,255,.74);
}

[data-sbdp-summary-total] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: .75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255,255,255,.12);
}

[data-sbdp-summary-total] strong,
#sbdp_summary_total {
    font-size: clamp(1.5rem, 2vw, 1.95rem);
    line-height: 1;
    color: #fff;
}

.sbdp-actions-row {
    display: flex;
    gap: .75rem;
    margin-top: 1rem;
    flex-wrap: wrap;
}

.sbdp-actions-row .ui-btn,
.sbdp-actions-row button,
.sbdp-actions-row a {
    flex: 1 1 0;
    min-width: 10rem;
    min-height: 2.85rem;
    border-radius: .95rem;
    border: 1px solid rgba(255,255,255,.1);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
}

.sbdp-actions-row .ui-btn--primary,
.sbdp-actions-row .button-primary,
.sbdp-actions-row .sbdp-button--primary {
    background: #d6a44a;
    border-color: #d6a44a;
    color: #050505;
    font-weight: 700;
}

.sbdp-actions-row .ui-btn--secondary,
.sbdp-actions-row .sbdp-button--secondary {
    background: #101010;
    color: #fff;
}

body.single-product .sbdp-booking-form-wrapper,
body.single-product #sbdp-booking-form {
    background: var(--ui-color-surface);
    color: var(--ui-color-text);
    border-color: transparent;
    border-radius: var(--ui-radius-card);
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.18);
}

body.single-product .sbdp-form-header,
body.single-product .sbdp-step-card,
body.single-product .sbdp-summary-card {
    background: var(--ui-color-surface-2);
    border: 1px solid var(--ui-color-border-subtle);
    border-radius: var(--ui-radius-card);
}

body.single-product .sbdp-form-header {
    display: grid;
    gap: var(--ui-space-sm);
    margin-bottom: var(--ui-space-2xl);
    padding: var(--ui-space-lg);
}

body.single-product .sbdp-form-kicker,
body.single-product .sbdp-step-card__eyebrow {
    font-size: var(--ui-text-xs);
    font-weight: var(--ui-weight-bold);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ui-color-text-muted);
}

body.single-product .sbdp-form-title,
body.single-product .sbdp-step-card__title,
body.single-product .sbdp-programma-title {
    margin: 0;
    font-family: var(--ui-font-display);
    font-size: var(--ui-text-2xl);
    line-height: var(--ui-leading-tight);
    color: var(--ui-color-text);
}

body.single-product .sbdp-product-intro,
body.single-product .sbdp-step-card__hint,
body.single-product .sbdp-field-note,
body.single-product .sbdp-summary-context {
    margin: 0;
    color: var(--ui-color-text-muted);
    font-size: var(--ui-text-sm);
    line-height: var(--ui-leading-body);
}

body.single-product .sbdp-meta-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ui-space-xs);
}

body.single-product .sbdp-meta-chip {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: 0.45rem 0.8rem;
    border: 1px solid var(--ui-color-border-subtle);
    border-radius: var(--ui-radius-pill);
    background: var(--ui-color-surface);
    color: var(--ui-color-text);
    font-size: var(--ui-text-sm);
}

body.single-product .sbdp-product-flow {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--ui-space-lg);
    align-items: start;
    width: 100%;
}

body.single-product .sbdp-product-flow__main {
    display: grid;
    gap: var(--ui-space-lg);
    min-width: 0;
    width: 100%;
}

body.single-product .sbdp-step-card {
    display: grid;
    gap: var(--ui-space-md);
    padding: var(--ui-space-lg);
    min-width: 0;
}

body.single-product .sbdp-step-card__header {
    display: grid;
    gap: var(--ui-space-2xs);
}

body.single-product .sbdp-field,
body.single-product .sbdp-combi-item {
    background: var(--ui-color-surface);
    border-color: var(--ui-color-border-subtle);
    border-radius: var(--ui-radius-lg);
}

body.single-product .sbdp-label-heading {
    color: var(--ui-color-text-muted);
}

body.single-product .sbdp-input-standard,
body.single-product .sbdp-number-display,
body.single-product .sbdp-segment-control {
    background: var(--ui-color-surface);
    color: var(--ui-color-text);
    border-color: var(--ui-color-border-subtle);
}

body.single-product .sbdp-number-control > button,
body.single-product .sbdp-number-control > .ui-btn {
    background: var(--ui-color-surface-2);
    border-color: var(--ui-color-border-subtle);
    color: var(--ui-color-text);
}

body.single-product .sbdp-number-display__suffix,
body.single-product .sbdp-combi-price,
body.single-product .sbdp-summary-row {
    color: var(--ui-color-text-muted);
}

body.single-product .sbdp-timeslot-chips {
    display: grid;
    gap: 0.5rem;
    grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
    position: relative;
    isolation: isolate;
}

body.single-product .sbdp-field-grid {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
}

body.single-product .ddb-slot {
    min-height: 4.25rem;
    justify-content: center;
    gap: 0.15rem;
    border-radius: var(--ui-radius-lg);
    border: 1px solid var(--ui-color-border-subtle);
    background: var(--ui-color-surface);
    color: var(--ui-color-text);
    position: relative;
    z-index: 1;
}

body.single-product .ddb-slot:hover:not(.is-disabled):not(:disabled) {
    border-color: color-mix(in srgb, var(--ui-color-primary) 45%, var(--ui-color-border));
    background: var(--ui-color-surface-2);
}

body.single-product .ddb-slot--selected,
body.single-product .ddb-slot.is-active {
    background: color-mix(in srgb, var(--ui-color-primary) 12%, var(--ui-color-surface));
    border-color: var(--ui-color-primary);
    color: var(--ui-color-text);
}

body.single-product .ddb-slot--limited {
    border-color: color-mix(in srgb, var(--ui-color-warning) 45%, var(--ui-color-border));
}

body.single-product .ddb-slot--unavailable,
body.single-product .ddb-slot:disabled,
body.single-product .ddb-slot.is-disabled {
    opacity: 0.56;
    background: var(--ui-color-surface);
    color: var(--ui-color-text-muted);
}

body.single-product .ddb-slot__time {
    font-weight: var(--ui-weight-bold);
    font-size: var(--ui-text-md);
}

body.single-product .ddb-slot__capacity {
    font-size: var(--ui-text-xs);
    color: var(--ui-color-text-muted);
}

body.single-product .sbdp-combi-list {
    gap: var(--ui-space-md);
}

body.single-product .sbdp-combi-item {
    margin: 0;
    padding: var(--ui-space-md);
}

body.single-product .sbdp-combi-timing {
    max-width: 100%;
    min-width: 0;
    overflow-x: clip;
}

body.single-product .sbdp-combi-timing-option {
    box-sizing: border-box;
    flex: 1 1 min(100%, 9rem);
    justify-content: center;
    min-width: 0;
}

body.single-product .sbdp-combi-header {
    align-items: flex-start;
    margin-bottom: var(--ui-space-sm);
}

body.single-product .sbdp-combi-thumb {
    width: 4rem;
    height: 4rem;
    border-radius: var(--ui-radius-md);
}

body.single-product .sbdp-combi-info h4 {
    margin: 0;
    color: var(--ui-color-text);
    font-size: var(--ui-text-md);
}

body.single-product .sbdp-segment-control label {
    color: var(--ui-color-text-muted);
}

body.single-product .sbdp-segment-control input[type="radio"]:checked + label {
    background: color-mix(in srgb, var(--ui-color-primary) 14%, var(--ui-color-surface));
    color: var(--ui-color-text);
}

body.single-product .sbdp-summary-card {
    display: grid;
    gap: var(--ui-space-md);
    padding: var(--ui-space-lg);
    position: static;
}

body.single-product .woocommerce-product-gallery,
body.single-product .woocommerce-product-gallery__wrapper,
body.single-product .woocommerce-product-gallery__image {
    box-sizing: border-box;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
}

body.single-product .sbdp-programma-block {
    display: grid;
    gap: var(--ui-space-sm);
}

body.single-product .sbdp-itinerary {
    display: grid;
    gap: var(--ui-space-sm);
    margin: 0;
    padding: 0;
    list-style: none;
}

body.single-product .sbdp-itinerary__item {
    display: grid;
    grid-template-columns: minmax(6rem, auto) minmax(0, 1fr) auto;
    gap: var(--ui-space-sm);
    align-items: start;
    padding: var(--ui-space-sm);
    border: 1px solid var(--ui-color-border-subtle);
    border-radius: var(--ui-radius-lg);
    background: var(--ui-color-surface);
}

body.single-product .sbdp-itinerary__item--main {
    border-color: color-mix(in srgb, var(--ui-color-primary) 42%, var(--ui-color-border));
    background: color-mix(in srgb, var(--ui-color-primary) 9%, var(--ui-color-surface));
}

body.single-product .sbdp-itinerary__time,
body.single-product .sbdp-itinerary__price {
    font-size: var(--ui-text-sm);
    font-weight: var(--ui-weight-semibold);
    color: var(--ui-color-text);
}

body.single-product .sbdp-itinerary__body {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

body.single-product .sbdp-itinerary__title {
    color: var(--ui-color-text);
    font-size: var(--ui-text-md);
}

body.single-product .sbdp-itinerary__meta,
body.single-product .sbdp-itinerary__empty {
    color: var(--ui-color-text-muted);
    font-size: var(--ui-text-sm);
}

body.single-product .sbdp-summary-list {
    display: grid;
    gap: var(--ui-space-xs);
}

body.single-product .sbdp-summary-row,
body.single-product .sbdp-summary-total {
    padding: 0;
}

body.single-product #sbdp_summary_total,
body.single-product .sbdp-summary-total strong {
    color: var(--ui-color-primary);
}

body.single-product .sbdp-actions-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--ui-space-sm);
}

body.single-product .sbdp-actions-row .ui-btn--primary,
body.single-product .sbdp-actions-row .button-primary,
body.single-product .sbdp-actions-row .sbdp-button--primary {
    background: var(--ui-color-primary);
    border-color: var(--ui-color-primary);
    color: var(--ui-color-primary-contrast);
}

body.single-product .sbdp-actions-row .ui-btn--secondary,
body.single-product .sbdp-actions-row .sbdp-button--secondary {
    background: var(--ui-color-surface);
    border-color: var(--ui-color-border-subtle);
    color: var(--ui-color-text);
}

@media (min-width: 720px) {
    body.single-product .sbdp-actions-row {
        grid-template-columns: 1.2fr 1fr;
    }
}

@media (max-width: 640px) {
    body.single-product .sbdp-itinerary__item {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .single-product .product,
    .single-product .elementor-location-single,
    .single-product .sbdp-booking-form-wrapper,
    .single-product #sbdp-booking-form {
        padding-bottom: max(6rem, env(safe-area-inset-bottom, 0px) + 5rem);
    }

    body.single-product #sbdp-booking-form .sbdp-summary-card,
    body.single-product #sbdp-booking-form .sbdp-summary-card *,
    body.single-product .sbdp-summary-total,
    body.single-product [data-sbdp-summary-total],
    body.single-product .ddb-mobile-bottom__label,
    body.single-product .ddb-mobile-bottom__icon,
    body.single-product .ddb-mobile-bottom__icon *,
    body.single-product .sbdp-sticky-cta {
        pointer-events: none;
    }

    body.single-product .ddb-mobile-bottom__item,
    body.single-product .ddb-mobile-bottom__item > button,
    body.single-product .ddb-mobile-bottom__item > [role="button"],
    body.single-product .ddb-mobile-bottom__item input,
    body.single-product .ddb-mobile-bottom__item select,
    body.single-product .ddb-mobile-bottom__item textarea,
    body.single-product #sbdp-booking-form .sbdp-actions-row,
    body.single-product #sbdp-booking-form .sbdp-actions-row .ui-btn,
    body.single-product #sbdp-booking-form .sbdp-actions-row button,
    body.single-product #sbdp-booking-form .sbdp-actions-row a,
    body.single-product .sbdp-sticky-cta button,
    body.single-product .sbdp-sticky-cta a {
        pointer-events: auto;
    }

    body.single-product .sbdp-timeslot-chips,
    body.single-product .ddb-slot {
        scroll-margin-top: 5rem;
        scroll-margin-bottom: max(10rem, env(safe-area-inset-bottom, 0px) + 8rem);
    }

    body.single-product #sbdp-booking-form button[type="submit"],
    body.single-product .ddb-slot,
    body.single-product .sbdp-actions-row .ui-btn--primary,
    body.single-product .sbdp-actions-row .button-primary,
    body.single-product .sbdp-actions-row .sbdp-button--primary {
        position: relative;
        z-index: 1;
        scroll-margin-bottom: max(8rem, env(safe-area-inset-bottom, 0px) + 7rem);
    }
}
