:root{
  --bw-dark:#676767;
  --bw-black:#0d0d0d;
  --bw-accent:#262826;

  --bw-soft:#f3f3ef;
  --bw-soft-2:#e8e8e1;
  --bw-card:#ffffff;

  --bw-border:#d9d9cf;
  --bw-muted:#666760;

  --bw-green:#bfe891;
  --bw-green-dark:#5f724a;
  --bw-green-soft:#eef6df;

  --bw-warm:#c8cabd;
  --bw-warm-soft:#eeeeea;

  --bw-radius:22px;
  --bw-radius-sm:14px;

  --bw-shadow:0 10px 30px rgba(0,0,0,.045);
  --bw-shadow-hover:0 20px 50px rgba(0,0,0,.085);

  --bw-transition:.25s ease;

--bs-btn-color:#fff;
--bs-btn-bg:#6f8b57;
--bs-btn-border-color:#6f8b57;

--bs-btn-hover-color:#fff;
--bs-btn-hover-bg:#5f724a;
--bs-btn-hover-border-color:#5f724a;

--bs-btn-active-bg:#556744;
--bs-btn-active-border-color:#556744;

}

/* BASE */

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  font-family:Inter, Arial, sans-serif;
  background:var(--bw-soft);
  color:var(--bw-dark);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

a{
  color:var(--bw-black);
  text-decoration:none;
}

a:hover{
  color:var(--bw-green-dark);
}

img{
  max-width:100%;
  height:auto;
}

/* TYPOGRAPHY */

h1,h2,h3,h4,h5,h6{
  color:var(--bw-black);
  font-weight:700;
  line-height:1.12;
  letter-spacing:-.035em;
}

p{
  color:var(--bw-muted);
}

.text-muted{
  color:var(--bw-muted)!important;
}

.section-title{
  font-size:clamp(2.2rem,4vw,4.5rem);
  margin-bottom:1rem;
}

.section-subtitle{
  max-width:760px;
  color:var(--bw-muted);
}

.btn-success{
    background:linear-gradient(
        180deg,
        #789660 0%,
        #6f8b57 100%
    ) !important;

    border-color:#6f8b57 !important;

    box-shadow:
        0 10px 25px rgba(111,139,87,.18);

    color:#fff !important;
}

.btn-success:hover{
    background:linear-gradient(
        180deg,
        #6f8b57 0%,
        #5f724a 100%
    ) !important;

    border-color:#5f724a !important;
}

/* NAVBAR */

.navbar{
  border-bottom:1px solid var(--bw-border);
  backdrop-filter:blur(12px);
}

.navbar-brand{
  color:var(--bw-black)!important;
  font-weight:800;
}

.nav-link{
  color:var(--bw-dark)!important;
  font-weight:600;
}

.nav-link:hover,
.nav-link.active{
  color:var(--bw-green-dark)!important;
}

/* HERO */

.hero{
  background:var(--bw-soft);
  padding:130px 0 90px;
}

.hero-badge{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:var(--bw-green);
  color:var(--bw-black);
  border-radius:999px;
  padding:.65rem 1rem;
  font-size:.88rem;
  font-weight:700;
  margin-bottom:1.5rem;
}

.hero-title{
  font-size:clamp(3rem,6vw,6rem);
  color:var(--bw-black);
  line-height:.96;
  margin-bottom:1.5rem;
}

.hero-description{
  font-size:1.15rem;
  color:var(--bw-muted);
  max-width:720px;
  margin-bottom:2rem;
}

.hero-image,
.img-rounded{
  border-radius:var(--bw-radius);
  overflow:hidden;
  box-shadow:var(--bw-shadow-hover);
}

/* BADGES */

.badge,
.tag,
.pill{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:.6rem .95rem;
  font-weight:700;
  font-size:.85rem;
  background:#fff;
  color:var(--bw-black);
  border:0;
}

.badge-green,
.tag-green,
.pill-green{
  background:var(--bw-green);
  color:var(--bw-black);
  border-color:var(--bw-green);
}

.badge-dark,
.tag-dark,
.pill-dark{
  background:var(--bw-black);
  color:#fff;
  border-color:var(--bw-black);
}

/* BUTTONS — CONTRAST FIX */

.btn{
  border-radius:16px;
  padding:.95rem 1.35rem;
  font-weight:700;
  transition:var(--bw-transition);
  border:1px solid transparent;
}

.btn-dark,
.btn-primary{
  background:var(--bw-black)!important;
  border-color:var(--bw-black)!important;
  color:#fff!important;
}

.btn-dark:hover,
.btn-primary:hover{
  background:var(--bw-green)!important;
  border-color:var(--bw-green)!important;
  color:var(--bw-black)!important;
  transform:translateY(-2px);
}

.btn-outline-dark,
.btn-outline-primary{
  background:#fff!important;
  border-color:var(--bw-black)!important;
  color:var(--bw-black)!important;
}

.btn-outline-dark:hover,
.btn-outline-primary:hover{
  background:var(--bw-black)!important;
  border-color:var(--bw-black)!important;
  color:#fff!important;
  transform:translateY(-2px);
}

.btn-light{
  background:#fff!important;
  border-color:var(--bw-border)!important;
  color:var(--bw-black)!important;
}

.btn-light:hover{
  background:var(--bw-green)!important;
  border-color:var(--bw-green)!important;
  color:var(--bw-black)!important;
}

.btn-ghost{
  background:transparent;
  border-color:var(--bw-border);
  color:var(--bw-black);
}

.btn-ghost:hover{
  background:var(--bw-black);
  color:#fff;
}

/* sections with dark bg */

.bg-dark .btn-outline-light,
.footer .btn-outline-light,
section.bg-dark .btn-outline-light{
  background:transparent!important;
  border-color:rgba(255,255,255,.65)!important;
  color:#fff!important;
}

.bg-dark .btn-outline-light:hover,
.footer .btn-outline-light:hover,
section.bg-dark .btn-outline-light:hover{
  background:#fff!important;
  border-color:#fff!important;
  color:var(--bw-black)!important;
}

/* CARDS */

.card{
  background:var(--bw-card);
  border:1px solid var(--bw-border);
  border-radius:var(--bw-radius);
  box-shadow:var(--bw-shadow);
  transition:var(--bw-transition);
}


.card-body{
  padding:2rem;
}

.card h3,
.card h4,
.card h5{
  color:var(--bw-black);
}

.card p{
  color:var(--bw-muted);
}

.card-icon{
  width:54px;
  height:54px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--bw-green);
  color:var(--bw-black);
  font-weight:800;
  margin-bottom:1.25rem;
}

/* SECTIONS */

.section-light{
  background:var(--bw-soft);
}

.section-white{
  background:#fff;
}

.section-warm{
  background:var(--bw-warm-soft);
}

.bg-light{
  background:var(--bw-soft-2)!important;
}

.bg-white {
    background: #ffffff85 !important;
}
.bg-dark{
  background:var(--bw-black)!important;
  color:#fff!important;
}

.bg-dark h1,
.bg-dark h2,
.bg-dark h3,
.bg-dark h4,
.bg-dark h5,
.bg-dark h6{
  color:#fff!important;
}

.bg-dark p,
.bg-dark .text-muted{
  color:rgba(255,255,255,.72)!important;
}

/* STATS */

.stat-card{
  background:#fff;
  border:1px solid var(--bw-border);
  border-radius:var(--bw-radius);
  padding:2rem;
  box-shadow:var(--bw-shadow);
}

.stat-number{
  color:var(--bw-black);
  font-size:3rem;
  font-weight:800;
  line-height:1;
}

.stat-label{
  color:var(--bw-muted);
  margin-top:.5rem;
}

/* TABLES */

.table{
  background:#fff;
  border:1px solid var(--bw-border);
  border-radius:var(--bw-radius);
  overflow:hidden;
}

.table th{
  color:var(--bw-black);
  font-weight:800;
  background:var(--bw-soft);
}

.table td{
  color:var(--bw-dark);
}

.table th,
.table td{
  border-color:var(--bw-border);
  padding:1rem 1.2rem;
}

/* LOCATION / MAP */

.location-card{
  background:#fff;
  border:1px solid var(--bw-border);
  border-radius:var(--bw-radius);
  padding:2rem;
  box-shadow:var(--bw-shadow);
}

.location-label{
  display:inline-flex;
  background:var(--bw-green);
  color:var(--bw-black);
  border-radius:999px;
  padding:.55rem .85rem;
  font-size:.78rem;
  font-weight:800;
  margin-bottom:1rem;
}

.location-card a{
  color:var(--bw-black);
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
}

.location-card a:hover{
  color:var(--bw-green-dark);
}

/* GALLERY */

.gallery-item{
  border-radius:var(--bw-radius);
  overflow:hidden;
  background:#fff;
  border:1px solid var(--bw-border);
  box-shadow:var(--bw-shadow);
}

.gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:.6s ease;
}

.gallery-item:hover img{
  transform:scale(1.04);
}

/* FAQ */

.accordion-item{
  border:1px solid var(--bw-border)!important;
  border-radius:20px!important;
  overflow:hidden;
  margin-bottom:1rem;
  background:#fff;
}

.accordion-button{
  background:#fff!important;
  color:var(--bw-black)!important;
  font-weight:800;
  box-shadow:none!important;
  padding:1.35rem 1.5rem;
}

.accordion-button:not(.collapsed){
  background:var(--bw-green)!important;
  color:var(--bw-black)!important;
}

.accordion-body{
  color:var(--bw-muted);
  background:#fff;
  padding:1.5rem;
}

/* FORMS */

.form-control,
.form-select,
textarea{
  background:#fff;
  border:1px solid var(--bw-border);
  border-radius:16px;
  color:var(--bw-black);
  padding:1rem 1.1rem;
}

.form-control:focus,
.form-select:focus,
textarea:focus{
  border-color:var(--bw-green-dark);
  box-shadow:0 0 0 .25rem rgba(191,232,145,.28);
}

label{
  color:var(--bw-black);
  font-weight:700;
}

/* COOKIE TOAST */

.cookie-toast{
  position:fixed;
  left:24px;
  bottom:24px;
  width:380px;
  max-width:calc(100vw - 48px);
  background:#fff;
  border:1px solid var(--bw-border);
  border-radius:var(--bw-radius);
  padding:1.2rem;
  box-shadow:0 20px 50px rgba(0,0,0,.14);
  z-index:9999;
}

.cookie-toast-title{
  color:var(--bw-black);
  font-weight:800;
  margin-bottom:.4rem;
}

.cookie-toast p{
  color:var(--bw-muted);
  font-size:.95rem;
  margin-bottom:1rem;
}

dropdown-item.active, .dropdown-item:active {
    color: var(--bs-dropdown-link-active-color);
    text-decoration: none;
    background-color: #76945d;
}

/* FOOTER */

.footer{
  background:var(--bw-black);
  color:rgba(255,255,255,.72);
  padding:80px 0 40px;
}

.footer h5,
.footer h6{
  color:#fff;
}

.footer p{
  color:rgba(255,255,255,.72);
}

.footer a{
  color:#fff;
  text-decoration:none;
}

.footer a:hover{
  color:var(--bw-green);
}

/* ADMIN */

.admin-body{
  background:var(--bw-soft);
  color:var(--bw-dark);
}

.admin-sidebar{
  background:#fff;
  border-right:1px solid var(--bw-border);
}

.admin-sidebar .nav-link{
  color:var(--bw-dark)!important;
  border-radius:14px;
  font-weight:700;
}

.admin-sidebar .nav-link:hover,
.admin-sidebar .nav-link.active{
  background:var(--bw-green)!important;
  color:var(--bw-black)!important;
}

.admin-card{
  background:#fff;
  border:1px solid var(--bw-border);
  border-radius:24px;
  padding:2rem;
  box-shadow:var(--bw-shadow);
}

.admin-tabs .nav-link{
  color:var(--bw-black)!important;
  border-radius:14px;
}

.admin-tabs .nav-link.active{
  background:var(--bw-black)!important;
  color:#fff!important;
}

/* SAFETY CONTRAST OVERRIDES */

.text-white{
  color:#fff!important;
}

.text-dark{
  color:var(--bw-black)!important;
}

.text-success,
.link-success{
  color:var(--bw-green-dark)!important;
}

.bg-success{
    background: var(--bw-green) !important;
    color: #62833e !important;
}

.text-warning {
    --bs-text-opacity: 1;
    color: rgb(116 145 92) !important;
}

.border-success{
  border-color:var(--bw-green)!important;
}

.footer-dark {
  background: var(--bs-btn-bg)!important;
}

/* если Bootstrap где-то делает белую outline-кнопку на белом фоне */
section:not(.bg-dark) .btn-outline-light{
    background: #fff !important;
    border-color: #e8e8e1 !important;
    color: #515151 !important;
}

section:not(.bg-dark) .btn-outline-light:hover{
  background:var(--bw-dark)!important;
  color:#fff!important;
}

/* RESPONSIVE */

@media(max-width:991px){
  .hero{
    padding:110px 0 70px;
  }

  .hero-title{
    font-size:3rem;
  }
}

@media(max-width:767px){
  .btn{
    width:100%;
  }

  .card-body{
    padding:1.5rem;
  }

  .cookie-toast{
    left:16px;
    right:16px;
    bottom:16px;
    width:auto;
  }
}