/* ==========================================================================
   Semiflow services - site stylesheet
   Brand: #0c8513 (navbar / footer), Open Sans, Bootstrap 5.3 as the base grid.
   ========================================================================== */

:root {
  --sf-green:        #0c8513;
  --sf-green-dark:   #096a0f;
  --sf-green-darker: #06500b;
  --sf-green-light:  #4cc154;
  --sf-green-pale:   #eef7ee;
  --sf-ink:          #14201a;
  --sf-body:         #48584e;
  --sf-line:         #e2e9e2;
  --sf-navy:         #0b1c3a;
  --sf-shadow:       0 .5rem 1.5rem rgba(12, 40, 18, .10);
  --sf-shadow-lg:    0 1.25rem 2.75rem rgba(12, 40, 18, .18);
  --sf-radius:       .625rem;
}

/* ------------------------------------------------------------------ base -- */
html { scroll-behavior: smooth; scroll-padding-top: 96px; }

body {
  font-family: 'Open Sans', 'Segoe UI', Arial, sans-serif;
  color: var(--sf-body);
  background: #fff;
  font-size: 1rem;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 { color: var(--sf-ink); font-weight: 700; line-height: 1.25; }
a { color: var(--sf-green-dark); text-decoration: none; transition: color .18s ease; }
a:hover { color: var(--sf-green); text-decoration: underline; }
strong { color: var(--sf-ink); font-weight: 700; }

.sf-skip {
  position: absolute; top: .5rem; left: .5rem; z-index: 2000;
  background: #fff; color: var(--sf-ink); padding: .5rem .9rem; border-radius: .4rem;
}

.sf-icon { width: 1.5rem; height: 1.5rem; flex: 0 0 auto; }
.sf-icon--sm { width: 1.05rem; height: 1.05rem; }
.sf-icon--lg { width: 2.25rem; height: 2.25rem; }
.sf-icon--up { transform: rotate(-90deg); }

/* --------------------------------------------------------------- top bar -- */
.sf-topbar {
  background: #0a1410;
  color: #cddccf;
  font-size: .8125rem;
  padding: .45rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, .06);
}
.sf-topbar__tagline { letter-spacing: .04em; text-transform: uppercase; font-weight: 600; color: #9fc6a4; }
.sf-topbar__link, .sf-topbar__phone {
  color: #dbe9dc; display: inline-flex; align-items: center; gap: .35rem; font-weight: 600;
}
.sf-topbar__link:hover, .sf-topbar__phone:hover { color: #fff; text-decoration: none; }
.sf-topbar__phone { color: #fff; letter-spacing: .02em; }

/* ---------------------------------------------------------------- navbar -- */
.sf-navbar {
  background: var(--sf-green);
  padding: .35rem 0;
  box-shadow: 0 .25rem 1rem rgba(0, 0, 0, .16);
  transition: padding .2s ease, background .2s ease;
}
.sf-navbar.is-stuck { padding: .1rem 0; background: var(--sf-green-dark); }
.sf-brand__logo { height: 52px; width: auto; transition: height .2s ease; }
.sf-navbar.is-stuck .sf-brand__logo { height: 42px; }

.sf-navbar .nav-link {
  color: #eaf6ea;
  font-weight: 600;
  font-size: .9375rem;
  letter-spacing: .02em;
  padding: .55rem .9rem;
  border-radius: .375rem;
  position: relative;
}
.sf-navbar .nav-link:hover { color: #fff; background: rgba(255, 255, 255, .12); text-decoration: none; }
.sf-navbar .nav-link.active { color: #fff; background: rgba(0, 0, 0, .18); }
.sf-navbar .nav-link.active::after {
  content: ''; position: absolute; left: .9rem; right: .9rem; bottom: .22rem;
  height: 2px; background: #fff; border-radius: 2px;
}
.sf-toggler { border-color: rgba(255, 255, 255, .5); }
.sf-toggler:focus { box-shadow: 0 0 0 .2rem rgba(255, 255, 255, .3); }
.sf-navbar .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.9%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.sf-btn-catalog {
  background: #fff; color: var(--sf-green-dark);
  font-weight: 700; font-size: .875rem; letter-spacing: .02em;
  border-radius: 2rem; padding: .5rem 1.1rem;
  display: inline-flex; align-items: center; gap: .4rem;
  box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .18);
}
.sf-btn-catalog:hover { background: #0a1410; color: #fff; text-decoration: none; }

/* ------------------------------------------------------------------ hero -- */
.sf-hero {
  position: relative;
  background-size: cover;
  background-position: center;
  min-height: 300px;
  display: flex; align-items: center;
  color: #fff;
  overflow: hidden;
}
.sf-hero--home { min-height: 460px; }
.sf-hero--small { min-height: 240px; }
.sf-hero__scrim {
  position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(6, 20, 12, .90) 0%, rgba(6, 22, 40, .72) 45%, rgba(8, 26, 44, .48) 100%);
}
.sf-hero__inner { position: relative; padding: 3rem 0; max-width: 900px; }
.sf-hero__title {
  color: #fff; font-weight: 800; letter-spacing: -.01em;
  font-size: clamp(1.65rem, 3.6vw, 2.85rem); margin-bottom: .6rem;
  text-shadow: 0 .15rem 1rem rgba(0, 0, 0, .45);
}
.sf-hero__slogan {
  font-size: clamp(1rem, 1.6vw, 1.3rem);
  color: #d7f0d9; font-weight: 600; font-style: italic; margin-bottom: 0;
}
.sf-hero__slogan::before {
  content: ''; display: block; width: 64px; height: 4px;
  background: var(--sf-green-light); border-radius: 3px; margin-bottom: .9rem;
}
.sf-hero__extra { margin-top: 1.6rem; display: flex; flex-wrap: wrap; gap: .75rem; }
.sf-crumbs { font-size: .8125rem; color: #a9c7ad; margin-bottom: .85rem; letter-spacing: .04em; text-transform: uppercase; }
.sf-crumbs a { color: #cfe6d1; }
.sf-crumbs span { margin: 0 .25rem; }

/* --------------------------------------------------------------- buttons -- */
.sf-btn {
  display: inline-flex; align-items: center; gap: .5rem;
  font-weight: 700; font-size: .9375rem; letter-spacing: .01em;
  padding: .7rem 1.35rem; border-radius: 2rem; border: 2px solid transparent;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease, color .16s ease;
}
.sf-btn:hover { text-decoration: none; transform: translateY(-2px); }
.sf-btn--primary { background: var(--sf-green); color: #fff; box-shadow: 0 .5rem 1.25rem rgba(12, 133, 19, .35); }
.sf-btn--primary:hover { background: var(--sf-green-dark); color: #fff; }
.sf-btn--ghost { border-color: rgba(255, 255, 255, .65); color: #fff; }
.sf-btn--ghost:hover { background: #fff; color: var(--sf-green-dark); border-color: #fff; }
.sf-btn--dark { background: #0a1410; color: #fff; }
.sf-btn--dark:hover { background: #16281b; color: #fff; }
.sf-btn--outline { border-color: var(--sf-green); color: var(--sf-green-dark); }
.sf-btn--outline:hover { background: var(--sf-green); color: #fff; }
.sf-btn--wide { width: 100%; justify-content: center; }

/* -------------------------------------------------------------- sections -- */
.sf-section { padding: 4.5rem 0; }
.sf-section--tight { padding: 3rem 0; }
.sf-section--pale { background: var(--sf-green-pale); }
.sf-section--gray { background: #f6f8f6; }
.sf-section--dark { background: #0a1410; color: #c6d6c9; }
.sf-section--dark h2, .sf-section--dark h3 { color: #fff; }

.sf-eyebrow {
  display: inline-flex; align-items: center; gap: .5rem;
  text-transform: uppercase; letter-spacing: .14em; font-size: .75rem; font-weight: 800;
  color: var(--sf-green); margin-bottom: .6rem;
}
.sf-eyebrow::before { content: ''; width: 26px; height: 2px; background: var(--sf-green); }
.sf-title { font-size: clamp(1.5rem, 2.6vw, 2.1rem); margin-bottom: .75rem; }
.sf-lead { font-size: 1.0625rem; max-width: 62ch; }
.sf-head { max-width: 760px; margin-bottom: 2.5rem; }
.sf-head--center { margin-left: auto; margin-right: auto; text-align: center; }

/* ----------------------------------------------------------- cards / bits -- */
.sf-card {
  background: #fff; border: 1px solid var(--sf-line); border-radius: var(--sf-radius);
  box-shadow: var(--sf-shadow); height: 100%; overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  display: flex; flex-direction: column;
}
.sf-card:hover { transform: translateY(-4px); box-shadow: var(--sf-shadow-lg); border-color: #cfe0d0; }
.sf-card__media { position: relative; aspect-ratio: 16 / 10; background: #eef1ee; overflow: hidden; }
.sf-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.sf-card:hover .sf-card__media img { transform: scale(1.06); }
.sf-card__media--contain img { object-fit: contain; padding: 1rem; background: #fff; }
.sf-card__badge {
  position: absolute; top: .75rem; left: .75rem; z-index: 2;
  background: rgba(10, 20, 16, .85); color: #fff; border-radius: 2rem;
  padding: .3rem .75rem; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.sf-card__body { padding: 1.35rem 1.4rem 1.5rem; display: flex; flex-direction: column; flex: 1 1 auto; }
.sf-card__title {
  font-size: 1.0625rem; font-weight: 800; letter-spacing: .01em; text-transform: uppercase;
  color: var(--sf-ink); margin-bottom: .35rem;
}
.sf-card__sub { font-size: .8125rem; text-transform: uppercase; letter-spacing: .1em; color: var(--sf-green); font-weight: 700; margin-bottom: .6rem; }
.sf-card__text { font-size: .9375rem; margin-bottom: 1rem; }
.sf-card__icon {
  width: 3rem; height: 3rem; border-radius: .75rem; display: grid; place-items: center;
  background: var(--sf-green-pale); color: var(--sf-green-dark); margin-bottom: 1rem;
}
.sf-card__foot { margin-top: auto; padding-top: .35rem; }

/* check lists ------------------------------------------------------------- */
.sf-list { list-style: none; padding: 0; margin: 0; }
.sf-list li {
  position: relative; padding-left: 1.85rem; margin-bottom: .5rem;
  font-size: .9375rem; color: var(--sf-body);
}
.sf-list li::before {
  content: ''; position: absolute; left: 0; top: .42rem;
  width: 1.1rem; height: 1.1rem; border-radius: 50%;
  background: var(--sf-green-pale) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230c8513' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M4 12.5l5 5L20 6.5'/%3e%3c/svg%3e") center / .72rem no-repeat;
}
.sf-list--tight li { margin-bottom: .3rem; }
.sf-list--light li { color: #cbdccd; }
.sf-list--light li::before { background-color: rgba(255, 255, 255, .12); }

/* stat strip -------------------------------------------------------------- */
.sf-stats { background: linear-gradient(120deg, var(--sf-green-darker), var(--sf-green)); color: #fff; }
.sf-stat { text-align: center; padding: 1.25rem .5rem; }
.sf-stat__value { font-size: clamp(1.65rem, 3vw, 2.4rem); font-weight: 800; color: #fff; line-height: 1.1; }
.sf-stat__label { font-size: .8125rem; text-transform: uppercase; letter-spacing: .1em; color: #d3ecd5; font-weight: 600; }
.sf-stat + .sf-stat { border-left: 1px solid rgba(255, 255, 255, .18); }
@media (max-width: 767.98px) { .sf-stat + .sf-stat { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .18); } }

/* field-of-interest tiles ------------------------------------------------- */
.sf-field {
  background: #fff; border: 1px solid var(--sf-line); border-radius: var(--sf-radius);
  padding: 1.6rem 1rem; text-align: center; height: 100%;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.sf-field:hover { transform: translateY(-4px); box-shadow: var(--sf-shadow); background: var(--sf-green); border-color: var(--sf-green); }
.sf-field__icon { color: var(--sf-green); margin-bottom: .6rem; transition: color .2s ease; }
.sf-field:hover .sf-field__icon, .sf-field:hover .sf-field__name { color: #fff; }
.sf-field__name { font-weight: 700; font-size: .9375rem; color: var(--sf-ink); text-transform: uppercase; letter-spacing: .04em; margin: 0; }

/* split feature rows ------------------------------------------------------ */
.sf-split { align-items: center; }
.sf-split__media { border-radius: var(--sf-radius); overflow: hidden; box-shadow: var(--sf-shadow-lg); background: #eef1ee; }
.sf-split__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sf-split__media--tall { aspect-ratio: 4 / 3; }
.sf-frame {
  position: relative; border-radius: var(--sf-radius); overflow: hidden;
  box-shadow: var(--sf-shadow-lg);
}
.sf-frame::after {
  content: ''; position: absolute; inset: 0; border: 3px solid rgba(12, 133, 19, .35);
  border-radius: var(--sf-radius); pointer-events: none;
}
.sf-frame img { width: 100%; display: block; }

/* numbered service blocks ------------------------------------------------- */
.sf-block { border: 1px solid var(--sf-line); border-radius: var(--sf-radius); background: #fff; box-shadow: var(--sf-shadow); overflow: hidden; height: 100%; }
.sf-block__head {
  display: flex; align-items: center; gap: .85rem;
  background: linear-gradient(100deg, var(--sf-green-darker), var(--sf-green));
  color: #fff; padding: .95rem 1.25rem;
}
.sf-block__num {
  width: 2rem; height: 2rem; border-radius: 50%; background: rgba(255, 255, 255, .18);
  display: grid; place-items: center; font-weight: 800; font-size: .95rem; flex: 0 0 auto;
}
.sf-block__title { color: #fff; font-size: 1rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; margin: 0; }
.sf-block__sub { color: #cfeacf; font-size: .8125rem; margin: 0; }
.sf-block__body { padding: 1.35rem 1.4rem; }
.sf-block__media { aspect-ratio: 16 / 9; overflow: hidden; background: #eef1ee; }
.sf-block__media img { width: 100%; height: 100%; object-fit: cover; }
.sf-note {
  background: var(--sf-green-pale); border-left: 4px solid var(--sf-green);
  padding: .8rem 1rem; border-radius: .35rem; font-size: .9375rem; color: var(--sf-ink); font-weight: 600;
}

/* announcement ribbon ----------------------------------------------------- */
.sf-ribbon {
  background: linear-gradient(115deg, #0a1410 0%, #123a1c 55%, var(--sf-green-dark) 100%);
  color: #fff; border-radius: var(--sf-radius); overflow: hidden; box-shadow: var(--sf-shadow-lg);
}
.sf-ribbon h2 { color: #fff; font-size: clamp(1.35rem, 2.4vw, 1.95rem); letter-spacing: .01em; }
.sf-ribbon p { color: #cddccf; }
.sf-ribbon__media { background: #fff; display: grid; place-items: center; padding: 1.5rem; height: 100%; }
.sf-ribbon__media img { max-width: 100%; height: auto; }

/* contact / info cards ---------------------------------------------------- */
.sf-info {
  display: flex; gap: 1rem; background: #fff; border: 1px solid var(--sf-line);
  border-radius: var(--sf-radius); padding: 1.2rem 1.25rem; height: 100%; box-shadow: var(--sf-shadow);
}
.sf-info__icon { width: 2.75rem; height: 2.75rem; border-radius: .7rem; background: var(--sf-green-pale); color: var(--sf-green-dark); display: grid; place-items: center; flex: 0 0 auto; }
.sf-info__label { font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; color: var(--sf-green); margin-bottom: .15rem; }
.sf-info__value { font-weight: 700; color: var(--sf-ink); font-size: 1rem; margin: 0; line-height: 1.45; }
.sf-info__value a { color: var(--sf-ink); }
.sf-info__value a:hover { color: var(--sf-green); }

/* forms ------------------------------------------------------------------- */
.sf-form { background: #fff; border: 1px solid var(--sf-line); border-radius: var(--sf-radius); box-shadow: var(--sf-shadow-lg); padding: 1.75rem; }
.sf-form__title { font-size: 1.25rem; margin-bottom: .25rem; }
.sf-form .form-label { font-size: .8125rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--sf-ink); margin-bottom: .3rem; }
.sf-form .form-control, .sf-form .form-select {
  border-radius: .45rem; border: 1px solid #cfd9d0; padding: .65rem .85rem; font-size: .9375rem;
}
.sf-form .form-control:focus, .sf-form .form-select:focus {
  border-color: var(--sf-green-light); box-shadow: 0 0 0 .2rem rgba(12, 133, 19, .15);
}
.sf-form .form-check-input:checked { background-color: var(--sf-green); border-color: var(--sf-green); }
.sf-form .form-check-label { font-size: .9375rem; }
.sf-req { color: #b3261e; }
.sf-captcha { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.sf-captcha__img { border: 1px solid var(--sf-line); border-radius: .45rem; background: #f6f8f6; height: 56px; }
.sf-captcha__reload {
  border: 1px solid var(--sf-line); background: #fff; border-radius: .45rem; width: 2.4rem; height: 2.4rem;
  display: grid; place-items: center; color: var(--sf-green-dark); cursor: pointer;
}
.sf-captcha__reload:hover { background: var(--sf-green-pale); }
.sf-alert { border-radius: var(--sf-radius); border: 0; font-size: .9375rem; }
.sf-alert--ok { background: #e7f6e8; color: #14591b; border-left: 4px solid var(--sf-green); }
.sf-alert--err { background: #fdecea; color: #8c1d18; border-left: 4px solid #b3261e; }
.sf-topics { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .35rem 1rem; }

/* map -------------------------------------------------------------------- */
.sf-map { border-radius: var(--sf-radius); overflow: hidden; box-shadow: var(--sf-shadow); border: 1px solid var(--sf-line); }
.sf-map iframe { display: block; width: 100%; height: 340px; border: 0; }
.sf-map--static { position: relative; }
.sf-map--static img { display: block; width: 100%; height: 340px; object-fit: cover; }
.sf-map__actions {
  position: absolute; inset: auto 0 0 0; display: flex; flex-wrap: wrap; gap: .5rem;
  padding: .85rem 1rem; background: linear-gradient(transparent, rgba(6, 20, 12, .78));
}
.sf-map__actions .sf-btn { font-size: .8125rem; padding: .5rem 1rem; }
.sf-gallery__item { display: block; border-radius: var(--sf-radius); overflow: hidden; box-shadow: var(--sf-shadow); position: relative; }
.sf-gallery__item img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 16 / 10; transition: transform .4s ease; }
.sf-gallery__item:hover img { transform: scale(1.05); }

/* pdf / download rows ----------------------------------------------------- */
.sf-doc {
  display: flex; align-items: center; gap: .9rem; background: #fff; border: 1px solid var(--sf-line);
  border-left: 4px solid var(--sf-green); border-radius: .5rem; padding: .85rem 1.1rem;
  color: var(--sf-ink); font-weight: 700; font-size: .9375rem; box-shadow: var(--sf-shadow);
}
.sf-doc:hover { text-decoration: none; color: var(--sf-green-dark); background: var(--sf-green-pale); }
.sf-doc small { display: block; font-weight: 400; color: var(--sf-body); font-size: .8125rem; }

/* footer ----------------------------------------------------------------- */
.sf-footer { background: var(--sf-green); color: #dff0e0; padding-top: 3.25rem; margin-top: 0; }
.sf-footer__logo { height: 56px; width: auto; }
.sf-footer__text { font-size: .9rem; color: #e2f2e3; max-width: 42ch; }
.sf-footer__head {
  font-size: .8125rem; text-transform: uppercase; letter-spacing: .12em; color: #fff;
  font-weight: 800; margin-bottom: 1rem; padding-bottom: .5rem; border-bottom: 1px solid rgba(255, 255, 255, .2);
}
.sf-footer__list, .sf-footer__contact { list-style: none; padding: 0; margin: 0; }
.sf-footer__list li { margin-bottom: .4rem; }
.sf-footer__list a, .sf-footer__contact a { color: #e6f4e7; font-size: .9rem; }
.sf-footer__list a:hover, .sf-footer__contact a:hover { color: #fff; text-decoration: underline; }
.sf-footer__contact li { display: flex; gap: .6rem; margin-bottom: .8rem; font-size: .9rem; align-items: flex-start; }
.sf-footer__contact .sf-icon { margin-top: .2rem; color: #b6e0b8; }
.sf-footer__muted { color: #bbdcbd; font-size: .85rem; }
.sf-footer__pdf { display: inline-flex; align-items: center; gap: .45rem; margin-top: 1rem; color: #fff; font-weight: 700; font-size: .875rem; }
.sf-footer__pdf:hover { color: #d9f2da; }
.sf-footer__bar {
  margin-top: 2.75rem; padding: 1rem 0; background: rgba(0, 0, 0, .22);
  font-size: .8125rem; color: #d3ead4;
}

/* back to top ------------------------------------------------------------ */
.sf-totop {
  position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 1030;
  width: 2.85rem; height: 2.85rem; border-radius: 50%; border: 0;
  background: var(--sf-green); color: #fff; display: grid; place-items: center;
  box-shadow: 0 .5rem 1.25rem rgba(0, 0, 0, .28);
  opacity: 0; visibility: hidden; transform: translateY(.75rem);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease, background .2s ease;
}
.sf-totop.is-visible { opacity: 1; visibility: visible; transform: none; }
.sf-totop:hover { background: #0a1410; }

/* reveal on scroll ------------------------------------------------------- */
.sf-reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.sf-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .sf-reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* small screens --------------------------------------------------------- */
@media (max-width: 991.98px) {
  .sf-navbar .navbar-collapse { background: rgba(0, 0, 0, .15); border-radius: .5rem; margin-top: .5rem; padding: .5rem; }
  .sf-navbar .nav-link { padding: .6rem .75rem; }
  .sf-hero--home { min-height: 380px; }
}
@media (max-width: 575.98px) {
  .container { padding-left: 1.15rem; padding-right: 1.15rem; }
  .sf-section { padding: 3rem 0; }
  .sf-hero__title { font-size: 1.6rem; }
  .sf-hero__extra .sf-btn { width: 100%; justify-content: center; }
  .sf-topbar__tagline { display: none; }
  .sf-brand__logo { height: 42px; }
  .sf-form { padding: 1.25rem; }
}

/* print ---------------------------------------------------------------- */
@media print {
  .sf-topbar, .sf-navbar, .sf-totop, .sf-hero__scrim { display: none !important; }
  body { color: #000; }
  .sf-card, .sf-block { box-shadow: none; }
}
