:root {
  --pacifico-primary: #322E76;
  --pacifico-primary-deep: #26225E;
  --pacifico-primary-soft: #F2F1FA;
  --pacifico-secondary: #FF2E66;
  --pacifico-secondary-deep: #C91749;
  --pacifico-secondary-soft: #FFF0F4;
  --pacifico-ink: #29263F;
}

html {
  accent-color: var(--pacifico-secondary);
}

body {
  color: var(--pacifico-ink);
}

/* Navigation and search */
.wy-nav-side {
  background: var(--pacifico-primary-deep);
  border-right: 3px solid var(--pacifico-secondary);
}

.wy-side-nav-search,
.wy-nav-top {
  background: var(--pacifico-primary);
}

.wy-nav-top {
  border-bottom: 3px solid var(--pacifico-secondary);
}

.wy-side-nav-search > a,
.wy-side-nav-search .wy-dropdown > a {
  color: #fff;
}

.wy-side-nav-search input[type="text"] {
  border: 2px solid transparent;
  box-shadow: none;
}

.wy-side-nav-search input[type="text"]:focus {
  border-color: var(--pacifico-secondary);
  box-shadow: 0 0 0 3px rgb(255 46 102 / 25%);
}

.wy-menu-vertical header,
.wy-menu-vertical p.caption {
  color: #fff;
  border-left: 3px solid var(--pacifico-secondary);
  padding-left: 0.75rem;
}

.wy-menu-vertical a {
  color: rgb(255 255 255 / 86%);
}

.wy-menu-vertical a:hover {
  background: rgb(255 46 102 / 18%);
  color: #fff;
}

.wy-menu-vertical li.current > a,
.wy-menu-vertical li.on > a {
  background: #fff;
  border-left: 4px solid var(--pacifico-secondary);
  color: var(--pacifico-primary);
  font-weight: 600;
}

.wy-menu-vertical li.current a {
  color: #3f3b55;
}

.wy-menu-vertical li.current a:hover {
  background: var(--pacifico-secondary-soft);
  color: var(--pacifico-primary);
}

/* Content typography and links */
.rst-content h1,
.rst-content h2,
.rst-content h3,
.rst-content h4,
.rst-content h5,
.rst-content h6 {
  color: var(--pacifico-primary);
}

.rst-content h1 {
  border-bottom: 3px solid var(--pacifico-secondary);
  padding-bottom: 0.3em;
}

.rst-content a:not(.btn),
.wy-breadcrumbs a {
  color: var(--pacifico-primary);
  text-decoration-color: rgb(255 46 102 / 65%);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.16em;
}

.rst-content a:not(.btn):hover,
.wy-breadcrumbs a:hover {
  color: var(--pacifico-secondary-deep);
  text-decoration-color: var(--pacifico-secondary);
}

.rst-content code.literal {
  background: var(--pacifico-primary-soft);
  border-color: #d9d6ec;
  color: var(--pacifico-primary);
}

.rst-content table.docutils thead,
.rst-content table.field-list thead {
  background: var(--pacifico-primary);
  color: #fff;
}

/* Buttons and focused controls */
.btn {
  background: var(--pacifico-primary);
  border: 1px solid var(--pacifico-primary);
  box-shadow: none;
  color: #fff !important;
}

.btn:hover {
  background: var(--pacifico-primary-deep);
  border-color: var(--pacifico-secondary);
}

.btn-neutral {
  background: #fff !important;
  border-color: var(--pacifico-primary);
  color: var(--pacifico-primary) !important;
}

.btn-neutral:hover {
  background: var(--pacifico-primary-soft) !important;
  border-color: var(--pacifico-secondary);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
.btn:focus-visible {
  outline: 3px solid var(--pacifico-secondary);
  outline-offset: 2px;
}

::selection {
  background: var(--pacifico-secondary);
  color: var(--pacifico-primary-deep);
}

@media screen and (max-width: 768px) {
  .wy-nav-side {
    border-right: 0;
  }
}
