@import url('https://fonts.googleapis.com/css2?family=Fira+Sans:wght@400;500;600;700&family=Ubuntu:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root {
  --bs-primary: #9f1239;
  --bs-primary-rgb: 159, 18, 57;
  --bs-secondary: #fda4af;
  --bs-secondary-rgb: 253, 164, 175;
  --bs-success: #645145;
  --bs-success-rgb: 100, 81, 69;
  --bs-danger: #ac243c;
  --bs-danger-rgb: 172, 36, 60;
  --bs-warning: #aa4b27;
  --bs-warning-rgb: 170, 75, 39;
  --bs-info: #5d4675;
  --bs-info-rgb: 93, 70, 117;
  --bs-light: #ffebed;
  --bs-light-rgb: 255, 235, 237;
  --bs-dark: #1b040b;
  --bs-dark-rgb: 27, 4, 11;
  --bs-body-bg: #fff4f5;
  --bs-body-color: #140308;
  --bs-border-color: #f3d4db;
  --bs-heading-color: #1b040b;
  --bs-secondary-bg: #f6dee3;
  --bs-secondary-color: #776067;
  --bs-tertiary-bg: #fff8f9;
  --bs-tertiary-color: #776067;
  --bs-border-radius: 0.5rem;
  --bs-border-radius-sm: 0.5rem;
  --bs-border-radius-lg: 0.5rem;
  --opreo-color-accent: #881337;
  --opreo-link-color: #9f1239;
  --opreo-price-color: #881337;
  --opreo-font-body: 'Fira Sans', sans-serif;
  --opreo-font-buttons: 'Ubuntu', sans-serif;
  --opreo-font-headers: 'Space Grotesk', sans-serif;
  --opreo-font-price: 'Fira Sans', sans-serif;
  --opreo-font-size-body: 1rem;
  --opreo-font-size-buttons: 0.875rem;
  --opreo-font-weight-body: 400;
  --opreo-font-weight-headers: 600;
  --opreo-font-weight-buttons: 500;
  --opreo-font-size-h1: 2rem;
  --opreo-font-size-h2: 1.625rem;
  --opreo-font-size-h3: 1.375rem;
  --opreo-body-color: #140308;
  --opreo-headers-color: #1b040b;
  --opreo-border-radius: 0.5rem;
  --opreo-badge-bg: #fee6e9;
  --opreo-badge-color: #724a4f;
  --opreo-primary-subtle: #ecd0d7;
  --opreo-primary-shade: #7f0e2e;
  --opreo-input-border: #d5b6bd;
  --opreo-input-bg: #ffffff;
  --opreo-navbar-bg: #ffffff;
  --opreo-section-bg: #f6dee3;
  --opreo-footer-bg: #fff8f9;
  --opreo-muted: #776067;
  --opreo-card-bg: #ffffff;
}
body { font-family: var(--opreo-font-body); font-size: var(--opreo-font-size-body); font-weight: var(--opreo-font-weight-body); color: var(--opreo-body-color); background-color: var(--bs-body-bg); }
h1,.h1 { font-size: var(--opreo-font-size-h1); }
h2,.h2 { font-size: var(--opreo-font-size-h2); }
h3,.h3 { font-size: var(--opreo-font-size-h3); }
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.footer-heading { font-family: var(--opreo-font-headers); font-weight: var(--opreo-font-weight-headers); color: var(--opreo-headers-color); }
.btn, .navbar-brand { font-family: var(--opreo-font-buttons); font-size: var(--opreo-font-size-buttons); font-weight: var(--opreo-font-weight-buttons); border-radius: var(--opreo-border-radius); }
.card, .form-control, .form-select, .input-group-text, .list-group-item, .modal-content, .offcanvas, .dropdown-menu, .alert, .badge, .pagination .page-link { border-radius: var(--opreo-border-radius); }
.btn-primary { --bs-btn-bg: var(--bs-primary); --bs-btn-border-color: var(--bs-primary); --bs-btn-hover-bg: var(--opreo-color-accent); --bs-btn-hover-border-color: var(--opreo-color-accent); }
.btn-outline-primary { --bs-btn-color: var(--bs-primary); --bs-btn-border-color: var(--bs-primary); --bs-btn-hover-bg: var(--bs-primary); --bs-btn-hover-border-color: var(--bs-primary); }
.btn-outline-secondary { --bs-btn-color: var(--bs-secondary); --bs-btn-border-color: var(--bs-border-color); }
.text-primary { color: var(--bs-primary) !important; }
.text-secondary { color: var(--bs-secondary) !important; }
.text-success, .opreo-text-success { color: var(--bs-success) !important; }
.text-danger, .opreo-text-danger { color: var(--bs-danger) !important; }
.text-warning, .opreo-text-warning { color: var(--bs-warning) !important; }
.text-info { color: var(--bs-info) !important; }
.text-muted { color: var(--opreo-muted) !important; }
.bg-success, .text-bg-success { background-color: var(--bs-success) !important; color: #fff !important; }
.bg-danger, .text-bg-danger { background-color: var(--bs-danger) !important; color: #fff !important; }
.bg-warning, .text-bg-warning { background-color: var(--bs-warning) !important; color: var(--bs-dark) !important; }
.bg-info, .text-bg-info { background-color: var(--bs-info) !important; color: #fff !important; }
.bg-primary, .text-bg-primary { background-color: var(--bs-primary) !important; color: #fff !important; }
.bg-secondary, .text-bg-secondary { background-color: var(--bs-secondary) !important; color: #fff !important; }
.bg-light { background-color: var(--bs-light) !important; }
.bg-body-secondary { background-color: var(--opreo-section-bg) !important; }
.bg-body-tertiary { background-color: var(--bs-tertiary-bg) !important; }
.alert-success { --bs-alert-bg: color-mix(in srgb, var(--bs-success) 12%, var(--bs-body-bg)); --bs-alert-border-color: color-mix(in srgb, var(--bs-success) 35%, transparent); --bs-alert-color: var(--bs-success); }
.alert-danger { --bs-alert-bg: color-mix(in srgb, var(--bs-danger) 12%, var(--bs-body-bg)); --bs-alert-border-color: color-mix(in srgb, var(--bs-danger) 35%, transparent); --bs-alert-color: var(--bs-danger); }
.alert-warning { --bs-alert-bg: color-mix(in srgb, var(--bs-warning) 15%, var(--bs-body-bg)); --bs-alert-border-color: color-mix(in srgb, var(--bs-warning) 35%, transparent); --bs-alert-color: var(--bs-dark); }
.alert-info { --bs-alert-bg: color-mix(in srgb, var(--bs-info) 12%, var(--bs-body-bg)); --bs-alert-border-color: color-mix(in srgb, var(--bs-info) 35%, transparent); --bs-alert-color: var(--bs-info); }
a:not(.btn):not(.nav-link):not(.dropdown-item):not(.card):not(.text-muted):not(.page-link) { color: var(--opreo-link-color); }
a:not(.btn):hover { color: var(--opreo-color-accent); }
.opreo-price, .product-card .card-text, .service-card .card-text, .search-dropdown__price, #product-price, .product-detail__price { color: var(--opreo-price-color); font-family: var(--opreo-font-price); font-weight: 600; }
.product-card, .service-card { border-color: var(--bs-border-color); background-color: var(--opreo-card-bg); border-radius: var(--opreo-border-radius); }
.product-card .card-body, .service-card .card-body { background-color: var(--opreo-card-bg); }
.product-card .card-title, .service-card .card-title { color: var(--opreo-body-color); font-size: inherit; }
.product-card:hover, .service-card:hover { border-color: var(--bs-primary) !important; }
.opreo-section-alt, .bg-body-secondary { background-color: var(--opreo-section-bg) !important; }
#site-search-bar, .bg-body-tertiary { background-color: var(--bs-tertiary-bg) !important; border-color: var(--bs-border-color); }
#site-navbar { background-color: var(--opreo-navbar-bg) !important; border-bottom-color: var(--bs-border-color); }
#site-navbar.scrolled { background-color: color-mix(in srgb, var(--opreo-navbar-bg) 92%, transparent) !important; }
#site-navbar .navbar-brand { color: var(--bs-primary); }
#site-navbar .nav-link { color: var(--opreo-body-color); }
#site-navbar .nav-link:hover, #site-navbar .nav-link:focus { color: var(--bs-primary); }
#site-footer { background-color: var(--opreo-footer-bg) !important; border-top-color: var(--bs-border-color); }
#site-footer a.text-muted { color: var(--opreo-muted) !important; }
#site-footer a.text-muted:hover { color: var(--bs-primary) !important; }
.badge.bg-secondary { background-color: var(--opreo-badge-bg) !important; color: var(--opreo-badge-color) !important; }
.opreo-badge-service { background-color: color-mix(in srgb, var(--bs-success) 12%, var(--bs-body-bg)) !important; color: var(--bs-success) !important; }
.opreo-badge-product { background-color: color-mix(in srgb, var(--bs-primary) 12%, var(--bs-body-bg)) !important; color: var(--bs-primary) !important; }
.form-control, .form-select, .input-group-text { background-color: var(--opreo-input-bg); border-color: var(--opreo-input-border); color: var(--opreo-body-color); }
.form-control:focus, .form-select:focus { border-color: var(--bs-primary); box-shadow: 0 0 0 2px color-mix(in srgb, var(--bs-primary) 15%, transparent); background-color: var(--opreo-input-bg); }
.form-control::placeholder { color: var(--opreo-muted); }
.list-group-item { border-color: var(--bs-border-color); background-color: var(--opreo-card-bg); color: var(--opreo-body-color); }
.card { border-color: var(--bs-border-color); background-color: var(--opreo-card-bg); }
.card-header { background-color: var(--bs-light); border-bottom-color: var(--bs-border-color); color: var(--opreo-body-color); }
.modal-content, .offcanvas { background-color: var(--opreo-card-bg); border-color: var(--bs-border-color); color: var(--opreo-body-color); }
.modal-header, .offcanvas-header { border-bottom-color: var(--bs-border-color); }
.modal-footer, .offcanvas-body { border-top-color: var(--bs-border-color); }
.dropdown-menu { background-color: var(--opreo-card-bg); border-color: var(--bs-border-color); }
.dropdown-item { color: var(--opreo-body-color); }
.dropdown-item:hover, .dropdown-item:focus { background-color: var(--bs-tertiary-bg); color: var(--opreo-body-color); }
.breadcrumb-item a { color: var(--opreo-link-color); }
.breadcrumb-item.active { color: var(--opreo-muted); }
.pagination .page-link { color: var(--opreo-link-color); border-color: var(--bs-border-color); background-color: var(--opreo-card-bg); }
.pagination .page-item.active .page-link { background-color: var(--bs-primary); border-color: var(--bs-primary); color: #fff; }
.prose a { color: var(--opreo-link-color); }
.prose blockquote { border-left-color: var(--bs-primary); color: var(--bs-secondary); }
.search-dropdown__badge--service { background: var(--opreo-primary-subtle); color: var(--opreo-primary-shade); }
.search-dropdown__all { color: var(--opreo-link-color); background: var(--bs-tertiary-bg); }
.location-card:hover { border-color: var(--bs-primary) !important; }
.location-card.selected { border-color: var(--bs-primary) !important; box-shadow: 0 0 0 2px color-mix(in srgb, var(--bs-primary) 15%, transparent); }
.catalog-card__placeholder, .opreo-thumb-placeholder { background-color: var(--opreo-primary-subtle) !important; color: var(--opreo-primary-shade) !important; }
.opreo-cart-section-header { background: color-mix(in srgb, var(--bs-border-color) 35%, var(--bs-body-bg)); color: var(--opreo-muted); border-bottom: 1px solid color-mix(in srgb, var(--bs-border-color) 60%, transparent); font-size: .67rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; }
.opreo-star-filled { color: var(--bs-warning) !important; }
.opreo-wishlist-active { color: var(--bs-danger) !important; }
#mobile-action-bar { background-color: var(--opreo-navbar-bg); border-top: 1px solid var(--bs-border-color); }
.slot-btn.active { background: var(--bs-primary); border-color: var(--bs-primary); color: #fff; }
.addon-option:hover, .addon-option.selected { border-color: var(--bs-primary); background: var(--opreo-primary-subtle); }
.operator-card:hover { border-color: var(--bs-primary); }
.operator-card.selected { border-color: var(--bs-primary); background: var(--opreo-primary-subtle); box-shadow: 0 0 0 3px color-mix(in srgb, var(--bs-primary) 18%, transparent); }
.service-media-placeholder { background-color: var(--bs-tertiary-bg); min-height: 240px; }
.table { --bs-table-bg: var(--opreo-card-bg); --bs-table-color: var(--opreo-body-color); --bs-table-border-color: var(--bs-border-color); }
.placeholder { background-color: var(--bs-secondary-bg); }