@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&family=Josefin+Sans:wght@400;500;600;700&display=swap');
:root {
  --bs-primary: #3b3f45;
  --bs-primary-rgb: 59, 63, 69;
  --bs-secondary: #8c8f95;
  --bs-secondary-rgb: 140, 143, 149;
  --bs-success: #7aaa8f;
  --bs-success-rgb: 122, 170, 143;
  --bs-danger: #c47f78;
  --bs-danger-rgb: 196, 127, 120;
  --bs-warning: #c9ac7a;
  --bs-warning-rgb: 201, 172, 122;
  --bs-info: #7aaab5;
  --bs-info-rgb: 122, 170, 181;
  --bs-light: #f2f0ec;
  --bs-light-rgb: 242, 240, 236;
  --bs-dark: #2e3135;
  --bs-dark-rgb: 46, 49, 53;
  --bs-body-bg: #faf9f7;
  --bs-body-color: #2e3135;
  --bs-border-color: #dddbd8;
  --bs-heading-color: #2e3135;
  --bs-secondary-bg: #e9ecef;
  --bs-secondary-color: #6c757d;
  --bs-tertiary-bg: #f8f9fa;
  --bs-tertiary-color: #6c757d;
  --bs-border-radius: 0;
  --bs-border-radius-sm: 0;
  --bs-border-radius-lg: 0;
  --opreo-color-accent: #7aaa8f;
  --opreo-link-color: #3b3f45;
  --opreo-price-color: #7aaa8f;
  --opreo-font-body: 'Montserrat', sans-serif;
  --opreo-font-buttons: 'Montserrat', sans-serif;
  --opreo-font-headers: 'Josefin Sans', sans-serif;
  --opreo-font-price: 'Montserrat', sans-serif;
  --opreo-font-size-body: 0.9375rem;
  --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: #2e3135;
  --opreo-headers-color: #2e3135;
  --opreo-border-radius: 0;
  --opreo-badge-bg: #e4e2de;
  --opreo-badge-color: #5a5e65;
  --opreo-primary-subtle: #e8e9ea;
  --opreo-primary-shade: #2f3237;
  --opreo-input-border: #c8c6c2;
  --opreo-input-bg: #ffffff;
  --opreo-navbar-bg: #ffffff;
  --opreo-section-bg: #e9ecef;
  --opreo-footer-bg: #f8f9fa;
  --opreo-muted: #6c757d;
  --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); }