/* Shared customer-facing décor dialog theme. */
.decor-dialogs { --decor-dialog-dark: #222; --decor-dialog-pink: #e58396; --decor-dialog-rose: #a83d58; }
.decor-dialogs .modal .modal-content { background: #fff !important; color: #222 !important; border: 0 !important; border-radius: 24px !important; overflow: hidden; display: flex; flex-direction: column; max-height: calc(100dvh - 56px) !important; font: 400 16px/1.6 Arial, sans-serif; }
.decor-dialogs .modal .modal-header { background: #222 !important; color: #fff !important; padding: 28px 32px !important; border: 0 !important; align-items: flex-start; gap: 20px; flex-shrink: 0; }
.decor-dialogs .modal .modal-header :is(.modal-title, .vmwp-modal-title, .vmwp-lightbox-title) { color: #fff !important; font: 700 30px/1.25 "Lora", Georgia, serif !important; text-transform: none !important; letter-spacing: normal; margin: 0; }
.decor-dialogs .modal .modal-header :is(.pb-checkout-subtitle, .vmwp-modal-subtitle, .decor-dialog-subtitle), .decor-dialogs .decor-media-editor .modal-header p { color: #d6dcde !important; font: 400 15px/1.6 Arial, sans-serif !important; margin: 12px 0 0; }
.decor-dialogs .modal .modal-header .decor-dialog-eyebrow { color: #f2a4b5 !important; font: 700 11px/1.5 Arial, sans-serif !important; text-transform: uppercase; letter-spacing: 1.8px; margin: 0 0 18px; }
.decor-dialogs .modal .modal-header .btn-close { width: 44px !important; height: 44px !important; flex: 0 0 44px; min-width: 44px; padding: 0 !important; margin: 0 !important; border: 1px solid #ffffff60; border-radius: 50%; background-color: transparent !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cpath d='M3 3l12 12M15 3L3 15' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") !important; background-position: center; background-repeat: no-repeat; background-size: 18px !important; filter: none !important; opacity: 1; }
.decor-dialogs .modal .modal-body { padding: 28px 32px !important; background: #fff !important; color: #222; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.decor-dialogs .modal .modal-footer { padding: 20px 32px !important; background: #fff !important; border-top: 1px solid #dfe2e3 !important; flex-shrink: 0; gap: 12px; }
.decor-dialogs .modal :is(.form-control, .form-select) { color: #222 !important; background-color: #fff !important; border: 1px solid #cfd6d8; border-radius: 8px !important; min-height: 48px; padding: 12px 14px; font: 400 16px/1.5 Arial, sans-serif !important; box-shadow: none; }
.decor-dialogs .modal :is(.form-control, .form-select)::placeholder { color: #78868d; opacity: 1; }
.decor-dialogs .modal .modal-body :is(label, legend) { color: #222; }
.decor-dialogs .modal :is(.btn, .decor-button) { min-height: 44px; font-family: Arial, sans-serif !important; font-weight: 700; text-transform: none !important; letter-spacing: normal; border-radius: 999px; }
.decor-dialogs .modal :is(.btn-primary, .btn-dark, .btn-success), .decor-dialogs .modal .decor-button:not(.decor-button-outline) { background: #e58396 !important; border-color: #e58396 !important; color: #222 !important; }
.decor-dialogs .modal :is(.btn-primary, .btn-dark, .btn-success):hover, .decor-dialogs .modal .decor-button:not(.decor-button-outline):hover { background: #ed9aae !important; border-color: #ed9aae !important; }
.decor-dialogs .modal :is(.btn-secondary, .btn-light, .btn-outline-dark, .decor-button-outline) { background: #fff !important; border-color: #b6bfc3 !important; color: #3e4c53 !important; }
.decor-dialogs .modal :is(button, input, select, textarea):focus-visible { outline: 3px solid #e58396; outline-offset: 2px; }
.decor-dialogs .modal .form-control.is-invalid { border-color: #b72748; }
.decor-dialogs .modal a { color: #a83d58; }
.decor-dialogs #appointmentModal .modal-dialog { max-width: 1040px; }
.decor-dialogs #appointmentModal .modal-title { font-size: 34px !important; }
.decor-appointment-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 26px; }
.decor-appointment-wide { grid-column: 1 / -1; }
.decor-appointment-grid label, .decor-appointment-grid legend { display: block; font: 700 15px/1.5 Arial, sans-serif; margin: 0 0 8px; }
.decor-appointment-grid label small { display: inline; margin-left: 8px; color: #73818a; font-size: 12px; font-weight: 400; }
.decor-appointment-meeting { margin: 0; padding: 0; min-width: 0; border: 0; }
.decor-appointment-meeting legend { float: none; width: auto; margin-bottom: 12px; }
.decor-appointment-meeting > div { display: flex; gap: 14px; flex-wrap: wrap; }
.decor-appointment-meeting > div > label { display: flex; align-items: center; gap: 10px; min-height: 48px; margin: 0; padding: 10px 16px; border: 1px solid #cfd6d8; border-radius: 8px; background: #f8f9f9; font-weight: 400; cursor: pointer; }
.decor-appointment-meeting label:has(input:checked) { background: #fff5f7; border-color: #e58396; }
.decor-appointment-meeting input { width: 18px; height: 18px; margin: 0; accent-color: #a83d58; }
.decor-dialog-notice { display: flex; align-items: flex-start; gap: 12px; margin: 22px 0 0; padding: 16px; background: #f4f6f5; color: #65757d; border-radius: 8px; font: 400 14px/1.65 Arial, sans-serif; }
.decor-dialog-notice > :first-child { flex-shrink: 0; width: 18px; margin-top: 3px; }
.decor-dialogs #appointmentModal .modal-footer .btn { padding: 14px 22px; font-size: 14px; }
.decor-dialogs #submitAppointmentRequest { display: inline-flex; align-items: center; justify-content: center; gap: 20px; }
.decor-dialogs #appointmentConfirmationModal .modal-body p { margin-bottom: 20px; }
.decor-dialogs .fancybox-bg { background: #222; }
.decor-dialogs .fancybox-toolbar { background: #222; border-radius: 0 0 0 12px; }
.decor-dialogs .fancybox-button { background: #222; color: #fff; }
.decor-dialogs .fancybox-button:hover { color: #f2a4b5; }
.decor-dialogs .fancybox-caption__body { color: #fff; font-family: Arial, sans-serif; }
.decor-dialogs #toast-container > div { background-color: #e58396 !important; color: #222; border-left: 4px solid #222; border-radius: 12px; font: 400 14px/1.6 Arial, sans-serif; }
.decor-dialogs #toast-container :is(.toast-close-button, a) { color: #222; text-shadow: none; }
@media (max-width: 767.98px) {
    .decor-dialogs .modal { padding: 0 !important; }
    .decor-dialogs .modal .modal-dialog { width: 100% !important; max-width: none !important; height: 100% !important; min-height: 100% !important; max-height: none !important; margin: 0 !important; padding: 0; }
    .decor-dialogs .modal .modal-content { width: 100% !important; height: 100dvh !important; min-height: 100dvh !important; max-height: 100dvh !important; border-radius: 0 !important; }
    .decor-dialogs .modal .modal-header { padding: max(24px, env(safe-area-inset-top)) 20px 24px !important; gap: 12px; }
    .decor-dialogs .modal .modal-header :is(.modal-title, .vmwp-modal-title, .vmwp-lightbox-title), .decor-dialogs #appointmentModal .modal-title { font-size: 28px !important; }
    .decor-dialogs .modal .modal-header .btn-close { width: 40px !important; height: 40px !important; flex-basis: 40px; min-width: 40px; }
    .decor-dialogs .modal .modal-body { padding: 24px 20px !important; flex: 1 1 auto; }
    .decor-dialogs .modal .modal-footer { padding: 16px 20px max(16px, env(safe-area-inset-bottom)) !important; }
    .decor-dialogs #appointmentModal .modal-footer { flex-direction: column; gap: 8px; }
    .decor-dialogs #appointmentModal .modal-footer .btn { width: 100%; margin: 0; min-height: 44px; }
    .decor-dialogs #appointmentModal .modal-footer .decor-dialog-cancel { order: 1; border-color: transparent !important; }
    .decor-dialogs .decor-appointment-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .decor-dialogs .decor-appointment-meeting > div { flex-direction: column; }
    .decor-dialogs .decor-appointment-meeting > div > label { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .decor-dialogs .modal.fade .modal-dialog { transition: none; }
}
.decor-dialogs .modal [data-bs-dismiss='modal'].btn-outline-danger { background: #fff !important; color: #3e4c53 !important; border-color: #b6bfc3 !important; }
.decor-dialogs #decorMediaEditor :is(input[type='text'], select, textarea) { font-size: 16px !important; min-height: 48px; border-radius: 8px; }
.decor-appointment-grid > div { min-width: 0; }
.decor-media-discard { flex: 1 0 100%; padding: 14px; border: 1px solid #e58396; background: #fff5f7; border-radius: 10px; }
.decor-media-discard[hidden] { display: none; }
.decor-media-discard p { margin: 0 0 10px; font: 400 14px/1.5 Arial, sans-serif; }
.decor-media-discard > div { display: flex; gap: 10px; flex-wrap: wrap; }
.decor-dialogs.modal-open:not(.browse-decor-page) header,
.decor-dialogs.modal-open :is(#pbcsMobileNav, .offcanvas, .offcanvas-backdrop) { visibility: hidden !important; pointer-events: none !important; }
.decor-dialogs .offcanvas .offcanvas-header { background: #222; color: #fff; }
.decor-dialogs .offcanvas .offcanvas-title { color: #fff; font-family: 'Lora', Georgia, serif; }
.decor-dialogs .offcanvas .offcanvas-body { background: #fff; color: #222; }
.decor-dialogs #pbCategorySheet :is(.pbcs-drag-area, .pb-cat-sheet-header) { background: #222; color: #fff; }
.decor-dialogs #pbCategorySheet .pbcs-drag-handle { background: #ffffff60; }
.decor-dialogs #pbCategorySheet .pb-cat-sheet-title { color: #fff; font: 700 26px/1.3 'Lora', Georgia, serif; }
.decor-dialogs #pbCategorySheet .pb-cat-sheet-close { min-width: 44px; min-height: 44px; border: 1px solid #ffffff60; border-radius: 50%; background: transparent; color: #fff; }
.decor-dialogs #pbCategorySheet .pb-cat-sheet-body { background: #fff; color: #222; }
@media (max-width: 767.98px) { .decor-dialogs #pbCategorySheet { border-radius: 0; } }

/* Appointment modal uses the homepage contact form's white surface and controls. */
.decor-dialogs #appointmentModal .modal-dialog { max-width: 940px; }
.decor-dialogs #appointmentModal .modal-header { align-items: center; padding: 20px 24px 12px !important; background: #fff !important; color: #111 !important; }
.decor-dialogs #appointmentModal .modal-header .modal-title { color: #111 !important; font-size: 30px !important; }
.decor-dialogs #appointmentModal .modal-header .btn-close { border-color: #d6d6d6; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cpath d='M3 3l12 12M15 3L3 15' fill='none' stroke='%23222' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") !important; }
.decor-dialogs #appointmentModal .modal-body { padding: 4px 24px 0 !important; }
.decor-dialogs #appointmentModal .decor-appointment-grid { gap: 12px 22px; }
.decor-dialogs #appointmentModal .decor-appointment-grid label { margin-bottom: 6px; font-size: 14px; line-height: 1.4; }
.decor-dialogs #appointmentModal .decor-appointment-grid label small { margin-left: 8px; color: #606971; font-size: 12px; font-weight: 400; }
.decor-dialogs #appointmentModal .decor-appointment-group-title,
.decor-dialogs #appointmentModal .decor-appointment-meeting legend { color: #555b60; font: 700 13px/1.4 Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.decor-dialogs #appointmentModal .decor-appointment-group-title { margin: 0 0 2px; }
.decor-dialogs #appointmentModal .form-control { min-height: 42px; padding: 9px 14px; border-radius: 6px !important; font-size: 15px !important; }
.decor-dialogs #appointmentModal textarea.form-control { min-height: 82px; }
.decor-dialogs #appointmentModal .decor-appointment-meeting { margin-top: 6px; }
.decor-dialogs #appointmentModal .decor-appointment-meeting legend { width: 100%; margin-bottom: 12px; border-top: 1px solid #ccc; padding-top: 14px; }
.decor-dialogs #appointmentModal .decor-appointment-meeting > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.decor-dialogs #appointmentModal .decor-appointment-meeting > div > label { width: 100%; min-height: 50px; padding: 10px 14px; margin: 0; border-color: #bfc3c5; background: #fff; color: #111; font-size: 17px; font-weight: 700; gap: 10px; }
.decor-dialogs #appointmentModal .decor-appointment-meeting label > svg { flex: 0 0 30px; width: 30px; height: 30px; }
.decor-dialogs #appointmentModal .decor-appointment-meeting label:has(input:checked) { border-color: #a83d58; background: #fcf0f2; }
.decor-dialogs #appointmentModal .decor-appointment-meeting label:has(input:checked) > svg { color: #a83d58; }
.decor-dialogs #appointmentModal .decor-appointment-meeting label:has(input:focus-visible) { outline: 3px solid #e58396; outline-offset: 2px; }
.decor-dialogs #appointmentModal .modal-footer { display: flex; flex-direction: column; align-items: stretch; padding: 12px 24px 20px !important; gap: 10px; border-top: 0 !important; }
.decor-dialogs #appointmentModal #submitAppointmentRequest { width: 100%; min-height: 48px; margin: 0; padding: 12px 20px; font-size: 16px; }
.decor-dialogs #appointmentModal .decor-appointment-disclaimer { margin: 0; color: #505b65; font: 400 12px/1.6 Arial, sans-serif; }
@media (max-width: 767.98px) {
    .decor-dialogs #appointmentModal .modal-header { padding: max(18px, env(safe-area-inset-top)) 20px 12px !important; }
    .decor-dialogs #appointmentModal .modal-header .modal-title { font-size: 26px !important; }
    .decor-dialogs #appointmentModal .modal-body { padding: 4px 20px 12px !important; }
    .decor-dialogs #appointmentModal .decor-appointment-grid { gap: 16px; }
    .decor-dialogs #appointmentModal .form-control { min-height: 44px; font-size: 16px !important; }
    .decor-dialogs #appointmentModal .decor-appointment-meeting > div { grid-template-columns: 1fr; gap: 10px; }
    .decor-dialogs #appointmentModal .modal-footer { padding: 12px 20px max(16px, env(safe-area-inset-bottom)) !important; }
}

/* Reservation details and the live pricing summary share one scrolling body. */
.decor-dialogs #pbCheckoutModal .modal-dialog { max-width:1240px; }
.decor-dialogs #pbCheckoutModal .modal-content { max-height:calc(100dvh - 32px) !important; }
.decor-dialogs #pbCheckoutModal .modal-header { padding:26px 36px !important; }
.decor-dialogs #pbCheckoutModal .modal-title { font-size:38px !important; }
.decor-dialogs #pbCheckoutModal #pbCheckoutSubtitle { color:#fff !important; font-size:20px !important; margin-top:10px; }
#pbCheckoutModal .pb-checkout-steps { display:flex; flex-wrap:nowrap; align-items:center; gap:0; padding:18px 36px; margin:0; border-bottom:1px solid #eee; flex-shrink:0; }
#pbCheckoutModal .pb-step { position:relative; display:flex; align-items:center; justify-content:flex-start; gap:10px; padding:7px 12px; border:0; border-radius:32px; background:none; opacity:1; color:#626568; }
#pbCheckoutModal .pb-step + .pb-step { margin-left:44px; }
#pbCheckoutModal .pb-step + .pb-step::before { content:""; position:absolute; width:32px; height:2px; background:#bdc0c1; right:calc(100% + 6px); top:50%; }
#pbCheckoutModal .pb-step.active { background:#f9e3e8; color:#222; }
#pbCheckoutModal .pb-step-badge { width:34px; height:34px; flex:0 0 34px; font-size:17px; background:#e6e6e5; color:#626568; }
#pbCheckoutModal .pb-step.active .pb-step-badge { background:#e58396; color:#fff; }
#pbCheckoutModal .pb-step-label { font:600 17px/1.3 Arial,sans-serif; }
#pbCheckoutModal .pb-step-done, #pbCheckoutModal .pb-checkout-step-count, #pbCheckoutModal .pb-reservation-mobile-copy, #pbCheckoutModal .pb-reservation-footer-total { display:none; }
.decor-dialogs #pbCheckoutModal .pb-checkout-body { padding:24px 36px 32px !important; }
#pbCheckoutModal .pb-reservation-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:32px; align-items:start; }
.decor-dialogs #pbCheckoutModal .pb-reservation-layout h2 { font:700 30px/1.25 Lora,Georgia,serif; margin:0 0 6px; color:#222; letter-spacing:-.03em; }
#pbCheckoutModal .pb-reservation-intro { color:#555b60; font-size:17px; line-height:1.5; margin:0 0 22px; }
#pbCheckoutModal .pb-reservation-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 20px; }
#pbCheckoutModal .pb-reservation-wide { grid-column:1/-1; }
#pbCheckoutModal .pb-reservation-fields label { display:block; margin:0 0 6px; font:700 16px/1.4 Arial,sans-serif; color:#222; }
.decor-dialogs #pbCheckoutModal .pb-reservation-fields .form-control { min-width:0; width:100%; min-height:50px; padding:12px 16px; border:1px solid #bdc0c1; border-radius:10px !important; font-size:17px !important; }
.decor-dialogs #pbCheckoutModal .pb-reservation-fields input::placeholder { color:#626568; }
#pbCheckoutModal .pb-reservation-layout .pb-checkout-summary { padding:22px; background:#f5f2ef; border:0; border-radius:18px; }
#pbCheckoutModal .pb-reservation-summary-heading { padding-bottom:16px; margin-bottom:12px; border-bottom:1px solid #deddda; }
#pbCheckoutModal .pb-reservation-summary-heading p { margin:0; font-size:17px; color:#555b60; }
#pbCheckoutModal .pb-summary-row { gap:12px; padding:5px 0; }
#pbCheckoutModal .pb-summary-label, #pbCheckoutModal .pb-summary-value { font:400 17px/1.5 Arial,sans-serif; color:#222; }
#pbCheckoutModal .pb-summary-value { white-space:nowrap; text-align:right; }
#pbCheckoutModal .pb-reservation-subtotal { border-top:1px solid #deddda; margin-top:12px; padding-top:14px; }
#pbCheckoutModal .pb-reservation-layout .pb-summary-row.total { background:#f5dce2; border:0; border-radius:10px; margin:22px -6px 0; padding:12px; }
#pbCheckoutModal .pb-reservation-layout .total > div { font:700 26px/1.3 Lora,Georgia,serif; }
#pbCheckoutModal .pb-reservation-payment-note { margin:20px 0 6px; color:#626568; font-size:14px; line-height:1.5; }
.decor-dialogs #pbCheckoutModal .modal-footer { padding:18px 36px !important; flex-wrap:wrap; }
#pbCheckoutModal #pbCheckoutFooterNote { flex:1; color:#555b60 !important; font:400 14px/1.5 Arial,sans-serif; }
.decor-dialogs #pbCheckoutModal #pbCheckoutNextBtn { padding:12px 28px; min-height:52px; font-size:18px; }
#pbCheckoutModal:not([data-checkout-step="1"]) .pb-reservation-footer-total { display:none; }
@media (max-width:991.98px)
{
    .decor-dialogs #pbCheckoutModal .modal-dialog { margin:0; max-width:none; width:100%; height:100%; }
    .decor-dialogs #pbCheckoutModal .modal-content { height:100dvh; max-height:100dvh !important; border-radius:0 !important; }
    .decor-dialogs #pbCheckoutModal .modal-header { padding:16px 20px !important; gap:12px; }
    .decor-dialogs #pbCheckoutModal .modal-title { font-size:26px !important; }
    .decor-dialogs #pbCheckoutModal #pbCheckoutSubtitle { font-size:15px !important; margin-top:4px; }
    .decor-dialogs #pbCheckoutModal .modal-header .btn-close { width:36px !important; height:36px !important; flex-basis:36px; min-width:36px; }
    #pbCheckoutModal .pb-checkout-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:12px 16px 8px; border:0; gap:0; }
    #pbCheckoutModal .pb-step { display:flex; flex-direction:column; align-items:center; gap:5px; margin:0 !important; padding:4px 0; border-radius:0; background:none !important; }
    #pbCheckoutModal .pb-step + .pb-step::before { width:calc(100% - 40px); top:19px; right:calc(50% + 20px); height:1px; }
    #pbCheckoutModal .pb-step-badge { width:30px; height:30px; flex-basis:30px; font-size:15px; }
    #pbCheckoutModal .pb-step-label { font-size:12px; font-weight:400; color:#222; }
    #pbCheckoutModal .pb-step-confirmation, #pbCheckoutModal .pb-reservation-desktop-copy { display:none; }
    #pbCheckoutModal .pb-step-done, #pbCheckoutModal .pb-reservation-mobile-copy { display:inline; }
    #pbCheckoutModal .pb-checkout-step-count { display:block; margin:0 0 16px; font-size:13px; color:#626568; }
    .decor-dialogs #pbCheckoutModal .pb-checkout-body { padding:8px 20px 28px !important; }
    #pbCheckoutModal .pb-reservation-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
    .decor-dialogs #pbCheckoutModal .pb-reservation-layout h2 { font-size:24px; }
    #pbCheckoutModal .pb-reservation-intro { font-size:14px; margin-bottom:18px; }
    #pbCheckoutModal .pb-reservation-fields { grid-template-columns:minmax(0,1fr); gap:15px; }
    #pbCheckoutModal .pb-reservation-fields label { font-size:14px; margin-bottom:5px; }
    .decor-dialogs #pbCheckoutModal .pb-reservation-fields .form-control { min-height:48px; font-size:16px !important; padding:10px 12px; }
    #pbCheckoutModal .pb-reservation-layout .pb-checkout-summary { border:1px solid #eeece9; padding:0 12px 12px; border-radius:9px; background:#faf9f8; }
    #pbCheckoutModal .pb-reservation-summary-heading { margin:0 -12px 8px; padding:8px 12px; border:0; background:#f0efed; border-radius:9px 9px 0 0; }
    #pbCheckoutModal .pb-reservation-summary-heading h2, #pbCheckoutModal [data-checkout-service] { display:none; }
    #pbCheckoutModal .pb-reservation-summary-heading [data-checkout-mobile-plan] { display:block; font-size:14px; font-weight:700; color:#222; }
    #pbCheckoutModal .pb-summary-label, #pbCheckoutModal .pb-summary-value { font-size:14px; }
    #pbCheckoutModal .pb-summary-row { padding:3px 0; }
    #pbCheckoutModal .pb-reservation-subtotal { margin-top:5px; padding-top:7px; }
    #pbCheckoutModal .pb-reservation-layout .pb-summary-row.total { border-top:1px solid #deddda; border-radius:0; background:none; margin:10px 0 0; padding:9px 0 0; }
    #pbCheckoutModal .pb-reservation-layout .total > div { font:700 20px/1.3 Arial,sans-serif; }
    #pbCheckoutModal .pb-reservation-payment-note { font-size:12px; margin:8px 0 0; }
    .decor-dialogs #pbCheckoutModal .modal-footer { padding:10px 16px max(8px,env(safe-area-inset-bottom)) !important; display:flex; flex-direction:column; gap:6px; }
    #pbCheckoutModal[data-checkout-step="1"] .pb-reservation-footer-total { display:flex; justify-content:space-between; width:100%; font:700 17px/1.4 Arial,sans-serif; order:-2; }
    #pbCheckoutModal .modal-footer > div:has(#pbCheckoutNextBtn) { width:100%; order:-1; }
    .decor-dialogs #pbCheckoutModal #pbCheckoutNextBtn { width:100%; min-height:44px; padding:8px 12px; border-radius:8px; font-size:16px; }
    #pbCheckoutModal #pbCheckoutFooterNote { width:100%; margin:0; text-align:center; font-size:11px; }
    #pbCheckoutModal .modal-footer #pbContractButtonsContainer { margin:0 !important; }
    #pbCheckoutModal:not([data-checkout-step="1"]) .modal-footer > div:has(#pbCheckoutNextBtn) { display:none; }
}
#pbCheckoutModal #pbCheckoutNextBtn { display:inline-flex; align-items:center; justify-content:center; gap:12px; }
#pbCheckoutModal #pbCheckoutNextBtn svg { width:20px; height:20px; }
#pbCheckoutModal #pbCheckoutWeddingDate::-webkit-calendar-picker-indicator { width:22px; height:22px; cursor:pointer; }

/* Agreement review uses the same reservation shell and fixed action footer. */
#pbCheckoutModal .pb-step-complete .pb-step-badge { background:#e58396; color:#fff; }
#pbCheckoutModal .pb-step-complete .pb-step-label { color:#222; }
#pbCheckoutModal .pb-step-badge svg { width:18px; height:18px; }
#pbCheckoutModal .pb-agreement-intro { margin:0 0 24px; }
.decor-dialogs #pbCheckoutModal .pb-agreement-intro h2 { margin:0 0 4px; font:700 28px/1.25 Lora,Georgia,serif; letter-spacing:-.02em; color:#222; }
#pbCheckoutModal .pb-agreement-intro p { margin:0; font:400 16px/1.5 Arial,sans-serif; color:#333; }
#pbCheckoutModal .pb-agreement-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:28px; align-items:start; }
#pbCheckoutModal .pb-agreement-layout > div { min-width:0; }
#pbCheckoutModal .pb-contract-shell { border:1px solid #bdc0c1; border-radius:12px; padding:12px; }
#pbCheckoutModal .pb-agreement-document-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:0 6px 12px; }
.decor-dialogs #pbCheckoutModal .pb-agreement-layout h3 { margin:0; font:700 23px/1.3 Lora,Georgia,serif; color:#222; }
#pbCheckoutModal [data-checkout-document] { color:#b13c5a; background:none; border:0; padding:0; min-height:32px; text-align:left; text-decoration:underline; font:600 14px/1.5 Arial,sans-serif; }
#pbCheckoutModal [data-checkout-document]:focus-visible { outline:2px solid #b13c5a; outline-offset:3px; }
#pbCheckoutModal [data-checkout-document][aria-expanded="true"] svg { transform:rotate(180deg); }
#pbCheckoutModal [data-checkout-document] svg { width:13px; margin-left:4px; }
#pbCheckoutModal #pbContractContainer { height:min(45dvh,420px); min-height:200px; margin-top:12px; padding:18px; overflow:auto; overscroll-behavior:contain; border:1px solid #cfd1d2; border-radius:8px; background:#fff; font-family:Georgia,serif; }
#pbCheckoutModal #pbContractContainer[hidden] { display:none!important; }
#pbCheckoutModal #pbSignatureSection { margin-top:16px; }
#pbCheckoutModal .pb-agreement-signature-heading { display:flex; align-items:center; justify-content:space-between; margin:0 0 7px; }
.decor-dialogs #pbCheckoutModal .pb-agreement-signature-heading h3 { font:700 16px/1.4 Arial,sans-serif; }
#pbCheckoutModal #pbSignatureClearBtn { min-width:44px; min-height:32px; border:0; padding:0 2px; color:#b13c5a; background:none; text-decoration:underline; font:400 14px/1.4 Arial,sans-serif; }
#pbCheckoutModal #pbSignatureHost { border:1px solid #bdc0c1; border-radius:9px; overflow:hidden; background:#fff; }
#pbCheckoutModal .pb-agreement-signature-hint, #pbCheckoutModal #pbSignatureSignedHint { margin:5px 0 0; color:#626568; font:400 13px/1.5 Arial,sans-serif; }
#pbCheckoutModal .pb-agreement-booking { padding:20px; border-radius:12px; background:#f0efed; margin:0 0 18px; }
#pbCheckoutModal .pb-agreement-booking dl { display:grid; grid-template-columns:minmax(100px,.8fr) minmax(0,1.3fr); gap:6px 16px; margin:14px 0 0; font:400 15px/1.45 Arial,sans-serif; color:#222; }
#pbCheckoutModal .pb-agreement-booking dt { font-weight:400; }
#pbCheckoutModal .pb-agreement-booking dd { margin:0; font-weight:600; overflow-wrap:anywhere; }
#pbCheckoutModal #pbAckCard { border:0; box-shadow:none; padding:0; }
#pbCheckoutModal #pbAckCard h3 { margin-bottom:12px; }
#pbCheckoutModal .pb-agreement-ack { display:flex; align-items:flex-start; gap:12px; margin:0 0 12px; padding:0; font:400 14px/1.45 Arial,sans-serif; cursor:pointer; }
#pbCheckoutModal .pb-agreement-ack .pb-ack { flex:0 0 21px; width:21px; height:21px; min-height:21px; margin:1px 0 0; border:1px solid #92989b; border-radius:4px; cursor:pointer; }
#pbCheckoutModal .pb-agreement-ack .pb-ack:checked { background-color:#b13c5a; border-color:#b13c5a; }
#pbCheckoutModal[data-checkout-step="2"] #pbCheckoutFooterNote, #pbCheckoutModal[data-checkout-step="2"] .modal-footer > div:has(#pbCheckoutNextBtn) { display:none; }
#pbCheckoutModal #pbContractButtonsContainer { width:100%; padding:0; margin:0; border:0; align-items:center; gap:18px; }
#pbCheckoutModal .pb-agreement-footer-hint { margin:0; flex:1; text-align:center; font:400 13px/1.5 Arial,sans-serif; color:#626568; }
.decor-dialogs #pbCheckoutModal #pbContractBackBtn { min-height:44px; padding:9px 20px; white-space:nowrap; }
#pbCheckoutModal #pbContractBackBtn svg { width:16px; margin-right:5px; }
.decor-dialogs #pbCheckoutModal :is(#pbContractSignBtn,#pbContractNextBtn) { min-height:46px; padding:10px 24px; font-size:16px; white-space:normal; }
#pbCheckoutModal :is(#pbContractSignBtn,#pbContractNextBtn) svg { width:16px; margin-left:6px; }
.decor-dialogs #pbCheckoutModal #pbContractSignBtn:disabled { background:#deddda !important; border-color:#deddda !important; color:#626568 !important; opacity:1; }
@media (max-width:991.98px)
{
    #pbCheckoutModal .pb-step-complete .pb-step-badge { background:#e6e6e5; color:#222; }
    .decor-dialogs #pbCheckoutModal .pb-agreement-intro h2 { font-size:23px; }
    #pbCheckoutModal .pb-agreement-intro p { font-size:13px; }
    #pbCheckoutModal .pb-agreement-intro { margin-bottom:16px; }
    #pbCheckoutModal .pb-agreement-layout { grid-template-columns:minmax(0,1fr); grid-template-areas:"booking" "document" "acks" "signature"; gap:16px; }
    #pbCheckoutModal .pb-agreement-layout > div { display:contents; }
    #pbCheckoutModal .pb-contract-shell { grid-area:document; padding:12px; }
    #pbCheckoutModal .pb-agreement-booking { grid-area:booking; margin:0; padding:0 12px 12px; border:1px solid #deddda; border-radius:7px; background:#fff; }
    .decor-dialogs #pbCheckoutModal .pb-agreement-booking h3 { font:700 15px/1.4 Arial,sans-serif; background:#f0efed; padding:8px 12px; margin:0 -12px 8px; border-radius:7px 7px 0 0; }
    #pbCheckoutModal .pb-agreement-booking dl { grid-template-columns:minmax(96px,.9fr) minmax(0,1.5fr); font-size:13px; gap:5px 10px; margin:0; }
    #pbCheckoutModal .pb-agreement-document-heading { display:flex; flex-direction:column; align-items:flex-start; gap:3px; padding:0 0 0 38px; position:relative; }
    #pbCheckoutModal .pb-agreement-document-heading .pb-agreement-document-icon { display:block; position:absolute; left:0; top:1px; width:26px; height:32px; color:#e58396; }
    .decor-dialogs #pbCheckoutModal .pb-agreement-document-heading h3 { font:700 15px/1.4 Arial,sans-serif; }
    #pbCheckoutModal .pb-agreement-document-heading p { display:block; margin:0; font:400 11px/1.5 Arial,sans-serif; color:#626568; }
    #pbCheckoutModal [data-checkout-document] { font-size:13px; }
    #pbCheckoutModal #pbContractContainer:not([hidden]) { display:block; }
    #pbCheckoutModal #pbAckCard { grid-area:acks; }
    .decor-dialogs #pbCheckoutModal #pbAckCard h3 { font:700 15px/1.4 Arial,sans-serif; margin:0 0 8px; }
    #pbCheckoutModal .pb-agreement-ack { padding:8px 10px; margin:0 0 6px; border:1px solid #deddda; border-radius:7px; gap:10px; font-size:12px; }
    #pbCheckoutModal #pbSignatureSection { grid-area:signature; margin-top:0; position:relative; }
    #pbCheckoutModal .pb-agreement-signature-heading { margin-bottom:8px; }
    .decor-dialogs #pbCheckoutModal .pb-agreement-signature-heading h3 { font-size:15px; }
    #pbCheckoutModal #pbSignatureClearBtn { position:absolute; right:10px; bottom:26px; z-index:1; font-size:12px; }
    #pbCheckoutModal .pb-agreement-signature-hint { font-size:11px; }
    #pbCheckoutModal[data-checkout-step="2"] .modal-footer { padding:10px 12px max(10px,env(safe-area-inset-bottom)) !important; }
    #pbCheckoutModal #pbContractButtonsContainer { display:flex; flex-direction:row; gap:10px; }
    #pbCheckoutModal .pb-agreement-footer-hint { display:none; }
    .decor-dialogs #pbCheckoutModal #pbContractBackBtn { min-height:44px; padding:8px 0; border:0; font-size:13px; }
    #pbCheckoutModal #pbContractButtonsContainer > div { flex:1; }
    .decor-dialogs #pbCheckoutModal :is(#pbContractSignBtn,#pbContractNextBtn) { width:100%; padding:10px; font-size:13px; min-height:44px; }
    .decor-dialogs #pbCheckoutModal #pbContractSignBtn:disabled { background:#f5dce2 !important; border-color:#f5dce2 !important; }
}

#pbCheckoutModal .pb-agreement-document-icon { display:none; }
@media (max-width:991.98px) { #pbCheckoutModal .pb-agreement-document-heading .pb-agreement-document-icon { display:block; } }
#pbCheckoutModal .pb-agreement-ack .pb-ack { position:static !important; }
#pbCheckoutModal .pb-agreement-ack > span { flex:1; min-width:0; }
.decor-dialogs #pbCheckoutModal .pb-agreement-layout h3 { font-weight:700 !important; }
@media (min-width:992px)
{
    .decor-dialogs #pbCheckoutModal[data-checkout-step="2"] .modal-header { padding:16px 32px !important; }
    .decor-dialogs #pbCheckoutModal[data-checkout-step="2"] .modal-title { font-size:34px !important; }
    .decor-dialogs #pbCheckoutModal[data-checkout-step="2"] #pbCheckoutSubtitle { font-size:16px !important; margin-top:4px; }
    #pbCheckoutModal[data-checkout-step="2"] .pb-checkout-steps { padding:12px 32px; }
    .decor-dialogs #pbCheckoutModal[data-checkout-step="2"] .pb-checkout-body { padding:20px 32px !important; }
    #pbCheckoutModal #pbContractContainer { height:clamp(240px,31vh,320px); }
    #pbCheckoutModal .pb-agreement-intro { margin-bottom:20px; }
}

/* Payment keeps Square's hosted inputs and the amount due in a single reservation flow. */
#pbCheckoutModal .pb-payment-actions { display:none; }
#pbCheckoutModal[data-checkout-step="3"] .modal-footer > :not(.pb-payment-actions) { display:none !important; }
#pbCheckoutModal[data-checkout-step="3"] .pb-payment-actions { display:flex; align-items:center; justify-content:space-between; width:100%; gap:24px; }
#pbCheckoutModal .pb-payment-actions > p { flex:1; margin:0; color:#626568; font:400 14px/1.5 Arial,sans-serif; }
.decor-dialogs #pbCheckoutModal .pb-payment-intro h2 { margin:0 0 6px; color:#222; font:700 34px/1.25 Lora,Georgia,serif; letter-spacing:-.02em; }
#pbCheckoutModal .pb-payment-intro p { margin:0; color:#626568; font:400 18px/1.5 Arial,sans-serif; }
#pbCheckoutModal .pb-payment-intro { margin:0 0 18px; }
#pbCheckoutModal .pb-payment-heading { display:flex; align-items:center; flex-wrap:wrap; gap:10px 20px; margin-bottom:4px; }
.decor-dialogs #pbCheckoutModal .pb-payment-heading h2 { margin:0; padding-right:20px; border-right:1px solid #c9c7c5; }
#pbCheckoutModal .pb-payment-layout { display:grid; grid-template-columns:minmax(0,1.16fr) minmax(0,1fr); align-items:start; gap:32px; }
#pbCheckoutModal .pb-payment-layout > * { min-width:0; }
#pbCheckoutModal .pb-payment-heading .pb-payment-signed { display:inline-flex; align-items:center; gap:8px; background:#e5f2e7; color:#244c2d; padding:5px 14px; border-radius:28px; margin:0; font:700 15px/1.4 Arial,sans-serif; }
#pbCheckoutModal .pb-payment-signed svg { width:18px; }
.decor-dialogs #pbCheckoutModal .pb-payment-layout h3 { margin:0 0 6px; font:700 28px/1.3 Lora,Georgia,serif; font-weight:700 !important; color:#222; }
#pbCheckoutModal .pb-payment-provider { display:flex; align-items:center; gap:9px; margin:0 0 16px; color:#555b60; font:400 16px/1.5 Arial,sans-serif; }
#pbCheckoutModal .pb-payment-provider svg { width:18px; }
#pbCheckoutModal .pb-pay-box { padding:0; border:0; border-radius:0; background:none; }
#pbCheckoutModal #pb-card-container { width:100%; }
#pbCheckoutModal #pbPaymentModeRow { margin:0 0 18px; }
#pbCheckoutModal #pbPaymentModeRow label { font:700 15px/1.5 Arial,sans-serif; display:block; margin-bottom:6px; }
#pbCheckoutModal #pbPaymentModeHint { color:#626568; font:400 13px/1.5 Arial,sans-serif; margin:6px 0 0; }
#pbCheckoutModal .pb-payment-summary { padding:24px; background:#f3f0ed; border-radius:18px; }
#pbCheckoutModal .pb-payment-plan { color:#626568; font:400 17px/1.5 Arial,sans-serif; margin:0 0 18px; }
#pbCheckoutModal .pb-payment-mobile-due, #pbCheckoutModal .pb-payment-booking-dates, #pbCheckoutModal .pb-payment-breakdown-total, #pbCheckoutModal .pb-payment-mobile-note { display:none; }
#pbCheckoutModal .pb-payment-breakdown summary { color:#b13c5a; font:600 14px/1.4 Arial,sans-serif; cursor:pointer; list-style:none; margin:8px 0 12px; }
#pbCheckoutModal .pb-payment-breakdown summary::-webkit-details-marker { display:none; }
#pbCheckoutModal .pb-payment-breakdown summary svg { width:12px; margin-left:6px; transition:transform .15s ease; }
#pbCheckoutModal .pb-payment-breakdown[open] summary svg { transform:rotate(180deg); }
#pbCheckoutModal .pb-payment-breakdown dl { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 16px; border-top:1px solid #c9c7c5; padding:16px 0 0; margin:0; font:400 17px/1.5 Arial,sans-serif; color:#222; }
#pbCheckoutModal .pb-payment-breakdown dt { font-weight:400; }
#pbCheckoutModal .pb-payment-breakdown dd { text-align:right; margin:0; white-space:nowrap; }
#pbCheckoutModal .pb-payment-subtotal { margin-top:10px !important; padding-top:12px; border-top:1px solid #d8d5d3; }
#pbCheckoutModal .pb-payment-desktop-due { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:20px; padding-top:18px; border-top:1px solid #c9c7c5; }
#pbCheckoutModal .pb-payment-desktop-due h3 { margin:0; }
#pbCheckoutModal .pb-payment-desktop-due strong { background:#f0c5d0; border-radius:9px; padding:5px 14px; font:700 30px/1.3 Lora,Georgia,serif; color:#222; }
#pbCheckoutModal .pb-payment-desktop-note { margin:12px 0 4px; color:#626568; font:400 15px/1.5 Arial,sans-serif; }
.decor-dialogs #pbCheckoutModal #pbPayNowBtn { padding:12px 28px; min-height:50px; font-size:18px; white-space:normal; }
#pbCheckoutModal #pbPayNowBtn svg { width:20px; margin-left:8px; }
.decor-dialogs #pbCheckoutModal #pbPaymentBackBtn { padding:10px 28px; min-height:46px; }
#pbCheckoutModal #pb-payment-status { margin-top:16px; padding:12px; border:1px solid #d1ded3; border-radius:8px; background:#f4f8f4; color:#244c2d; font:400 14px/1.5 Arial,sans-serif; }
#pbCheckoutModal #pb-payment-status.pb-payment-error { border-color:#e9b7c4; background:#fff2f5; color:#972541; }
#pbCheckoutModal #pb-payment-status > div { min-width:0; }
#pbCheckoutModal [data-payment-status-title] { display:none; }
#pbCheckoutModal [data-payment-status-message] { display:block; overflow-wrap:anywhere; }
#pbCheckoutModal .pb-payment-status-icon { display:none; }
#pbCheckoutModal #pb-payment-status.pb-payment-error { display:flex; align-items:center; gap:18px; padding:14px 18px; border-color:#e58396; background:#fbedf0; }
#pbCheckoutModal .pb-payment-error .pb-payment-status-icon { display:block; flex-shrink:0; width:26px; height:26px; color:#ad2448; }
#pbCheckoutModal .pb-payment-error > div { border-left:1px solid #dc8fa3; padding-left:18px; }
.decor-dialogs #pbCheckoutModal .pb-payment-error [data-payment-status-title] { display:block; margin:0 0 2px; color:#972541; font:700 22px/1.3 Lora,Georgia,serif; }
#pbCheckoutModal .pb-payment-error [data-payment-status-message] { color:#333; font:400 15px/1.5 Arial,sans-serif; }
#pbCheckoutModal #pbPaymentRetryBtn { margin-top:12px; font-size:14px; }
@media (min-width:992px)
{
    .decor-dialogs #pbCheckoutModal[data-checkout-step="3"] .modal-header { padding:18px 32px !important; }
    .decor-dialogs #pbCheckoutModal[data-checkout-step="3"] .modal-title { font-size:34px !important; }
    .decor-dialogs #pbCheckoutModal[data-checkout-step="3"] #pbCheckoutSubtitle { font-size:18px !important; margin-top:4px; }
    #pbCheckoutModal[data-checkout-step="3"] .pb-checkout-steps { padding:14px 32px; justify-content:space-between; }
    #pbCheckoutModal[data-checkout-step="3"] .pb-step.active { background:none; color:#b13c5a; }
    #pbCheckoutModal .pb-payment-breakdown > summary { display:none; }
    .decor-dialogs #pbCheckoutModal[data-checkout-step="3"] .modal-body { padding:26px 36px !important; }
    #pbCheckoutModal .pb-payment-actions > p { border-left:1px solid #bfc1c3; padding-left:24px; }
}
@media (max-width:991.98px)
{
    #pbCheckoutModal[data-checkout-step="3"] .pb-checkout-step-count { text-align:center; margin-bottom:18px; }
    .decor-dialogs #pbCheckoutModal .pb-payment-intro h2 { font-size:24px; }
    #pbCheckoutModal .pb-payment-intro p { font-size:13px; }
    #pbCheckoutModal .pb-payment-intro { margin-bottom:16px; }
    #pbCheckoutModal .pb-payment-heading { gap:8px 12px; }
    .decor-dialogs #pbCheckoutModal .pb-payment-heading h2 { padding-right:12px; }
    #pbCheckoutModal .pb-payment-layout { grid-template-columns:minmax(0,1fr); gap:16px; }
    #pbCheckoutModal .pb-payment-summary { grid-row:1; padding:14px 16px; background:#fbf0f3; border-radius:12px; }
    #pbCheckoutModal #pbPaymentSummaryTitle, #pbCheckoutModal .pb-payment-desktop-due, #pbCheckoutModal .pb-payment-desktop-note { display:none; }
    #pbCheckoutModal .pb-payment-mobile-due { display:flex; flex-direction:column; gap:2px; }
    #pbCheckoutModal .pb-payment-mobile-due > span { color:#d24b6e; font:700 16px/1.4 Arial,sans-serif; }
    #pbCheckoutModal .pb-payment-mobile-due strong { color:#222; font:700 38px/1.2 Lora,Georgia,serif; }
    #pbCheckoutModal .pb-payment-plan { font-size:13px; margin:4px 0 0; }
    #pbCheckoutModal .pb-payment-breakdown dl { font-size:13px; gap:3px 12px; padding-top:10px; border-color:#e0d9db; }
    #pbCheckoutModal .pb-payment-subtotal { font-weight:700; margin-top:2px !important; padding-top:4px; border:0; }
    #pbCheckoutModal .pb-payment-breakdown-total { display:flex; align-items:center; justify-content:space-between; gap:12px; background:#f5dce2; margin:8px -5px 0; padding:6px 8px; border-radius:5px; font:700 15px/1.4 Arial,sans-serif; }
    #pbCheckoutModal .pb-payment-booking-dates { display:flex; align-items:flex-start; gap:14px; border-top:1px solid #e0d9db; padding-top:12px; margin-top:14px; }
    #pbCheckoutModal .pb-payment-booking-dates > svg { flex-shrink:0; width:23px; height:25px; color:#d24b6e; margin-top:2px; }
    #pbCheckoutModal .pb-payment-booking-dates dl { display:grid; grid-template-columns:auto minmax(0,1fr); margin:0; gap:2px 4px; font:400 12px/1.5 Arial,sans-serif; }
    #pbCheckoutModal .pb-payment-booking-dates dt { font-weight:700; }
    #pbCheckoutModal .pb-payment-booking-dates dd { margin:0; }
    #pbCheckoutModal .pb-payment-heading .pb-payment-signed { font-size:12px; padding:4px 10px; gap:6px; }
    #pbCheckoutModal .pb-payment-signed svg { width:13px; }
    .decor-dialogs #pbCheckoutModal .pb-payment-card-column h3 { font-size:23px; }
    #pbCheckoutModal .pb-payment-provider { font-size:13px; gap:7px; margin-bottom:14px; }
    #pbCheckoutModal .pb-payment-provider svg { width:14px; }
    #pbCheckoutModal .pb-payment-mobile-note { display:block; color:#626568; font:400 12px/1.5 Arial,sans-serif; margin:10px 0 0; }
    #pbCheckoutModal[data-checkout-step="3"] .modal-footer { padding:8px 16px max(8px,env(safe-area-inset-bottom)) !important; }
    #pbCheckoutModal[data-checkout-step="3"] .pb-payment-actions { flex-direction:column; gap:6px; }
    .decor-dialogs #pbCheckoutModal #pbPaymentBackBtn { order:-2; border:0; color:#b13c5a !important; min-height:32px; padding:3px 16px; font-size:13px; background:none !important; }
    .decor-dialogs #pbCheckoutModal #pbPayNowBtn { order:-1; width:100%; min-height:44px; padding:9px 12px; font-size:15px; }
    #pbCheckoutModal .pb-payment-actions > p { text-align:center; font-size:10px; }
    #pbCheckoutModal #pb-payment-status.pb-payment-error { gap:12px; padding:12px; }
    #pbCheckoutModal .pb-payment-error > div { padding-left:12px; }
    .decor-dialogs #pbCheckoutModal .pb-payment-error [data-payment-status-title] { font-size:18px; }
    #pbCheckoutModal .pb-payment-error [data-payment-status-message] { font-size:13px; }
}
#pbCheckoutModal #pbPaymentFormLoading { color:#626568; font:400 14px/1.5 Arial,sans-serif; margin:0 0 14px; }
#pbCheckoutModal .pb-payment-breakdown dl { column-gap:0; }
#pbCheckoutModal .pb-payment-breakdown dt { padding-right:16px; }
@media (min-width:992px)
{
    #pbCheckoutModal[data-checkout-step="3"] .pb-checkout-steps { justify-content:center; }
    #pbCheckoutModal[data-checkout-step="3"] .pb-step + .pb-step { margin-left:60px; }
    #pbCheckoutModal[data-checkout-step="3"] .pb-step + .pb-step::before { width:44px; right:calc(100% + 8px); }
}

/* Booking confirmation retains a clear summary after the draft cart is cleared. */
#pbCheckoutModal .pb-confirmation-actions { display:none; }
#pbCheckoutModal[data-checkout-step="4"] .modal-footer > :not(.pb-confirmation-actions) { display:none !important; }
#pbCheckoutModal[data-checkout-step="4"] .pb-confirmation-actions { display:flex; justify-content:space-between; align-items:center; gap:20px; width:100%; }
#pbCheckoutModal .pb-confirmation-actions a { color:#c23c5e; font:600 15px/1.4 Arial,sans-serif; text-decoration:underline; }
#pbCheckoutModal .pb-confirmation-actions a svg { width:15px; margin-left:6px; }
#pbCheckoutModal .pb-confirmation-actions button { padding:10px 30px; min-width:120px; }
#pbCheckoutModal .pb-confirmation-intro { text-align:center; margin:0 0 26px; }
#pbCheckoutModal .pb-confirmation-check { display:inline-flex; align-items:center; justify-content:center; width:68px; height:68px; margin:0 0 10px; border:2px solid #db5978; border-radius:50%; color:#db5978; }
#pbCheckoutModal .pb-confirmation-check svg { width:32px; height:32px; }
.decor-dialogs #pbCheckoutModal .pb-confirmation-intro h2 { margin:0 0 8px; color:#222; font:700 40px/1.25 Lora,Georgia,serif; }
#pbCheckoutModal #pbDoneTitle:focus { outline:none; }
#pbCheckoutModal #pbDoneIntroText { margin:0; color:#626568; font:400 17px/1.5 Arial,sans-serif; }
#pbCheckoutModal #pbDoneWarning { margin:12px 0 0; padding:10px; border-radius:8px; background:#fff2f5; color:#972541; font:400 14px/1.5 Arial,sans-serif; }
#pbCheckoutModal .pb-confirmation-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:24px; align-items:stretch; }
#pbCheckoutModal .pb-confirmation-summary-section { border:1px solid #deddda; border-radius:14px; padding:20px; }
.decor-dialogs #pbCheckoutModal .pb-confirmation-layout h3 { margin:0 0 5px; color:#222; font:700 27px/1.3 Lora,Georgia,serif; font-weight:700 !important; }
#pbCheckoutModal [data-done-plan] { margin:0 0 16px; color:#626568; font:400 16px/1.5 Arial,sans-serif; }
#pbCheckoutModal .pb-confirmation-summary-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:22px; }
#pbCheckoutModal .pb-confirmation-paid, #pbCheckoutModal .pb-confirmation-total { display:flex; align-items:center; justify-content:space-between; gap:12px; background:#fbedf1; padding:8px 10px; margin:0 -4px 10px; border-radius:8px; color:#222; font:700 18px/1.4 Arial,sans-serif; }
#pbCheckoutModal .pb-confirmation-pricing dl { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:5px 0; margin:0 0 10px; font:400 14px/1.5 Arial,sans-serif; color:#222; }
#pbCheckoutModal .pb-confirmation-pricing dt { font-weight:400; padding-right:12px; }
#pbCheckoutModal .pb-confirmation-pricing dd { margin:0; white-space:nowrap; text-align:right; }
#pbCheckoutModal .pb-confirmation-subtotal { padding-top:8px; margin-top:4px !important; border-top:1px solid #deddda; }
#pbCheckoutModal .pb-confirmation-total { margin-bottom:0; }
#pbCheckoutModal .pb-confirmation-logistics { border-left:1px solid #deddda; padding-left:20px; }
#pbCheckoutModal .pb-confirmation-dates { margin:0 0 18px; display:grid; grid-template-columns:minmax(0,1fr); gap:2px; font:400 14px/1.5 Arial,sans-serif; color:#626568; }
#pbCheckoutModal .pb-confirmation-dates dt { position:relative; padding-left:34px; color:#222; font-weight:700; margin-top:10px; }
#pbCheckoutModal .pb-confirmation-dates dt:first-child { margin-top:0; }
#pbCheckoutModal .pb-confirmation-dates dt svg { position:absolute; left:0; top:2px; width:20px; height:20px; }
#pbCheckoutModal .pb-confirmation-dates dd { margin:0; padding-left:34px; }
#pbCheckoutModal .pb-confirmation-address { display:flex; align-items:flex-start; gap:12px; padding-top:14px; border-top:1px solid #deddda; font:400 14px/1.5 Arial,sans-serif; color:#626568; }
#pbCheckoutModal .pb-confirmation-address > svg { width:20px; height:22px; flex-shrink:0; margin-top:2px; color:#222; }
#pbCheckoutModal .pb-confirmation-address strong { color:#222; }
#pbCheckoutModal #pbDonePickupLocation { margin:3px 0 0; overflow-wrap:anywhere; }
#pbCheckoutModal .pb-confirmation-downloads { display:flex; gap:16px; margin-top:22px; }
#pbCheckoutModal .pb-confirmation-downloads a { display:flex; align-items:center; justify-content:center; gap:10px; flex:1; padding:10px 12px; border:1px solid #aeb3b6; border-radius:28px; color:#222; text-decoration:none; text-align:center; font:700 14px/1.4 Arial,sans-serif; min-height:44px; }
#pbCheckoutModal .pb-confirmation-downloads svg { width:17px; height:18px; flex-shrink:0; }
#pbCheckoutModal #pbDoneNextSteps { margin:0; padding:28px 24px; border:0; border-radius:14px; max-width:none; text-align:left; background:#fcf0f4; }
#pbCheckoutModal #pbDoneNextStepsBody { margin:14px 0 24px; color:#555b60; font:400 17px/1.6 Arial,sans-serif; }
#pbCheckoutModal #pbDoneActions { margin:0; padding:0; border:0; }
.decor-dialogs #pbCheckoutModal #pbDonePrimaryCta { width:100%; display:flex; justify-content:center; align-items:center; gap:10px; font-size:17px; padding:12px 16px; min-height:52px; border-radius:14px; }
#pbCheckoutModal #pbDonePrimaryCta svg { width:18px; }
#pbCheckoutModal .pb-confirmation-signin { text-align:center; margin:20px 0 0; font:400 14px/1.5 Arial,sans-serif; color:#222; }
#pbCheckoutModal .pb-confirmation-signin a { color:#b13c5a; text-decoration:underline; font-weight:600; }
#pbCheckoutModal .pb-confirmation-deadline { display:flex; align-items:flex-start; gap:14px; padding-top:22px; margin:24px 0 0; border-top:1px solid #deddda; color:#626568; font:400 15px/1.6 Arial,sans-serif; }
#pbCheckoutModal .pb-confirmation-deadline svg { width:22px; height:24px; flex-shrink:0; margin-top:3px; color:#222; }
#pbCheckoutModal .pb-confirmation-balance { color:#555b60; font:600 14px/1.5 Arial,sans-serif; margin:10px 0 0; }
@media (min-width:992px)
{
    .decor-dialogs #pbCheckoutModal[data-checkout-step="4"] .modal-header { padding:16px 28px !important; }
    .decor-dialogs #pbCheckoutModal[data-checkout-step="4"] .modal-title { font-size:34px !important; }
    .decor-dialogs #pbCheckoutModal[data-checkout-step="4"] #pbCheckoutSubtitle { font-size:18px !important; margin-top:4px; }
    #pbCheckoutModal[data-checkout-step="4"] .pb-checkout-steps { justify-content:center; padding:12px 28px; }
    #pbCheckoutModal[data-checkout-step="4"] .pb-step.active { color:#cb365a; background:none; }
    #pbCheckoutModal[data-checkout-step="4"] .pb-step + .pb-step::before { background:#df6b86; }
}
@media (max-width:991.98px)
{
    .decor-dialogs #pbCheckoutModal[data-checkout-step="4"] .pb-checkout-body { padding:8px 14px 18px !important; }
    #pbCheckoutModal[data-checkout-step="4"] .pb-checkout-step-count { text-align:center; margin-bottom:16px; }
    #pbCheckoutModal[data-checkout-step="4"] .pb-step.active .pb-step-badge { background:#e58396; }
    #pbCheckoutModal .pb-confirmation-intro { margin-bottom:18px; }
    #pbCheckoutModal .pb-confirmation-check { width:54px; height:54px; border:0; background:#e58396; color:#fff; margin-bottom:6px; }
    #pbCheckoutModal .pb-confirmation-check svg { width:28px; height:28px; }
    .decor-dialogs #pbCheckoutModal .pb-confirmation-intro h2 { font-size:27px; }
    #pbCheckoutModal #pbDoneIntroText { font-size:14px; }
    #pbCheckoutModal .pb-confirmation-layout { grid-template-columns:minmax(0,1fr); gap:16px; }
    #pbCheckoutModal .pb-confirmation-summary-section { padding:0; border:0; }
    #pbCheckoutModal .pb-confirmation-summary { padding:12px; border:1px solid #deddda; border-radius:8px; }
    .decor-dialogs #pbCheckoutModal .pb-confirmation-layout h3 { font-size:21px; }
    #pbCheckoutModal [data-done-plan] { font-size:13px; margin-bottom:10px; }
    #pbCheckoutModal .pb-confirmation-summary-grid { display:flex; flex-direction:column; gap:0; }
    #pbCheckoutModal .pb-confirmation-pricing { display:contents; }
    #pbCheckoutModal .pb-confirmation-paid { order:-2; font:700 17px/1.4 Lora,Georgia,serif; margin:0 0 10px; }
    #pbCheckoutModal .pb-confirmation-logistics { order:-1; border:0; padding:0; }
    #pbCheckoutModal .pb-confirmation-dates { grid-template-columns:auto minmax(0,1fr); gap:5px 10px; font-size:12px; margin-bottom:10px; }
    #pbCheckoutModal .pb-confirmation-dates dt { margin:0; padding-left:28px; font-weight:400; }
    #pbCheckoutModal .pb-confirmation-dates dt svg { width:15px; height:15px; top:2px; }
    #pbCheckoutModal .pb-confirmation-dates dd { padding:0; text-align:right; }
    #pbCheckoutModal .pb-confirmation-address { font-size:12px; gap:10px; padding:10px 0; border-bottom:1px solid #deddda; margin-bottom:10px; }
    #pbCheckoutModal .pb-confirmation-address > svg { width:16px; height:18px; }
    #pbCheckoutModal .pb-confirmation-pricing dl { font-size:12px; gap:3px 0; }
    #pbCheckoutModal .pb-confirmation-total { font-size:16px; margin:0; border-top:1px solid #deddda; background:none; border-radius:0; padding:8px 0 0; }
    #pbCheckoutModal .pb-confirmation-downloads { flex-direction:column; gap:8px; margin-top:16px; }
    #pbCheckoutModal .pb-confirmation-downloads a { border-radius:8px; min-height:40px; padding:7px 10px; font-size:13px; }
    #pbCheckoutModal #pbDoneNextSteps { padding:16px; border-radius:8px; }
    #pbCheckoutModal #pbDoneNextStepsBody { font-size:13px; line-height:1.5; margin:6px 0 12px; }
    .decor-dialogs #pbCheckoutModal #pbDonePrimaryCta { min-height:40px; padding:8px 10px; font-size:14px; border-radius:8px; }
    #pbCheckoutModal .pb-confirmation-signin { margin-top:10px; font-size:12px; }
    #pbCheckoutModal .pb-confirmation-deadline { margin:12px 0 0; padding:12px 0 0; font-size:12px; text-align:center; justify-content:center; }
    #pbCheckoutModal .pb-confirmation-deadline svg { display:none; }
    #pbCheckoutModal[data-checkout-step="4"] .modal-footer { padding:8px 14px max(8px,env(safe-area-inset-bottom)) !important; }
    #pbCheckoutModal[data-checkout-step="4"] .pb-confirmation-actions { flex-direction:column; gap:6px; }
    #pbCheckoutModal .pb-confirmation-actions a { font-size:12px; }
    #pbCheckoutModal .pb-confirmation-actions a svg { display:none; }
    .decor-dialogs #pbCheckoutModal .pb-confirmation-actions button { width:100%; background:#e58396 !important; color:#222 !important; border-color:#e58396 !important; border-radius:8px; min-height:40px; padding:8px 12px; }
}
#pbCheckoutModal .pb-confirmation-summary { padding:0; margin:0; }
@media (max-width:991.98px)
{
    #pbCheckoutModal .pb-confirmation-summary { padding:12px; }
}
