:root {
    --primary: #b2be5a;
    --primary-hover: #899634;
    --primary-active: #617007;
    --primary-disabled: #d8dcac;
    --primary-contrast: #1e2400;
    --bs-primary: var(--primary);
    --bs-primary-rgb: 178, 190, 90;
    --bs-primary-hover: var(--primary-hover);
    --bs-primary-dark: var(--primary-active);
    --bs-link-color: #687312;
    --bs-link-color-rgb: 104, 115, 18;
    --bs-link-hover-color: #4e5808;
    --bs-link-hover-color-rgb: 78, 88, 8;
    --bs-focus-ring-color: rgba(178, 190, 90, .35);
    --bs-secondary-rgb: 178,190,90;
    --accent-color: var(--primary);
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
img { max-width: 100%; }

.skip-link {
    position: fixed;
    top: .5rem;
    left: .5rem;
    z-index: 3000;
    padding: .65rem 1rem;
    color: #fff;
    background: #222;
    transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid rgba(97, 112, 7, .65); outline-offset: 3px; }

.btn-primary {
    --bs-btn-color: var(--primary-contrast);
    --bs-btn-bg: var(--primary);
    --bs-btn-border-color: var(--primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--primary-hover);
    --bs-btn-hover-border-color: var(--primary-hover);
    --bs-btn-focus-shadow-rgb: 178, 190, 90;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--primary-active);
    --bs-btn-active-border-color: var(--primary-active);
    --bs-btn-disabled-color: #555;
    --bs-btn-disabled-bg: var(--primary-disabled);
    --bs-btn-disabled-border-color: var(--primary-disabled);
}

.btn-outline-primary {
    --bs-btn-color: #687312;
    --bs-btn-bg: transparent;
    --bs-btn-border-color: var(--primary);
    --bs-btn-hover-color: var(--primary-contrast);
    --bs-btn-hover-bg: var(--primary);
    --bs-btn-hover-border-color: var(--primary);
    --bs-btn-focus-shadow-rgb: 178, 190, 90;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--primary-active);
    --bs-btn-active-border-color: var(--primary-active);
    --bs-btn-disabled-color: #8c925b;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--primary-disabled);
}

.ad-slot:empty { display: none; }
.header-top { min-height: 42px; background: #f4f5e9; }
.header-contact { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 40px; }
.header-contact__details, .header-social, .nav-actions { display: flex; align-items: center; gap: 1rem; }
.header-contact a, .header-contact span { color: #343722; text-decoration: none; }
.header-contact__details a, .header-contact__details span { display: inline-flex; align-items: center; gap: .4rem; }
.header-social a { display: inline-grid; place-items: center; width: 32px; height: 32px; }

#primary-header { background: rgba(250, 250, 250, .97); box-shadow: 0 1px 0 rgba(0, 0, 0, .06); }
#primary-header.nav-float { position: fixed; inset: 0 0 auto; z-index: 1040; box-shadow: 0 4px 20px rgba(0, 0, 0, .1); }
.navbar-brand img { width: auto; height: 60px; object-fit: contain; }
.nav-actions { margin-left: 1rem; }
.mobile-menu-button {
    display: none;
    min-width: 48px;
    min-height: 48px;
    padding: .5rem;
    color: #343722;
    background: #f4f5e9;
    border-radius: .35rem;
}
.mobile-menu-button i { display: block; font-size: 1.75rem; line-height: 1; }
.mobile-nav { display: grid; gap: .4rem; }
.mobile-nav a { padding: .85rem 1rem; color: #30331c; border-bottom: 1px solid #e7e9d5; text-decoration: none; font-size: 1.1rem; }

.home-hero { min-height: 680px; height: calc(100svh - 142px); background-position: center; background-repeat: no-repeat; background-size: cover; }
.home-hero::before { position: absolute; inset: 0; background: rgba(255, 255, 255, .08); content: ""; }
.home-hero .banner-content { position: relative; z-index: 1; padding: 2rem; }
.inner-hero { background-position: center; background-repeat: no-repeat; background-size: cover; }
.inner-hero::before { position: absolute; inset: 0; background: rgba(31, 37, 15, .4); content: ""; }
.inner-hero > .container-lg { position: relative; z-index: 1; }
.main-slider-button-next, .main-slider-button-prev { position: absolute; top: 50%; z-index: 2; transform: translateY(-50%); }
.main-slider-button-next { right: 2rem; }
.main-slider-button-prev { left: 2rem; }
#to-top { display: none; position: fixed; right: 1.5rem; bottom: 1.5rem; z-index: 1030; min-width: 48px; min-height: 48px; padding: .65rem; border-radius: .35rem; }
.footer-heading { margin-bottom: 1.25rem; font-family: var(--body-font); font-size: 1rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.footer-links { display: grid; gap: .7rem; }
.footer-links a { color: inherit; text-decoration: none; }
.footer-links a:hover { color: #687312; }
.hot-book-btn { width: 100%; }

@media (max-width: 991.98px) {
    .mobile-menu-button { display: inline-grid; place-items: center; }
    .header-contact { align-items: flex-start; }
    .header-contact__details { flex-direction: column; align-items: flex-start; gap: .35rem; }
    .home-hero { min-height: 620px; height: calc(100svh - 165px); }
    section#slider .banner-content { width: min(88%, 660px); }
}

@media (max-width: 767.98px) {
    .header-contact { min-height: 72px; }
    .header-social > span { display: none; }
    .header-social { gap: .25rem; }
    .navbar-brand img { max-width: 185px; height: 52px; }
    .nav-actions { gap: .4rem; }
    .home-hero { min-height: 560px; height: calc(100svh - 150px); background-position: 60% center; }
    .home-hero .banner-content { width: 92%; }
    .home-hero .banner-title { font-size: clamp(2.5rem, 12vw, 4rem); }
    .main-slider-button-next, .main-slider-button-prev { display: none; }
    .padding-medium { padding-top: 6rem; padding-bottom: 6rem; }
    #services .img-abf { min-height: 340px; object-fit: cover; }
    #services .zoom-effect > div { max-height: 86%; overflow: auto; }
    #appointment .offset-md-3 { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
