:root{
  --cs-font-base          : 18px;
  --cs-radius             : 18px;
  --cs-shadow             : 0 18px 45px rgba(11, 59, 91, .18);
  --cs-ink                : #0b1f2a;
  --cs-muted              : rgba(11, 31, 42, .70);
  --cs-primary            : #0b3b5b;
  --cs-accent             : #0aa6b8;
  --cs-cream              : #f6f3ee;
  --cs-sky                : #e9f7fb;
  --cs-border             : rgba(11, 31, 42, .12);
  --cs-focus              : rgba(10, 166, 184, .35);
}

@media (max-width: 575.98px){
  :root{
    --cs-font-base        : 17px;
  }
}

html{
  font-size              : var(--cs-font-base);
  scroll-behavior        : smooth;
}

@media (prefers-reduced-motion: reduce){
  html{
    scroll-behavior      : auto;
  }
}

body.cs-body{
  font-family            : "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  color                  : var(--cs-ink);
  background             : #ffffff;
}

.cs-skip-link{
  position               : absolute;
  left                   : .75rem;
  top                    : .75rem;
  z-index                : 2000;
  padding                : .5rem .75rem;
  border-radius          : 999px;
  background             : #fff;
  border                 : 1px solid var(--cs-border);
  box-shadow             : 0 10px 25px rgba(0, 0, 0, .08);
}

.cs-header{
  backdrop-filter        : saturate(140%) blur(8px);
  background             : rgba(255, 255, 255, .86);
}

.cs-navbar .nav-link{
  font-weight            : 600;
  color                  : rgba(11, 59, 91, .92);
}

.cs-navbar .nav-link:hover,
.cs-navbar .nav-link:focus{
  color                  : var(--cs-primary);
}

.cs-badge{
  font-size              : .78rem;
  padding                : .28rem .55rem;
  border-radius          : 999px;
  background             : rgba(10, 166, 184, .12);
  border                 : 1px solid rgba(10, 166, 184, .22);
  color                  : var(--cs-primary);
}

.cs-btn-pill{
  border-radius          : 999px !important;
}

.btn:focus,
.btn:focus-visible,
.form-control:focus,
.form-select:focus,
.form-check-input:focus{
  box-shadow             : 0 0 0 .25rem var(--cs-focus) !important;
}

.cs-mark{
  width                  : 34px;
  height                 : 34px;
  border-radius          : 12px;
  background             : linear-gradient(135deg, var(--cs-primary), var(--cs-accent));
  position               : relative;
  display                : inline-block;
  flex                   : 0 0 auto;
  overflow               : hidden;
}
.cs-mark.cs-mark-sm{
  width                  : 28px;
  height                 : 28px;
  border-radius          : 10px;
}

.cs-logo{
  display                : block;
  height                 : 34px;
  width                  : auto;
  object-fit             : contain;
}
.cs-logo.cs-logo-sm{
  height                 : 64px;
}
.cs-logo.cs-logo-md{
  height                 : 42px;
}
.cs-logo.cs-logo-lg{
  height                 : 54px;
}

.navbar-brand .cs-logo{
  margin-right           : .15rem;
}

@media (max-width: 575.98px){
  .cs-logo.cs-logo-sm{
    height               : 56px;
  }
}
.cs-mark-a,
.cs-mark-b{
  position               : absolute;
  inset                  : 0;
}
.cs-mark-a{
  background             : radial-gradient(circle at 30% 30%, rgba(255,255,255,.95), rgba(255,255,255,0) 60%);
  opacity                : .85;
}
.cs-mark-b{
  background             : radial-gradient(circle at 70% 70%, rgba(255,255,255,.75), rgba(255,255,255,0) 58%);
  opacity                : .55;
}

.cs-hero{
  position               : relative;
  overflow               : hidden;
  background             :
    radial-gradient(900px 420px at 10% 5%, rgba(10, 166, 184, .22), rgba(10, 166, 184, 0) 65%),
    radial-gradient(900px 520px at 100% 20%, rgba(11, 59, 91, .18), rgba(11, 59, 91, 0) 60%),
    linear-gradient(180deg, #ffffff, #ffffff 55%, var(--cs-cream));
}

.cs-hero-illus-wrap{
  display                : grid;
  place-items            : center;
  margin-bottom          : 1rem;
  border-radius          : calc(var(--cs-radius) + 10px);
  overflow               : hidden;
  aspect-ratio           : 16 / 11;
  border                 : 1px solid rgba(11, 31, 42, .10);
  background             : rgba(255, 255, 255, .65);
  box-shadow             : 0 18px 45px rgba(11, 59, 91, .12);
}

.cs-hero-carousel,
.cs-hero-carousel .carousel-inner,
.cs-hero-carousel .carousel-item{
  width                  : 100%;
  height                 : 100%;
}

.cs-hero-carousel .carousel-control-prev,
.cs-hero-carousel .carousel-control-next{
  width                  : 15%;
  opacity                : .85;
}
.cs-hero-carousel .carousel-control-prev:hover,
.cs-hero-carousel .carousel-control-next:hover{
  opacity                : 1;
}

.cs-hero-illus{
  width                  : 100%;
  height                 : 100%;
  object-fit             : cover;
  object-position        : 50% 35%;
}

.cs-photo-card{
  border-radius          : calc(var(--cs-radius) + 6px);
  border                 : 1px solid rgba(11, 31, 42, .12);
  background             : #fff;
  overflow               : hidden;
  box-shadow             : 0 12px 30px rgba(11, 59, 91, .06);
}

.cs-photo-card-img{
  background             : linear-gradient(135deg, rgba(11,59,91,.06), rgba(10,166,184,.08));
  aspect-ratio           : 16 / 10;
  overflow               : hidden;
}

.cs-photo-card-img img{
  display                : block;
  width                  : 100%;
  height                 : 100%;
  object-fit             : cover;
  object-position        : 50% 50%;
}

.cs-photo-card-body{
  padding                : 1rem 1.05rem 1.1rem 1.05rem;
}

.cs-photo-card-title{
  font-weight            : 800;
  letter-spacing         : -.01em;
  margin-bottom          : .15rem;
}

.cs-hero .cs-kicker{
  display                : inline-flex;
  align-items            : center;
  font-weight            : 700;
  letter-spacing         : .02em;
  padding                : .35rem .65rem;
  border-radius          : 999px;
  background             : rgba(11, 59, 91, .08);
  border                 : 1px solid rgba(11, 59, 91, .12);
  color                  : var(--cs-primary);
}

.cs-display{
  font-family            : "Merriweather", serif;
  font-weight            : 700;
  letter-spacing         : -.02em;
  line-height            : 1.06;
  font-size              : clamp(2.2rem, 4.6vw, 3.4rem);
  margin                 : 0;
}

.cs-gradient{
  background             : linear-gradient(135deg, var(--cs-primary), var(--cs-accent));
  -webkit-background-clip: text;
  background-clip        : text;
  color                  : transparent;
}

.cs-lead{
  color                  : var(--cs-muted);
  max-width              : 48ch;
}

.cs-hero-contact{
  display                : grid;
  gap                    : .35rem;
  color                  : rgba(255, 255, 255, .86);
  font-size              : .98rem;
}
.cs-hero-contact-item{
  display                : flex;
  align-items            : center;
  flex-wrap              : wrap;
}

.cs-mini{
  border-radius          : var(--cs-radius);
  border                 : 1px solid var(--cs-border);
  background             : rgba(255, 255, 255, .72);
  padding                : .85rem .95rem;
  height                 : 100%;
}
.cs-mini-icon{
  width                  : 42px;
  height                 : 42px;
  border-radius          : 14px;
  display                : inline-flex;
  align-items            : center;
  justify-content        : center;
  background             : rgba(10, 166, 184, .12);
  color                  : var(--cs-primary);
  margin-bottom          : .5rem;
  font-size              : 1.1rem;
}
.cs-mini-title{
  font-weight            : 700;
}
.cs-mini-sub{
  color                  : var(--cs-muted);
  font-size              : .95rem;
  line-height            : 1.25;
}

.cs-hero-card{
  border-radius          : calc(var(--cs-radius) + 6px);
  background             : rgba(255, 255, 255, .86);
  border                 : 1px solid rgba(11, 31, 42, .10);
  overflow               : hidden;
}
.cs-hero-card-top{
  padding                : 1.2rem 1.2rem 1rem 1.2rem;
}
.cs-hero-card-badge{
  display                : inline-flex;
  align-items            : center;
  font-weight            : 700;
  font-size              : .9rem;
  padding                : .35rem .65rem;
  border-radius          : 999px;
  background             : rgba(10, 166, 184, .10);
  border                 : 1px solid rgba(10, 166, 184, .18);
  color                  : var(--cs-primary);
  margin-bottom          : .75rem;
}

.cs-hero-stats{
  display                : grid;
  grid-template-columns  : repeat(3, 1fr);
  gap                    : .5rem;
  padding                : .9rem 1.2rem;
  background             : linear-gradient(135deg, rgba(11,59,91,.06), rgba(10,166,184,.08));
  border-top             : 1px solid rgba(11, 31, 42, .08);
  border-bottom          : 1px solid rgba(11, 31, 42, .08);
}
.cs-stat{
  text-align             : center;
}
.cs-stat-num{
  font-family            : "Merriweather", serif;
  font-weight            : 700;
  font-size              : 1.6rem;
  color                  : var(--cs-primary);
  line-height            : 1.05;
}
.cs-stat-label{
  font-size              : .88rem;
  color                  : var(--cs-muted);
}

.cs-hero-card-bottom{
  padding                : 1.1rem 1.2rem 1.2rem 1.2rem;
}

.cs-checklist{
  display                : grid;
  gap                    : .55rem;
}
.cs-check{
  display                : flex;
  gap                    : .55rem;
  align-items            : flex-start;
  color                  : rgba(11, 31, 42, .84);
}
.cs-check i{
  color                  : var(--cs-accent);
  transform              : translateY(.1rem);
}

.cs-hero-float{
  position               : absolute;
  right                  : 2.1rem;
  bottom                 : -1.15rem;
  display                : flex;
  gap                    : .6rem;
  flex-wrap              : wrap;
  max-width              : 520px;
  justify-content        : flex-end;
}
.cs-float{
  display                : inline-flex;
  align-items            : center;
  padding                : .55rem .75rem;
  border-radius          : 999px;
  background             : rgba(255,255,255,.84);
  border                 : 1px solid rgba(11,31,42,.12);
  box-shadow             : 0 12px 30px rgba(11, 59, 91, .12);
  font-weight            : 600;
  color                  : rgba(11, 31, 42, .86);
}

.cs-hero-wave{
  position               : absolute;
  inset                  : auto 0 0 0;
  height                 : 78px;
  background             : linear-gradient(180deg, rgba(246,243,238,0), rgba(246,243,238,1));
}

.cs-h2{
  font-family            : "Merriweather", serif;
  font-weight            : 700;
  letter-spacing         : -.015em;
}

.cs-pill{
  display                : inline-flex;
  align-items            : center;
  padding                : .45rem .75rem;
  border-radius          : 999px;
  background             : rgba(10, 166, 184, .10);
  border                 : 1px solid rgba(10, 166, 184, .18);
  color                  : rgba(11, 59, 91, .92);
  font-weight            : 600;
  font-size              : .95rem;
}

.cs-pill.cs-pill-hero{
  background             : rgba(255, 255, 255, .72);
  border                 : 1px solid rgba(255, 255, 255, .75);
  box-shadow             : 0 12px 30px rgba(11, 59, 91, .10);
}

.cs-card{
  border-radius          : var(--cs-radius);
  border                 : 1px solid var(--cs-border);
  background             : #fff;
  padding                : 1.15rem 1.15rem;
  box-shadow             : 0 12px 30px rgba(11, 59, 91, .06);
}
.cs-card-icon{
  width                  : 48px;
  height                 : 48px;
  border-radius          : 16px;
  display                : inline-flex;
  align-items            : center;
  justify-content        : center;
  background             : rgba(11, 59, 91, .08);
  color                  : var(--cs-primary);
  margin-bottom          : .75rem;
  font-size              : 1.25rem;
}

.cs-band{
  background             : radial-gradient(900px 380px at 15% 20%, rgba(10,166,184,.20), rgba(10,166,184,0) 65%),
                            linear-gradient(180deg, #ffffff, var(--cs-sky));
  border-top             : 1px solid rgba(11, 31, 42, .06);
  border-bottom          : 1px solid rgba(11, 31, 42, .06);
}

.cs-benefit{
  display                : flex;
  gap                    : .75rem;
  align-items            : flex-start;
  padding                : .8rem .9rem;
  border-radius          : var(--cs-radius);
  border                 : 1px solid rgba(11, 31, 42, .10);
  background             : rgba(255, 255, 255, .72);
  margin-top             : .75rem;
}
.cs-benefit-icon{
  width                  : 42px;
  height                 : 42px;
  border-radius          : 14px;
  display                : inline-flex;
  align-items            : center;
  justify-content        : center;
  background             : rgba(10, 166, 184, .12);
  color                  : var(--cs-primary);
  font-size              : 1.1rem;
  flex                   : 0 0 auto;
}

.cs-panel{
  border-radius          : calc(var(--cs-radius) + 6px);
  border                 : 1px solid rgba(11, 31, 42, .10);
  background             : rgba(255, 255, 255, .92);
  overflow               : hidden;
}
.cs-panel-side{
  background             : linear-gradient(135deg, rgba(11,59,91,.92), rgba(10,166,184,.88));
  color                  : #fff;
}
.cs-panel-side .text-secondary{
  color                  : rgba(255, 255, 255, .78) !important;
}
.cs-panel-side a{
  color                  : rgba(255, 255, 255, .92);
}
.cs-panel-side a:hover,
.cs-panel-side a:focus{
  color                  : #ffffff;
}
.cs-panel-side-inner{
  padding                : 1.2rem 1.2rem;
}
.cs-panel-tag{
  display                : inline-block;
  font-weight            : 700;
  font-size              : .82rem;
  letter-spacing         : .03em;
  text-transform         : uppercase;
  padding                : .28rem .55rem;
  border-radius          : 999px;
  background             : rgba(255,255,255,.18);
  border                 : 1px solid rgba(255,255,255,.22);
  margin-bottom          : .75rem;
}
.cs-list{
  display                : grid;
  gap                    : .55rem;
}
.cs-list-item{
  display                : flex;
  gap                    : .55rem;
  align-items            : flex-start;
  color                  : rgba(11, 31, 42, .82);
}
.cs-list-item i{
  color                  : var(--cs-accent);
  transform              : translateY(.12rem);
}

.cs-step{
  border-radius          : var(--cs-radius);
  border                 : 1px solid var(--cs-border);
  background             : #fff;
  padding                : 1.1rem 1.1rem;
  box-shadow             : 0 12px 30px rgba(11, 59, 91, .06);
}
.cs-step-num{
  font-family            : "Merriweather", serif;
  font-weight            : 700;
  color                  : rgba(10, 166, 184, .95);
  letter-spacing         : .03em;
  font-size              : 1.25rem;
}
.cs-step-title{
  font-weight            : 700;
  margin-top             : .3rem;
  margin-bottom          : .25rem;
}

.cs-cta{
  background             : linear-gradient(135deg, var(--cs-primary), var(--cs-accent));
}

.cs-accordion .accordion-item{
  border                 : 1px solid rgba(11, 31, 42, .12);
  border-radius          : var(--cs-radius);
  overflow               : hidden;
  margin-bottom          : .85rem;
  box-shadow             : 0 12px 30px rgba(11, 59, 91, .06);
}
.cs-accordion .accordion-button{
  font-weight            : 700;
  padding                : 1rem 1rem;
}
.cs-accordion .accordion-button:not(.collapsed){
  background             : rgba(10, 166, 184, .10);
  color                  : rgba(11, 59, 91, .98);
}
.cs-accordion .accordion-body{
  color                  : rgba(11, 31, 42, .84);
}

.cs-footer{
  background             : #fff;
}
.cs-footer-link{
  text-decoration        : none;
  color                  : rgba(11, 59, 91, .92);
  font-weight            : 600;
}
.cs-footer-link:hover,
.cs-footer-link:focus{
  text-decoration        : underline;
}

.cs-modal{
  border-radius          : calc(var(--cs-radius) + 8px);
  border                 : 1px solid rgba(11, 31, 42, .10);
}
.cs-sidebox{
  border-radius          : var(--cs-radius);
  border                 : 1px solid rgba(11, 31, 42, .12);
  background             : linear-gradient(180deg, rgba(10,166,184,.08), rgba(11,59,91,.04));
  padding                : 1rem 1rem;
}

.cs-backtop{
  position               : fixed;
  right                  : 1rem;
  bottom                 : 1rem;
  z-index                : 1050;
  display                : none;
  box-shadow             : var(--cs-shadow);
}
