/* Variables */
:root {
  /* Color */

  --color-bg: white;

  --color-text: black;
  --color-text-light: hsla(0, 0%, 0%, 0.5);

  --color-border-light: hsla(0, 0%, 0%, 0.1);
  --color-border-light-hover: hsla(0, 0%, 0%, 0.2);

  --color-bg-accent: hsl(89, 58%, 87%);
  --color-text-accent: hsl(89, 56%, 56%);

  /* Spacing */
  --spacing-xs: 6px;
  --spacing-s: 12px;
  --spacing-m: 24px;
  --spacing-l: 48px;
  --spacing-xl: 96px;
  --spacing-xxl: 128px;

  /* Header size */

  --header-height: 96px;

  /* Type */

  --type-small-size: 14px;
  --type-small-height: 18px;

  --type-base-size: 18px;
  --type-base-height: 24px;

  --type-large-size: 32px;
  --type-large-height: 1.1;
}
@media (min-width: 1200px) {
  :root {
    --type-large-size: 48px;
    --type-large-height: 1.1;
  }
}

/* Defaults */

html {
  background-color: var(--color-bg);
  font-family: "gill-sans-nova", sans-serif;
  font-weight: 500;
  font-style: normal;

  font-size: var(--type-base-size);
  line-height: var(--type-base-height);
  letter-spacing: 0.02em;

  font-smooth: always;
  -webkit-font-smoothing: antialiased;
  scroll-behavior: smooth;
}

body {
  margin: 0;
}

::selection {
  background-color: var(--color-bg-accent);
}

* {
  box-sizing: border-box;
}

/* Typography */

ul {
  padding: 0;
  margin: 0;
  padding-left: 20px;
  /* list-style: square; */
}

.unstyled-list {
  padding: 0;
  margin: 0;
  list-style: none;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  font-size: 100%;
  font-weight: inherit;
}

blockquote {
  margin: 0;
  padding-left: var(--spacing-m);
}

cite {
  font-style: normal;
}

hr {
  border: none;
}

a {
  color: inherit;
  text-decoration: none;
}

a:not(.unstyled-link) {
  color: var(--color-text);
  text-decoration: underline solid var(--color-border-light) 1.5px;
  text-underline-offset: 3px;
  transition:
    color 0.15s ease,
    text-decoration-color 0.15s ease;
}
a:hover:not(.unstyled-link) {
  text-decoration-color: currentColor;
}
a:active:not(.unstyled-link) {
  color: var(--color-text-accent);
}

dd,
dl,
dt {
  margin: 0;
}

.typeset > * + * {
  margin-top: 1em;
}
.typeset ul > * + * {
  margin-top: 1em;
}

.text-light {
  color: var(--color-text-light);
}

.text-cap {
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

.text-small {
  /* font-weight: bold; */
  font-size: var(--type-small-size);
  line-height: var(--type-small-height);
}
.text-large {
  /* font-weight: bold; */
  font-size: var(--type-large-size);
  line-height: var(--type-large-height);
}

/* Media */

figure {
  margin: 0;
}
figcaption {
  margin-top: var(--spacing-s);
}
picture {
  display: block;
  overflow: clip;
}
img,
video {
  height: auto;
  max-width: 100%;
  width: 100%;
  display: block;
}

.bg-image {
  position: absolute;
  inset: 0;
  height: 100%;
  width: 100%;
  object-fit: cover;
}

/* UI */

hr {
  border-top: 1px solid black;
  width: 100%;
  padding: 0;
  margin: 0;
}

.title-card {
  padding: 6px 12px;
  background-color: white;
}

.button-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-s);
}
.button:not([disabled]) {
  cursor: pointer;
}
.button {
  font: inherit;
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-xs);
  border: 0;
  padding: 6px 12px;
  color: var(--color-text);
  border-radius: 0;
  background-color: var(--color-bg-accent);
  /* border-bottom: 1px solid var(--color-border-light); */
  box-shadow: 0px 2px 0px hsla(0, 0%, 0%, 0.1);
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}
.button:hover {
  transform: translateY(-1px);
  box-shadow: 0px 3px 0px hsla(0, 0%, 0%, 0.1);
}
.button:active {
  transform: translateY(1px);
  box-shadow: 0px 1px 0px hsla(0, 0%, 0%, 0.1);
  color: var(--color-text-light);
}
.button[disabled] {
  opacity: 0.3;
  pointer-events: none;
}

.button.full {
  width: 100%;
  justify-content: space-between;
}

.form-field {
  display: grid;
  gap: var(--spacing-xs);
}

.text-input,
.textarea-input {
  color: inherit;
  border-radius: 0px;
  resize: none;
  display: block;
  border: 0;
  font: inherit;
  background-color: transparent;
  margin: 0;
  padding: 8px 12px;
  border: 2px solid var(--color-border-light);
  transition: border-color 0.1s ease;
}
.text-input:hover,
.textarea-input:hover {
  border-color: var(--color-border-light-hover);
}
.text-input:focus,
.textarea-input:focus {
  border-color: var(--color-text-accent);
}

/* Header */

.header {
  /* background-color: var(--color-bg-accent); */
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--spacing-m);
  padding: var(--spacing-m);

  /* position: sticky; */
  /* top: 0; */
  /* z-index: 9; */
}
.logo {
  transition: color 0.15s ease;
}
.logo:hover {
  color: var(--color-text-accent);
}

.nav {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--spacing-s) var(--spacing-m);
}
.nav-link {
  color: var(--color-text-light);
  transition: color 0.15s ease;
}
.nav-link.current {
  color: var(--color-text);
}
.nav-link:hover {
  color: var(--color-text-accent);
}
.nav-link:active {
  color: var(--color-text);
}

/* Footer */

.footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--spacing-m);
  padding: var(--spacing-m);
  padding-top: var(--spacing-xl);
  background-color: var(--color-bg-accent);
}

/* Scroll Reveal */

scroll-reveal {
  display: block;
  overflow-x: clip;
}

.js scroll-reveal {
  opacity: 0;
}

.js hr {
  transform-origin: left;
  transform: scaleX(0);
}

/* Layout */

body {
  overflow-x: clip;
  min-height: 100svh;
  display: grid;
  grid-template-rows: auto 1fr auto;
  grid-template-columns: 100%;
}
