/* Owner payment polish: presentation only, shared by bundled and unbundled pages. */
.portal-page { --portal-safe-bottom: env(safe-area-inset-bottom, 0px); }
.portal-footer-copyright { padding: 18px 0 16px; gap: 5px; }
.portal-footer-copyright > p { max-width: 100%; white-space: normal; text-wrap: balance; font-size: 12px; line-height: 1.8; }
.portal-footer-copyright .portal-credit { min-height: 28px; gap: 6px; font-size: 11px; }
.portal-footer-copyright .portal-credit img { width: 24px; height: 24px; padding: 2px; border-radius: 5px; }
.portal-page .bottom-nav { padding-bottom: max(8px, var(--portal-safe-bottom)); padding-inline: env(safe-area-inset-left, 0px) env(safe-area-inset-right, 0px); }
/* The footer owns the single clearance for the fixed bar; body padding created a white strip. */
@media (max-width: 1023px) {
    .portal-page[data-navigation="Store"], .portal-page[data-navigation="GoldBox"], .portal-page[data-navigation="Account"] { padding-bottom: 0; }
    .portal-page[data-navigation="GoldBox"] > .portal-footer { padding-bottom: calc(57px + max(8px, var(--portal-safe-bottom))); }
}
@media (max-width: 767px) {
    .portal-page[data-navigation="Store"] > .portal-footer { padding-bottom: calc(57px + max(8px, var(--portal-safe-bottom))); }
    .portal-footer-copyright > p { font-size: 11.5px; }
}
.product-rating { padding: 14px 16px; border: 1px solid #e6d9e7; border-radius: 14px; background: linear-gradient(110deg, #fffaf0, #faf6fc); }
.product-rating legend { padding-inline: 6px; font-size: 13px; font-weight: 700; color: #432947; }
.product-rating__stars { display: flex; width: max-content; max-width: 100%; gap: 3px; }
.product-rating__option { position: relative; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 10px; cursor: pointer; color: #c9c1cd; }
.product-rating__option input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.product-rating__option svg { pointer-events: none; width: 32px; height: 32px; fill: currentColor; stroke: currentColor; stroke-width: .7; transition: color .15s, transform .15s; }
.product-rating__option input:checked + svg { color: #c38d16; }
.product-rating__option input:focus-visible + svg { outline: 2px solid #6e436e; outline-offset: 2px; border-radius: 6px; }
.product-rating__option:has(input:checked), .product-rating__option:has(~ .product-rating__option input:checked) { color: #c38d16; }
.product-rating__option:has(input:focus-visible) { background: #f4e8f5; }
@media (hover: hover) { .product-rating__option:hover svg { transform: scale(1.12); color: #a76b05; } }
.product-rating > p { margin-top: 5px; font-size: 11px; line-height: 1.8; color: #786d7d; }
.catalog-empty { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; gap: 12px; min-width: 0; padding: 28px 24px 32px; border: 1px solid #eaddec; border-radius: 24px; background: radial-gradient(ellipse at 50% 10%, #f2e6f4 0, #fffaf5 48%, #fff 100%); text-align: center; }
.catalog-empty > img { display: block; width: min(100%, 280px); height: auto; aspect-ratio: 4 / 3; object-fit: contain; }
.catalog-empty h2 { font-size: clamp(17px, 2vw, 22px); font-weight: 800; color: #4a254e; }
.catalog-empty > p { max-width: 410px; font-size: 13px; line-height: 1.9; color: #756878; }
.catalog-empty__reset { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; margin-top: 6px; padding: 11px 18px; border-radius: 13px; background: #6e436e; color: #fff; font-size: 12px; font-weight: 700; box-shadow: 0 4px 12px #4b244c15; }
.catalog-empty__reset:hover { background: #512e55; }
.catalog-empty__reset svg { flex: 0 0 18px; width: 18px; height: 18px; }
@media (max-width: 479px) { .catalog-empty { padding: 18px 16px 25px; gap: 10px; } .catalog-empty > img { width: 220px; } }
@media (prefers-reduced-motion: reduce) { .product-rating__option svg { transition: none; } }
.portal-gateway-options { min-width: 0; padding: 0; margin: 0; border: 0; }
.portal-gateway-options legend { margin-bottom: 10px; padding: 0; color: #392d3e; font-size: 13px; font-weight: 800; }
.portal-gateway-option { display: flex; align-items: center; gap: 12px; padding: 16px; min-height: 78px; border: 1.5px solid #c8adce; border-radius: 16px; background: #fcf9fd; cursor: pointer; }
.portal-gateway-option:has(input:focus-visible) { outline: 3px solid #b48b24; outline-offset: 3px; }
.portal-gateway-option input { accent-color: #6e436e; width: 19px; height: 19px; flex: 0 0 19px; margin: 0; }
.portal-gateway-option img { width: 38px; height: 38px; object-fit: contain; flex: 0 0 38px; }
.portal-gateway-option__copy { display: grid; gap: 5px; min-width: 0; }
.portal-gateway-option__copy strong { font-size: 13px; color: #412c47; line-height: 1.7; }
.portal-gateway-option__copy > span { font-size: 11px; color: #88748d; line-height: 1.7; }
.portal-gold-quote__sheet .portal-gateway-options { margin: 2px 0 14px; }
.portal-gold-quote__details .portal-gold-quote__remainder { color: #1b7558; background: #f0faf5; border-bottom: 0; padding-inline: 10px; border-radius: 10px; }
.portal-gold-quote__remainder dt { color: #2b745c; }
.portal-gold-quote__details dd { min-width: 0; max-width: 65%; overflow-wrap: anywhere; }
.portal-gold-quote__total strong { white-space: nowrap; }
@media (max-width: 479px) { .portal-gateway-option { padding: 13px 12px; gap: 10px; } .portal-gold-quote__details > div { gap: 10px; font-size: 12px; } }
