:root {
    --bes-primary: #0b0c09;
    --bes-secondary: #3f461d;
    --bes-accent: #b08b4a;
    --bes-background: #f7f0e6;
    --bes-surface: #fbf6ed;
    --bes-border: #d8c7ac;
    --bes-text-primary: #2c2922;
    --bes-text-secondary: #6a5f50;
    --bes-muted: #9b8d79;
    --bes-success: #4f6f3a;
    --bes-warning: #b87b2b;
    --bes-error: #9f3d32;
    --bes-heading: "Cormorant Garamond", Copperplate, Georgia, serif;
    --bes-body: Inter, Arial, sans-serif;
    --bes-space-4: 4px;
    --bes-space-8: 8px;
    --bes-space-12: 12px;
    --bes-space-16: 16px;
    --bes-space-24: 24px;
    --bes-space-32: 32px;
    --bes-space-40: 40px;
    --bes-space-48: 48px;
    --bes-space-64: 64px;
    --bes-space-80: 80px;
    --bes-space-96: 96px;
    --bes-space-128: 128px;
    --bes-container-sm: 760px;
    --bes-container-md: 1040px;
    --bes-container-lg: 1320px;
    --bes-radius-sm: 2px;
    --bes-radius-md: 4px;
    --bes-radius-lg: 8px;
    --bes-shadow-soft: 0 22px 70px rgba(51,39,23,.1);
    --bes-shadow-lift: 0 34px 110px rgba(51,39,23,.16);
    --bes-transition: 220ms ease;
}

.bes-h1 { font: clamp(56px, 8vw, 122px)/.88 var(--bes-heading); }
.bes-h2 { font: clamp(44px, 5vw, 82px)/.94 var(--bes-heading); }
.bes-h3 { font: clamp(30px, 3vw, 48px)/1 var(--bes-heading); }
.bes-h4 { font: 28px/1.1 var(--bes-heading); }
.bes-h5 { font: 22px/1.2 var(--bes-heading); }
.bes-h6 { font: 18px/1.2 var(--bes-heading); }
.bes-p { font: 15px/1.8 var(--bes-body); color: var(--bes-text-secondary); }
.bes-small { font: 12px/1.6 var(--bes-body); color: var(--bes-muted); }
.bes-label { font: 800 11px/1 var(--bes-body); letter-spacing: 1.8px; text-transform: uppercase; }
.bes-quote { font: clamp(34px, 5vw, 68px)/1 var(--bes-heading); }

.bes-container-sm,
.bes-container-md,
.bes-container-lg {
    width: min(var(--bes-container-width), calc(100% - 48px));
    margin-inline: auto;
}

.bes-container-sm { --bes-container-width: var(--bes-container-sm); }
.bes-container-md { --bes-container-width: var(--bes-container-md); }
.bes-container-lg { --bes-container-width: var(--bes-container-lg); }
.bes-full { width: 100%; }
.bes-grid { display: grid; gap: var(--bes-space-32); }
.bes-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bes-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bes-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bes-flex { display: flex; gap: var(--bes-space-24); }
.bes-align-center { align-items: center; }
.bes-justify-center { justify-content: center; }
.bes-text-center { text-align: center; }
.bes-text-right { text-align: right; }
.bes-hidden { display: none !important; }

.bes-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 0 26px;
    border: 1px solid transparent;
    font: 800 12px/1 var(--bes-body);
    letter-spacing: 1.2px;
    text-transform: uppercase;
    text-decoration: none;
    transition: transform var(--bes-transition), background var(--bes-transition), color var(--bes-transition), border-color var(--bes-transition);
}

.bes-button:hover { transform: translateY(-2px); }
.bes-button-primary { background: var(--bes-secondary); color: #fff; }
.bes-button-secondary { background: var(--bes-accent); color: #fff; }
.bes-button-outline { background: transparent; border-color: var(--bes-accent); color: var(--bes-text-primary); }
.bes-button-ghost { background: transparent; color: currentColor; }
.bes-button-dark { background: var(--bes-primary); color: #fff; }
.bes-button-light { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.3); color: #fff; backdrop-filter: blur(14px); }
.bes-button-text { min-height: auto; padding: 0; border: 0; background: transparent; color: var(--bes-secondary); }
.bes-button-disabled,
.bes-button[disabled] { cursor: not-allowed; opacity: .5; transform: none; }
.bes-button-loading { pointer-events: none; opacity: .75; }

.bes-card,
.bes-product-card,
.bes-award-card,
.bes-blog-card,
.bes-review-card,
.bes-team-card,
.bes-feature-card,
.bes-image-card {
    background: var(--bes-surface);
    border: 1px solid rgba(176,139,74,.18);
    border-radius: var(--bes-radius-lg);
    box-shadow: var(--bes-shadow-soft);
}

.bes-card-pad { padding: clamp(24px, 4vw, 48px); }
.bes-card-media { aspect-ratio: 4 / 3; background: #e7dbc8; overflow: hidden; }
.bes-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bes-badge { display: inline-flex; padding: 7px 11px; border: 1px solid rgba(176,139,74,.34); color: var(--bes-accent); font: 800 10px/1 var(--bes-body); letter-spacing: 1.2px; text-transform: uppercase; }

.bes-field,
.bes-input,
.bes-textarea,
.bes-select {
    width: 100%;
    border: 1px solid rgba(176,139,74,.28);
    background: #fffaf2;
    color: var(--bes-text-primary);
    padding: 15px 16px;
    outline: 0;
}

.bes-field:focus,
.bes-input:focus,
.bes-textarea:focus,
.bes-select:focus { border-color: var(--bes-accent); box-shadow: 0 0 0 3px rgba(176,139,74,.14); }
.bes-error { color: var(--bes-error); border-color: var(--bes-error); }
.bes-success { color: var(--bes-success); border-color: var(--bes-success); }

.bes-section-dark { background: var(--bes-primary); color: #f7f0e6; }
.bes-section-light { background: var(--bes-background); color: var(--bes-text-primary); }
.bes-section-surface { background: var(--bes-surface); }
.bes-section-gradient { background: linear-gradient(135deg, #0b0c09, #342616 55%, #3f461d); color: #fff; }
.bes-section-overlay { position: relative; isolation: isolate; }
.bes-section-overlay::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(0,0,0,.45); }

.bes-image-rounded { border-radius: var(--bes-radius-lg); }
.bes-image-circle { border-radius: 50%; }
.bes-image-landscape { aspect-ratio: 4 / 3; object-fit: cover; }
.bes-image-portrait { aspect-ratio: 3 / 4; object-fit: cover; }
.bes-image-hero { aspect-ratio: 16 / 9; object-fit: cover; }

.bes-accordion details { border-bottom: 1px solid rgba(176,139,74,.22); padding: 20px 0; }
.bes-accordion summary { cursor: pointer; font: 800 13px var(--bes-body); letter-spacing: 1px; text-transform: uppercase; }
.bes-tabs { display: flex; gap: 8px; border-bottom: 1px solid rgba(176,139,74,.22); }
.bes-tab { padding: 12px 18px; border: 1px solid transparent; background: transparent; }
.bes-tab.is-active { border-color: rgba(176,139,74,.3); border-bottom-color: var(--bes-background); }

.bes-swiper { overflow: hidden; }
.bes-swiper .swiper-slide { height: auto; }

.bes-animate-fade-up,
.bes-animate-fade-left,
.bes-animate-fade-right,
.bes-animate-scale,
.bes-animate-reveal { opacity: 0; will-change: opacity, transform; }

@media (max-width: 980px) {
    .bes-grid-3,
    .bes-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
    .bes-container-sm,
    .bes-container-md,
    .bes-container-lg { width: min(100% - 28px, var(--bes-container-width)); }
    .bes-grid-2,
    .bes-grid-3,
    .bes-grid-4 { grid-template-columns: 1fr; }
    .bes-flex { flex-direction: column; }
}

