/* Shared booking form and policy presentation across every package page. */
#booking-info-modal .modal-content,
#payment-modal .modal-content {
    width: min(640px, calc(100vw - 28px)) !important;
    border-radius: 16px !important;
    border: 1px solid color-mix(in srgb, var(--color-primary, #5c9ced) 24%, white) !important;
    box-shadow: 0 24px 70px rgba(31, 24, 21, .22) !important;
}

#booking-info-modal .modal-body,
#payment-modal .modal-body {
    display: grid;
    gap: 18px;
}

#booking-info-modal .booking-summary,
#payment-modal .booking-summary {
    margin: 0 !important;
    padding: 18px !important;
    border: 1px solid #e7e4df !important;
    border-radius: 14px !important;
    background: #faf8f5 !important;
}

#booking-info-modal .akai-booking-section,
#payment-modal .akai-booking-section {
    margin: 0 !important;
    padding: 20px !important;
    border: 1px solid #e7e4df;
    border-radius: 14px;
    background: var(--color-surface, #fff);
}

#booking-info-modal .form-section-title,
#booking-info-modal .section-title,
#payment-modal .form-section-title,
#payment-modal .section-title {
    margin: 0 0 18px !important;
    padding: 0 0 12px !important;
    border-bottom: 1px solid color-mix(in srgb, var(--color-primary, #5c9ced) 24%, #fff) !important;
    color: var(--color-primary, #5c9ced) !important;
    font-size: 1.2rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    text-align: left !important;
    letter-spacing: -.01em !important;
}

#booking-info-modal .form-input-group,
#payment-modal .form-input-group {
    margin-bottom: 16px;
}

#booking-info-modal .form-input-group:last-child,
#payment-modal .form-input-group:last-child {
    margin-bottom: 0;
}

#payment-method-selector {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px !important;
}

#payment-method-selector .payment-method-option {
    min-height: 48px;
    display: grid;
    place-items: center;
    border-radius: 12px !important;
}

.payment-method-details {
    margin: 14px 0 20px;
    padding: 18px;
    border: 1px solid #e7e4df;
    border-radius: 14px;
    background: #fff;
}

.payment-method-details img {
    display: block;
    width: min(100%, 320px) !important;
    height: 320px !important;
    margin: 12px auto !important;
    padding: 8px;
    object-fit: contain !important;
    object-position: center !important;
    border: 1px solid #ece8e2;
    border-radius: 12px !important;
    background: #fff;
}

.akai-policy-modal {
    z-index: 11010 !important;
    padding: 18px !important;
}

.akai-policy-modal .modal-content {
    position: relative !important;
    width: min(650px, calc(100vw - 28px)) !important;
    max-width: 650px !important;
    max-height: min(86vh, 760px) !important;
    overflow: hidden !important;
    border: 1px solid #e4ded7 !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: 0 26px 80px rgba(36, 25, 20, .28) !important;
}

.akai-policy-header {
    padding: 28px 64px 20px 28px;
    border-bottom: 1px solid #eee8e2;
    background: #fcfaf7;
}

.akai-policy-header .modal-title {
    margin: 0 !important;
    color: var(--color-primary, #804325) !important;
    font-size: clamp(1.45rem, 4vw, 2rem) !important;
    line-height: 1.15;
    text-align: left !important;
}

.akai-policy-modal .modal-close {
    top: 20px !important;
    right: 20px !important;
    width: 40px !important;
    height: 40px !important;
    display: grid !important;
    place-items: center;
    border-radius: 50% !important;
    background: #f3eee8 !important;
    color: #5f514a !important;
}

.akai-policy-body {
    max-height: min(56vh, 480px);
    overflow-y: auto;
    padding: 24px 28px;
    color: #4d4541;
    font-size: .98rem;
    line-height: 1.72;
    white-space: pre-line;
    scrollbar-color: color-mix(in srgb, var(--color-primary, #804325) 55%, white) #f3eee8;
}

.akai-policy-footer {
    padding: 18px 28px 24px;
    border-top: 1px solid #eee8e2;
    background: #fff;
}

.akai-policy-footer .btn {
    width: 100%;
    min-height: 48px;
}

@media (max-width: 600px) {
    #booking-info-modal .modal-body,
    #payment-modal .modal-body { gap: 14px; }
    #booking-info-modal .akai-booking-section,
    #payment-modal .akai-booking-section { padding: 16px !important; }
    .payment-method-details img { height: min(270px, 72vw) !important; }
    .akai-policy-header { padding: 22px 58px 16px 20px; }
    .akai-policy-body { padding: 20px; }
    .akai-policy-footer { padding: 14px 20px 20px; }
}

@media (prefers-reduced-motion: reduce) {
    #booking-info-modal .modal-content,
    #payment-modal .modal-content,
    .akai-policy-modal .modal-content { transition: none !important; }
}
