﻿/* Shared public storefront skin. Loaded after legacy page styles. */
:root {
    --ui-ink: #192b3b;
    --ui-muted: #586878;
    --ui-line: #e2e8ee;
    --ui-surface: #ffffff;
    --ui-canvas: #f5f7fa;
}
body { background:var(--ui-canvas); color:var(--ui-ink); line-height:1.65; }
*, *::before, *::after { box-sizing:border-box; }
html { scroll-padding-top:130px; }
body :is(a,button,input,select,textarea,[tabindex]):focus-visible,
body .topbar .info-btn:focus-visible {
    outline:3px solid #1264a3 !important; outline-offset:3px !important;
}
.btn, .form-control, .form-select { border-radius:12px; }
.btn { min-height:44px; font-weight:700; }
.form-control, .form-select { min-height:48px; border-color:#c8d2dc; font-size:1rem; }
.form-control::placeholder { color:#657486; opacity:1; }
.text-muted { color:var(--ui-muted) !important; }
.topbar .dropdown-menu { border:1px solid var(--ui-line); border-radius:18px; padding:.5rem; box-shadow:0 16px 48px #192b3b24; max-width:calc(100vw - 24px); }
.topbar .dropdown-item { min-height:48px; border-radius:10px; display:flex; align-items:center; white-space:normal; }
.topbar :is(.header-icon,.social-burger,.topbar-home-back) { min-width:44px; min-height:44px; }
.shop-search { border:1px solid #efeded; border-radius:999px; padding:0; box-shadow:0 5px 14px rgba(25,35,45,.08); background:#faf9f9; }
.shop-search label { display:block; font-size:1.2rem; color:var(--ui-ink); }
.shop-search-controls { gap:.65rem; }
.shop-search-controls input { background:transparent; }
.shop-results { color:var(--ui-muted); line-height:1.6; }
.cat-scroll .cat-chip { border-radius:999px; min-height:44px; border:1px solid var(--ui-line); background:#fff; color:var(--ui-ink); }
.cat-scroll .cat-chip.active { background:var(--brand); color:var(--brand-contrast); border-color:var(--brand); }
.cat-box { border-radius:16px; box-shadow:none; }
.store-product .card { border:1px solid var(--ui-line); border-radius:18px; background:var(--ui-surface); box-shadow:0 3px 12px #192b3b05 !important; }
.store-product .card-body { padding:1.75rem .85rem .9rem; text-align:start; gap:.15rem; }
.store-product .prod-name { font-weight:700; font-size:1rem; line-height:1.6; }
.store-product .product-description { color:var(--ui-muted); font-size:.85rem !important; }
.store-product .price-row { flex-wrap:wrap !important; justify-content:flex-start !important; row-gap:.4rem !important; line-height:1.5; }
.store-product .price-new { color:var(--brand-readable,var(--ui-ink)); font-size:1.1rem; font-weight:800; }
.store-product .disc-badge { background:#fce9e8; color:#a52b23; font-size:.75rem; }
.store-product .like-btn { width:44px; height:44px; top:.5rem; right:.5rem; border-radius:50%; background:#fff; box-shadow:0 2px 8px #192b3b14; }
.store-product .like-btn i { text-shadow:none; }
.store-product .cart-fab { width:44px; height:44px; bottom:-22px; border:1px solid var(--ui-line); box-shadow:0 3px 10px #192b3b15; }
.modal-content { border:1px solid var(--ui-line); border-radius:24px; box-shadow:0 24px 80px #192b3b25; overflow:hidden; }
.modal-header { padding:1rem 1.25rem; }
.modal-body { padding:1.25rem; }
.modal-footer { gap:.5rem; padding:1rem 1.25rem; background:#fafbfd; }
.modal :is(.btn-close,[data-bs-dismiss]) { min-width:44px; min-height:44px; }
.modal .btn-close { box-sizing:border-box; padding:12px; margin:0; }
.modal-content { max-height:calc(100vh - 2rem); max-height:calc(100dvh - 2rem); }
.modal-body { overflow-y:auto; overscroll-behavior:contain; }
.modal-header, .modal-footer { flex-shrink:0; }
/* The legacy header is at 100050: both cart and backdrop must be above it. */
#cartPanel { z-index:200010 !important; width:min(100%,460px); }
.offcanvas-backdrop { z-index:200000 !important; }
#cartPanel .offcanvas-header { padding:1rem 1.25rem; }
#cartPanel .offcanvas-body { padding:1.25rem; overscroll-behavior:contain; }
#cartPanel .btn { min-width:44px; min-height:44px; }
#cartEmpty { line-height:1.8; }
#checkoutModal .form-label { font-weight:700; margin-bottom:.45rem; }
#checkoutModal .mb-2 { margin-bottom:1rem !important; }
#checkoutModal .form-control { font-size:16px; }
#productModal .pm-variant-chip { min-width:48px; min-height:44px; }
#productModal .pm-actions-footer { border-top:1px solid var(--ui-line); }
.site-footer { margin-top:2.5rem; }
.site-footer .footer-link { min-height:44px; }
@media (hover:hover) {
    .store-product .card:hover { border-color:#bdcad6; box-shadow:0 8px 24px #192b3b10 !important; }
}
@media (max-width:767px) {
    body { padding-left:env(safe-area-inset-left,0px); padding-right:env(safe-area-inset-right,0px); }
    .topbar { margin-top:env(safe-area-inset-top,0px); }
    .hero-shell { padding-top:env(safe-area-inset-top,0px); }
    #shopBrowse { padding-inline:16px; padding-top:20px !important; }
    .shop-search { padding:0; margin-bottom:1.5rem; }
    .shop-search label { font-size:1.1rem; }
    .shop-mobile-nav { padding-inline:max(.5rem,env(safe-area-inset-left,0px)) max(.5rem,env(safe-area-inset-right,0px)); box-shadow:0 -4px 24px #192b3b0a; }
    .shop-mobile-nav button { color:var(--ui-muted); border-radius:14px; min-height:56px; }
    .shop-mobile-nav button:first-child { color:var(--ui-ink); background:#eef2f6; }
    .shop-mobile-nav .shop-nav-cart { color:var(--brand-readable,var(--ui-ink)); }
    #shopCartCount { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding-inline:4px; border-radius:50px; background:var(--ui-ink); color:#fff; font-size:.7rem; }
    .store-product .card-body { padding:1.65rem .7rem .8rem; }
    .store-product .prod-name { font-size:.94rem; }
    .store-product .product-description { font-size:.8rem !important; }
    .store-product .price-new { font-size:1rem; }
    .cat-box { min-height:76px; }
    .cat-box-name { font-size:.85rem; }
    .modal { padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px) !important; }
    .modal-dialog { margin:.5rem; }
    .modal-content, #checkoutModal .modal-content { max-height:calc(100vh - 1rem); max-height:calc(100dvh - 1rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)); border-radius:20px; }
    .modal-body { padding:1rem; }
    .modal-footer { padding: .85rem 1rem; }
    #cartPanel { padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px); }
    #productModal #pmProductName { white-space:normal !important; line-height:1.6; }
    #productModal #pmDesc { font-size:.95rem !important; line-height:1.75 !important; }
    #productModal .pm-thumb { width:44px !important; height:44px !important; }
    .form-control, .form-select { font-size:16px !important; }
}
@media (prefers-reduced-motion:reduce) {
    *, *::before, *::after { animation-duration:.01ms !important; animation-delay:0ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
