/* Dotsail visual refresh */
:root {
  --ds-ink: #111827;
  --ds-muted: #5b6472;
  --ds-soft: #f6f8fb;
  --ds-navy: #12213a;
  --ds-teal: #12b8a6;
  --ds-gold: #e0a11b;
  --ds-shadow: 0 22px 55px rgba(18, 33, 58, .1);
}

body {
  background: var(--ds-soft);
  color: var(--ds-ink);
  text-rendering: optimizeLegibility;
}

header {
  background: rgba(255, 255, 255, .88) !important;
  border-bottom: 1px solid rgba(18, 33, 58, .1);
  box-shadow: 0 14px 34px rgba(18, 33, 58, .06) !important;
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

header span.text-2xl {
  color: var(--ds-navy) !important;
  font-weight: 800;
  letter-spacing: 0;
}

header span.text-2xl::before {
  content: "";
  display: inline-block;
  width: .72em;
  height: .72em;
  margin-right: .42rem;
  border-radius: 3px;
  background: linear-gradient(135deg, var(--ds-teal) 0 50%, var(--ds-gold) 50% 100%);
  box-shadow: 0 0 0 1px rgba(18, 33, 58, .16);
  vertical-align: -.05em;
}

header nav a,
header nav button {
  color: #263447 !important;
  font-weight: 600;
  letter-spacing: 0;
}

header nav a:hover,
header nav button:hover {
  color: #0f766e !important;
}

header .shadow-lg {
  border: 1px solid rgba(18, 33, 58, .1) !important;
  border-radius: 8px !important;
  box-shadow: 0 22px 52px rgba(18, 33, 58, .14) !important;
}

main section {
  position: relative;
}

main section.py-20 {
  padding-top: 6rem;
  padding-bottom: 6rem;
}

main section.bg-white {
  background: #fff !important;
}

main section.bg-dotsail-background {
  background: var(--ds-soft) !important;
}

main section.min-h-screen {
  min-height: calc(100vh - 4rem);
  background-color: var(--ds-navy) !important;
  background-image:
    linear-gradient(90deg, rgba(15, 23, 42, .96), rgba(18, 33, 58, .82) 48%, rgba(8, 47, 73, .68)),
    url("/images/hero/hero-bg.jpg") !important;
  background-position: center !important;
  background-size: cover !important;
  isolation: isolate;
}

main section.min-h-screen::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, .075) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .055) 1px, transparent 1px);
  background-size: 72px 72px;
  opacity: .48;
  pointer-events: none;
  z-index: -1;
}

main section.min-h-screen > .max-w-7xl {
  text-align: left;
}

main section.min-h-screen h1 {
  max-width: 820px;
  font-size: clamp(3rem, 7vw, 5.8rem) !important;
  line-height: .98;
  font-weight: 850;
  letter-spacing: 0;
  text-wrap: balance;
}

main section.min-h-screen p {
  max-width: 700px;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

main section.min-h-screen .gap-4.justify-center {
  justify-content: flex-start;
}

main h2 {
  color: #14213a !important;
  font-weight: 800;
  letter-spacing: 0;
  text-wrap: balance;
}

main h3,
main h4 {
  letter-spacing: 0;
}

main .text-gray-600 {
  color: var(--ds-muted) !important;
}

main .text-blue-100,
main .text-blue-200 {
  color: rgba(240, 247, 255, .88) !important;
}

main .rounded-2xl,
main .rounded-xl,
main .rounded-lg {
  border-radius: 8px !important;
}

main .bg-dotsail-background.rounded-2xl,
main .bg-white.rounded-lg,
main .bg-white.rounded-2xl,
main .bg-dotsail-background.rounded-lg {
  border: 1px solid rgba(18, 33, 58, .1);
  box-shadow: 0 18px 45px rgba(18, 33, 58, .07);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

main .bg-dotsail-background.rounded-2xl:hover,
main .bg-white.rounded-lg:hover,
main .bg-dotsail-background.rounded-lg:hover {
  border-color: rgba(18, 184, 166, .35);
  box-shadow: var(--ds-shadow);
}

main .hover\:-translate-y-2:hover {
  --tw-translate-y: -4px !important;
}

main .w-32.h-32.rounded-full {
  width: 7rem;
  height: 7rem;
  border-radius: 8px !important;
  box-shadow: 0 16px 35px rgba(18, 33, 58, .18);
}

main .w-20.h-20.rounded-full,
main .w-16.h-16.rounded-full {
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22), 0 14px 30px rgba(18, 33, 58, .12);
}

main a.bg-dotsail-secondary,
main button.bg-dotsail-primary,
main button.bg-dotsail-secondary {
  background: var(--ds-teal) !important;
  border: 1px solid rgba(255, 255, 255, .16);
  box-shadow: 0 14px 30px rgba(18, 184, 166, .24);
  border-radius: 8px !important;
}

main a.bg-dotsail-secondary:hover,
main button.bg-dotsail-primary:hover,
main button.bg-dotsail-secondary:hover {
  background: #0f9f92 !important;
  transform: translateY(-2px);
}

main a.border-2.border-white {
  border-color: rgba(255, 255, 255, .76) !important;
  border-radius: 8px !important;
  background: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

main a.border-2.border-white:hover {
  background: #fff !important;
  color: var(--ds-navy) !important;
}

main .h-96.bg-cover.bg-center {
  border: 1px solid rgba(18, 33, 58, .12);
  box-shadow: 0 24px 58px rgba(18, 33, 58, .14);
}

main .bg-white.bg-opacity-20.rounded-lg,
main .bg-white.bg-opacity-10.rounded-lg {
  border: 1px solid rgba(255, 255, 255, .28);
  background-color: rgba(255, 255, 255, .16) !important;
  box-shadow: 0 16px 38px rgba(0, 0, 0, .12);
}

main input,
main select,
main textarea {
  border-radius: 8px !important;
  border-color: rgba(18, 33, 58, .16) !important;
  background: #fff !important;
  box-shadow: 0 1px 0 rgba(18, 33, 58, .04);
}

main input:focus,
main select:focus,
main textarea:focus {
  border-color: var(--ds-teal) !important;
  box-shadow: 0 0 0 3px rgba(18, 184, 166, .18) !important;
  outline: none;
}

footer {
  background: #111827 !important;
  border-top: 1px solid rgba(255, 255, 255, .08);
}

footer input {
  min-width: 0;
  border-radius: 8px 0 0 8px !important;
}

footer button {
  border-radius: 0 8px 8px 0 !important;
  background: var(--ds-teal) !important;
}

@media (max-width: 767px) {
  main section.py-20 {
    padding-top: 4.5rem;
    padding-bottom: 4.5rem;
  }

  main section.min-h-screen > .max-w-7xl {
    text-align: center;
  }

  main section.min-h-screen p {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  main section.min-h-screen .gap-4.justify-center {
    justify-content: center;
  }

  main section.min-h-screen h1 {
    font-size: clamp(2.45rem, 12vw, 3.35rem) !important;
  }

  main .w-32.h-32.rounded-full {
    width: 6rem;
    height: 6rem;
  }
}
