/* ===========================================================
   GLOBAL FONT FAMILY FOR ALL PRS MODULES
   =========================================================== */
/* Container - using body prefix for specificity */
body .prs-container,
body .content_wrap {
    width: 100%;
    padding-right: 12px;
    padding-left: 12px;
    margin-right: auto;
    margin-left: auto;
}

/* Breakpoints (Bootstrap 5 style) */
@media (min-width: 576px) {

    .prs-container,
    .content_wrap {
        max-width: 540px;
    }
}

@media (min-width: 768px) {

    .prs-container,
    .content_wrap {
        max-width: 720px;
    }
}

@media (min-width: 992px) {

    .prs-container,
    .content_wrap {
        max-width: 960px;
    }
}

@media (min-width: 1200px) {

    .prs-container,
    .content_wrap {
        max-width: 1040px;
    }
}

@media (min-width: 1400px) {

    .prs-container,
    .content_wrap {
        max-width: 1320px;
    }
}

/* Optional: Full-width container */
.container-fluid {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding-right: 1rem;
    padding-left: 1rem;
}


/* Font family - using body prefix for specificity */
body .prs-categories,
body .prs-category,
body .prs-products,
body .prs-product,
body .prs-product-detail,
body .prs-product-options,
body .prs-modal,
body .prs-cart-container,
body .prs-addons,
body .flatpickr-calendar,
body .pac-container,
body [class^="prs-"],
body [class*=" prs-"] {
    font-family: 'Inter', sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.prs-empty,
.checkout-return {
    width: 100%;
    padding: 50px;
    text-align: center
}

.prs-image-placeholder {
    width: 100%;
    height: 100%;
    min-height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(to bottom right, #f9fafb, #f3f4f6);
}

.prs-image-placeholder svg {
    width: 33%;
    height: 33%;
    max-width: 3rem;
    max-height: 3rem;
    color: #d1d5db;
}

/* -------------------------------------------------------------
   Lazy availability badge (category listing cards)
   ------------------------------------------------------------- */

.prs-product__price-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    width: 100%;
    margin-top: 4px;
    min-height: 24px;
}

.prs-availability-slot {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
}

.prs-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    font-weight: 600;
    padding: 3px 9px;
    border-radius: 999px;
    letter-spacing: 0.02em;
    white-space: nowrap;
    text-transform: uppercase;
    line-height: 1.4;
}
.prs-badge::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    display: inline-block;
}

.prs-badge--available    { background: #e7f6ec; color: #15803d; }
.prs-badge--available::before { background: #15803d; }

.prs-badge--limited      { background: #fff4d6; color: #b45309; }
.prs-badge--limited::before { background: #b45309; }

.prs-badge--unavailable  { background: #fde7e7; color: #b91c1c; }
.prs-badge--unavailable::before { background: #b91c1c; }

.prs-badge-skeleton {
    display: inline-block;
    width: 84px;
    height: 20px;
    border-radius: 999px;
    background: linear-gradient(90deg, #ececec 0%, #f6f6f6 50%, #ececec 100%);
    background-size: 200% 100%;
    animation: prsBadgeShimmer 1.2s infinite linear;
}
@keyframes prsBadgeShimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* For unavailable items, dim ONLY the image so the title, price, and
   "Not Available" badge stay fully legible. Hover lifts the dim
   slightly so the card doesn't feel disabled. */
.prs-product.prs-product--unavailable .prs-product__image {
    opacity: 0.45;
    transition: opacity 0.2s ease;
}
.prs-product.prs-product--unavailable:hover .prs-product__image {
    opacity: 0.75;
}

/* Categories */
.prs-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    padding: 50px;
    justify-content: center;
}

.prs-category {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: 180px;
    text-decoration: none;
    color: #333
}

.prs-category__image {
    display: block;
    width: 150px;
    height: 150px;
    overflow: hidden;
    border-radius: 8px
}

.prs-category__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 8px
}

.prs-category__name {
    display: block;
    margin-top: 8px;
    font-weight: 700;
    text-align: center;
    color: #333
}

/* Product grid */
.prs-products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 20px;
    /* padding: 50px */
}

.prs-product {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    transition: transform .3s ease;
    text-decoration: none;
}

.prs-product__link {
    text-decoration: none;
    color: inherit;
    display: block
}

.prs-product__image {
    display: block;
    height: 208px;
    width: auto;
}

.prs-product__image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
}

.prs-product__image-el {
    width: 100%;
    height: auto;
    display: block
}

.prs-product__meta {
    padding: 15px;
    background: #fff
}

.prs-product__title {
    display: block;
    text-align: center;
    font-size: 14px;
    font-weight: 400;
    margin: 0;
    color: #333
}

.prs-combo-badge {
    display: inline-block;
    padding: 1px 6px;
    margin-left: 4px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .05em;
    line-height: 1.4;
    background: #eef2ff;
    color: #3730a3;
    border-radius: 4px;
    vertical-align: middle;
    text-transform: uppercase;
}

.prs-combo-composition {
    margin: 12px 0;
    padding: 10px 12px;
    background: #fafafa;
    border-left: 3px solid #eef2ff;
    border-radius: 4px;
    font-size: 13px;
}

.prs-combo-composition strong {
    display: block;
    margin-bottom: 4px;
    color: #333;
}

.prs-combo-composition__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.prs-combo-composition__list li {
    padding: 2px 0;
    color: #555;
}

.prs-combo-composition__qty {
    color: #999;
    margin-left: 4px;
    font-size: 12px;
}

.prs-combo-qty-fixed {
    display: inline-block;
    padding: 4px 12px;
    background: #f5f5f5;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-weight: 600;
    margin-right: 8px;
}

.prs-combo-qty-note {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: #777;
    font-style: italic;
}

.prs-drawer-item__combo-list {
    list-style: none;
    margin: 4px 0 6px;
    padding-left: 8px;
    border-left: 1px solid #c7d2fe;
    font-size: 11px;
    color: #6b7280;
}

.prs-drawer-item__combo-list li {
    padding: 1px 0;
}

.prs-drawer-item__combo-qty {
    color: #9ca3af;
}

.prs-unavailable-card {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    padding: 16px 18px;
    margin-top: 8px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-left: 4px solid #f59e0b;
    border-radius: 6px;
    color: #78350f;
}

.prs-unavailable-card__icon {
    flex: 0 0 24px;
    color: #b45309;
    display: flex;
    align-items: flex-start;
    padding-top: 2px;
}

.prs-unavailable-card__body {
    flex: 1 1 240px;
    min-width: 0;
}

.prs-unavailable-card__title {
    margin: 0 0 6px 0;
    font-size: 16px;
    font-weight: 600;
    color: #78350f;
}

.prs-unavailable-card__message {
    margin: 0 0 4px 0;
    font-size: 14px;
    line-height: 1.5;
    color: #78350f;
}

.prs-unavailable-card__message strong {
    font-weight: 600;
}

.prs-unavailable-card__hint {
    margin: 0;
    font-size: 13px;
    color: #92400e;
    opacity: 0.85;
}

.prs-unavailable-card__actions {
    flex: 1 1 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 4px;
}

@media (min-width: 640px) {
    .prs-unavailable-card__actions {
        flex-basis: auto;
    }
}

.prs-product__price {
    display: block;
    text-align: center;
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    color: #333
}

/* Back navigation */
.prs-back-nav {
    grid-column: 1 / -1;
    margin-bottom: -10px;
}

.prs-btn-back {
    background-color: transparent;
    color: #333;
    border-color: #ddd;
    font-size: 14px;
    padding: 6px 14px;
}

.prs-btn-back:hover {
    background-color: #f5f5f5;
    color: #111;
    border-color: #bbb;
}

/* Product detail */
body .prs-product-detail {
    margin: auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: start;
    padding: 50px;
}

.prs-product-detail__media img {
    width: 100%;
    height: auto;
    border: 1px solid #ddd;
    border-radius: 8px
}

.prs-product-detail__info {
    padding: 1.5rem 1.5rem 2rem 1.5rem;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    background-color: white;
}

body .prs-product-detail .prs-product-detail__title {
    margin: 0;
    font-size: 30px;
    font-weight: 700;
    padding: 0;
    line-height: normal;
    margin-bottom: 12px;
}

body .prs-product-detail .prs-product-detail__price {
    font-size: 20px;
    color: #333;
    margin: 0 0 16px 0;
    line-height: normal;
}

body .prs-product-detail .prs-product-detail__stock {
    font-size: 16px;
    font-weight: 500;
    color: #333;
    margin: 8px 0 0px 0;
    line-height: 1.5rem;
}

.prs-product-detail__desc {
    margin-top: 15px
}

.prs-product-detail__note {
    margin: 10px 0
}

/* Product videos (YouTube / Vimeo embeds on the detail page) */
.prs-product-detail__videos {
    display: block;
    width: 100%;
    margin: 15px 0;
}

.prs-product-detail__videos strong {
    display: block;
    margin-bottom: 8px;
}

/* Span both grid columns when placed at the bottom of the page */
.prs-product-detail__videos--full {
    grid-column: 1 / -1;
}

/* Responsive 16:9 iframe wrapper */
.prs-video-embed {
    display: block;
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    margin-bottom: 14px;
    border-radius: 8px;
    overflow: hidden;
}

.prs-video-embed:last-child {
    margin-bottom: 0;
}

/* !important guards against host themes that apply their own iframe/aspect
   rules (e.g. `iframe { width: auto; height: auto }`), which would otherwise
   collapse the embed to the browser-default 300x150 instead of filling the
   column width. */
.prs-video-embed iframe {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    border: 0 !important;
}

/* Product options */
.prs-product-options {
    /* margin-top: 15px; */
    display: flex;
    flex-direction: column;
    /* gap: 14px */
}

body .prs-product-detail .prs-option {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 26px;
    margin-bottom: 10px;
}

.prs-option__name {
    font-weight: 600;
    font-size: 16px;
    line-height: 1.5rem;
    color: #4b5563;
}

.prs-option__desc {
    font-size: 13px;
    color: #666
}

.prs-option__records {
    display: flex;
    flex-wrap: wrap;
    gap: 10px
}

.prs-option__records--checkbox {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 8px
}

.prs-option__records--checkbox .prs-opt {
    display: flex
}

.prs-opt {
    cursor: pointer
}

body .prs-opt--radio,
body .prs-opt--checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    line-height: 1.5rem;
    font-weight: 600;
    margin-bottom: 0;
}

.prs-opt--color input[type=radio] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    pointer-events: none
}


.prs-opt--color:has(input[type=radio]:checked),
.prs-opt--color:has(input[type=checkbox]:checked) {
    border-color: #34d399;
    box-shadow: inset 0 0 0 2px #34d399
}


.prs-opt--radio:has(input[type=radio]:checked) {
    border-color: #34d399;
    box-shadow: inset 0 0 0 2px #34d399
}

.prs-opt--image input[type=checkbox] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    pointer-events: none
}

.prs-opt--image:has(input[type=radio]:checked),
.prs-opt--image:has(input[type=checkbox]:checked) {
    border-color: #34d399;
    box-shadow: inset 0 0 0 2px #34d399
}

.prs-opt--image:has(input[type=radio]:checked) .prs-opt__thumb,
.prs-opt--image:has(input[type=checkbox]:checked) .prs-opt__thumb {
    outline: 2px solid #34d399;
    outline-offset: 2px;
    border-radius: 8px
}

.prs-opt--checkbox .prs-opt__text {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px
}

.prs-opt--color {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    padding: 6px 8px
}

.prs-opt__text {
    display: flex;
    flex-direction: column;
    gap: 2px
}

.prs-opt__swatch {
    display: inline-block;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
    background-color: var(--prs-color, #000)
}

.prs-opt__price {
    font-size: 12px;
    font-weight: 400;
    margin-top: 2px
}

.prs-opt__price--pill {
    display: inline-flex;
    margin-left: 6px;
    align-items: center;
    border-radius: 4px;
    background-color: #ecfdf5;
    padding: 2px 6px;
    font-size: 12px;
    font-weight: 500;
    color: #047857;
    border: 1px solid rgba(5, 150, 105, 0.2)
}

.prs-opt--image {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    padding: 6px;
    width: 130px
}

.prs-opt__thumb {
    width: 118px;
    height: 118px;
    overflow: hidden;
    border-radius: 8px
}

.prs-opt__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

body .prs-product-detail .prs-opt--select,
body .prs-opt--select {
    width: 100%;
    padding: 6px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font-size: 14px;
    height: 40px;
    background-color: white;
}

/* === Item Selection Options === */
.prs-option__records--item-selection {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* ── Base card ─────────────────────────────────────────────────────────────── */
.prs-opt--item {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 2px solid #e2e8f0;
    border-radius: 10px;
    padding: 10px 12px;
    cursor: pointer;
    position: relative;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.prs-opt--item:hover:not(.prs-opt--unavailable) {
    border-color: #94a3b8;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    transform: translateY(-1px);
}

/* ── Selected state — outward glow, no inset ──────────────────────────────── */
.prs-opt--item:has(input[type=radio]:checked),
.prs-opt--item:has(input[type=checkbox]:checked),
.prs-opt--selected {
    border-color: #10b981;
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.2), 0 4px 12px rgba(0, 0, 0, 0.06);
    transform: translateY(-1px);
}

/* Checkmark badge — appears on selected */
.prs-opt--item:has(input[type=radio]:checked)::after,
.prs-opt--item:has(input[type=checkbox]:checked)::after,
.prs-opt--selected::after {
    content: '✓';
    position: absolute;
    top: -1px;
    right: -1px;
    width: 22px;
    height: 22px;
    background: #10b981;
    border-radius: 0 8px 0 8px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 22px;
    text-align: center;
    pointer-events: none;
}

.prs-option--error .prs-opt--item {
    border-color: #ef4444;
}

.prs-opt--item input[type=radio],
.prs-opt--item input[type=checkbox] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    pointer-events: none;
}

.prs-opt--unavailable {
    opacity: 0.45;
    cursor: not-allowed;
}

/* ── Item thumbnail (full-width horizontal card) ─────────────────────────── */
.prs-opt__item-img {
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #e5e7eb;
}

.prs-opt__item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ── Two-column grid layout ───────────────────────────────────────────────── */
.prs-option__records--two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.prs-option__records--two-col .prs-opt--item {
    flex-direction: column;
    align-items: stretch;
    padding: 0;
    overflow: hidden;
    gap: 0;
    border-radius: 12px;
}

.prs-option__records--two-col .prs-opt--item:has(input[type=radio]:checked)::after,
.prs-option__records--two-col .prs-opt--item:has(input[type=checkbox]:checked)::after,
.prs-option__records--two-col .prs-opt--selected::after {
    border-radius: 0 10px 0 10px;
    width: 26px;
    height: 26px;
    line-height: 26px;
    font-size: 13px;
}

.prs-option__records--two-col .prs-opt__item-img {
    width: 100%;
    height: 150px;
    border-radius: 0;
    border: none;
    border-bottom: 1px solid #f1f5f9;
    flex-shrink: unset;
}

.prs-option__records--two-col .prs-opt__item-img img {
    border-radius: 0;
}

/* Meta area for two-col cards */
.prs-option__records--two-col .prs-opt__label {
    padding: 10px 12px 3px;
}

.prs-option__records--two-col .prs-opt__item-price {
    padding: 0 12px 10px;
}

.prs-option__records--two-col .prs-opt__item-discount,
.prs-option__records--two-col .prs-opt__item-avl {
    padding: 0 12px 8px;
}

/* Clickable image variant */
button.prs-opt__item-img--clickable {
    cursor: zoom-in;
    background: none;
    padding: 0;
    margin: 0;
    position: relative;
}

button.prs-opt__item-img--clickable::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0);
    transition: background 0.15s ease;
    border-radius: inherit;
}

button.prs-opt__item-img--clickable:hover::after {
    background: rgba(0, 0, 0, 0.18);
}

/* === Item Image Modal === */
#prs-item-image-modal .prs-modal-content {
    max-width: 420px;
    padding: 0;
    overflow: hidden;
}

#prs-item-image-modal .prs-item-modal__img {
    width: 100%;
    height: 280px;
    object-fit: cover;
    display: block;
}

#prs-item-image-modal .prs-item-modal__body {
    padding: 16px 20px 20px;
}

#prs-item-image-modal .prs-item-modal__name {
    font-size: 15px;
    font-weight: 600;
    color: #111827;
    margin-bottom: 6px;
}

#prs-item-image-modal .prs-item-modal__desc {
    font-size: 13px;
    color: #6b7280;
    line-height: 1.55;
    margin: 0;
    max-height: 180px;
    overflow-y: auto;
}

.prs-opt--item .prs-opt__label {
    flex: 1;
    font-size: 14px;
    font-weight: 600;
}

.prs-opt__item-price {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    white-space: nowrap;
}

.prs-opt__item-discount {
    display: inline-flex;
    align-items: center;
    border-radius: 4px;
    background-color: #ecfdf5;
    padding: 2px 6px;
    font-size: 11px;
    font-weight: 500;
    color: #047857;
    border: 1px solid rgba(5, 150, 105, 0.2);
    white-space: nowrap;
}

.prs-opt__item-avl {
    font-size: 11px;
    font-weight: 500;
    white-space: nowrap;
    padding: 2px 6px;
    border-radius: 4px;
}

.prs-opt__item-avl--in {
    background-color: #f0fdf4;
    color: #15803d;
    border: 1px solid #bbf7d0;
}

.prs-opt__item-avl--out {
    background-color: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
}

/* === PRS Modal Core === */
.prs-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;
}

.prs-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
}

.prs-modal-content {
    position: relative;
    background: #fff;
    border-radius: 10px;
    width: 90%;
    max-width: 450px;
    z-index: 10000;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.25);
    animation: prsFadeIn .3s ease;
    font-family: inherit;

    display: flex;
    flex-direction: column;
}

.prs-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding-top: 1rem;
    padding-bottom: 1rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

.prs-check-availability-msg {
    margin-bottom: 0px;
    font-size: 13.5px;
    line-height: 1.45;
    color: #686D77;
    width: 90%;
}

.prs-modal .prs-modal-close {
    position: absolute !important;
    right: 16px !important;
    top: 16px !important;
    background: none !important;
    border: none !important;
    font-size: 1.5rem !important;
    cursor: pointer !important;
    margin: 0 !important;
    padding: 0 !important;
}

body .prs-modal .prs-modal-close:hover {
    color: #000 !important;
    background-color: transparent !important;
}

body .prs-modal .prs-modal-title {
    font-size: 1.25rem;
    line-height: 1.75rem;
    font-weight: 700;
    color: #2b3240;
    margin: 0;
    margin-bottom: 4px;
}

/* === Form Elements === */
.prs-form {
    /* padding: 20px 16px; */
    padding: 1.25rem;
}

.prs-form-group {
    margin-bottom: 15px;
}

body .prs-modal .prs-form-spacing {
    margin-bottom: 0px;
    margin-top: 24px;
}

.prs-end-date-container,
.prs-start-date-container {
    position: relative;
    width: 100%;
}

.prs-end-date-container svg,
.prs-start-date-container svg {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
}


body .prs-modal .prs-fulfillment-title {
    font-weight: 600;
    display: block;
    color: #2b3240;
}

.prs-toggle-group {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    justify-content: space-between;
    background: #f1f3f7;
    border-radius: 12px;
    overflow: hidden;
    padding: 4px;
    border: none;
    gap: 4px;
    margin-top: 4px;
}

.prs-modal .prs-toggle-btn {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    border: none !important;
    height: 44px !important;
    padding: 0 10px !important;
    background: transparent !important;
    cursor: pointer !important;
    font-weight: 600 !important;
    border-radius: 9px !important;
    color: #686D77 !important;
    line-height: 24px !important;
    text-transform: capitalize !important;
    transition: color .15s, background .15s, box-shadow .15s !important;
}

.prs-toggle-group.prs-single-mode {
    display: block;
    padding: 0;
    border: none;
    background: transparent;
}

.prs-toggle-group.prs-single-mode .prs-modal .prs-toggle-btn {
    display: none !important;
}


.prs-modal .prs-toggle-btn:hover {
    color: #494F5A !important;
    border: none !important;
    background: none !important;
}

.prs-modal .prs-toggle-btn.active {
    color: #202632 !important;
    border: none !important;
    background: #fff !important;
    box-shadow: 0 2px 6px rgba(15, 25, 40, .14) !important;
}

/* Single delivery/pickup option card */
.prs-single-option-card {
    display: flex;
    align-items: center;
    gap: 16px;

    padding: 16px;
    border-radius: 12px;
    border: 1px solid #e5e7eb;
    /* gray-200 */
    background-color: #f9fafb;
    /* gray-50 */
}

/* Icon circle */
.prs-single-option-icon {
    width: 48px;
    height: 48px;
    border-radius: 9999px;
    background-color: #e5e7eb;
    /* gray-200 */

    display: flex;
    align-items: center;
    justify-content: center;

    color: #374151;
    /* gray-700 */
}

/* Ensure SVG fits nicely */
.prs-single-option-icon svg {
    width: 24px;
    height: 24px;
}

/* Text container */
.prs-single-option-content {
    display: flex;
    flex-direction: column;
    /* gap: 4px; */
}

/* Title */
.prs-single-option-title {
    font-size: 16px;
    font-weight: 600;
    color: #111827;
    /* gray-900 */
    margin: 0;
}

/* Description */
.prs-single-option-desc {
    font-size: 14px;
    color: #6b7280;
    /* gray-500 */
    margin: 0;
}


body .prs-form-group input,
body .prs-form-group select {
    width: 100% !important;
    padding: 8px 10px !important;
    border-radius: 6px !important;
    border: 1px solid #ccc !important;
    font-size: 0.95rem !important;
    box-shadow: none !important;
    outline: none !important;
    background-color: #fff !important;
}

body .prs-form-group input:focus,
body .prs-form-group select:focus {
    border-color: var(--prs-primary, #0073aa) !important;
    box-shadow: none !important;
    outline: none !important;
}

body .prs-modal .prs-form-group label {
    display: block;
    font-weight: 600;
    margin-bottom: 8px;
    color: #2b3240;
}

.prs-modal .prs-check-now {
    width: 100% !important;
    height: 48px !important;
    background: var(--wp--preset--color--primary, #0073aa) !important;
    color: #fff !important;
    border: none !important;
    font-weight: 600 !important;
    font-size: 15.5px !important;
    border-radius: 10px !important;
    padding: 0 !important;
    cursor: pointer !important;
    transition: background .2s !important;
}

.prs-modal .prs-check-now:hover {
    background: rgba(0, 115, 170, 0.9) !important;
}


@keyframes prsFadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Row with label + toggle aligned */
.prs-date-label-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6px;
}

body .prs-modal .prs-date-label-row label {
    margin-bottom: 0;
}

/* Layout for start/end date inputs */
/* .prs-date-fields, */
.prs-location-fields {
    display: flex;
    align-items: center;
    gap: 12px;
}

.prs-date-fields {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    align-items: stretch;
}

.prs-date-fields.prs-multi {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Multiple Days switch on the Date label row */
.prs-multi-switch {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    user-select: none;
    margin-bottom: 0 !important;
}

body .prs-modal .prs-form-group label.prs-multi-switch {
    margin-bottom: 0;
    font-weight: 600;
    font-size: 13px;
    color: #686D77;
}

/* the blanket .prs-form-group input rule force-sizes every input; the
   switch checkbox must stay collapsed or it breaks the slider */
body .prs-form-group .prs-switch input[type="checkbox"] {
    width: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    border: none !important;
    opacity: 0 !important;
    position: absolute !important;
}

/* Make both date inputs consistent */
body .prs-modal .prs-date-fields input[type="text"],
body .prs-modal .prs-date-fields input[type="date"],
body .prs-modal .prs-date-fields select,
body .prs-modal .prs-location-fields input[type="text"] {
    height: 44px;
    flex: 1;
    padding: 6px 12px;
    border: 1px solid #ccc;
    border-radius: 8px;
    margin-bottom: 0px;
}

/* Joined start/end time range control */
.prs-time-range {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    height: 44px;
    border: 1px solid #ccc;
    border-radius: 8px;
    background: #fff;
    transition: border-color .15s;
}

.prs-time-range:focus-within {
    border-color: var(--prs-primary, #0073aa);
}

body .prs-form-group .prs-time-range select {
    height: 100% !important;
    border: none !important;
    box-shadow: none !important;
    background-color: transparent !important;
    border-radius: 8px !important;
    padding: 6px 12px !important;
}

.prs-time-dash {
    color: #b0b7c4;
    font-weight: 600;
    user-select: none;
}

body .prs-modal .prs-time-group label,
body .prs-modal .prs-date-label,
body .prs-modal .prs-location-label {
    line-height: normal;
}

/* Switch toggle alignment */
.prs-multi-days-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Switch styling */
.prs-switch {
    position: relative;
    display: inline-block;
    width: 40px;
    height: 22px;
}

.prs-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.prs-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    transition: .3s;
    border-radius: 34px;
}

.prs-slider:before {
    position: absolute;
    content: "";
    height: 16px;
    width: 16px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: .3s;
    border-radius: 50%;
}

.prs-switch input:checked+.prs-slider {
    background-color: var(--wp--preset--color--primary, #0073aa);
}

.prs-switch input:checked+.prs-slider:before {
    transform: translateX(18px);
}

/* Google Places Autocomplete - needs high z-index */
body .pac-container {
    z-index: 999999;
    position: absolute;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* Style the autocomplete items */
.pac-item {
    padding: 8px 12px;
    font-size: 14px;
    cursor: pointer;
}

.pac-item:hover {
    background-color: #f5f5f5;
}

/* Optional: make sure input field has position relative */
#prs-location {
    position: relative;
    z-index: 100000;
}

/* Flexbox layout for address fields */
.address-fields {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.address-flex {
    display: grid;
    grid-template-columns: 1.2fr .7fr .9fr;
    gap: 8px;
    margin-top: 8px;
}

body .prs-modal .address-input {
    width: 100%;
    height: 44px;
    padding: 6px 12px;
    border-radius: 8px;
    border: 1px solid #ccc;
    font-size: 14px;
    margin-bottom: 0px;
}

@media (max-width: 480px) {
    .address-flex {
        grid-template-columns: 1fr;
    }
}

/* Error message styling */
.error-message {
    color: red;
    font-size: 0.875rem;
    margin-top: 5px;
    display: none;
}

.error-message.show {
    display: block;
}

input:invalid {
    border: 1px solid red;
}

#Availibity-message-alert {
    display: none;
    background-color: #f8d7da;
    border: 1px solid #f5c2c7;
    color: #842029;
    padding: 12px 16px;
    border-radius: 6px;
    position: relative;
    margin-bottom: 15px;
    align-items: center;
    justify-content: space-between;
    margin-left: 20px;
    margin-right: 20px;
}

#Availibity-message {
    display: inline-block;
    max-width: 90%;
}

#Availibity-message-close {
    position: absolute;
    padding: 0;
    right: 10px;
    background: none;
    border: none;
    color: #842029;
    font-size: 18px;
    cursor: pointer;
}

/* Cart */
.prs-cart-container {
    display: flex;
    gap: 40px;
    align-items: flex-start;
    flex-wrap: wrap;
    margin: 40px auto;
    /* max-width: 1200px; */
}

.prs-cart-left {
    flex: 1 1 60%;
    max-width: 700px;
    border-top: 1px solid #eee;
}

body .prs-cart-container .prs-cart-title {
    font-size: 36px;
    font-weight: 700;
    margin-bottom: 0px;
    width: 100%;
}

.prs-cart-item {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    border-bottom: 1px solid #eee;
    /* padding: 20px 0; */
    padding-top: 20px;
    padding-bottom: 12px;
    align-items: flex-start;
    position: relative;
}

.prs-cart-img img {
    width: 100%;
    max-width: 192px;
    border-radius: 8px;
}

.prs-cart-info {
    flex-grow: 1;
    min-width: 0;
}

.prs-cart-info h3 {
    margin: 0 0 10px;
    font-size: 14px;
    font-weight: 600;
}

.prs-cart-info p {
    margin-bottom: 0px;
    font-size: 14px;
}

.prs-item-total {
    font-weight: 600;
}

.prs-cart-remove {
    align-self: flex-start;
}

.remove-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    background: none;
    border: 1px solid #ddd;
    border-radius: 50%;
    color: #999;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    transition: all 0.2s;
}

.remove-btn:hover {
    background-color: #e63946;
    border-color: #e63946;
    color: #fff;
}

.prs-cart-summary {
    flex: 1 1 35%;
    background: #f9fafb;
    padding: 32px;
    border-radius: 12px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
    min-width: 280px;
}

body .prs-cart-container .prs-cart-summary h2 {
    font-size: 18px;
    font-weight: 500;
    margin-bottom: 24px;
    margin-top: 0;
}

/* .prs-cart-summary hr {
    margin-top: 4px !important;
    margin-bottom: 1.5em !important;
} */

body .prs-cart-summary .prs-summary-item {
    display: flex;
    justify-content: space-between;
    margin: 5px 0;
    font-size: 14px;
}

body .prs-cart-summary .prs-summary-item span:first-child {
    font-weight: 700;
}

.prs-summary-total {
    display: flex;
    justify-content: space-between;
    font-weight: 500;
    font-size: 16px;
    margin-top: 16px;
    border-top: 1px solid #eee;
    padding-top: 16px;
}

.min-warning {
    color: #d9534f;
    margin-top: 10px;
}

body .prs-cart-summary .checkout-btn {
    display: block;
    text-align: center;
    background: #4caf50;
    color: #fff;
    border: 1px solid #4caf50;
    border-radius: 6px;
    padding: 12px 16px;
    text-decoration: none;
    margin-top: 15px;
    transition: background 0.3s;
    width: 100%;
    line-height: normal;
    font: inherit;
    cursor: pointer;
}

.checkout-btn:hover {
    background: #45a049;
}

.checkout-btn.disabled {
    background: #cce5cc;
    color: #333;
    cursor: not-allowed;
}

.continue-link {
    margin-top: 10px;
    text-align: center;
}

.continue-link a {
    color: #007bff;
    text-decoration: none;
}

.continue-link a:hover {
    text-decoration: underline;
}

@media (max-width: 768px) {
    .prs-cart-container {
        flex-direction: column;
        gap: 20px;
    }

    .prs-cart-left,
    .prs-cart-summary {
        max-width: 100%;
        flex: 1 1 100%;
        width: 100%;
    }

    .prs-cart-item {
        flex-direction: row;
        align-items: flex-start;
        text-align: start;
    }

    .prs-cart-img img {
        max-width: 100px;
    }

    .prs-cart-remove {
        align-self: flex-start;
        margin-top: 0px;
    }

}

.prs-loader {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.8);
    z-index: 1000000;
    font-size: 16px;
    color: #333;
    text-align: center;
    border-radius: 10px;
}

.prs-spinner {
    border: 4px solid #f3f3f3;
    border-top: 4px solid #0073aa;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    animation: spin 0.9s linear infinite;
    margin-bottom: 10px;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* ===== Coupon Section Styles ===== */

.prs-coupon-toggle {
    color: #5a52b5;
    font-size: 14px;
    cursor: pointer;
    margin-top: 15px;
    font-weight: 500;
    transition: color 0.3s ease;
}

.prs-coupon-toggle:hover {
    color: #3b36a0;
}

.prs-coupon-box {
    margin-top: 12px;
}

.prs-coupon-label {
    display: block;
    font-size: 13px;
    color: #333;
    margin-bottom: 6px;
    font-weight: 500;
}

.prs-coupon-input-wrap {
    display: flex;
    gap: 8px;
}

body .prs-cart-summary .prs-coupon-input {
    flex: 1;
    padding: 8px 10px;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: 14px;
    color: #333;
    margin-bottom: 0px;
    transition: border-color 0.2s ease;
}

.prs-coupon-input:focus {
    outline: none;
    border-color: #5a52b5;
}

.prs-coupon-btn {
    background-color: #5a52b5;
    color: #fff;
    font-weight: 500;
    border: none;
    border-radius: 5px;
    padding: 8px 16px;
    font-size: 14px;
    cursor: pointer;
    transition: background 0.3s ease;
}

.prs-coupon-btn:disabled {
    background-color: #b5b2db;
    cursor: not-allowed;
}

.prs-coupon-btn:hover:not(:disabled) {
    background-color: #4a44a3;
}

.prs-coupon-error {
    color: #d93025;
    font-size: 12px;
    margin-top: 5px;
    display: block;
}

/* 🔸 Minimum Order Alert Styles */
.min-order-alert-box {
    display: flex;
    align-items: flex-start;
    background-color: #fefce8;
    /* light yellow */
    border: 1px solid #facc15;
    /* yellow border */
    border-radius: 6px;
    padding: 12px 16px;
    margin-bottom: 16px;
    gap: 12px;
}

.min-order-alert-icon {
    flex-shrink: 0;
    color: #854d0e;
}

.min-order-alert-icon svg {
    width: 20px;
    height: 20px;
}

.min-order-alert-content {
    flex: 1;
}

.min-order-alert-title {
    font-size: 14px;
    font-weight: 600;
    color: #854d0e;
    margin: 0;
}

.min-order-alert-text {
    font-size: 12px;
    color: #854d0e;
    margin-top: 4px;
}

/* Text warning near total */
.min-order-text-warning {
    color: #b91c1c;
    font-weight: 600;
    font-size: 13px;
}

/* Disabled button style */
body .btn-disabled,
.prs-container .btn-disabled {
    opacity: 0.5;
    cursor: not-allowed;
    filter: grayscale(0.5);
}

/* Animation */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- Add-on Section --- */
.addons-container {
    margin-top: 30px;
}

.addons-container h1 {
    font-size: 1.6rem;
    font-weight: 700;
    color: #222;
    margin-bottom: 20px;
    border-bottom: 2px solid #f0f0f0;
    padding-bottom: 8px;
}

.addon-item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    padding: 18px 0;
    border-bottom: 1px solid #e5e5e5;
}

.addon-img img {
    width: 90px;
    height: 90px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #ddd;
    background: #fafafa;
    transition: transform 0.2s ease;
}

.addon-img img:hover {
    transform: scale(1.05);
}

.addon-details {
    flex: 1;
}

.addon-details h3 {
    font-size: 1rem;
    font-weight: 600;
    color: #333;
    margin-bottom: 10px;
}

/* --- Beautiful Dropdown --- */
.addon-details select {
    width: 100%;
    max-width: 280px;
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-radius: 8px;
    background-color: #fff;
    font-size: 15px;
    color: #333;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    transition: all 0.2s ease;
    appearance: none;
    background-image: linear-gradient(45deg, transparent 50%, #555 50%),
        linear-gradient(135deg, #555 50%, transparent 50%);
    background-position: calc(100% - 18px) calc(1em + 2px), calc(100% - 13px) calc(1em + 2px);
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
    cursor: pointer;
}

.addon-details select:hover {
    border-color: #0073aa;
}

.addon-details select:focus {
    border-color: #0073aa;
    box-shadow: 0 0 0 3px rgba(0, 115, 170, 0.15);
    outline: none;
}

/* --- Text and Totals --- */
.addon-price,
.addon-total {
    font-size: 14px;
    color: #444;
    margin-top: 6px;
}

.addon-total {
    font-weight: 600;
    color: #111;
}

.error-message {
    color: #d9534f;
    font-size: 13px;
    margin-top: 5px;
}

/* --- Responsive --- */
@media (max-width: 600px) {
    .addon-item {
        flex-direction: column;
        align-items: flex-start;
    }

    .addon-img img {
        width: 100%;
        max-width: 120px;
        height: auto;
    }

    .addon-details select {
        max-width: 100%;
    }
}

body .prs-cart-container .prs-cart-options {
    list-style: none;
    margin: 12px 0;
    color: #6b7280;
    font-size: 14px;
    padding-left: 0px;
}

.product_qty {
    display: block;
    font-weight: 600;
    margin-bottom: 5px;
}

body .prs-product-detail #product_qty_field {
    width: 100%;
    padding: 5px;
    border-radius: 4px;
}

/* ===== PRS Button Reset & Theme-Independent Styling ===== */
body .prs-container .prs-check-availability,
body .prs-container .prs-add-to-cart,
body .prs-container .prs-btn,
body .prs-check-availability,
body .prs-add-to-cart,
body .prs-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: inherit;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    padding: 10px 20px;
    border-radius: 6px;
    border: 1px solid transparent;
    transition: all 0.2s ease-in-out;
    line-height: 1.4;
    white-space: nowrap;
}

/* Primary (blue) */
.prs-btn-primary,
.prs-check-availability.btn-primary {
    background-color: #0073aa;
    /* WordPress blue */
    color: #fff;
    border-color: #0073aa;
}

.prs-btn-primary:hover,
.prs-check-availability.btn-primary:hover {
    background-color: #005177;
}

/* Success (green) */
.prs-btn-success,
.btn-success {
    background-color: #28a745;
    color: #fff;
    border-color: #28a745;
}

.prs-btn-success:hover {
    background-color: #1e7e34;
}

/* Warning (yellow) */
.prs-btn-warning,
.btn-warning {
    background-color: #ffca2c;
    color: #212529;
    border-color: #ffc107;
}

.prs-btn-warning:hover {
    background-color: #ffb700;
}

/* Make sure buttons aren't overridden by theme resets */
body button.prs-check-availability,
body button.prs-add-to-cart,
body .prs-container button.prs-check-availability,
body .prs-container button.prs-add-to-cart {
    appearance: none;
    -webkit-appearance: none;
    box-shadow: none;
}

/* Responsive sizing */
@media (max-width: 600px) {

    .prs-btn,
    .prs-check-availability,
    .prs-add-to-cart {
        width: 100%;
    }
}

body .prs-product-detail .prs-product-detail__qty {
    margin: 12px 0;
    display: flex;
    flex-direction: column;
    align-items: start;
    line-height: 1.5rem;
    gap: 10px;
}

body .prs-product-detail .prs-product-detail__qty label {
    margin-bottom: 0px;
}

.prs-form-group input[type="text"],
.prs-form-group input[type="date"],
.prs-form-group input[type="time"],
.prs-form-group input[type="email"],
.prs-form-group input[type="number"],
.prs-form-group input[type="password"],
.prs-form-group select,
.address-input {
    width: 100%;
    padding: 10px 12px;
    font-size: 15px;
    font-family: 'Inter', sans-serif;
    color: #111;
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 6px;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

/* =====================================================
   PRS Category
   ===================================================== */

.prs-category-detail {
    padding: 50px;
    /* max-width: 75%; */
    margin: auto;
}

.prs-category-header {
    margin-bottom: 1rem;
    text-align: center;
    /* max-width: 900px; */
    margin-left: auto;
    margin-right: auto;
    padding: 1rem;
}

.prs-category-banner {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-bottom: 1.5rem;
}

.prs-category-banner__image {
    width: auto;
    height: auto;
    /* max-height: 400px; */
    border-radius: 8px;
    object-fit: contain;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.prs-category-title {
    font-size: 2rem;
    font-weight: 600;
    color: #1a1a1a;
    margin-bottom: 1rem;
    font-family: inherit;
}

.prs-category-description {
    font-size: 1rem;
    line-height: 1.7;
    color: #444;
    text-align: left;
    margin: 0 auto;
    /* max-width: 700px; */
}

.prs-category-description p {
    margin-bottom: 1em;
}

/* Filter container (matches .prs-products width) */
body .prs-filter-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 20px;
    text-align: right;
}

/* Sort bar */
body .prs-sort-bar {
    margin-bottom: 15px;
}

body .prs-sort-bar .prs-sort-bar__select {
    width: 220px;
    font-size: 14px;
    font-family: 'Inter', sans-serif;
    padding: 8px 36px 8px 14px;
    border: 1px solid #ddd;
    border-radius: 6px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23666'/%3E%3C/svg%3E") no-repeat right 12px center / 10px 6px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    color: #333;
    cursor: pointer;
}

body .prs-sort-bar .prs-sort-bar__select:hover {
    border-color: #999;
}

body .prs-sort-bar .prs-sort-bar__select:focus {
    outline: none;
    border-color: #666;
}

@media (max-width: 640px) {
    body .prs-sort-bar .prs-sort-bar__select {
        width: 100%;
    }

    .prs-category-title {
        font-size: 1.5rem;
    }

    .prs-category-header {
        padding: 0.5rem;
    }
}

@media (min-width: 991px) {

    body .prs-cart-container {
        gap: 20px;
    }

    body .prs-cart-container .prs-cart-left {
        flex: 1 1 60%;
        max-width: 60%;
    }

    body .prs-cart-container .prs-cart-summary {
        max-width: 30%;
        flex: 1 1 30%;
    }
}

/* Header row: Date + Multiple Days */
.prs-date-label {
    margin-bottom: 2px;
}

/* Inputs row */
.prs-date-inputs {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

/* When multiple days is active → two columns */
.prs-date-group.multi-days-active .prs-date-inputs {
    grid-template-columns: 1fr 1fr;
}

/* Inputs */
.prs-date-inputs input {
    width: 100%;
    padding: 8px 10px;
    border-radius: 6px;
    border: 1px solid #d1d5db;
    font-size: 14px;
}

/* Hide end date by default */
#prs-end-date {
    display: none;
}

/* Show end date when active */
.prs-date-group.multi-days-active #prs-end-date {
    display: block;
}

/* Sub Categories */
.prs-sub-categories {
    margin-top: 12px;
}

.prs-sub-categories__title {
    font-size: 1.25rem;
    line-height: 1.75rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: #111827;
    text-align: left;
    margin: 0;
}

.prs-sub-categories__count {
    color: #9ca3af;
    font-weight: 400;
    margin-left: 4px;
}

.prs-sub-categories__grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 12px;
    margin-top: 1.25rem;
}

@media (min-width: 640px) {
    .prs-sub-categories__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.prs-sub-category-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    background: #fff;
    text-decoration: none;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

.prs-sub-category-card:hover {
    border-color: #d1d5db;
    background-color: #fafafa;
}

.prs-sub-category-card__image {
    width: 56px;
    height: 56px;
    flex-shrink: 0;
    border-radius: 6px;
    overflow: hidden;
    background: #f8f9fa;
}

.prs-sub-category-card__image img,
.prs-sub-category-card__image .prs-image-placeholder {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
}

.prs-sub-category-card__content {
    min-width: 0;
}

.prs-sub-category-card__title {
    font-size: 13px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #1f2937;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

body .prs-container .horizontal-line,
body .horizontal-line {
    margin-bottom: 32px;
    margin-top: 0;
}

.prs-package-row {
    display: flex;
    gap: 48px;
    padding: 40px 0;
}

.prs-package-left {
    width: 180px;
    flex-shrink: 0;
}

.prs-package-block {
    border: 1px solid #2226241A;
    border-style: solid;
    border-color: #2226241A;
    border-radius: 0.375rem;
    text-align: center;
    cursor: pointer;
    padding: 24px 12px;
}

.prs-package-image {
    max-height: 240px;
    object-fit: cover;
    object-position: center;
}

.prs-package-count-box {
    border: 1px solid #2226241A;
    padding: 20px;
    text-align: left;
    height: 11rem;
}

.prs-package-count {
    height: 48px;
    width: 48px;
    padding: 6px 10px;
    background-color: #111827;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 28px;
    font-weight: 600;
    color: #ffffff;
}

.prs-package-count-text {
    margin-top: 8px;
    font-weight: 400;
    font-size: 14px;
    color: #222624;
}

.prs-package-view {
    margin-top: 28px;
    font-weight: 400;
    font-size: 12px;
    color: #222624;
    border-bottom: 1px solid #222624;
}

.prs-package-view-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    color: #222624;
}

.prs-package-title {
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 6px;
}

.prs-package-title-link {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.prs-package-title-link:hover {
    text-decoration: none;
}

.prs-package-products-link {
    font-size: 14px;
    text-decoration: underline;
    display: inline-block;
    color: #222624;
}

.prs-package-price-row {
    display: flex;
    gap: 16px;
    margin-top: 12px;
    align-items: center;
}

.prs-package-price {
    font-size: 22px;
    color: #222624;
}

.prs-package-save {
    font-size: 14px;
    font-weight: 500;
    background-color: #4EB781;
    padding: 7px 11px;
    color: #ffffff;
}

.prs-package-desc {
    margin-top: 24px;
    color: #383B37;
    line-height: 1.6;
    margin-bottom: 0;
}

.prs-package-divider {
    border: none;
    border-bottom: 1px solid #e5e5e5;
}


/* ---------------------- */

.prs-package-products {
    margin-top: 32px;
    border: 1px solid #e4e5e4;
    border-radius: 10px;
    padding: 20px;
}

.prs-package-detail-title {
    font-size: 26px;
    font-weight: 700;
    margin-top: 0;
    margin-bottom: 10px;
}

.prs-package-product-row {
    display: flex;
    gap: 32px;
    padding: 12px 0;
    border-bottom: 1px solid #eee;
    align-items: center;
}

.prs-package-product-row:last-child {
    border-bottom: none;
}

.prs-package-product-image img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 6px;
}

.prs-package-action {
    margin-top: 32px;
}

.prs-package-prod_img {
    height: 80px;
    width: 80px;
    border-radius: 5px;
    object-position: center;
    transition: opacity 0.3s;
}

.prs-package-prod_img:hover {
    opacity: 0.75;
}

.prs-package-noimg-layout {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 32px;
    align-items: start;
}

.prs-package-detail-left {
    max-width: 520px;
}

.without-img .prs-package-products {
    margin-top: 0;
}

.prs-package-products span {
    margin: 0;
    font-weight: normal;
    font-size: 18px;
    color: #222624;
}

.prs-package-product-row strong {
    font-size: 16px;
    font-weight: 600;
    color: #222624;
}

.prs-product-disabled {
    opacity: 0.5;
    pointer-events: none;
}

.prs-product-unavailable {
    color: #888;
    font-size: 16px;
    font-weight: 400;
    font-style: italic;
}

.prs-product-detail__actions {
    margin-top: 20px;
}

body .prs-container .prs-add-to-cart-form.prs-package-add-form,
body .prs-add-to-cart-form.prs-package-add-form {
    background: none;
    border: none;
    box-shadow: none;
}



.prs-container.prs-dark-theme .prs-package-count-text {
    color: #ffffff;
}


.prs-container.prs-dark-theme .prs-package-products-link {
    color: #ffffff;
}

.prs-container.prs-dark-theme .prs-package-price {
    color: #ffffff;
}

.prs-container.prs-dark-theme .prs-package-desc {
    color: #ffffff;
}

.prs-container.prs-dark-theme .prs-package-view-link {
    color: #ffffff;
}


.prs-container.prs-dark-theme .prs-package-view {
    color: #ffffff;
    border-bottom: 1px solid #ffffff;
}

.prs-container.prs-dark-theme svg path {
    stroke: #ffffff;
}

.prs-container.prs-dark-theme .prs-package-count-box {
    border: 1px solid #ffffff1a;
}

.prs-container.prs-dark-theme .text-gray-500.text-sm.leading-relaxed {
    color: #ffffff;
}


/* ── Package Groups ── */

.prs-package-group {
    margin-top: 32px;
    border: 1px solid #e4e5e4;
    border-radius: 8px;
    padding: 24px;
}

.prs-package-group h3 {
    margin: 0 0 4px;
    font-size: 18px;
    font-weight: 600;
    color: #222624;
}

.prs-package-group-hint {
    margin: 0 0 16px;
    font-size: 14px;
    color: #888;
}

.prs-package-group-option {
    display: flex;
    gap: 16px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid #f0f0f0;
    cursor: pointer;
    transition: background-color 0.15s;
}

.prs-package-group-option:last-child {
    border-bottom: none;
}

.prs-package-group-option:hover {
    background-color: #f9f9f9;
}

.prs-package-group-option input[type="radio"] {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    accent-color: #222624;
    cursor: pointer;
}

.prs-package-group-option .prs-package-prod_img {
    flex-shrink: 0;
}

.prs-package-group-option-info {
    flex: 1;
}

.prs-package-group-option-info strong {
    font-size: 16px;
    font-weight: 600;
    color: #222624;
}

.prs-package-group-option.prs-product-disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ── Dark theme ── */

body .prs-container.prs-dark-theme .prs-package-group {
    border-color: #ffffff1a;
}

body .prs-container.prs-dark-theme .prs-package-group h3 {
    color: #ffffff;
}

body .prs-container.prs-dark-theme .prs-package-group-hint {
    color: #aaa;
}

body .prs-container.prs-dark-theme .prs-package-group-option-info strong {
    color: #ffffff;
}

body .prs-container.prs-dark-theme .prs-package-group-option:hover {
    background-color: #ffffff0d;
}

body .prs-container.prs-dark-theme .prs-package-group-option {
    border-bottom-color: #ffffff1a;
}

body .prs-container.prs-dark-theme .prs-package-products h3 {
    color: #ffffff;
}

body .prs-container.prs-dark-theme .prs-package-product-row strong {
    color: #ffffff;
}

body .prs-container.prs-dark-theme .prs-category__name {
    color: #ffffff;
}

body .prs-container.prs-dark-theme .sc_layouts_title_caption {
    color: #ffffff;
}

body .prs-container.prs-dark-theme .prs-category-title {
    color: #ffffff;
}

body .prs-container.prs-dark-theme .prs-category-description p {
    color: #ffffff;
}

.prs-container.prs-dark-theme .prs-sub-categories__title {
    color: white;
}

.prs-container.prs-dark-theme .prs-product-detail__desc {
    color: white;
}

.prs-container.prs-dark-theme .prs-product-detail__desc strong {
    color: white;
}

.prs-container.prs-dark-theme .prs-product-detail__note {
    color: white;
}


/* ===========================================================
   THEME ENHANCEMENTS & ANIMATIONS
   Merged from prs-theme.css - Higher specificity overrides
   =========================================================== */

/* CSS Custom Properties */
:root {
    --prs-ease-luxury: cubic-bezier(0.165, 0.84, 0.44, 1);
    --prs-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
    --prs-card-bg: #f8f9fa;
    --prs-primary: #0073aa;
}

/* Entrance Animation */
@keyframes prs-entrance {
    0% {
        opacity: 0;
        transform: translateY(20px) scale(0.96);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* -------------------------------------------------------
   Enhanced Categories Grid (Theme Override)
   Using .prs-container for higher specificity
   ------------------------------------------------------- */
.prs-container.prs-categories,
body .prs-categories {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    padding: 40px 20px;
    align-items: start;
    max-width: 1400px;
    margin: 0 auto;
}

.prs-container .prs-category,
body .prs-category {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    margin: 0;
    text-decoration: none;
    cursor: pointer;
    perspective: 1000px;
    opacity: 0;
    animation: prs-entrance 0.8s var(--prs-ease-luxury) forwards;
}

.prs-container .prs-category__image,
body .prs-category__image {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    border-radius: 20px;
    overflow: hidden;
    position: relative;
    background-color: var(--prs-card-bg);
    margin-bottom: 0;
    transform: translateZ(0);
    will-change: transform;
    transition: transform 0.5s var(--prs-ease-luxury), box-shadow 0.5s var(--prs-ease-luxury);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05),
                0 2px 4px -1px rgba(0, 0, 0, 0.03),
                inset 0 0 0 1px hsla(0, 0%, 100%, 0.5);
}

.prs-container .prs-category__image img,
body .prs-category__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
    display: block;
    filter: brightness(1.02);
    transform: scale(1.01);
    transition: transform 0.8s var(--prs-ease-luxury);
}

/* Shine effect overlay */
.prs-container .prs-category__image::after,
body .prs-category__image::after {
    content: "";
    position: absolute;
    top: 0;
    left: -150%;
    width: 100%;
    height: 100%;
    background: linear-gradient(105deg, transparent 20%, hsla(0, 0%, 100%, 0.4) 50%, transparent 80%);
    transform: skewX(-25deg);
    pointer-events: none;
    transition: left 0s;
}

.prs-container .prs-category__name,
body .prs-category__name {
    margin-top: 18px;
    font-size: 1.15rem;
    font-weight: 700;
    color: #1f2937;
    text-align: center;
    line-height: 1.35;
    text-wrap: balance;
    text-transform: capitalize;
    transition: color 0.3s ease, transform 0.4s var(--prs-ease-spring);
}

/* Category Hover States */
.prs-container .prs-category:hover .prs-category__image,
body .prs-category:hover .prs-category__image {
    transform: translateY(-6px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1),
                0 10px 10px -5px rgba(0, 0, 0, 0.04),
                inset 0 0 0 1px rgba(0, 0, 0, 0.05);
}

.prs-container .prs-category:hover .prs-category__image img,
body .prs-category:hover .prs-category__image img {
    transform: scale(1.12);
}

.prs-container .prs-category:hover .prs-category__image::after,
body .prs-category:hover .prs-category__image::after {
    left: 150%;
    transition: left 0.7s ease-in-out;
}

.prs-container .prs-category:hover .prs-category__name,
body .prs-category:hover .prs-category__name {
    color: var(--prs-primary);
    transform: translateY(2px);
}

.prs-container .prs-category:active .prs-category__image,
body .prs-category:active .prs-category__image {
    transform: translateY(-2px) scale(0.98);
    transition-duration: 0.1s;
}

/* Staggered animation delays */
.prs-container .prs-category:first-child,
body .prs-category:first-child { animation-delay: 0.05s; }
.prs-container .prs-category:nth-child(2),
body .prs-category:nth-child(2) { animation-delay: 0.1s; }
.prs-container .prs-category:nth-child(3),
body .prs-category:nth-child(3) { animation-delay: 0.15s; }
.prs-container .prs-category:nth-child(4),
body .prs-category:nth-child(4) { animation-delay: 0.2s; }
.prs-container .prs-category:nth-child(5),
body .prs-category:nth-child(5) { animation-delay: 0.25s; }
.prs-container .prs-category:nth-child(6),
body .prs-category:nth-child(6) { animation-delay: 0.3s; }
.prs-container .prs-category:nth-child(7),
body .prs-category:nth-child(7) { animation-delay: 0.35s; }
.prs-container .prs-category:nth-child(8),
body .prs-category:nth-child(8) { animation-delay: 0.4s; }

/* Categories Responsive */
@media (max-width: 900px) {
    .prs-container.prs-categories,
    body .prs-categories {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 600px) {
    .prs-container.prs-categories,
    body .prs-categories {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
        padding: 24px 16px;
    }

    .prs-container .prs-category__name,
    body .prs-category__name {
        font-size: 0.95rem;
    }
}

/* -------------------------------------------------------
   Enhanced Category Detail Page (Theme Override)
   ------------------------------------------------------- */
.prs-container.prs-category-detail,
body .prs-category-detail {
    max-width: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
}

.prs-container .prs-category-header,
body .prs-category-header {
    max-width: 1500px;
    margin: 40px auto 60px;
    padding: 0 20px;
    text-align: center;
    opacity: 0;
    animation: prs-entrance 0.8s var(--prs-ease-luxury) forwards;
}

.prs-container .prs-category-title,
body .prs-category-title {
    font-size: 3rem;
    font-weight: 800;
    color: #111;
    letter-spacing: -0.03em;
    line-height: 1.1;
    margin-bottom: 24px;
    background: linear-gradient(135deg, #111, #444);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.prs-container .prs-category-banner,
body .prs-category-banner {
    border-radius: 24px;
    overflow: hidden;
    position: relative;
    margin-bottom: 40px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.1),
                inset 0 0 0 1px hsla(0, 0%, 100%, 0.2);
}

.prs-container .prs-category-banner__image,
body .prs-category-banner__image {
    width: 100%;
    height: auto;
    max-height: 500px;
    object-fit: cover;
    display: block;
    transform: scale(1.01);
}

.prs-container .prs-category-description,
body .prs-category-description {
    margin: 0 auto;
    text-align: left;
}

.prs-container .prs-category-description h2,
body .prs-category-description h2 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1f2937;
    margin-bottom: 16px;
    text-align: center;
}

.prs-container .prs-category-description p,
body .prs-category-description p {
    font-size: 1.05rem;
    line-height: 1.75;
    color: #4b5563;
    margin-bottom: 20px;
}

.prs-container.prs-category-detail .prs-products,
body .prs-category-detail .prs-products {
    margin-top: 60px;
    padding-top: 60px;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}

@media (max-width: 768px) {
    .prs-container .prs-category-title,
    body .prs-category-title {
        font-size: 2rem;
    }

    .prs-container .prs-category-header,
    body .prs-category-header {
        margin-top: 20px;
        margin-bottom: 30px;
    }

    .prs-container .prs-category-description,
    body .prs-category-description {
        padding: 0 10px;
        text-align: left;
    }

    .prs-container .prs-category-banner,
    body .prs-category-banner {
        border-radius: 16px;
    }
}

/* -------------------------------------------------------
   Enhanced Products Grid (Theme Override)
   ------------------------------------------------------- */
.prs-container .prs-products,
body .prs-products {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    padding: 20px;
    align-items: stretch;
    max-width: 1400px;
    margin: 0 auto;
}

.prs-container .prs-product,
body .prs-product {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.04);
    border-radius: 10px;
    overflow: hidden;
    position: relative;
    text-decoration: none;
    opacity: 0;
    animation: prs-entrance 0.8s var(--prs-ease-luxury) forwards;
    transform: translateZ(0);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.02),
                0 2px 4px -1px rgba(0, 0, 0, 0.02);
    transition: transform 0.5s var(--prs-ease-luxury), box-shadow 0.5s var(--prs-ease-luxury);
}

.prs-container .prs-product__image,
body .prs-product__image {
    display: block;
    width: 100%;
    height: 220px;
    overflow: hidden;
    position: relative;
    background-color: var(--prs-card-bg);
    box-shadow: inset 0 -10px 20px -10px rgba(0, 0, 0, 0.05);
}

.prs-container .prs-product__image img,
body .prs-product__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    padding: 0;
    filter: brightness(1.02);
    transition: transform 0.8s var(--prs-ease-luxury);
}

/* "View Details" overlay button */
.prs-container .prs-product__image::before,
body .prs-product__image::before {
    content: 'View Details';
    position: absolute;
    bottom: 14px;
    left: 50%;
    transform: translateX(-50%) translateY(6px);
    background: #fff;
    color: #1a1a1a;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 8px 22px;
    border-radius: 4px;
    white-space: nowrap;
    opacity: 0;
    transition: opacity 0.25s ease, transform 0.25s ease;
    z-index: 5;
    pointer-events: none;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* Dark scrim overlay on hover */
.prs-container .prs-product__image::after,
body .prs-product__image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.18);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}

.prs-container .prs-product__meta,
body .prs-product__meta {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    justify-content: space-between;
    align-items: flex-start;
    background: #fff;
    z-index: 2;
}

.prs-container .prs-product__title,
body .prs-product__title {
    font-size: 15px;
    font-weight: 400;
    color: #1f2937;
    margin: 0 0 8px;
    line-height: 1.4;
    text-align: left;
    text-wrap: balance;
    transition: color 0.3s ease;
}

.prs-container .prs-product__price,
body .prs-product__price {
    display: inline-block;
    align-self: flex-start;
    font-size: 15px;
    font-weight: 700;
    color: var(--prs-primary);
    background: none;
    padding: 0;
    border-radius: 0;
    margin-top: 0;
}

/* Product Hover States */
.prs-container .prs-product:hover,
body .prs-product:hover {
    transform: translateY(-8px);
    border-color: transparent;
    z-index: 10;
    box-shadow: 0 20px 40px -5px rgba(0, 0, 0, 0.08),
                0 10px 15px -5px rgba(0, 0, 0, 0.04);
}

.prs-container .prs-product:hover .prs-product__image img,
body .prs-product:hover .prs-product__image img {
    transform: scale(1.1);
}

.prs-container .prs-product:hover .prs-product__image::before,
body .prs-product:hover .prs-product__image::before {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

.prs-container .prs-product:hover .prs-product__image::after,
body .prs-product:hover .prs-product__image::after {
    opacity: 1;
}

.prs-container .prs-product:hover .prs-product__title,
body .prs-product:hover .prs-product__title {
    color: var(--prs-primary);
}

/* Products Responsive */
@media (max-width: 1100px) {
    .prs-container .prs-products,
    body .prs-products {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .prs-container .prs-products,
    body .prs-products {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
        padding: 10px;
    }

    .prs-container .prs-product__image,
    body .prs-product__image {
        height: 160px;
    }

    .prs-container .prs-product__meta,
    body .prs-product__meta {
        padding: 15px;
    }

    .prs-container .prs-product__title,
    body .prs-product__title {
        font-size: 0.95rem;
    }
}

/* -------------------------------------------------------
   Enhanced Product Detail Page (Theme Override)
   ------------------------------------------------------- */
.prs-container.prs-product-detail,
body .prs-product-detail {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    max-width: 1200px;
    margin: 40px auto;
    padding: 40px 20px;
    align-items: start;
    opacity: 0;
    animation: prs-entrance 0.8s var(--prs-ease-luxury) forwards;
}

.prs-container .prs-product-detail__media,
body .prs-product-detail__media {
    width: 100%;
    border-radius: 24px;
    overflow: hidden;
    position: sticky;
    top: 40px;
    background-color: var(--prs-card-bg);
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.08),
                inset 0 0 0 1px hsla(0, 0%, 100%, 0.5);
}

.prs-container .prs-product-detail__media > img,
body .prs-product-detail__media > img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
}

/* Product Image Gallery Thumbnails */
.prs-product-gallery {
    display: flex;
    gap: 8px;
    padding: 12px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.prs-product-gallery__thumb {
    flex: 0 0 auto;
    width: 64px;
    height: 64px;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    background: #f5f5f5;
    opacity: 0.6;
    transition: opacity 0.2s ease, border-color 0.2s ease;
}

.prs-product-gallery__thumb:hover {
    opacity: 0.85;
}

.prs-product-gallery__thumb--active {
    border-color: var(--prs-primary, #0073aa);
    opacity: 1;
}

.prs-product-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ====================================================================
   Gallery Lightbox — PhotoSwipe-style UX
   All rules use !important to survive third-party theme overrides
   (Tailwind forms plugin, Elementor, etc.)
   ==================================================================== */
.prs-gallery-modal {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 999999 !important;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.25s ease-out, visibility 0s 0.25s;
    margin: 0 !important;
    padding: 0 !important;
}

.prs-gallery-modal.is-open {
    visibility: visible;
    opacity: 1;
    transition: opacity 0.25s ease-out, visibility 0s 0s;
}

/* Full-screen dark background — clickable to close */
.prs-gallery-modal__bg {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: #1a1a1a !important;
    cursor: pointer !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Shared reset for all buttons inside the lightbox */
.prs-gallery-modal button,
.prs-gallery-modal button:hover,
.prs-gallery-modal button:focus {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #fff !important;
    font-size: inherit !important;
    line-height: 1 !important;
    text-decoration: none !important;
    -webkit-appearance: none !important;
}

/* ---- Top-right toolbar ---- */
.prs-gallery-modal__toolbar {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 12px 16px !important;
    z-index: 10 !important;
}

.prs-gallery-modal__counter {
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

.prs-gallery-modal__btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    cursor: pointer !important;
    opacity: 0.75;
    transition: opacity 0.15s ease-out;
}

.prs-gallery-modal__btn:hover {
    opacity: 1;
}

/* ---- Prev / Next arrows — screen edges ---- */
.prs-gallery-modal__arrow {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 50px !important;
    height: 80px !important;
    cursor: pointer !important;
    opacity: 0.7;
    transition: opacity 0.15s ease-out;
    z-index: 10 !important;
}

.prs-gallery-modal__arrow:hover {
    opacity: 1;
}

.prs-gallery-modal__arrow--prev {
    left: 0 !important;
}

.prs-gallery-modal__arrow--next {
    right: 0 !important;
}

/* ---- Image stage ---- */
.prs-gallery-modal__stage {
    position: absolute !important;
    top: 56px !important;
    left: 60px !important;
    right: 60px !important;
    bottom: 80px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 5 !important;
    pointer-events: none !important;
}

.prs-gallery-modal__img {
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    user-select: none !important;
    pointer-events: auto !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    opacity: 0;
    transition: opacity 0.2s ease-out;
}

.prs-gallery-modal__img.is-loaded {
    opacity: 1;
}

/* ---- Bottom thumbnail strip ---- */
.prs-gallery-modal__thumbs {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    padding: 10px 16px 14px !important;
    z-index: 10 !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.prs-gallery-modal__thumb {
    flex: 0 0 auto !important;
    width: 48px !important;
    height: 48px !important;
    border: 2px solid transparent !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    cursor: pointer !important;
    opacity: 0.5;
    transition: opacity 0.15s ease-out, border-color 0.15s ease-out;
}

.prs-gallery-modal__thumb:hover {
    opacity: 0.8;
}

.prs-gallery-modal__thumb--active {
    border-color: #fff !important;
    opacity: 1;
}

.prs-gallery-modal__thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    border: none !important;
    border-radius: 0 !important;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .prs-gallery-modal,
    .prs-gallery-modal__img {
        transition: none !important;
    }
}

/* Mobile */
@media (max-width: 600px) {
    .prs-gallery-modal__stage {
        top: 50px !important;
        left: 44px !important;
        right: 44px !important;
        bottom: 72px !important;
    }

    .prs-gallery-modal__arrow {
        width: 40px !important;
        height: 60px !important;
    }

    .prs-gallery-modal__arrow svg {
        width: 22px !important;
        height: 22px !important;
    }

    .prs-gallery-modal__thumb {
        width: 40px !important;
        height: 40px !important;
    }
}

.prs-container .prs-product-detail__info,
body .prs-product-detail__info {
    display: flex;
    flex-direction: column;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
}

.prs-container .prs-product-detail__title,
body .prs-product-detail__title {
    font-size: 2.5rem;
    font-weight: 800;
    color: #111;
    letter-spacing: -0.02em;
    line-height: 1.1;
    margin-bottom: 10px;
}

/* Add to cart form styling */
.prs-container .prs-add-to-cart-form,
body .prs-add-to-cart-form {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 16px;
    padding: 24px;
    margin-bottom: 40px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.05);
}

.prs-container .prs-check-availability,
body .prs-check-availability {
    width: 100%;
    padding: 16px 24px;
    font-size: 1.1rem;
    font-weight: 600;
    color: #fff;
    background: var(--prs-primary);
    border: none;
    border-radius: 12px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0, 115, 170, 0.3);
    transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.2s ease;
}

.prs-container .prs-check-availability:hover,
body .prs-check-availability:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 115, 170, 0.4);
}

.prs-container .prs-check-availability:active,
body .prs-check-availability:active {
    transform: translateY(1px);
    box-shadow: 0 2px 5px rgba(0, 115, 170, 0.2);
}

.prs-container .prs-product-detail__desc,
body .prs-product-detail__desc {
    font-size: 1.05rem;
    line-height: 1.7;
    color: #4b5563;
    margin-bottom: 40px;
}

.prs-container .prs-product-detail h3,
body .prs-product-detail h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: #111;
    margin-bottom: 16px;
}

/* Product Detail Responsive */
@media (max-width: 900px) {
    .prs-container.prs-product-detail,
    body .prs-product-detail {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .prs-container .prs-product-detail__media,
    body .prs-product-detail__media {
        position: static;
    }

    .prs-container .prs-product-detail__title,
    body .prs-product-detail__title {
        font-size: 2rem;
    }
}

/* ============================================================================
   SEARCH RESULTS PAGE
   ============================================================================ */

.prs-search-results {
    padding: 40px 20px;
    max-width: 1400px;
    margin: 0 auto;
}

/* Search Form Container */
.prs-search-form-container {
    margin-bottom: 40px;
}

.prs-search-form {
    display: flex;
    gap: 12px;
    max-width: 700px;
    margin: 0 auto;
}

.prs-search-input {
    flex: 1;
    padding: 14px 20px;
    font-size: 1rem;
    border: 2px solid #e0e0e0;
    border-radius: 8px;
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.prs-search-input:focus {
    border-color: var(--prs-primary, #2b3240);
    box-shadow: 0 0 0 3px rgba(43, 50, 64, 0.1);
}

.prs-search-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 28px;
    font-size: 1rem;
    font-weight: 600;
    color: #fff;
    background-color: var(--prs-primary, #2b3240);
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.prs-search-button:hover {
    background-color: #1a1f2a;
    transform: translateY(-1px);
}

.prs-search-button svg {
    flex-shrink: 0;
}

/* Search Summary */
.prs-search-summary {
    text-align: center;
    margin-bottom: 40px;
    padding: 20px;
    background: #f8f9fa;
    border-radius: 8px;
}

.prs-search-summary p {
    margin: 0;
    font-size: 1.1rem;
    color: #333;
}

.prs-search-summary .prs-search-suggestion {
    margin-top: 10px;
    font-size: 0.95rem;
    color: #666;
}

.prs-search-summary a {
    color: var(--prs-primary, #2b3240);
    text-decoration: underline;
}

/* Search Sections */
.prs-search-section {
    margin-bottom: 50px;
}

.prs-search-section-title {
    font-size: 1.5rem;
    font-weight: 600;
    color: #2b3240;
    margin-bottom: 24px;
    padding-bottom: 12px;
    border-bottom: 2px solid #e0e0e0;
}

/* Package Card Grid (for search results) */
.prs-packages-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 24px;
}

.prs-package-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    text-decoration: none;
    color: inherit;
}

.prs-package-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.prs-package-card__image {
    aspect-ratio: 16/10;
    overflow: hidden;
}

.prs-package-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.prs-package-card:hover .prs-package-card__image img {
    transform: scale(1.05);
}

.prs-package-card__content {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.prs-package-card__title {
    font-size: 1.1rem;
    font-weight: 600;
    color: #2b3240;
}

.prs-package-card__price {
    font-size: 1rem;
    font-weight: 500;
    color: var(--prs-primary, #2b3240);
}

/* Initial State */
.prs-search-initial {
    text-align: center;
    padding: 60px 20px;
    color: #666;
}

.prs-search-initial p {
    font-size: 1.1rem;
    margin: 0;
}

/* Responsive */
@media (max-width: 576px) {
    .prs-search-form {
        flex-direction: column;
    }

    .prs-search-button {
        justify-content: center;
    }

    .prs-search-results {
        padding: 24px 16px;
    }

    .prs-search-section-title {
        font-size: 1.25rem;
    }
}

.prs-package-banner{
    margin-top: 12px;
}

/* ============================================================================
   Toast Notifications
   ============================================================================ */
.prs-toast-container {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 99999;
    display: flex;
    flex-direction: column-reverse;
    gap: 10px;
    pointer-events: none;
}

.prs-toast {
    pointer-events: auto;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 20px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    animation: prsToastIn 0.3s ease forwards;
    max-width: 380px;
    color: #fff;
}

.prs-toast--success { background-color: #28a745; }
.prs-toast--error   { background-color: #dc3545; }
.prs-toast--info    { background-color: #0073aa; }

.prs-toast--out {
    animation: prsToastOut 0.3s ease forwards;
}

@keyframes prsToastIn {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes prsToastOut {
    from { opacity: 1; transform: translateY(0); }
    to   { opacity: 0; transform: translateY(16px); }
}

@media (max-width: 480px) {
    .prs-toast-container { left: 16px; right: 16px; bottom: 16px; }
    .prs-toast { max-width: 100%; }
}

/* ============================================================================
   Button Loading State
   ============================================================================ */
.prs-btn--loading {
    pointer-events: none;
    opacity: 0.7;
    position: relative;
}

.prs-btn--loading::after {
    content: '';
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-left: 8px;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: spin 0.9s linear infinite;
}

/* ============================================================================
   Cart Remove Confirmation
   ============================================================================ */
.prs-confirm-remove {
    display: flex;
    align-items: center;
    width: 100%;
    grid-column: 1 / -1;
    gap: 10px;
    padding: 10px 14px;
    margin-top: 10px;
    background-color: #fff3cd;
    border: 1px solid #ffc107;
    border-radius: 6px;
    font-size: 13px;
    color: #856404;
}

.prs-confirm-remove button {
    padding: 4px 12px;
    border-radius: 4px;
    border: none;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
}

.prs-confirm-yes {
    background-color: #dc3545;
    color: #fff;
}

.prs-confirm-yes:hover { background-color: #c82333; }

.prs-confirm-no {
    background-color: #e2e6ea;
    color: #333;
}

.prs-confirm-no:hover { background-color: #d6d9dc; }

/* ============================================================================
   Event Info Bar
   ============================================================================ */
.prs-event-bar {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 16px;
    background-color: #f0f7ff;
    border: 1px solid #c8ddf5;
    border-radius: 8px;
    font-size: 14px;
    color: #1a3a5c;
    margin-bottom: 4px;
    width: 100%;
    max-width: 1460px;
    margin-left: auto;
    margin-right: auto;
}

.prs-category-detail > .prs-event-bar {
    margin-top: 30px;
}

.prs-event-bar__info {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.prs-event-bar__info svg {
    flex-shrink: 0;
    color: #0073aa;
}

.prs-event-bar__date {
    font-weight: 600;
}

.prs-event-bar__sep {
    color: #a0b4c8;
}

.prs-event-bar__mode {
    font-weight: 500;
}

.prs-event-bar__change {
    background: none;
    border: 1px solid #0073aa;
    color: #0073aa;
    padding: 4px 14px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.2s;
}

.prs-event-bar__change:hover {
    background-color: #0073aa;
    color: #fff;
}

@media (max-width: 576px) {
    .prs-event-bar {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
}

/* Cart Item Links */
.prs-cart-item-link {
    color: inherit;
    text-decoration: none;
}

.prs-cart-item-link:hover {
    color: #0073aa;
    text-decoration: underline;
}

a.prs-cart-img {
    display: block;
}

a.prs-cart-img img {
    transition: opacity 0.2s;
}

a.prs-cart-img:hover img {
    opacity: 0.8;
}

/* ============================================================================
   Cart Drawer
   ============================================================================ */
.prs-drawer-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 99990;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
}

.prs-drawer-overlay--open {
    opacity: 1;
    visibility: visible;
}

.prs-cart-drawer {
    position: fixed;
    top: 0;
    right: 0;
    width: 420px;
    max-width: 90vw;
    height: 100%;
    background: #fff;
    z-index: 99991;
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
}

.prs-cart-drawer--open {
    transform: translateX(0);
}

.prs-drawer__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.prs-drawer__title {
    font-size: 18px;
    font-weight: 700;
    margin: 0;
    color: #111;
}

.prs-drawer__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    background-color: #dc3545;
    border: none;
    border-radius: 50%;
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
    color: #fff;
    line-height: 1;
    transition: background-color 0.2s;
    flex-shrink: 0;
}

.prs-drawer__close:hover {
    background-color: #c82333;
}

.prs-drawer__items {
    flex: 1;
    overflow-y: auto;
    padding: 16px 20px;
}

.prs-drawer__empty {
    text-align: center;
    padding: 40px 20px;
    color: #888;
    font-size: 15px;
}

.prs-drawer__loading {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
}

.prs-drawer__loading .prs-spinner {
    width: 32px;
    height: 32px;
    border: 3px solid #e5e7eb;
    border-top-color: #0073aa;
    border-radius: 50%;
    animation: spin 0.9s linear infinite;
}

.prs-drawer-item {
    display: flex;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid #f0f0f0;
}

.prs-drawer-item:last-child {
    border-bottom: none;
}

.prs-drawer-item__img {
    width: 70px;
    height: 70px;
    border-radius: 6px;
    object-fit: cover;
    flex-shrink: 0;
    background: #f5f5f5;
}

.prs-drawer-item__info {
    flex: 1;
    min-width: 0;
}

.prs-drawer-item__name {
    font-size: 14px;
    font-weight: 600;
    color: #111;
    margin: 0 0 4px;
    text-decoration: none;
    display: block;
}

a.prs-drawer-item__name:hover {
    color: #0073aa;
}

.prs-drawer-item__meta {
    font-size: 13px;
    color: #666;
    margin: 0;
}

.prs-drawer-item__price {
    font-size: 14px;
    font-weight: 600;
    color: #333;
    margin-top: 4px;
}

.prs-drawer-item__remove {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    background: none;
    border: none;
    border-radius: 4px;
    color: #aaa;
    font-size: 11px;
    cursor: pointer;
    align-self: flex-start;
    flex-shrink: 0;
    transition: all 0.2s;
    margin-top: 2px;
}

.prs-drawer-item__remove span {
    display: none;
}

.prs-drawer-item__remove:hover {
    color: #dc3545;
    background-color: #fef2f2;
}

.prs-drawer-item__remove:hover span {
    display: inline;
}

.prs-drawer__footer {
    border-top: 1px solid #e5e7eb;
    padding: 16px 20px;
}

.prs-drawer__subtotal {
    display: flex;
    justify-content: space-between;
    font-size: 16px;
    font-weight: 700;
    color: #111;
    margin-bottom: 14px;
}

.prs-drawer__actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.prs-drawer__checkout {
    display: block;
    width: 100%;
    padding: 12px;
    background-color: #28a745;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.2s;
    margin-bottom: 8px;
}

.prs-drawer__checkout:hover {
    background-color: #1e7e34;
    color: #fff;
}

.prs-drawer__view-cart {
    display: block;
    width: 100%;
    padding: 10px;
    background: none;
    border: 1px solid #0073aa;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    color: #0073aa;
    cursor: pointer;
    transition: all 0.2s;
    box-sizing: border-box;
}

.prs-drawer__view-cart:hover {
    background-color: #0073aa;
    color: #fff;
}

.prs-drawer__row {
    display: flex;
    gap: 8px;
}

.prs-drawer__clear {
    flex: 1;
    padding: 8px;
    background: none;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    text-align: center;
    color: #dc3545;
    cursor: pointer;
    transition: all 0.2s;
}

.prs-drawer__clear:hover {
    background-color: #dc3545;
    border-color: #dc3545;
    color: #fff;
}

.prs-drawer__continue {
    flex: 1;
    padding: 8px;
    background: none;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    color: #555;
    cursor: pointer;
    transition: all 0.2s;
}

.prs-drawer__continue:hover {
    background-color: #555;
    border-color: #555;
    color: #fff;
}

/* ============================================================================
   Date Change Warning
   ============================================================================ */
.prs-date-change-warning {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.5);
    opacity: 0;
    transition: opacity 0.3s;
}

.prs-date-change-warning--open {
    opacity: 1;
}

.prs-date-change-warning__content {
    background: #fff;
    border-radius: 10px;
    padding: 28px 32px;
    max-width: 440px;
    width: 90%;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.18);
}

.prs-date-change-warning__content p {
    margin: 0 0 8px;
    font-size: 14px;
    line-height: 1.5;
    color: #444;
}

.prs-date-change-warning__content p:first-child {
    font-size: 16px;
    color: #111;
    margin-bottom: 10px;
}

.prs-date-change-warning__actions {
    display: flex;
    gap: 10px;
    margin-top: 20px;
}

.prs-date-change-warning__confirm {
    flex: 1;
    padding: 10px 16px;
    background-color: #0073aa;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s;
}

.prs-date-change-warning__confirm:hover {
    background-color: #005a87;
}

.prs-date-change-warning__cancel {
    flex: 1;
    padding: 10px 16px;
    background: none;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    color: #555;
    cursor: pointer;
    transition: all 0.2s;
}

.prs-date-change-warning__cancel:hover {
    background-color: #555;
    border-color: #555;
    color: #fff;
}

/* Continue Shopping Link */
.prs-continue-shopping {
    display: block;
    text-align: center;
    margin-top: 12px;
    font-size: 14px;
    color: #555;
    text-decoration: none;
}

.prs-continue-shopping:hover {
    color: #111;
    text-decoration: underline;
}

/* ============================================================================
   Streamlined Quote Request — cart button + modal + thank-you page
   ============================================================================ */

/* "Request Quote" button on the cart summary panel.
   Outlined secondary by default (both-enabled tenants: sits below the green
   checkout button under an "or" divider). Quote-only tenants get the
   --primary modifier: filled green, the cart's single action. */
body .prs-cart-summary .request-quote-btn {
    display: block;
    text-align: center;
    background: #fff;
    color: #4caf50;
    border: 1px solid #4caf50;
    border-radius: 6px;
    padding: 12px 16px;
    text-decoration: none;
    margin-top: 15px;
    transition: background 0.3s, color 0.3s;
    width: 100%;
    line-height: normal;
    font: inherit;
    cursor: pointer;
}

body .prs-cart-summary .request-quote-btn:hover {
    background: #4caf50;
    color: #fff;
}

body .prs-cart-summary .request-quote-btn--primary {
    background: #4caf50;
    color: #fff;
}

body .prs-cart-summary .request-quote-btn--primary:hover {
    background: #45a049;
}

/* "or" divider between Proceed To Checkout and Request Quote (both enabled). */
.prs-cart-summary .prs-or-divider {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
    color: #9aa1ae;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.prs-cart-summary .prs-or-divider::before,
.prs-cart-summary .prs-or-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: #e5e8ee;
}

/* Quote modal — wider than the availability modal so the form + recap
   sit comfortably side-by-side on desktop. Inherits .prs-modal positioning,
   .prs-modal-overlay backdrop, and .prs-modal-header bar from the existing
   modal system. */
.prs-quote-modal .prs-quote-modal-content {
    max-width: 720px;
    width: 92%;
    max-height: 90vh;
    overflow: hidden;
}

.prs-quote-modal .prs-modal-header {
    border-bottom: 1px solid #eef0f3;
}

.prs-quote-modal-subtitle {
    margin-top: 4px;
    font-size: 13px;
    color: #6b7280;
    line-height: 1.4;
}

.prs-quote-modal-body {
    padding: 0;
    overflow-y: auto;
    max-height: calc(90vh - 80px);
}

.prs-quote-form {
    padding: 1.25rem !important;
}

.prs-quote-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 16px;
}

.prs-quote-field {
    margin-bottom: 0 !important;
    display: flex;
    flex-direction: column;
}

.prs-quote-field-full {
    grid-column: 1 / -1;
}

.prs-quote-field label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #2b3240;
    margin-bottom: 4px;
}

.prs-quote-required {
    color: #dc2626;
}

.prs-quote-optional {
    color: #9ca3af;
    font-weight: 400;
    font-size: 12px;
}

.prs-quote-field input[type="text"],
.prs-quote-field input[type="email"],
.prs-quote-field input[type="tel"],
.prs-quote-field textarea {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    font-family: inherit;
    color: #111827;
    background: #fff;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.prs-quote-field input:focus,
.prs-quote-field textarea:focus {
    outline: none;
    border-color: #4caf50;
    box-shadow: 0 0 0 3px rgba(76, 175, 80, 0.15);
}

.prs-quote-field textarea {
    resize: vertical;
    min-height: 80px;
}

.prs-quote-field-error {
    display: none;
    margin-top: 4px;
    color: #dc2626;
    font-size: 12px;
}

.prs-quote-field.has-error input,
.prs-quote-field.has-error textarea {
    border-color: #dc2626;
}

.prs-quote-field.has-error .prs-quote-field-error {
    display: block;
}

/* Read-only event + items recap. Lives below the form fields. */
.prs-quote-recap {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #eef0f3;
}

.prs-quote-recap-title {
    margin: 0 0 8px 0;
    font-size: 14px;
    font-weight: 700;
    color: #2b3240;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.prs-quote-recap-block {
    background: #f9fafb;
    border: 1px solid #eef0f3;
    border-radius: 6px;
    padding: 12px 14px;
    margin-bottom: 14px;
    font-size: 13px;
    color: #374151;
}

.prs-quote-recap-block > div {
    line-height: 1.5;
}

.prs-quote-recap-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid #eef0f3;
}

.prs-quote-recap-item:last-of-type {
    border-bottom: none;
}

.prs-quote-recap-item-name {
    flex: 1;
    min-width: 0;
}

.prs-quote-recap-item-meta {
    display: block;
    color: #6b7280;
    font-size: 12px;
    margin-top: 2px;
}

.prs-quote-recap-item-total {
    font-weight: 600;
    color: #111827;
    white-space: nowrap;
}

.prs-quote-recap-subtotal {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 8px;
    padding-top: 10px;
    border-top: 1px solid #d1d5db;
    font-weight: 700;
    color: #111827;
}

.prs-quote-recap-disclaimer {
    margin: 0;
    font-size: 11px;
    color: #6b7280;
    font-style: italic;
}

.prs-quote-modal-footer {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #eef0f3;
}

.prs-quote-btn-cancel {
    background: #fff;
    color: #6b7280;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s, color 0.15s;
}

.prs-quote-btn-cancel:hover {
    background: #f3f4f6;
    color: #111827;
}

.prs-quote-btn-submit {
    background: #4caf50;
    color: #fff;
    border: 1px solid #4caf50;
    border-radius: 6px;
    padding: 10px 18px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s;
}

.prs-quote-btn-submit:hover {
    background: #45a049;
}

.prs-quote-btn-submit:disabled {
    background: #cce5cc;
    color: #6b7280;
    cursor: not-allowed;
}

/* Prevent body scroll while the modal is open. */
body.prs-modal-open {
    overflow: hidden;
}

@media (max-width: 640px) {
    .prs-quote-modal .prs-quote-modal-content {
        max-width: 100%;
        width: 100%;
        max-height: 100vh;
        height: 100vh;
        border-radius: 0;
    }

    .prs-quote-modal-body {
        max-height: calc(100vh - 80px);
    }

    .prs-quote-form-grid {
        grid-template-columns: 1fr;
    }

    .prs-quote-modal-footer {
        flex-direction: column-reverse;
    }

    .prs-quote-btn-cancel,
    .prs-quote-btn-submit {
        width: 100%;
    }
}

/* Quote thank-you page (slug: /quote-thank-you) */
.prs-quote-thank-you {
    padding: 60px 20px;
}

.prs-quote-thank-you-inner {
    max-width: 560px;
    margin: 0 auto;
    text-align: center;
}

.prs-quote-thank-you-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #d1fae5;
    color: #16a34a;
    margin-bottom: 20px;
}

.prs-quote-thank-you h1 {
    margin: 0 0 12px 0;
    font-size: 28px;
    font-weight: 700;
    color: #111827;
}

.prs-quote-thank-you-lead {
    font-size: 16px;
    color: #374151;
    margin: 0 0 6px 0;
}

.prs-quote-thank-you-text {
    font-size: 15px;
    color: #6b7280;
    margin: 0 0 28px 0;
}

.prs-quote-thank-you-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

.prs-quote-thank-you-actions .prs-btn-primary {
    background: #4caf50;
    color: #fff;
    border: 1px solid #4caf50;
    border-radius: 6px;
    padding: 10px 22px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s;
}

.prs-quote-thank-you-actions .prs-btn-primary:hover {
    background: #45a049;
    color: #fff;
}

.prs-quote-thank-you-actions .prs-btn-secondary {
    background: #fff;
    color: #374151;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    padding: 10px 22px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s;
}

.prs-quote-thank-you-actions .prs-btn-secondary:hover {
    background: #f3f4f6;
}

/* ============================================================================
   Persistent Cart FAB
   ============================================================================ */
.prs-cart-fab {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background-color: #28a745;                              /* fallback for old browsers */
    background-color: var(--prs-cart-fab-bg, #28a745);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18), 0 2px 4px rgba(0, 0, 0, 0.1);
    text-decoration: none;
    transition: transform 0.18s ease, background-color 0.2s ease, box-shadow 0.2s ease;
    z-index: 9998;
    cursor: pointer;
}

.prs-cart-fab:hover,
.prs-cart-fab:focus {
    background-color: #1e7e34;                                                             /* fallback */
    background-color: color-mix(in srgb, var(--prs-cart-fab-bg, #28a745), #000 15%);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.22), 0 3px 6px rgba(0, 0, 0, 0.12);
    text-decoration: none;
}

.prs-cart-fab:focus-visible {
    outline: 3px solid rgba(40, 167, 69, 0.4);                                             /* fallback */
    outline: 3px solid color-mix(in srgb, var(--prs-cart-fab-bg, #28a745) 40%, transparent);
    outline-offset: 2px;
}

.prs-cart-fab--hidden {
    display: none !important;
}

/* When the admin chose Drawer as the Shopping Cart Type, suppress the FAB
   entirely regardless of the cart_count visibility toggle. */
body.prs-cart-type-drawer .prs-cart-fab {
    display: none !important;
}

.prs-cart-fab__icon {
    width: 24px;
    height: 24px;
    pointer-events: none;
}

.prs-cart-fab__badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 11px;
    background-color: #dc3545;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 22px;
    text-align: center;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    pointer-events: none;
}

.prs-cart-fab__badge--pulse {
    animation: prsCartFabPulse 0.5s ease;
}

.prs-cart-fab__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@keyframes prsCartFabPulse {
    0%   { transform: scale(1); }
    40%  { transform: scale(1.35); }
    100% { transform: scale(1); }
}

@media (max-width: 600px) {
    .prs-cart-fab {
        bottom: 16px;
        right: 16px;
        width: 52px;
        height: 52px;
    }
    .prs-cart-fab__badge {
        min-width: 20px;
        height: 20px;
        line-height: 20px;
        font-size: 11px;
    }
}

/* ---- Cart FAB position variants (driven by body class from prs_cart_fab_position option) ----
   Default option value is middle-right; the body_class filter always emits
   .prs-cart-fab-pos-<slug> for the chosen position, so the matching override
   below fires for every value. The bottom-right slug needs no override because
   the base .prs-cart-fab rule above already matches it. */

body.prs-cart-fab-pos-bottom-left .prs-cart-fab {
    right: auto;
    left: 24px;
}

body.prs-cart-fab-pos-bottom-middle .prs-cart-fab {
    right: auto;
    left: 50%;
    transform: translateX(-50%);
}

body.prs-cart-fab-pos-bottom-middle .prs-cart-fab:hover,
body.prs-cart-fab-pos-bottom-middle .prs-cart-fab:focus {
    transform: translateX(-50%) translateY(-2px);
}

body.prs-cart-fab-pos-middle-right .prs-cart-fab {
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
}

body.prs-cart-fab-pos-middle-right .prs-cart-fab:hover,
body.prs-cart-fab-pos-middle-right .prs-cart-fab:focus {
    transform: translateY(-50%) translateY(-2px);
}

body.prs-cart-fab-pos-middle-left .prs-cart-fab {
    top: 50%;
    bottom: auto;
    right: auto;
    left: 24px;
    transform: translateY(-50%);
}

body.prs-cart-fab-pos-middle-left .prs-cart-fab:hover,
body.prs-cart-fab-pos-middle-left .prs-cart-fab:focus {
    transform: translateY(-50%) translateY(-2px);
}

@media (max-width: 600px) {
    body.prs-cart-fab-pos-bottom-left .prs-cart-fab {
        left: 16px;
    }
    body.prs-cart-fab-pos-middle-left .prs-cart-fab {
        left: 16px;
    }
}

/* Lift the toast above the FAB when both are visible (e.g. error toast after
   a failed add-to-cart). Only lift for bottom-anchored positions — middle
   positions don't sit over the bottom-anchored toast container. */
body:is(.prs-cart-fab-pos-bottom-right, .prs-cart-fab-pos-bottom-left, .prs-cart-fab-pos-bottom-middle):has(.prs-cart-fab:not(.prs-cart-fab--hidden)) .prs-toast-container {
    bottom: 96px;
}

@media (max-width: 600px) {
    body:is(.prs-cart-fab-pos-bottom-right, .prs-cart-fab-pos-bottom-left, .prs-cart-fab-pos-bottom-middle):has(.prs-cart-fab:not(.prs-cart-fab--hidden)) .prs-toast-container {
        bottom: 84px;
    }
}
/* ==========================================================================
   Availability modal, redesigned (v1.35.0)

   Every rule is rooted at #prs-availability-modal on purpose. The plugin runs
   inside arbitrary WordPress themes that restyle inputs, buttons and lists
   underneath it; an id selector outranks essentially any theme rule without
   resorting to !important, and it also keeps these styles off the other
   modals that share .prs-modal.

   Layout: one column on phones as a full-screen sheet, two columns from 720px
   up. Header and footer are pinned and only the body scrolls, so the CTA is
   reachable at every scroll position.
   ========================================================================== */

/* ---- shell ---- */
#prs-availability-modal.prs-modal {
    align-items: stretch;
    justify-content: center;
}
#prs-availability-modal .prs-modal-content {
    width: 100%;
    max-width: none;
    height: 100dvh;
    max-height: none;
    border-radius: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
#prs-availability-modal .prs-modal-header {
    flex: none;
    align-items: flex-start;
    gap: 12px;
    padding: 22px 26px 18px;
    border-bottom: 1px solid #e5e7eb;
}
#prs-availability-modal .prs-modal-title {
    font-size: 19px;
    font-weight: 800;
    letter-spacing: -.01em;
    margin: 0 0 2px;
}
#prs-availability-modal .prs-check-availability-msg {
    width: auto;
    font-size: 13px;
    line-height: 1.45;
    color: #686D77;
}

/* ---- body: scrolls; the only region that does ---- */
#prs-availability-modal .prs-form {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    margin: 0;
}
#prs-availability-modal .prs-modal-body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}
#prs-availability-modal .prs-col-date,
#prs-availability-modal .prs-col-opts { padding: 22px 26px; }
#prs-availability-modal .prs-col-date { border-bottom: 1px solid #e5e7eb; }

/* ---- footer: pinned, so the CTA never scrolls away ---- */
#prs-availability-modal .prs-modal-foot {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 15px 26px;
    padding-bottom: max(15px, env(safe-area-inset-bottom));
    border-top: 1px solid #e5e7eb;
    background: #fafbfc;
}
#prs-availability-modal .prs-foot-summary {
    display: none;
    font-size: 13px;
    line-height: 1.4;
    min-width: 0;
    color: #686D77;
}
#prs-availability-modal .prs-foot-mode {
    display: block;
    font-size: 13.5px;
    color: #2B3240;
}
/* The shipped .prs-modal rules use !important throughout as their own theme
   armour, so overriding them needs !important as well: among !important
   declarations it is specificity that decides, and the id wins. */
#prs-availability-modal .prs-check-now {
    width: 100% !important;
    height: 46px !important;
    margin: 0 !important;
    padding: 0 20px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    flex: none !important;
}

/* even group rhythm down the right column, whatever each block brought */
#prs-availability-modal .prs-col-opts > * { margin-top: 20px !important; }
#prs-availability-modal .prs-col-opts > .prs-toggle-group { margin-top: 8px !important; }
#prs-availability-modal .prs-col-date > :first-child,
#prs-availability-modal .prs-col-opts > :first-child { margin-top: 0 !important; }

/* ---- two columns once there is room for them ---- */
@media (min-width: 720px) {
    #prs-availability-modal.prs-modal { align-items: center; }
    #prs-availability-modal .prs-modal-content {
        width: 90%;
        max-width: 900px;
        height: auto;
        max-height: 92vh;
        border-radius: 10px;
    }
    #prs-availability-modal .prs-modal-body {
        display: grid;
        grid-template-columns: .85fr 1.15fr;
    }
    #prs-availability-modal .prs-col-date {
        border-bottom: 0;
        border-right: 1px solid #e5e7eb;
    }
    #prs-availability-modal .prs-foot-summary { display: block; }
    #prs-availability-modal .prs-check-now { width: auto !important; padding: 0 24px !important; }
}

/* ---- inline calendar ----
   flatpickr's own stylesheet sizes the calendar at a fixed 307px and paints it
   blue. Fill the column instead, and wear the tenant's colour. */
#prs-availability-modal .prs-cal .flatpickr-calendar.inline {
    width: 100%;
    max-width: none;
    margin: 0;
    border: 0;
    box-shadow: none;
}
#prs-availability-modal .prs-cal .flatpickr-months { padding-bottom: 2px; }
#prs-availability-modal .prs-cal .flatpickr-current-month {
    font-size: 14px;
    font-weight: 700;
    padding-top: 4px;
}
#prs-availability-modal .prs-cal .flatpickr-rContainer,
#prs-availability-modal .prs-cal .flatpickr-days,
#prs-availability-modal .prs-cal .flatpickr-weekdaycontainer { width: 100%; max-width: none; }
#prs-availability-modal .prs-cal .dayContainer { width: 100%; min-width: 0; max-width: none; }
#prs-availability-modal .prs-cal .flatpickr-weekday {
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #A4A7AD;
}
#prs-availability-modal .prs-cal .flatpickr-day {
    max-width: none;
    height: 44px;
    line-height: 44px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
}
#prs-availability-modal .prs-cal .flatpickr-day.selected,
#prs-availability-modal .prs-cal .flatpickr-day.startRange,
#prs-availability-modal .prs-cal .flatpickr-day.endRange {
    background: var(--prs-primary, #0073aa);
    border-color: var(--prs-primary, #0073aa);
    /* pick the readable foreground from whatever colour the variable holds,
       rather than assuming white reads on it. Later declarations win where
       supported; the plain value is the floor for browsers without them. */
    color: #fff;
    color: oklch(from var(--prs-primary, #0073aa) clamp(0, (l - 0.5636) * -1000, 1) 0 0);
    color: contrast-color(var(--prs-primary, #0073aa));
}
#prs-availability-modal .prs-cal .flatpickr-day.inRange {
    background: #F0F2F5;
    border-color: #F0F2F5;
    box-shadow: -5px 0 0 #F0F2F5, 5px 0 0 #F0F2F5;
}
#prs-availability-modal .prs-cal .flatpickr-day.today:not(.selected) {
    border-color: var(--prs-primary, #0073aa);
}
#prs-availability-modal .prs-cal .flatpickr-day.flatpickr-disabled {
    text-decoration: line-through;
}

/* ---- the selection, said back in words ---- */
#prs-availability-modal .prs-cal-readout {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    padding: 9px 12px;
    border-radius: 8px;
    background: #F0F2F5;
    font-size: 13px;
    color: #686D77;
}
#prs-availability-modal .prs-cal-readout svg { flex: none; }

/* flatpickr renders its own inputs and buttons (the year spinner, the month
   arrows). Themes and the plugin's own global form rules both reach them and
   deform the calendar chrome, so neutralise those here rather than hoping. */
#prs-availability-modal .prs-cal .flatpickr-current-month input.cur-year,
#prs-availability-modal .prs-cal .numInputWrapper input,
#prs-availability-modal .prs-cal .numInputWrapper {
    height: auto !important;
    min-height: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    font: inherit !important;
    color: inherit !important;
    line-height: inherit !important;
}
#prs-availability-modal .prs-cal .flatpickr-current-month input.cur-year { padding-left: 4px !important; }
#prs-availability-modal .prs-cal .flatpickr-prev-month,
#prs-availability-modal .prs-cal .flatpickr-next-month {
    height: auto !important;
    min-height: 0 !important;
    padding: 8px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
#prs-availability-modal .prs-cal .flatpickr-day {
    border: 1px solid transparent;
    box-shadow: none !important;
    margin: 0 !important;
}

/* flatpickr positions the month label absolutely at 75% width, which wraps
   "August" and "2026" onto separate lines in the narrow phone column. */
#prs-availability-modal .prs-cal .flatpickr-current-month {
    left: 0 !important;
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    white-space: nowrap !important;
}

/* ---- event time: two presentations of the same choice ----
   Native selects on phones, open lists from the modal breakpoint up. Only one
   is ever displayed and both drive the same two selects. */
#prs-availability-modal .prs-time-lists {
    display: none;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
@media (min-width: 720px) {
    #prs-availability-modal .prs-time-selects { display: none; }
    #prs-availability-modal .prs-time-lists { display: grid; }
}
#prs-availability-modal .prs-time-role {
    display: block;
    margin-bottom: 5px;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #686D77;
}
#prs-availability-modal .prs-time-list {
    position: relative;   /* so item offsetTop is measured against the box */
    height: 160px;
    overflow-y: auto;
    padding: 4px;
    background: #fff;
    border: 1px solid #d6dbe3;
    border-radius: 8px;
}
#prs-availability-modal .prs-time-opt {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 7px 9px !important;
    border: 0 !important;
    border-radius: 6px !important;
    background: transparent !important;
    box-shadow: none !important;
    text-align: left !important;
    text-transform: none !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    color: #2B3240 !important;
    cursor: pointer !important;
}
#prs-availability-modal .prs-time-opt:hover { background: #F0F2F5 !important; }
#prs-availability-modal .prs-time-opt.is-on,
#prs-availability-modal .prs-time-opt.is-on:hover {
    background: var(--prs-primary, #0073aa) !important;
    /* Pick the readable foreground from whatever colour the variable holds
       rather than assuming white reads on it. Later declarations win where
       supported; the plain value is the floor for browsers without them. */
    color: #fff !important;
    color: oklch(from var(--prs-primary, #0073aa) clamp(0, (l - 0.5636) * -1000, 1) 0 0) !important;
    color: contrast-color(var(--prs-primary, #0073aa)) !important;
}
#prs-availability-modal .prs-time-opt.is-off {
    color: #868991 !important;          /* not colour alone: struck through too */
    text-decoration: line-through !important;
    pointer-events: none !important;
    background: transparent !important;
}

/* ---- availability response alert ----
   Shown by prs.js with display:flex, so the row layout lives on the element
   itself. The dismiss sits inside the box rather than pinned to its border. */
#prs-availability-modal #Availibity-message-alert {
    align-items: flex-start;
    justify-content: flex-start;
    gap: 10px;
    margin: 14px 26px 0;
    padding: 11px 12px;
    background: #FEF2F2;
    border: 1px solid #FECACA;
    border-radius: 10px;
    color: #B91C1C;
}
#prs-availability-modal #Availibity-message-alert > svg { flex: none; margin-top: 1px; }
#prs-availability-modal #Availibity-message {
    display: block;
    max-width: none;
    min-width: 0;
    font-size: 13.5px;
    line-height: 1.45;
    font-weight: 500;
}
#prs-availability-modal #Availibity-message-close {
    position: static !important;
    margin-left: auto !important;
    flex: none !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 2px !important;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    color: inherit !important;
    font-size: 18px !important;
    line-height: 1 !important;
    opacity: .7;
    cursor: pointer !important;
}
#prs-availability-modal #Availibity-message-close:hover { opacity: 1; }

/* ---- per-field validation, kept as the plugin's own model ---- */
#prs-availability-modal .error-message {
    color: #B91C1C;
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.4;
    margin-top: 6px;
}

/* ---- type scale, matched to the design ---- */
#prs-availability-modal .prs-date-label,
#prs-availability-modal .prs-time-group > label,
#prs-availability-modal .prs-location-label,
#prs-availability-modal .prs-fulfillment-title {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #2B3240 !important;
}
#prs-availability-modal .prs-multi-switch-text { font-size: 13px !important; }
#prs-availability-modal .prs-toggle-btn { font-size: 14px !important; height: 40px !important; }
#prs-availability-modal .prs-toggle-btn svg { width: 18px !important; height: 18px !important; }

/* ---- daily tenants: one column ----
   They never see the time lists, which leaves the right column holding only
   the fulfillment control against a full-height calendar. Keyed off the tenant
   setting, which is fixed per request: keying it off the selected fulfillment
   would resize the modal mid-interaction when Delivery reveals the address. */
@media (min-width: 720px) {
    #prs-availability-modal.prs-modal-stacked .prs-modal-content { max-width: 460px; }
    #prs-availability-modal.prs-modal-stacked .prs-modal-body { display: block; }
    #prs-availability-modal.prs-modal-stacked .prs-col-date {
        border-right: 0;
        border-bottom: 1px solid #e5e7eb;
    }
}

/* ==========================================================================
   Theme armour

   The plugin renders inside whatever theme the client is running, and themes
   restyle bare elements freely: buttons get letter-spacing and uppercase,
   inputs get min-heights, everything gets a different font. These rules pin
   the properties that would deform the modal, scoped to the id so they cannot
   leak onto the rest of the page.

   Deliberately not a blanket `all: revert`: that would strip the styling above
   as well. Only the properties a theme is likely to reach for are pinned.
   ========================================================================== */
#prs-availability-modal,
#prs-availability-modal *,
#prs-availability-modal *::before,
#prs-availability-modal *::after { box-sizing: border-box; }

#prs-availability-modal { font-family: inherit; }

#prs-availability-modal button,
#prs-availability-modal input,
#prs-availability-modal select,
#prs-availability-modal label {
    font-family: inherit !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    text-shadow: none !important;
    float: none !important;
    position: static;
}
/* the calendar positions its own chrome; do not flatten that */
#prs-availability-modal .prs-cal * { position: revert; }

#prs-availability-modal input[type="text"],
#prs-availability-modal select {
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 0 12px !important;
    border: 1px solid #d6dbe3 !important;
    border-radius: 8px !important;
    background-color: #fff !important;
    background-image: none !important;
    color: #2B3240 !important;
    font-size: 15px !important;
    line-height: 1.3 !important;
    box-shadow: none !important;
    outline-offset: 0 !important;
}
#prs-availability-modal select {
    -webkit-appearance: menulist !important;
    appearance: menulist !important;
}
#prs-availability-modal input[type="text"]:focus,
#prs-availability-modal select:focus {
    border-color: var(--prs-primary, #0073aa) !important;
    outline: 2px solid transparent !important;
}

#prs-availability-modal .prs-modal-title { text-transform: none !important; }
#prs-availability-modal p,
#prs-availability-modal div,
#prs-availability-modal span { overflow-wrap: anywhere; }

/* The full-screen sheet sits over a page that would otherwise keep scrolling
   underneath it. NB: overflow:hidden does not fully pin iOS Safari; that needs
   position:fixed on body with scroll restoration, which is a heavier change
   than this redesign should carry. */
body.prs-modal-open { overflow: hidden; }

/* Buttons need the same treatment. flatpickr renders its days and month arrows
   as spans, not buttons, so the calendar is untouched by this. */
#prs-availability-modal button {
    min-height: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    background-image: none !important;
    text-decoration: none !important;
    outline-offset: 0 !important;
}

/* ...then put back the shadows and fills that are meant to be there. These sit
   after the armour on purpose: it is blanket, these are deliberate. */
#prs-availability-modal .prs-toggle-btn.active {
    background: #fff !important;
    box-shadow: 0 2px 6px rgba(15, 25, 40, .14) !important;
    color: #202632 !important;
}
#prs-availability-modal .prs-check-now {
    background: var(--prs-primary, #0073aa) !important;
    color: #fff !important;
    color: oklch(from var(--prs-primary, #0073aa) clamp(0, (l - 0.5636) * -1000, 1) 0 0) !important;
    color: contrast-color(var(--prs-primary, #0073aa)) !important;
    border-radius: 10px !important;
}
#prs-availability-modal .prs-time-opt.is-on,
#prs-availability-modal .prs-time-opt.is-on:hover {
    background: var(--prs-primary, #0073aa) !important;
    color: #fff !important;
    color: oklch(from var(--prs-primary, #0073aa) clamp(0, (l - 0.5636) * -1000, 1) 0 0) !important;
    color: contrast-color(var(--prs-primary, #0073aa)) !important;
}

/* ---- start and end as two separate fields ----
   Matching the PRS-hosted storefront. They were a single bordered control with
   a dash between them, which read as one field holding two values. */
#prs-availability-modal .prs-time-selects {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
#prs-availability-modal .prs-time-field { min-width: 0; }

/* ---- pin what the host theme was reaching ----
   Seen on a live client theme: the panel took the theme's page background, and
   the Multiple Days switch lost its fill because its checked colour reads a
   WordPress preset variable the theme redefines. */
#prs-availability-modal .prs-modal-content { background: #fff !important; }
#prs-availability-modal .prs-slider { background-color: #C2C3C7 !important; }
#prs-availability-modal .prs-switch input:checked + .prs-slider {
    background-color: var(--prs-primary, #0073aa) !important;
}
#prs-availability-modal .prs-slider:before { background-color: #fff !important; }
