:root {
  --r-blue: #2d3c4b;
  --c-aqua: #52b7c1;
  --u-gold: #ffa600;
  --white: #fff;
  /* 
  --r-blue: #001627;
  --c-aqua: #97cee7;
  --u-gold: #83ade7;
  --white: #fff; */

  --i-width: calc(8 / 28);
  --copy-font: 'IBM Plex Serif', sans-serif;
  --copy-size: 11pt;
  --link-color: var(--c-aqua);

  scroll-behavior: smooth;
  scroll-padding-top: 2rem;
}

div.ticker {
  width: 100vw;
  text-align: center;
  padding: 1rem 0;
  background-color: var(--r-blue);
  position: fixed;
  margin-bottom: 2rem;

  z-index: 10;
}
div.ticker a {
  color: var(--white);
}

div.ticker a:link {
  text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    scroll-behavior: auto;
  }
}

.grid-l-r2 {
  display: grid;
}

.grid-l-r2 {
  grid-template-areas:
    'sidebar'
    'main'
    'press'
    'cta'
    'cduplus'
    'legal';
  grid-template-rows: fit-content;
  grid-template-columns: 100vw;
  padding-top: 2rem;
}

@media ((orientation: landscape) and (min-width: 768px)) {
  .grid-l-r2 {
    grid-template-areas:
      'sidebar main'
      'sidebar cta'
      'cduplus cduplus'
      'legal legal';
    grid-template-columns: fit-content(60ch) auto;
    grid-template-rows: auto;
    height: auto;
    /* overflow-y: scroll; */
  }

  .no-desktop {
    display: none;
  }
}

.sidebar {
  grid-area: sidebar;
  padding: 2rem;
  overflow-x: hidden;
}

.press {
  grid-area: press;
  padding: 2rem;
  background-color: var(--white);
}

.cta {
  grid-area: cta;
  padding: 2rem;
}

.legal {
  grid-area: legal;
  padding: 2rem;
}

.main {
  grid-area: main;
  padding: 2rem;
  background-color: var(--white);
}

.support-cduplus {
  grid-area: cduplus;
  padding: 2rem;
  background-color: var(--white);
}

html {
  font-family: 'Inter', sans-serif;
  overflow-wrap: break-word;
  color: var(--r-blue);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  text-wrap: balance;
}

.bg-c-aqua {
  background-color: var(--c-aqua);
  --link-color: var(--white);
}

h1 span,
h2 span,
h3 span,
h4 span,
h5 span,
h6 span {
  line-height: 1.5;
  font-weight: 800;
  display: inline;
  color: var(--white);
  background-color: var(--r-blue);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  padding: calc(var(--i-width) * 1.5ch);
  letter-spacing: -10;
}

h1 {
  font-size: 2.3rem;
  max-width: 30ch;
}

h2 {
  font-size: 1.8rem;
  max-width: 30ch;
}

h3 {
  font-size: 1.5rem;
  max-width: 30ch;
}

h4 {
  font-size: 1.2rem;
  max-width: 30ch;
}

.text-sans {
  --copy-font: 'Inter', sans-serif;
  --copy-size: 1rem;
}

.text-serif {
  --copy-font: 'IBM Plex Serif', sans-serif;
  --copy-size: 11pt;
}

p {
  font-family: var(--copy-font);
  font-weight: 'regular';
  font-size: var(--copy-size);
  max-width: 60ch;
  text-wrap: balance;
  line-height: 1.8;
}

p > a:link,
p > a:visited {
  text-decoration: underline;
}

a:link,
a:visited {
  color: var(--link-color);
  text-decoration: none;
}

body {
  height: 100dvh;
}

li {
  font-family: var(--copy-font);
  line-height: 1.8;
}

button.btn {
  border: none;
}

button.btn:hover,
a.btn:hover {
  transform: rotate(-10deg);
}

button.btn,
a.btn {
  z-index: 0;
  transition: all 0.1s ease-out;
  transform: rotate(0deg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 10ch;
  height: 10ch;
  border-radius: 50%;
  background-color: var(--u-gold);
  padding: 1rem;
  margin: 0.5rem;
  text-align: center;

  text-decoration: none;
}

button.btn > div,
a.btn > div {
  color: var(--white);
  font-weight: 600;
  text-decoration: none;
  text-transform: uppercase;
  text-align: center;
}

button.btn strong,
a.btn strong {
  font-weight: 800;
  text-transform: uppercase;
  color: #000;
}

a:has(img) {
  padding: 0;
  margin: 1rem 0;
  display: block;
}

img,
a img {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  width: 100%;
  border: solid var(--white) 0.4rem;
}

img.border-br-blue {
  border-color: var(--r-blue);
}

.press-wrap {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fill, 1fr);
  grid-template-rows: repeat(1fr);
  gap: 1rem;
  grid-auto-flow: row dense;
}

@media ((orientation: landscape) and (min-width: 768px)) {
  .press-wrap div {
    width: auto;
    aspect-ratio: 1;
  }
}

form {
  padding: 1rem;
  button {
    background-color: var(--r-blue);
    color: var(--white);
    border: none;
    padding: 1rem;
    margin: 1rem 0;
    border-radius: 0.5rem;
  }

  input {
    padding: 1rem;
    margin: 1rem 0;
    border: solid var(--r-blue) 0.1rem;
    border-radius: 0.5rem;
  }

  select {
    padding: 1rem;
    margin: 1rem 0;
    border: solid var(--r-blue) 0.1rem;
    border-radius: 0.5rem;
  }
}
