/* GiSArt — style.css (optimized for readability, accessibility, performance) */

:root{
  --gis-bg:#0b1220;
  --gis-bg2:#0f172a;
  --gis-ink:#0b1220;
  --gis-slate:#334155;
  --gis-muted:#64748b;
  --gis-line:rgba(15,23,42,.12);
  --gis-card:#ffffff;
  --gis-soft:#f1f5f9;
  --gis-primary:#1d4ed8;
  --gis-primary2:#2563eb;
  --gis-radius:18px;
}

*,
*::before,
*::after{box-sizing:border-box}

html{scroll-behavior:smooth}
I0px;
}

/* Accessibility helpers */
.skip-link{
  position:absolute;
  left:12px;
  top:12px;
  z-index:1100;
  padding:.6rem .8rem;
  border-radius:10px;
  background:#fff;
  color:var(--gis-ink);
  box-shadow:0 10px 28px rgba(2,6,23,.18);
  transform:translateY(-140%);
  transition:transform .18s ease;
}
.skip-link:focus{transform:translateY(0)}
:focus-visible{
  outline:3px solid rgba(37,99,235,.55);
  outline-offset:2px;
  border-radius:10px;
}

/* Text selection styling
   - Keeps brand consistency
   - Avoids harsh default system-blue blocks on dark cards
*/
::selection{background:rgba(37,99,235,.28); color:inherit}
::-moz-selection{background:rgba(37,99,235,.28); color:inherit}
.bg-cases-dark ::selection,
.bg-contact-dark ::selection{background:rgba(37,99,235,.36); color:#fff}
.bg-cases-dark ::-moz-selection,
.bg-contact-dark ::-moz-selection{background:rgba(37,99,235,.36); color:#fff}

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

/* Navbar */
.navbar{
  background:rgba(255,255,255,.78);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid rgba(2,6,23,.08);
}
.navbar .nav-link{
  font-weight:600;
  color:rgba(2,6,23,.78);
}
.navbar .nav-link:hover{color:rgba(2,6,23,.96)}


/* Layout */
.section{padding:72px 0}
.section-title{letter-spacing:-.02em}
.kicker{
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:rgba(2,6,23,.65);
}
.divider{
  height:1px;
  background:var(--gis-line);
  width:100%;
}
.muted{color:var(--gis-slate)}
.small-muted{font-size:.92rem;color:var(--gis-muted)}
.pill{
  display:inline-flex;align-items:center;
  padding:.35rem .75rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:.9rem;
}

/* Cards */
.card{
  border:1px solid rgba(2,6,23,.08);
  border-radius:var(--gis-radius);
  box-shadow:0 16px 40px rgba(2,6,23,.06);
}
.shadow-soft{box-shadow:0 18px 56px rgba(2,6,23,.10)}
.icon{
  width:44px;height:44px;
  display:grid;place-items:center;
  border-radius:14px;
  background:rgba(29,78,216,.12);
  color:var(--gis-primary);
  font-weight:800;
  font-size:20px;
  line-height:1;
}

/* Hero */
.hero{
  position:relative;
  overflow:hidden;
  padding:92px 0 64px;
  background:radial-gradient(1200px 500px at 20% 10%, rgba(29,78,216,.12), transparent 60%),
             radial-gradient(900px 420px at 80% 30%, rgba(37,99,235,.10), transparent 60%),
             linear-gradient(180deg, #ffffff, #f8fafc);
  color:var(--gis-ink);
}
.hero .lead{color:var(--gis-slate)}
.hero--main{
  background:url("../img/hero-bg.svg") center/cover no-repeat;
  color:#fff;
}
.hero--main .lead{color:rgba(255,255,255,.86)}
.hero--main .badge-soft{
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
}
.hero--main .btn-outline-light{border-color:rgba(255,255,255,.35)}
.hero--main .btn-outline-light:hover{background:rgba(255,255,255,.12)}
.hero--section{padding:120px 0 64px}
.badge-soft{
  background:rgba(2,6,23,.04);
  border:1px solid rgba(2,6,23,.06);
  color:rgba(2,6,23,.78);
}

/* Background variants */
.bg-services{
  background:url("../img/services-bg.svg") center/cover no-repeat;
}
.bg-method{
  background:radial-gradient(800px 350px at 10% 20%, rgba(29,78,216,.08), transparent 60%),
             linear-gradient(180deg, #ffffff, #f8fafc);
}
.bg-cases-dark{
  background:radial-gradient(900px 360px at 20% 10%, rgba(37,99,235,.20), transparent 60%),
             linear-gradient(180deg, #0b1220, #0f172a);
  color:#fff;
}
.bg-cases-dark .card{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.10)}
.bg-cases-dark .small-muted{color:rgba(226,232,240,.82)}
.bg-cases-dark .divider{background:rgba(255,255,255,.14)}
.bg-offer{
  background:radial-gradient(1200px 500px at 20% 10%, rgba(29,78,216,.10), transparent 60%),
             linear-gradient(180deg, #ffffff, #f1f5f9);
}
.bg-contact-dark{
  background:url("../img/contact-bg.svg") center/cover no-repeat;
  color:#fff;
}
.bg-contact-dark .section-title{color:#fff}
.bg-contact-dark .muted{color:rgba(226,232,240,.86)}
.bg-contact-dark .card{background:#fff;color:var(--gis-ink)}
.bg-contact-dark .card .small-muted{color:var(--gis-muted)}
.bg-contact-dark .card .divider{background:var(--gis-line)}
.bg-contact-dark .card .form-check-label{color:var(--gis-slate)}

/* Lists */
.feature-list{list-style:none;padding:0;margin:0}
.feature-list li{
  padding-left:28px;
  position:relative;
  margin:.35rem 0;
  color:inherit;
}
.feature-list li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  color:var(--gis-primary2);
  font-weight:800;
}
.bg-cases-dark .feature-list li::before{color:rgba(255,255,255,.70)}

/* Services */
.services-wrap .card{background:rgba(255,255,255,.86)}
.svc-icon{
  width:42px;height:42px;
  display:grid;place-items:center;
  border-radius:14px;
  background:rgba(29,78,216,.12);
  color:var(--gis-primary);
  font-weight:900;
  flex:0 0 auto;
  line-height:1;
}
.svc-meta{font-size:.92rem;color:var(--gis-muted)}

.mini-kpi{display:flex;gap:.5rem;flex-wrap:wrap}
.mini-chip{
  display:inline-flex;align-items:center;
  padding:.25rem .55rem;
  border-radius:999px;
  border:1px solid rgba(2,6,23,.10);
  background:rgba(255,255,255,.65);
  font-size:.82rem;
  color:rgba(2,6,23,.78);
}

/* CTA bands */
.cta-band{
  border-radius:var(--gis-radius);
  background:rgba(255,255,255,.80);
  border:1px solid rgba(2,6,23,.08);
  box-shadow:0 20px 60px rgba(2,6,23,.08);
}
.bg-cases-dark .cta-band{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.14);
}

/* Pricing */
.pricing .price{
  font-weight:900;
  color:var(--gis-primary);
  font-size:1.4rem;
}

/* Footer */
.footer{
  background:#0b1220;
  color:#fff;
  padding:28px 0;
}
.footer a{color:rgba(255,255,255,.88)}
.footer a:hover{color:#fff}
.footer .mini{font-size:.9rem;color:rgba(226,232,240,.80)}

/* Cookie banner */
.cookie-card{
  position:fixed;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  width:min(980px, calc(100% - 24px));
  border-radius:18px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(2,6,23,.10);
  box-shadow:0 18px 70px rgba(2,6,23,.20);
  z-index:1090;
}

/* Sticky CTA (mobile) */
.sticky-cta{
  display:none;
  position:fixed;
  left:0;right:0;
  bottom:0;
  z-index:1080;
  padding:10px 12px;
  background:rgba(255,255,255,.86);
  backdrop-filter:saturate(160%) blur(10px);
  border-top:1px solid rgba(2,6,23,.10);
  transform:translateY(100%);
  transition:transform .25s ease, bottom .25s ease;
}
.sticky-cta.is-visible{
  transform:translateY(0);
}
.sticky-cta.is-raised{
  bottom:120px; /* if cookie banner overlaps */
}
.sticky-cta .inner{
  max-width:980px;margin:0 auto;
  border-radius:16px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(2,6,23,.08);
  box-shadow:0 12px 40px rgba(2,6,23,.10);
}
@media (max-width: 991.98px){
  .sticky-cta{display:block}
  body{padding-bottom:110px}
}
/* CTA bar (desktop) */
.cta-bar{
  position:fixed;
  right:16px;
  bottom:16px;
  width:min(420px, calc(100% - 32px));
  z-index:1075;
  opacity:0;
  transform:translateY(10px);
  transition:opacity .25s ease, transform .25s ease, bottom .25s ease;
}
.cta-bar.is-visible{
  opacity:1;
  transform:translateY(0);
}
.cta-bar.is-raised{
  bottom:130px; /* raised when cookie banner visible */
}
.cta-inner{
  border-radius:18px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(2,6,23,.10);
  box-shadow:0 18px 60px rgba(2,6,23,.18);
}
@media (max-width: 991.98px){
  .cta-bar{display:none}
}
/* Forms */
.form-control, .form-select{
  border-radius:14px;
  border:1px solid rgba(2,6,23,.14);
}
.form-control:focus, .form-select:focus{
  border-color:rgba(37,99,235,.55);
  box-shadow:0 0 0 .25rem rgba(37,99,235,.12);
}
.form-text{margin-top:.35rem}

/* Links */
a{color:var(--gis-primary)}
a:hover{color:var(--gis-primary2)}


/* ---- Use cases (dark) typography tuning ---- */
.bg-cases-dark .card .h5,
.bg-cases-dark .card h3{
  color: rgba(248,250,252,.98);
}
.bg-cases-dark .feature-list li{
  color: rgba(226,232,240,.92);
}
.bg-cases-dark .icon{
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(248,250,252,.92);
}
/* Cases typography polish (dark cards) */
.bg-cases-dark .card h3,
.bg-cases-dark .card .h5{color:rgba(248,250,252,.98)}
.bg-cases-dark .card .small-muted{color:rgba(226,232,240,.86)}
.bg-cases-dark .feature-list li{color:rgba(226,232,240,.92)}
.bg-cases-dark .icon{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:rgba(248,250,252,.92)}


/* ---------- Navbar: logo visibility + executive layout ---------- */
.navbar--main{
  background: rgba(255,255,255,.96) !important;
  border-bottom: 1px solid rgba(15, 23, 42, .08);
  backdrop-filter: blur(10px);
}
.navbar--main .navbar-brand{padding-top: .15rem; padding-bottom: .15rem;}

@media (min-width: 992px){
  
  .navbar--main{padding-top: .65rem; padding-bottom: .65rem;}
}
.navbar--main .nav-link{
  color: rgba(15,23,42,.9);
}
.navbar--main .nav-link:hover,
.navbar--main .nav-link:focus{
  color: rgba(15,23,42,1);
}
.navbar--main .navbar-toggler{border-color: rgba(15,23,42,.18);}

/* ---------- Footer: company details + inverted logo ---------- */


.footer a{color: rgba(226,232,240,.92); text-decoration: none;}
.footer a:hover, .footer a:focus{color: rgba(248,250,252,1); text-decoration: underline;}

/* ---------- Brand & Footer logos ---------- */
.brand-logo{height:85px;width:auto;display:block;}
.footer-logo{height:85px;width:auto;display:block;}

/* Navbar spacing to accommodate 85px logo */
.navbar--main{padding-top:.35rem;padding-bottom:.35rem;}
@media (min-width: 992px){
  .navbar--main{padding-top:.50rem;padding-bottom:.50rem;}
}
