/* SNOKU Photo — RC38.53 Booking Time V2
   Approved four-panel layout
   Development only
*/

.booking-time-v2 {
    --bt-gold: #d4af67;
    --bt-border: rgba(212,175,103,.24);
    --bt-panel: #121212;
    --bt-muted: #a5a5a5;
    color: #f4f0e8;
}

.booking-time-v2-grid {
    display: grid;
    grid-template-columns:
        minmax(0,1.25fr)
        minmax(0,1fr)
        minmax(0,1fr)
        minmax(0,1.1fr);
    gap: 14px;
    align-items: stretch;
}

.booking-time-v2-panel {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--bt-border);
    border-radius: 16px;
    background: var(--bt-panel);
}

.booking-time-v2-panel h3 {
    margin: 0 0 16px;
    color: var(--bt-gold);
    font-size: 1rem;
    font-weight: 600;
}

.booking-time-v2 .time-dial {
    padding: 12px;
    border-radius: 12px;
}

.booking-time-v2 .time-dial-columns {
    width: 100%;
    gap: 8px;
}

.booking-time-v2-summary-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 0;
    border-bottom: 1px solid rgba(255,255,255,.08);
    font-size: .88rem;
}

.booking-time-v2-summary-row span:first-child {
    color: var(--bt-muted);
}

.booking-time-v2-summary-total {
    color: var(--bt-gold);
    font-size: 1.35rem;
    font-weight: 700;
}

.booking-time-v2-actions {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-top: 22px;
}

@media (max-width: 1150px) {
    .booking-time-v2-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@media (max-width: 680px) {
    .booking-time-v2-grid {
        grid-template-columns: minmax(0,1fr);
    }

    .booking-time-v2-panel {
        padding: 14px;
    }

    .booking-time-v2-actions {
        flex-direction: column;
    }

    .booking-time-v2-actions .btn {
        width: 100%;
    }
}


/* RC38.53: calendar and independent time selectors */
.booking-time-v2-integrated {
    display: grid;
    grid-template-columns: minmax(0,1.25fr) minmax(0,3.1fr);
    gap: 14px;
    align-items: start;
}

.booking-time-v2-integrated > .booking-current-time-stage {
    min-width: 0;
    margin: 0;
}

.booking-time-v2-inner-grid {
    grid-template-columns: repeat(3,minmax(0,1fr));
}

.booking-time-v2-calendar .calendar-block {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.booking-schedule-stage .booking-reference-panel {
    max-width: none;
    width: 100%;
}

@media (max-width: 1150px) {
    .booking-time-v2-integrated {
        grid-template-columns: minmax(0,1fr);
    }

    .booking-time-v2-inner-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@media (max-width: 680px) {
    .booking-time-v2-inner-grid {
        grid-template-columns: minmax(0,1fr);
    }
}

/* RC38.53 initial four-panel state */
.booking-time-v2-placeholder-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    min-width: 0;
}

.booking-time-v2-placeholder-grid p {
    color: #a5a5a5;
    line-height: 1.5;
}

@media (max-width: 1150px) {
    .booking-time-v2-placeholder-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .booking-time-v2-placeholder-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* RC38.53 final integrated booking layout */

.booking-schedule-stage .booking-time-v2-integrated {
    display: grid;
    grid-template-columns: minmax(280px, 1.25fr) minmax(0, 3.1fr);
    gap: 14px;
    align-items: stretch;
}

.booking-time-v2-integrated > .booking-current-time-stage,
.booking-time-v2-integrated > .booking-time-v2-placeholder-grid {
    min-width: 0;
    width: 100%;
    margin: 0;
}

.booking-time-v2-integrated .booking-time-v2-inner-grid,
.booking-time-v2-integrated .booking-time-v2-placeholder-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    height: 100%;
}

.booking-time-v2-integrated .booking-time-v2-panel {
    min-width: 0;
}

.booking-time-v2-integrated .booking-time-v2-calendar {
    height: 100%;
}

.booking-time-v2-integrated .booking-time-v2-calendar .calendar-block {
    margin: 0;
}

@media (max-width: 1150px) {
    .booking-schedule-stage .booking-time-v2-integrated {
        grid-template-columns: minmax(0, 1fr);
    }

    .booking-time-v2-integrated .booking-time-v2-inner-grid,
    .booking-time-v2-integrated .booking-time-v2-placeholder-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .booking-time-v2-integrated .booking-time-v2-inner-grid,
    .booking-time-v2-integrated .booking-time-v2-placeholder-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}


/* RC38.53 mobile wheel switching */
.booking-v2-mobile-control {
    display: none;
}

@media (max-width: 680px) {
    .booking-time-v2-integrated [data-v2-mobile-start-panel][hidden],
    .booking-time-v2-integrated [data-v2-mobile-end-panel][hidden] {
        display: none !important;
    }

    .booking-v2-mobile-control {
        display: block;
        width: 100%;
        margin-top: 14px;
    }

    .booking-time-v2-integrated .booking-time-v2-inner-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}


/* RC38.53 mobile persistent booking summary */
@media (max-width: 680px) {
    .booking-time-v2-integrated .booking-time-v2-live-summary {
        position: sticky;
        bottom: 0;
        z-index: 20;
        border-color: rgba(212,175,103,.5);
        background: #121212;
        box-shadow: 0 -8px 28px rgba(0,0,0,.55);
    }
}


/* RC38.53 — Cinematic vertical time wheels */
.booking-time-v2 .time-dial {
    background: #080808;
    border: 1px solid rgba(212,175,103,.22);
    border-radius: 16px;
    padding: 14px;
}

.booking-time-v2 .time-dial-columns {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.booking-time-v2 .time-dial-column {
    flex: 1 1 0;
    min-width: 0;
}

.booking-time-v2 .time-dial-column-title {
    text-align: center;
    color: #d4af67;
    font-size: .9rem;
    margin-bottom: 10px;
}

.booking-time-v2 .time-dial-values {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    height: 322px;
    padding: 4px;
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(212,175,103,.15);
    border-radius: 12px;
    background:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.95),
            rgba(22,22,22,.9) 30%,
            rgba(40,34,24,.7) 50%,
            rgba(22,22,22,.9) 70%,
            rgba(0,0,0,.95)
        );
    list-style: none;
    touch-action: none;
    user-select: none;
    cursor: grab;
}

.booking-time-v2 .time-dial-values:active {
    cursor: grabbing;
}

.booking-time-v2 .time-dial-values .time-wheel-option {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 0;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #a6a6a6;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1;
    opacity: .75;
    cursor: pointer;
}

.booking-time-v2 .time-dial-values .time-wheel-option[data-offset="-3"],
.booking-time-v2 .time-dial-values .time-wheel-option[data-offset="3"] {
    opacity: .17;
    font-size: .8rem;
}

.booking-time-v2 .time-dial-values .time-wheel-option[data-offset="-2"],
.booking-time-v2 .time-dial-values .time-wheel-option[data-offset="2"] {
    opacity: .4;
    font-size: .9rem;
}

.booking-time-v2 .time-dial-values .time-wheel-option[data-offset="-1"],
.booking-time-v2 .time-dial-values .time-wheel-option[data-offset="1"] {
    opacity: .8;
}

.booking-time-v2 .time-dial-values .time-wheel-option.is-selected {
    background: linear-gradient(135deg,#f0cf83,#b68d44);
    border: 1px solid #f4d48b;
    box-shadow: 0 0 16px rgba(212,175,103,.3);
    color: #17120a;
    font-size: 1.5rem;
    font-weight: 700;
    opacity: 1;
}

.booking-time-v2 .time-dial-colon {
    color: #d4af67;
    font-size: 1.5rem;
    font-weight: 700;
}

@media (max-width: 680px) {
    .booking-time-v2 .time-dial-values {
        height: 294px;
    }
}


/* RC38.53 — approved cinematic Details booking summary */
body.photo-booking-shell .snoku-premium-summary {
    position: sticky;
    top: .8rem;
    display: flex;
    flex-direction: column;
    gap: 1.05rem;
    padding: clamp(1.15rem, 2.5vw, 1.7rem);
    overflow: hidden;
    border: 1px solid rgba(210,170,90,.55);
    border-radius: 17px;
    background:
        radial-gradient(ellipse at 100% 0%, rgba(180,125,35,.12), transparent 55%),
        linear-gradient(145deg, #171614 0%, #0b0b0b 100%);
    box-shadow: 0 0 0 1px rgba(230,185,85,.08), 0 22px 65px rgba(0,0,0,.32);
    animation: snoku-summary-enter .55s ease-out both;
}
body.photo-booking-shell .snoku-premium-summary::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 2px;
    background: linear-gradient(90deg, transparent, #caa35d, #f1d08b, transparent);
    opacity: .75;
    pointer-events: none;
}
body.photo-booking-shell .snoku-summary-header {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(202,163,93,.24);
}
body.photo-booking-shell .snoku-summary-icon {
    display: grid;
    place-items: center;
    flex: 0 0 43px;
    height: 43px;
    border: 1px solid rgba(220,177,94,.5);
    border-radius: 12px;
    color: #e8c27b;
    font-size: 1.65rem;
    background: rgba(202,163,93,.09);
}
body.photo-booking-shell .snoku-summary-header h2 {
    margin: 0;
    color: #f2d49c;
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    letter-spacing: .015em;
}
body.photo-booking-shell .snoku-summary-header p {
    margin: .25rem 0 0;
    color: #aaa194;
    font-size: .78rem;
}
body.photo-booking-shell .snoku-summary-section {
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(202,163,93,.16);
}
body.photo-booking-shell .snoku-summary-section h3 {
    margin: 0 0 .8rem;
    color: #d9b878;
    font-size: .9rem;
    font-weight: 600;
    letter-spacing: .035em;
}
body.photo-booking-shell .snoku-summary-rows {
    display: grid;
    gap: .75rem;
    margin: 0;
}
body.photo-booking-shell .snoku-summary-rows > div {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
}
body.photo-booking-shell .snoku-summary-rows dt {
    color: #b3a99b;
    font-size: .79rem;
    font-weight: 400;
}
body.photo-booking-shell .snoku-summary-rows dd {
    margin: 0;
    color: #f1ece4;
    font-size: .85rem;
    font-weight: 600;
    text-align: right;
    overflow-wrap: anywhere;
}
body.photo-booking-shell .snoku-summary-extra dd {
    color: #e7c07a;
}
body.photo-booking-shell .snoku-summary-total {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding: 1.2rem 1rem;
    border: 1px solid rgba(228,183,98,.65);
    border-radius: 12px;
    text-align: center;
    background: linear-gradient(135deg, rgba(115,78,25,.25), rgba(35,26,14,.85));
    box-shadow: inset 0 1px rgba(255,225,164,.08), 0 0 24px rgba(190,136,47,.09);
}
body.photo-booking-shell .snoku-summary-total span {
    color: #ddbb7e;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .14em;
}
body.photo-booking-shell .snoku-summary-total strong {
    color: #f1cd84;
    font-size: clamp(2rem, 4vw, 2.7rem);
    line-height: 1.15;
    font-weight: 700;
}
body.photo-booking-shell .snoku-summary-total small {
    color: #b8ac9a;
    font-size: .73rem;
}
body.photo-booking-shell .snoku-premium-summary .details-summary-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}
body.photo-booking-shell .snoku-premium-summary .details-summary-links .btn {
    min-width: 0;
    padding: .8rem .5rem;
    border: 1px solid rgba(206,165,91,.45);
    border-radius: 9px;
    font-size: .73rem;
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
body.photo-booking-shell .snoku-premium-summary .details-summary-links .btn:hover {
    border-color: #e6bd73;
    background: rgba(199,157,80,.13);
    transform: translateY(-2px);
}
@keyframes snoku-summary-enter {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 900px) {
    body.photo-booking-shell .snoku-premium-summary { position: static; }
}
@media (max-width: 440px) {
    body.photo-booking-shell .snoku-premium-summary .details-summary-links {
        grid-template-columns: 1fr;
    }
    body.photo-booking-shell .snoku-summary-rows > div { gap: .6rem; }
}
@media (prefers-reduced-motion: reduce) {
    body.photo-booking-shell .snoku-premium-summary { animation: none; }
    body.photo-booking-shell .snoku-premium-summary .details-summary-links .btn {
        transition: none;
    }
}


/* RC38.53 — Booking Summary finishing touches */
body.photo-booking-shell .snoku-premium-summary {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

body.photo-booking-shell .snoku-premium-summary .snoku-summary-rows {
    min-width: 0;
}

body.photo-booking-shell .snoku-premium-summary .snoku-summary-rows > div {
    min-width: 0;
}

body.photo-booking-shell .snoku-premium-summary .snoku-summary-rows dt,
body.photo-booking-shell .snoku-premium-summary .snoku-summary-rows dd {
    min-width: 0;
}

body.photo-booking-shell .snoku-premium-summary .details-summary-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

body.photo-booking-shell .snoku-premium-summary .details-summary-links .btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    width: 100%;
    box-sizing: border-box;
    padding: .8rem .65rem;
    text-align: center;
    line-height: 1.45;
    white-space: normal;
    overflow-wrap: anywhere;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .025em;
}

@media (max-width: 900px) {
    body.photo-booking-shell .details-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    body.photo-booking-shell .details-layout > * {
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    body.photo-booking-shell .snoku-premium-summary {
        position: static;
        width: 100%;
    }
}

@media (max-width: 480px) {
    body.photo-booking-shell .snoku-premium-summary {
        padding: 1.05rem;
    }

    body.photo-booking-shell .snoku-premium-summary .details-summary-links {
        grid-template-columns: 1fr;
    }

    body.photo-booking-shell .snoku-premium-summary .details-summary-links .btn {
        min-height: 48px;
        font-size: .78rem;
    }

    body.photo-booking-shell .snoku-summary-total strong {
        font-size: clamp(1.8rem, 9vw, 2.5rem);
    }
}


/* RC38.53 — premium Details form */
body.photo-booking-shell .details-form {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    gap: 1.45rem;
    padding: clamp(1.1rem, 2.4vw, 1.8rem);
    border: 1px solid rgba(203, 164, 91, .27);
    border-radius: 18px;
    background:
        radial-gradient(ellipse at 100% 0%, rgba(176, 121, 40, .055), transparent 45%),
        linear-gradient(145deg, #141313, #0d0d0d);
}

body.photo-booking-shell .details-form-header {
    display: grid;
    gap: .4rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(203, 164, 91, .2);
}

body.photo-booking-shell .details-form-header h1 {
    font-size: clamp(1.8rem, 3vw, 2.45rem);
    line-height: 1.15;
    color: #f5efe5;
}

body.photo-booking-shell .details-form-header p {
    max-width: 75ch;
    color: #bdb2a3;
    font-size: .95rem;
    line-height: 1.65;
}

body.photo-booking-shell .details-form > fieldset {
    min-width: 0;
    gap: 1rem;
    padding: clamp(1rem, 2vw, 1.3rem);
    border: 1px solid rgba(203, 164, 91, .27);
    border-radius: 14px;
    background: rgba(255, 255, 255, .012);
}

body.photo-booking-shell .details-form > fieldset > legend {
    padding: 0 .55rem;
    color: #e8c98d;
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: .015em;
}

body.photo-booking-shell .details-form .details-grid,
body.photo-booking-shell .details-form .state-zip-grid {
    min-width: 0;
    gap: 1rem;
}

body.photo-booking-shell .details-form .details-grid > *,
body.photo-booking-shell .details-form .state-zip-grid > * {
    min-width: 0;
}

body.photo-booking-shell .details-form label,
body.photo-booking-shell .details-form .field-label {
    color: #ede4d7;
    font-size: .91rem;
    font-weight: 500;
    line-height: 1.45;
}

body.photo-booking-shell .details-form label span[aria-hidden="true"] {
    color: #e6b96c;
}

body.photo-booking-shell .details-form input[type="text"],
body.photo-booking-shell .details-form input[type="number"],
body.photo-booking-shell .details-form input[type="email"],
body.photo-booking-shell .details-form input[type="tel"],
body.photo-booking-shell .details-form select,
body.photo-booking-shell .details-form textarea {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    min-height: 48px;
    border: 1px solid rgba(194, 157, 89, .33);
    border-radius: 10px;
    background-color: rgba(0, 0, 0, .42);
    color: #f6f0e8;
    font-size: 1rem;
    transition: border-color .2s ease, box-shadow .2s ease;
}

body.photo-booking-shell .details-form input:focus-visible,
body.photo-booking-shell .details-form select:focus-visible,
body.photo-booking-shell .details-form textarea:focus-visible {
    outline: 2px solid #e0b86f;
    outline-offset: 2px;
    border-color: #e0b86f;
    box-shadow: 0 0 0 4px rgba(224, 184, 111, .1);
}

body.photo-booking-shell .details-form input[aria-invalid="true"],
body.photo-booking-shell .details-form select[aria-invalid="true"],
body.photo-booking-shell .details-form textarea[aria-invalid="true"] {
    border-color: #e58e8e;
}

body.photo-booking-shell .details-form .inline-group {
    background: transparent;
}

body.photo-booking-shell .details-form .radio-row {
    gap: .75rem 1.3rem;
}

body.photo-booking-shell .details-form .radio-row label,
body.photo-booking-shell .details-form .checkbox-row {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-height: 38px;
}

body.photo-booking-shell .details-form input[type="checkbox"],
body.photo-booking-shell .details-form input[type="radio"] {
    accent-color: #d7ac63;
    flex-shrink: 0;
}

body.photo-booking-shell .details-form .help-text {
    color: #b8ad9d;
    line-height: 1.6;
}

body.photo-booking-shell .details-form .field-error {
    color: #ffaaaa;
    font-size: .85rem;
}

body.photo-booking-shell .details-form .details-errors {
    border-color: rgba(240, 137, 137, .6);
    padding: 1rem;
}

body.photo-booking-shell .details-form-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(203, 164, 91, .2);
}

body.photo-booking-shell .details-form-actions .btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    min-height: 52px;
    padding: .85rem 1rem;
    box-sizing: border-box;
    border-radius: 10px;
    text-align: center;
    white-space: normal;
    font-size: .88rem;
    font-weight: 600;
}

@media (max-width: 700px) {
    body.photo-booking-shell .details-form .details-grid.two-col {
        grid-template-columns: minmax(0, 1fr);
    }

    body.photo-booking-shell .details-form .col-span-2 {
        grid-column: auto;
    }

    body.photo-booking-shell .details-form .state-zip-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    body.photo-booking-shell .details-form {
        padding: 1rem;
        gap: 1.2rem;
    }

    body.photo-booking-shell .details-form > fieldset {
        padding: .85rem;
    }

    body.photo-booking-shell .details-form-actions {
        grid-template-columns: minmax(0, 1fr);
    }

    body.photo-booking-shell .details-form .radio-row {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.photo-booking-shell .details-form input,
    body.photo-booking-shell .details-form select,
    body.photo-booking-shell .details-form textarea {
        transition: none;
    }
}


/* RC38.53 — Event Environment radio fix */
body.photo-booking-shell .details-form .inline-group .radio-row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1.5rem;
    min-width: 0;
}

body.photo-booking-shell .details-form .inline-group .radio-row label {
    display: inline-flex;
    flex: 0 0 auto;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: .5rem;
    width: auto;
    min-width: max-content;
    min-height: 44px;
    margin: 0;
    padding: .35rem .65rem;
    border: 1px solid rgba(203, 164, 91, .3);
    border-radius: 9px;
    background: rgba(255, 255, 255, .025);
    color: #ede4d7;
    font-size: .95rem;
    font-weight: 500;
    line-height: 1.3;
    white-space: nowrap;
    overflow-wrap: normal;
    cursor: pointer;
}

body.photo-booking-shell .details-form .inline-group .radio-row input[type="radio"] {
    display: inline-block;
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    max-width: 18px;
    max-height: 18px;
    margin: 0;
    padding: 0;
    border-radius: 50%;
    accent-color: #d7ac63;
    vertical-align: middle;
}

body.photo-booking-shell .details-form .inline-group .radio-row label:has(input:checked) {
    border-color: rgba(231, 188, 109, .8);
    background: rgba(202, 163, 93, .12);
}

body.photo-booking-shell .details-form .inline-group .radio-row label:focus-within {
    outline: 2px solid #e0b86f;
    outline-offset: 2px;
}

@media (max-width: 480px) {
    body.photo-booking-shell .details-form .inline-group .radio-row {
        flex-direction: row;
        flex-wrap: wrap;
        gap: .55rem;
    }

    body.photo-booking-shell .details-form .inline-group .radio-row label {
        padding: .4rem .6rem;
        font-size: .88rem;
    }
}


/* RC38.53 - Premium Add-ons experience */

.booking-addons-app {
    width: 100%;
    max-width: 1180px;
    min-width: 0;
}

.booking-addons-app .booking-step4-panel {
    border: 1px solid rgba(210, 170, 96, .38);
    border-radius: 20px;
    background:
        radial-gradient(ellipse at 90% 0%, rgba(180, 127, 47, .07), transparent 48%),
        linear-gradient(145deg, #171411, #0c0c0c 65%);
    box-shadow: 0 24px 65px rgba(0, 0, 0, .35);
}

.booking-addons-app .booking-step4-header {
    padding: 1.3rem 1.5rem;
    border-bottom-color: rgba(218, 178, 101, .25);
}

.booking-addons-app .booking-step4-list {
    gap: 1rem;
    padding: 1.25rem;
}

.booking-addons-app .booking-step4-item {
    grid-template-columns: 160px minmax(0, 1fr) 62px;
    min-height: 150px;
    border: 1px solid rgba(202, 164, 92, .24);
    border-radius: 15px;
    background: linear-gradient(125deg, #1a1815, #111111);
    transition:
        border-color .2s ease,
        background .2s ease,
        box-shadow .2s ease,
        transform .2s ease;
}

.booking-addons-app .booking-step4-item:hover {
    border-color: rgba(231, 188, 111, .65);
    transform: translateY(-2px);
}

.booking-addons-app .booking-step4-item.is-selected,
.booking-addons-app .booking-step4-item:has([data-addon-checkbox]:checked) {
    border-color: #d8ac61;
    background: linear-gradient(125deg, #272014, #15120f);
    box-shadow: inset 0 0 0 1px rgba(215, 172, 99, .12);
}

.booking-addons-app .booking-step4-media {
    background: #0a0908;
}

.booking-addons-app .booking-step4-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.booking-addons-app .booking-step4-media-fallback {
    min-height: 150px;
    background: radial-gradient(circle, #262014, #0b0a09);
    color: #d7b776;
    letter-spacing: .2em;
}

.booking-addons-app .booking-step4-copy {
    padding: 1.15rem 1.25rem;
}

.booking-addons-app .booking-step4-name-row {
    flex-wrap: wrap;
    align-items: baseline;
}

.booking-addons-app .booking-step4-name-row strong {
    color: #f3ebdf;
    font-size: 1.1rem;
    line-height: 1.4;
}

.booking-addons-app .booking-step4-price {
    color: #edc981;
    font-size: 1.05rem;
}

.booking-addons-app .booking-step4-featured {
    padding: .25rem .55rem;
    border-color: rgba(229, 185, 106, .55);
    background: rgba(217, 171, 91, .1);
    color: #e9c47e;
}

.booking-addons-app .booking-step4-copy > p {
    color: #c4b8a7;
    font-size: .86rem;
    line-height: 1.6;
}

.booking-addons-app .booking-step4-meta {
    gap: .5rem 1rem;
    color: #a99c8c;
    font-size: .76rem;
}

.booking-addons-app .booking-step4-meta strong {
    color: #f0d29a;
}

.booking-addons-app .booking-step4-quantity {
    flex-wrap: wrap;
    gap: .6rem;
}

.booking-addons-app .booking-step4-quantity label {
    color: #d6c8b5;
    font-size: .8rem;
}

.booking-addons-app .booking-step4-quantity input {
    width: 82px;
    min-height: 42px;
    box-sizing: border-box;
    border: 1px solid rgba(213, 172, 99, .45);
    border-radius: 8px;
    background: #0c0b0a;
    color: #fff4e4;
    font-size: 1rem;
}

.booking-addons-app .booking-step4-select {
    min-width: 0;
    border-left: 1px solid rgba(214, 175, 102, .2);
    background: rgba(0, 0, 0, .13);
}

.booking-addons-app .booking-step4-select > span[aria-hidden="true"] {
    width: 30px;
    height: 30px;
    border-radius: 7px;
    border-color: rgba(221, 183, 112, .65);
}

.booking-addons-app .booking-step4-select:focus-within {
    outline: 2px solid #edc981;
    outline-offset: -4px;
}

.booking-addons-app .booking-step4-select input:checked + span[aria-hidden="true"] {
    background: #e0b96e;
    border-color: #e0b96e;
    color: #14100a;
}

.booking-addons-app .booking-step4-summary {
    padding: 1.25rem 1.5rem;
    border-top: 1px solid rgba(221, 183, 112, .3);
    background: linear-gradient(120deg, #201a12, #11100e);
}

.booking-addons-app .booking-step4-total-row small {
    color: #c8b8a0;
    font-size: .76rem;
}

.booking-addons-app .booking-step4-total-row strong {
    color: #f0cb82;
    font-size: clamp(1.4rem, 2.8vw, 2rem);
}

.booking-addons-app .booking-step4-total-row .btn {
    min-height: 52px;
    border-radius: 10px;
    font-weight: 700;
}

.booking-addons-app .booking-step4-pricing-details {
    margin-top: 1.1rem;
    padding-top: 1rem;
    border-top-color: rgba(220, 179, 103, .22);
}

.booking-addons-app .booking-step4-pricing-details summary {
    padding: .45rem 0;
    color: #e6c68e;
    font-size: .88rem;
}

.booking-addons-app .booking-step4-pricing-grid {
    gap: .75rem;
}

.booking-addons-app .booking-step4-pricing-grid > div {
    padding: .85rem;
    border: 1px solid rgba(205, 167, 97, .2);
    border-radius: 10px;
    background: rgba(0, 0, 0, .2);
}

.booking-addons-app .booking-step4-pricing-grid dt {
    color: #bfb09a;
    font-size: .72rem;
    line-height: 1.5;
}

.booking-addons-app .booking-step4-pricing-grid dd {
    color: #f3e7d2;
    font-size: .95rem;
    overflow-wrap: anywhere;
}

@media (max-width: 760px) {
    .booking-addons-app .booking-step4-header {
        padding: 1rem;
    }

    .booking-addons-app .booking-step4-list {
        padding: .8rem;
        gap: .8rem;
    }

    .booking-addons-app .booking-step4-item {
        grid-template-columns: 105px minmax(0, 1fr) 48px;
        min-height: 125px;
    }

    .booking-addons-app .booking-step4-copy {
        padding: .85rem;
    }

    .booking-addons-app .booking-step4-name-row strong {
        font-size: .96rem;
    }

    .booking-addons-app .booking-step4-copy > p {
        font-size: .8rem;
        display: block;
        overflow: visible;
        -webkit-line-clamp: unset;
    }

    .booking-addons-app .booking-step4-featured {
        display: inline-block;
    }

    .booking-addons-app .booking-step4-summary {
        padding: 1rem;
    }

    .booking-addons-app .booking-step4-pricing-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .booking-addons-app .booking-step4-item {
        grid-template-columns: minmax(0, 1fr) 48px;
    }

    .booking-addons-app .booking-step4-media {
        grid-column: 1 / -1;
        height: 165px;
    }

    .booking-addons-app .booking-step4-copy {
        grid-column: 1;
        padding: 1rem;
    }

    .booking-addons-app .booking-step4-select {
        grid-column: 2;
        grid-row: 2;
    }

    .booking-addons-app .booking-step4-total-row {
        flex-direction: column;
        align-items: stretch;
    }

    .booking-addons-app .booking-step4-total-row .btn {
        width: 100%;
        min-width: 0;
    }

    .booking-addons-app .booking-step4-pricing-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    .booking-addons-app .booking-step4-item {
        transition: none;
    }

    .booking-addons-app .booking-step4-item:hover {
        transform: none;
    }
}


/* RC38.53 - Premium Review & Confirm */

body.photo-booking-shell .booking-review-app {
    width: 100%;
    max-width: 1180px;
    min-width: 0;
}

body.photo-booking-shell .booking-review-panel {
    overflow: hidden;
    border: 1px solid rgba(216, 174, 99, .4);
    border-radius: 22px;
    background:
        radial-gradient(
            ellipse at 100% 0%,
            rgba(187, 135, 53, .09),
            transparent 48%
        ),
        linear-gradient(145deg, #171411, #0b0b0c 72%);
    box-shadow: 0 26px 70px rgba(0, 0, 0, .4);
}

body.photo-booking-shell .booking-review-stage-header {
    padding: 1.4rem 1.5rem;
    border-bottom: 1px solid rgba(215, 174, 100, .25);
}

body.photo-booking-shell .booking-review-body {
    gap: 1.1rem;
    padding: 1.4rem;
}

body.photo-booking-shell .booking-review-block {
    min-width: 0;
    padding: 1.25rem;
    border: 1px solid rgba(213, 174, 104, .22);
    border-radius: 15px;
    background: linear-gradient(
        145deg,
        rgba(33, 28, 23, .65),
        rgba(15, 15, 16, .8)
    );
    transition: border-color .2s ease, box-shadow .2s ease;
}

body.photo-booking-shell .booking-review-block:hover {
    border-color: rgba(225, 184, 110, .45);
    box-shadow: 0 8px 28px rgba(0, 0, 0, .15);
}

body.photo-booking-shell .booking-review-block > header {
    padding-bottom: .8rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid rgba(215, 174, 100, .15);
}

body.photo-booking-shell .booking-review-block > header > span {
    color: #e8c47f;
    font-size: .78rem;
    letter-spacing: .1em;
}

body.photo-booking-shell .booking-review-block > header > a {
    color: #d8b46f;
    font-size: .76rem;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(216, 180, 111, .35);
    text-underline-offset: 4px;
}

body.photo-booking-shell .booking-review-block > header > a:hover,
body.photo-booking-shell .booking-review-block > header > a:focus-visible {
    color: #ffe0a2;
}

body.photo-booking-shell .booking-review-grid {
    gap: 1rem;
}

body.photo-booking-shell .booking-review-grid dt {
    color: #bcb1a0;
    font-size: .72rem;
    letter-spacing: .035em;
}

body.photo-booking-shell .booking-review-grid dd {
    margin-top: .35rem;
    color: #f5f0e7;
    font-size: .9rem;
    line-height: 1.5;
}

body.photo-booking-shell .booking-review-grid p {
    color: #bcb1a0;
    font-size: .75rem;
    line-height: 1.55;
}

body.photo-booking-shell .booking-review-package strong {
    font-size: 1.15rem;
}

body.photo-booking-shell .booking-review-package-price strong {
    color: #efc981;
    font-size: 1.25rem;
}

body.photo-booking-shell .booking-review-package span,
body.photo-booking-shell .booking-review-package p,
body.photo-booking-shell .booking-review-note,
body.photo-booking-shell .booking-review-empty {
    color: #bcb1a0;
    font-size: .8rem;
    line-height: 1.55;
}

body.photo-booking-shell .booking-review-address {
    border-top-color: rgba(215, 174, 100, .15);
}

body.photo-booking-shell .booking-review-address small {
    color: #bcb1a0;
    font-size: .72rem;
}

body.photo-booking-shell .booking-review-address p {
    color: #f0e9dc;
    font-size: .86rem;
}

body.photo-booking-shell .booking-review-addons {
    gap: .7rem;
}

body.photo-booking-shell .booking-review-addons article {
    min-width: 0;
    padding: .9rem;
    border: 1px solid rgba(215, 174, 100, .18);
    border-radius: 10px;
    background: rgba(0, 0, 0, .18);
}

body.photo-booking-shell .booking-review-addons article > div {
    min-width: 0;
}

body.photo-booking-shell .booking-review-addons strong {
    color: #f5efe3;
    font-size: .88rem;
    overflow-wrap: anywhere;
}

body.photo-booking-shell .booking-review-addons span {
    color: #bcb1a0;
    font-size: .74rem;
}

body.photo-booking-shell .booking-review-pricing {
    min-width: 0;
    padding: 1.5rem;
    border: 1px solid rgba(224, 181, 100, .48);
    border-radius: 16px;
    background: linear-gradient(
        135deg,
        rgba(73, 52, 26, .35),
        rgba(15, 14, 13, .9)
    );
}

body.photo-booking-shell .booking-review-pricing h3 {
    margin-bottom: 1.15rem;
    color: #f0cc88;
    font-size: 1.4rem;
}

body.photo-booking-shell .booking-review-pricing dl {
    gap: .8rem;
}

body.photo-booking-shell .booking-review-pricing dl > div {
    min-width: 0;
    padding: 1rem;
    border: 1px solid rgba(213, 174, 103, .17);
    border-radius: 10px;
    background: rgba(0, 0, 0, .22);
}

body.photo-booking-shell .booking-review-pricing dt {
    color: #c5b9a7;
    font-size: .73rem;
    line-height: 1.5;
}

body.photo-booking-shell .booking-review-pricing dd {
    margin-top: .5rem;
    color: #f7efe2;
    font-size: 1.05rem;
    font-weight: 700;
    overflow-wrap: anywhere;
}

body.photo-booking-shell
.booking-review-pricing .booking-review-coverage-breakdown {
    background: rgba(212, 168, 92, .055);
}

body.photo-booking-shell
.booking-review-pricing .booking-review-coverage-breakdown dd {
    color: #e7bf76;
}

/*
 * Additional coverage is already included in the package subtotal.
 * This is a display-only clarification, not a second charge.
 */
body.photo-booking-shell
.booking-review-pricing .booking-review-coverage-breakdown dt::after {
    content: " — already included above";
    display: inline;
    color: #c4ad83;
    font-size: .72rem;
    font-style: italic;
    text-transform: none;
}

body.photo-booking-shell
.booking-review-pricing .booking-review-total {
    border-color: rgba(235, 189, 102, .65);
    background: linear-gradient(
        135deg,
        rgba(114, 77, 29, .35),
        rgba(45, 31, 17, .48)
    );
}

body.photo-booking-shell
.booking-review-pricing .booking-review-total dt {
    color: #f0ce91;
    font-weight: 700;
}

body.photo-booking-shell
.booking-review-pricing .booking-review-total dd {
    color: #f3ce89;
    font-size: clamp(1.6rem, 3vw, 2.3rem);
    font-weight: 800;
}

body.photo-booking-shell .booking-review-submit {
    gap: 1.5rem;
    padding: 1.5rem;
    border-top: 1px solid rgba(224, 181, 100, .35);
    background: linear-gradient(
        135deg,
        rgba(62, 43, 22, .3),
        rgba(12, 12, 12, .95)
    );
}

body.photo-booking-shell .booking-review-submit small {
    color: #e8c47f;
    font-size: .76rem;
}

body.photo-booking-shell .booking-review-submit p {
    color: #d0c4b4;
    font-size: .82rem;
    line-height: 1.65;
}

body.photo-booking-shell .booking-review-submit .btn {
    min-height: 54px;
    padding: .9rem 1.4rem;
    border-radius: 10px;
    font-size: .9rem;
    font-weight: 700;
}

body.photo-booking-shell .booking-review-notices {
    padding: 1rem;
    border-radius: 12px;
}

@media (max-width: 760px) {
    body.photo-booking-shell .booking-review-stage-header {
        padding: 1rem;
    }

    body.photo-booking-shell .booking-review-body {
        grid-template-columns: minmax(0, 1fr);
        gap: .9rem;
        padding: .9rem;
    }

    body.photo-booking-shell .booking-review-block {
        padding: 1rem;
    }

    body.photo-booking-shell .booking-review-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .85rem;
    }

    body.photo-booking-shell .booking-review-pricing {
        grid-column: auto;
        padding: 1rem;
    }

    body.photo-booking-shell .booking-review-pricing dl {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.photo-booking-shell .booking-review-submit {
        flex-direction: column;
        align-items: stretch;
        padding: 1rem;
    }

    body.photo-booking-shell .booking-review-submit form,
    body.photo-booking-shell .booking-review-submit .btn {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 480px) {
    body.photo-booking-shell .booking-review-panel {
        border-radius: 15px;
    }

    body.photo-booking-shell .booking-review-stage-header {
        padding: .8rem .65rem;
    }

    body.photo-booking-shell .booking-review-body {
        padding: .65rem;
    }

    body.photo-booking-shell .booking-review-block {
        padding: .85rem;
    }

    body.photo-booking-shell .booking-review-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    body.photo-booking-shell .booking-review-package {
        flex-direction: column;
        align-items: stretch;
    }

    body.photo-booking-shell .booking-review-package-price {
        text-align: left;
    }

    body.photo-booking-shell .booking-review-pricing dl {
        grid-template-columns: minmax(0, 1fr);
    }

    body.photo-booking-shell .booking-review-pricing h3 {
        font-size: 1.2rem;
    }

    body.photo-booking-shell
    .booking-review-pricing .booking-review-total dd {
        font-size: 2rem;
    }

    body.photo-booking-shell .booking-review-addons article {
        flex-wrap: wrap;
    }

    body.photo-booking-shell .booking-review-submit {
        padding: .85rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.photo-booking-shell .booking-review-block {
        transition: none;
    }
}



/* RC38.53 - Premium Booking Confirmation */

body.photo-booking-shell .booking-confirmation-app {
    width: 100%;
    max-width: 1080px;
    min-width: 0;
    margin-inline: auto;
}

body.photo-booking-shell .booking-confirmation-panel {
    position: relative;
    overflow: hidden;
    padding: clamp(1.3rem, 4vw, 3rem);
    border: 1px solid rgba(220, 177, 99, .45);
    border-radius: 22px;
    background:
        radial-gradient(
            ellipse at 50% 0%,
            rgba(192, 137, 51, .13),
            transparent 47%
        ),
        linear-gradient(150deg, #1b1712, #101011 58%, #09090a);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .42);
}

body.photo-booking-shell .booking-confirmation-success {
    width: 76px;
    height: 76px;
    margin: 0 auto 1.3rem;
    border: 1px solid rgba(234, 192, 114, .7);
    border-radius: 50%;
    background: linear-gradient(145deg, #382a16, #1b1711);
    color: #f0c980;
    font-family: Georgia, serif;
    font-size: 2.6rem;
    font-weight: 400;
    box-shadow:
        0 0 0 9px rgba(214, 170, 94, .065),
        0 12px 35px rgba(0, 0, 0, .3);
    animation: snoku-confirmation-appear .6s ease-out both;
}

body.photo-booking-shell .booking-confirmation-kicker {
    color: #e9bf73;
    font-size: .75rem;
    letter-spacing: .16em;
}

body.photo-booking-shell .booking-confirmation-panel h2 {
    margin-top: .65rem;
    color: #f8f1e7;
    font-size: clamp(2.4rem, 5vw, 4rem);
    line-height: 1.12;
}

body.photo-booking-shell .booking-confirmation-lead {
    max-width: 700px;
    color: #cfc5b7;
    font-size: clamp(.95rem, 1.4vw, 1.05rem);
    line-height: 1.8;
}

body.photo-booking-shell .booking-confirmation-reference {
    max-width: 580px;
    margin-top: 1.8rem;
    padding: 1.3rem;
    border: 1px solid rgba(224, 177, 97, .55);
    border-radius: 15px;
    background: linear-gradient(135deg, #302416, #17130e);
}

body.photo-booking-shell .booking-confirmation-reference small,
body.photo-booking-shell .booking-confirmation-status small {
    color: #c8b89e;
    font-size: .73rem;
    letter-spacing: .12em;
}

body.photo-booking-shell .booking-confirmation-reference strong {
    overflow-wrap: anywhere;
    color: #f0c981;
    font-size: clamp(1.45rem, 4vw, 2.25rem);
}

body.photo-booking-shell .booking-confirmation-status {
    max-width: 680px;
    margin-top: 1rem;
    padding: 1.2rem 1.4rem;
    border: 1px solid rgba(220, 177, 99, .27);
    border-radius: 14px;
    background: rgba(20, 18, 15, .85);
}

body.photo-booking-shell .booking-confirmation-status strong {
    color: #efc67e;
    font-size: 1.15rem;
}

body.photo-booking-shell .booking-confirmation-status p {
    color: #d2c5b5;
    font-size: .85rem;
    line-height: 1.7;
}

body.photo-booking-shell .booking-confirmation-pricing {
    min-width: 0;
    margin-top: 1.7rem;
    padding: clamp(1rem, 2vw, 1.5rem);
    border: 1px solid rgba(214, 171, 96, .35);
    border-radius: 16px;
    background: rgba(18, 16, 13, .75);
    text-align: left;
}

body.photo-booking-shell .booking-confirmation-pricing h3 {
    margin: 0 0 1.1rem;
    color: #eec67f;
    font-size: 1.4rem;
}

body.photo-booking-shell .booking-confirmation-pricing-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
    margin: 0;
}

body.photo-booking-shell .booking-confirmation-pricing-grid > div {
    min-width: 0;
    padding: 1rem;
    border: 1px solid rgba(213, 172, 99, .18);
    border-radius: 12px;
    background: rgba(8, 8, 9, .45);
}

body.photo-booking-shell .booking-confirmation-pricing-grid dt {
    color: #c7b9a5;
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .05em;
}

body.photo-booking-shell .booking-confirmation-pricing-grid dd {
    margin: .55rem 0 0;
    overflow-wrap: anywhere;
    color: #f2e8d9;
    font-size: clamp(1rem, 1.7vw, 1.3rem);
    font-weight: 700;
}

body.photo-booking-shell .booking-confirmation-next {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top-color: rgba(224, 177, 97, .25);
}

body.photo-booking-shell .booking-confirmation-next h3 {
    margin-bottom: 1.2rem;
    color: #eec67f;
    font-size: clamp(1.35rem, 2.5vw, 1.8rem);
}

body.photo-booking-shell .booking-confirmation-next-grid {
    gap: 1rem;
}

body.photo-booking-shell .booking-confirmation-next-grid article {
    min-width: 0;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 1rem;
    padding: 1.2rem;
    border: 1px solid rgba(214, 173, 101, .27);
    border-radius: 14px;
    background: linear-gradient(145deg, #201a14, #111112);
    transition: border-color .2s ease, transform .2s ease;
}

body.photo-booking-shell .booking-confirmation-next-grid article:hover {
    border-color: rgba(230, 187, 112, .65);
    transform: translateY(-2px);
}

body.photo-booking-shell .booking-confirmation-next-grid article > span {
    width: 38px;
    height: 38px;
    border-color: rgba(229, 183, 102, .65);
    background: rgba(218, 172, 91, .1);
    color: #f0c67c;
    font-size: .95rem;
}

body.photo-booking-shell .booking-confirmation-next-grid strong {
    color: #f5e9d7;
    font-size: 1rem;
}

body.photo-booking-shell .booking-confirmation-next-grid p {
    margin-top: .5rem;
    color: #c9bdae;
    font-size: .85rem;
    line-height: 1.7;
}

body.photo-booking-shell .booking-confirmation-reminder {
    margin-top: 1.4rem;
    padding: 1.25rem;
    border: 1px solid rgba(225, 178, 94, .4);
    border-radius: 13px;
    background: rgba(154, 103, 32, .085);
    text-align: left;
}

body.photo-booking-shell .booking-confirmation-reminder strong {
    color: #f0c47a;
}

body.photo-booking-shell .booking-confirmation-reminder p {
    color: #d8cbbb;
    font-size: .86rem;
    line-height: 1.7;
}

body.photo-booking-shell .booking-confirmation-actions {
    gap: .85rem;
    margin-top: 1.5rem;
}

body.photo-booking-shell .booking-confirmation-actions .btn {
    min-height: 52px;
    padding: .85rem 1.3rem;
    border-radius: 10px;
}

@keyframes snoku-confirmation-appear {
    from {
        opacity: 0;
        transform: translateY(10px) scale(.94);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (max-width: 760px) {
    body.photo-booking-shell .booking-confirmation-panel {
        padding: 1.25rem .9rem;
        border-radius: 16px;
    }

    body.photo-booking-shell .booking-confirmation-pricing-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.photo-booking-shell .booking-confirmation-next-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    body.photo-booking-shell .booking-confirmation-next-grid article {
        padding: 1rem;
    }

    body.photo-booking-shell .booking-confirmation-actions {
        flex-direction: column;
    }

    body.photo-booking-shell .booking-confirmation-actions .btn {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 420px) {
    body.photo-booking-shell .booking-confirmation-pricing-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    body.photo-booking-shell .booking-confirmation-success {
        animation: none;
    }

    body.photo-booking-shell .booking-confirmation-next-grid article {
        transition: none;
    }

    body.photo-booking-shell .booking-confirmation-next-grid article:hover {
        transform: none;
    }
}
