/* plugins.css — grid system, resets and base layout for vendor-style components
   (rebuilt from scratch: the original bundled vendor CSS is not available) */

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Outfit', Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: #3a3a3a;
  background: #fff;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
ul, ol { margin: 0; padding: 0; }
button, input, select, textarea { font-family: inherit; font-size: 1rem; }
h1, h2, h3, h4, h5, h6 { margin: 0 0 .5em; font-weight: 700; line-height: 1.25; }
p { margin: 0 0 1em; }

/* ---------- grid ---------- */
.container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 15px; }
.row { display: flex; flex-wrap: wrap; margin: 0 -15px; }
.row > [class*="col-"] { padding: 0 15px; width: 100%; }

.col1  { width: 8.3333%; }
.col2  { width: 16.6667%; }
.col3  { width: 25%; }
.col-12 { width: 100%; }
.col-md-3 { width: 25%; }
.col-md-4 { width: 33.3333%; }
.col-md-5 { width: 41.6667%; }
.col-md-6 { width: 50%; }
.col-md-12 { width: 100%; }
.col-lg-4 { width: 33.3333%; }
.col-lg-5 { width: 41.6667%; }
.col-lg-6 { width: 50%; }
.col-lg-8 { width: 66.6667%; }
.col-lg-12 { width: 100%; }
.offset-lg-1 { margin-left: 8.3333%; }
.offset-md-1 { margin-left: 8.3333%; }

@media (max-width: 991px) {
  .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-8,
  .col-md-3, .col-md-4, .col-md-5, .col-md-6,
  .col1, .col2, .col3 { width: 100%; }
  .offset-lg-1, .offset-md-1 { margin-left: 0; }
}

/* ---------- utilities ---------- */
.d-block { display: block; }
.d-flex { display: flex; }
.align-items-center { align-items: center; }
.text-center { text-align: center; }
.text-light { color: rgba(255,255,255,.85); }
.text-white { color: #fff; }
.mx-auto { margin-left: auto; margin-right: auto; }
.ms-auto { margin-left: auto; }
.clearfix::after { content: ""; display: table; clear: both; }
.list-unstyled { list-style: none; }
.list-inline { list-style: none; display: flex; gap: 12px; }
.list-inline li { display: inline-block; }
.section-padding { padding: 80px 0; }
.line-vr-section { height: 1px; background: #ececec; }
.mb-0 { margin-bottom: 0; }
.mb-15 { margin-bottom: 15px; }
.mb-30 { margin-bottom: 30px; }
.mb-45 { margin-bottom: 45px; }
.mb-60 { margin-bottom: 60px; }
.mt-5 { margin-top: 5px; }
.mt-15 { margin-top: 15px; }
.mt-30 { margin-top: 30px; }
.mt--120 { margin-top: -120px; }
.mr-10 { margin-right: 10px; }
.cursor-pointer { cursor: pointer; }

/* ---------- background / overlay helper (used on hero + CTA sections) ---------- */
.bg-img { background-size: cover; background-position: center; position: relative; }
.bg-fixed { background-attachment: fixed; }
@media (max-width: 991px) { .bg-fixed { background-attachment: scroll; } }
.bg-img[data-overlay-dark]::before {
  content: "";
  position: absolute; inset: 0;
  background: #0d0d0d;
}
.bg-img[data-overlay-dark="2"]::before { opacity: .2; }
.bg-img[data-overlay-dark="4"]::before { opacity: .4; }
.bg-img[data-overlay-dark="5"]::before { opacity: .55; }
.bg-img > * { position: relative; z-index: 1; }

/* ---------- carousel fallback (Owl Carousel JS not available: lay items out responsively) ---------- */
.owl-carousel { display: flex; flex-wrap: wrap; gap: 24px; }
.owl-carousel .item { flex: 1 1 300px; max-width: 380px; }
.owl-theme { justify-content: center; }

/* ---------- gallery / masonry fallback ---------- */
.gallery-items { display: flex; flex-wrap: wrap; }
.single-item { overflow: hidden; }
.gallery-box { position: relative; overflow: hidden; border-radius: 6px; }
.gallery-img img { width: 100%; height: 260px; object-fit: cover; transition: transform .4s ease; }
.gallery-box:hover .gallery-img img { transform: scale(1.06); }
.bottom-fade {
  position: absolute; left: 0; right: 0; bottom: 0; height: 60%;
  background: linear-gradient(to top, rgba(0,0,0,.55), transparent);
  pointer-events: none;
}

/* ---------- select2 fallback: style the plain <select> ---------- */
.select2, select.select {
  width: 100%; padding: 12px 14px; border: 1px solid #e2e2e2; border-radius: 4px;
  background: #fff; appearance: none;
}

/* ---------- datepicker input: leave as plain themed text input (no JS calendar available) ---------- */
input.datepicker { cursor: text; }

/* ---------- video / lightbox containers ---------- */
.video-fullscreen-wrap { position: relative; overflow: hidden; }
.video-fullscreen-video video { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.video-fullscreen-wrap { min-height: 520px; }
.v-middle { position: relative; z-index: 1; display: flex; align-items: center; min-height: 520px; }

/* ---------- form basics ---------- */
.form-control, .input {
  width: 100%; padding: 12px 14px; border: 1px solid #e2e2e2; border-radius: 4px; background: #fff;
}
.form-control:focus, .input:focus { outline: none; border-color: #f5b754; }
textarea.form-control { resize: vertical; }
