/* ===== Brand System ===== */
:root{
  --brand-blue: #1663e3;   /* primary */
  --brand-green: #20b66f;  /* accent (CTA) */
  --brand-gray: #f3f6fb;   /* section tint */
  --ink-900: #0f172a;      /* headings */
  --ink-700: #334155;      /* body */
  --ring: rgba(32,182,111,.35);
}

html,body{ height:100%; }
body{
  font-family: 'Open Sans','Lato',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  color: var(--ink-700);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ===== Global links / buttons ===== */
.section-title{ font-weight: 800; letter-spacing: -.2px; color: var(--ink-900); }
.bg-tint{ background: var(--brand-gray); }
.text-accent{ color: var(--brand-green)!important; }

.btn-accent{
  --_g1: color-mix(in oklab, var(--brand-green) 90%, #fff 10%);
  --_g2: color-mix(in oklab, var(--brand-green) 80%, #0a0 20%);
  background: linear-gradient(135deg, var(--_g1), var(--_g2));
  border: none;
  color:#fff;
  box-shadow: 0 8px 20px rgba(32,182,111,.35);
  transition: transform .15s ease, box-shadow .2s ease, filter .2s ease;
}
.btn-accent:hover{ transform: translateY(-2px); filter: brightness(.97); box-shadow: 0 10px 28px rgba(32,182,111,.45); color:#fff; }
.btn-accent:active{ transform: translateY(0); box-shadow: 0 6px 16px rgba(32,182,111,.35); }

/* Subtle link underline */
.link-primary{ color: var(--brand-blue); text-decoration: none; position: relative; }
.link-primary::after{ content:""; position:absolute; left:0; bottom:-2px; width:0; height:2px; background: var(--brand-blue); transition: width .2s ease; }
.link-primary:hover::after{ width:100%; }

/* ===== Navbar (shrink on scroll) ===== */
.navbar{ transition: background-color .2s ease, box-shadow .2s ease, padding .2s ease; }
.navbar.sticky-top{ background: rgba(255,255,255,.98); }
.navbar.scrolled{ box-shadow: 0 4px 18px rgba(0,0,0,.08); }
.navbar .nav-link{ font-weight: 600; }
.navbar .nav-link.active{ color: var(--brand-blue)!important; }

/* ===== Hero ===== */
.hero{ min-height: 70vh; display:grid; align-items:center; }
.hero-media{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(.95) contrast(1.02); }
.hero-overlay{ position:absolute; inset:0; background: linear-gradient(90deg, rgba(0,0,0,.65), rgba(0,0,0,.25)); }

/* Optional glass card if you wrap hero text later */
.hero .glass{ background: rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); backdrop-filter: blur(8px); border-radius: 1rem; }

/* ===== Cards & features ===== */
.card{ border-radius: 1rem; }
.service-card{ overflow:hidden; border:1px solid #e8eef7; transition: transform .18s ease, box-shadow .2s ease; }
.service-card:hover{ transform: translateY(-6px); box-shadow: 0 14px 34px rgba(22,99,227,.15); }
.service-card .card-body{ padding: 1.2rem 1.25rem .5rem; }
.service-icon{ width:3rem; height:3rem; display:grid; place-items:center; border-radius: .85rem; background: rgba(22,99,227,.08); }
.service-icon i{ font-size:1.4rem; color: var(--brand-blue); }

.feature-item{ transition: transform .18s ease; }
.feature-item:hover{ transform: translateY(-4px); }
.feature-item .feature-icon{ width:2.75rem; height:2.75rem; display:grid; place-items:center; border-radius:.75rem; background: rgba(22,99,227,.08); }
.feature-item .feature-icon i{ font-size:1.25rem; color: var(--brand-blue); }

/* ===== Testimonials ===== */
#testiCarousel .card{ border-radius: 1.25rem; }
#testiCarousel .card p.lead{ position:relative; }
#testiCarousel .card p.lead::before{ content:"C"; position:absolute; left:-.4rem; top:-.6rem; font-size:3rem; color: rgba(22,99,227,.25); }

/* ===== Trust badges ===== */
.badge-item img{ opacity:.75; filter: grayscale(100%); transition: opacity .2s ease, filter .2s ease, transform .2s ease; }
.badge-item img:hover{ opacity:1; filter:none; transform: translateY(-2px); }

/* ===== Lists rendered from line breaks ===== */
.content-list{ white-space: pre-line; background: #fff; border: 1px dashed #e3e7ef; padding: 1rem; border-radius: .9rem; }

/* ===== Forms ===== */
.bs-form input:not([type=checkbox]):not([type=radio]),
.bs-form select,
.bs-form textarea{ width:100%; padding:.7rem .9rem; border:1px solid #e2e8f0; border-radius:.7rem; outline:0; transition: box-shadow .15s ease, border-color .15s ease; }
.bs-form input:focus, .bs-form select:focus, .bs-form textarea:focus{ border-color: var(--brand-green); box-shadow: 0 0 0 .25rem var(--ring); }
.bs-form .form-label{ font-weight: 600; color: var(--ink-900); }
.bs-form .form-check-input{ border:1px solid #cbd5e1; }

/* ===== Utilities ===== */
.shadow-soft{ box-shadow: 0 10px 30px rgba(0,0,0,.08); }
.rounded-4{ border-radius: 1rem!important; }

/* ===== Reveal on scroll ===== */
.reveal{ opacity:0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.reveal.visible{ opacity:1; transform:none; }

/* ===== Back to top button ===== */
#backToTop{ position:fixed; right:1rem; bottom:1rem; z-index:1030; opacity:0; transform: translateY(8px); pointer-events:none; transition: opacity .2s ease, transform .2s ease; }
#backToTop.show{ opacity:1; transform:none; pointer-events:auto; }

/* ===== Responsive tweaks ===== */
@media (max-width: 991.98px){
  .hero{ min-height: 56vh; }
}