@font-face {
  font-family: 'AkzidGrtskBC';
  src: url('fonts/AkzidGrtskProXBolCnd.woff2') format('woff2');
}

:root {
  --brand-blue: #12a8eb;
  --text-dark: #000000;
  --white: #ffffff;
  --font-display: "AkzidGrtskBC";
  --font-body: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --button-bg: #f2f2f2;
  --button-text: #111111;
}
::selection {
  color: black;
  background-color: #cbfa00;
}

* {
  box-sizing: border-box;
}



html,
body {
  margin: 0;
  padding: 0;
  min-height: 100%;
}

body {
  min-height: 100vh;
  min-height: 100dvh;
  background: var(--brand-blue);
  color: var(--text-dark);
  font-family: var(--font-body);
}

/* Visibility switching */
.layout-block {
  display: none;
}

body[data-layout="desktop"] .layout-block--desktop {
  display: flex;
}

body[data-layout="mobile"] .layout-block--mobile {
  display: flex;
  flex-direction: column;
}

/* Shared */
.hero__logo {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  transition: all .2s ease;
}

.hero__title {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 0.9;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  color: #000;
  text-align: right;
  margin-top: 0;
  margin-bottom: 1rem;
}

.hero__text {
  text-align: right;
}

.hero__text strong {
  font-weight: 800;
}

.hero__button {
  display: inline;
  width: auto;
  text-decoration: none;
  font-family: var(--font-display);
  font-size: 1.79rem;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0;
  background: var(--button-bg);
  color: var(--button-text);
  padding: 1rem 1.5rem;
  text-align: right;
  margin-right: 0;
  &:hover {
    filter: invert(1);
  }
}

/* =========================
   Desktop
   ========================= */

.hero-desktop {
  min-height: 100vh;
  min-height: 100dvh;
}

.hero-desktop__left,
.hero-desktop__right {
  width: 50%;
  min-height: 100vh;
  min-height: 100dvh;
}

.hero-desktop__left {
  position: relative;
  background: var(--brand-blue);
  padding: 2rem;
  display: flex;
  flex-direction: column;
  container-type: inline-size;
  overflow: hidden;
}

.hero__logo--desktop {
  width: 145px;
  margin: 0 0 2rem 0;
}

.hero-desktop__content {

  width: 100%;
  max-width: 580px;
  margin: 0 auto;
  flex-direction: column;
  text-align: right;
}

.hero-desktop .hero__title {
  font-size: clamp(5rem, 9vw, 8.5rem);
}

.hero-desktop .hero__text {
  margin-top: 2.5rem;
  max-width: 580px;
  font-size: 1.15rem;
  line-height: 1.7;
}

.hero-desktop .hero__button {
  margin-top: 2.25rem;
}

.hero-desktop__right {
  background: #000 url("images/swimmers.webp") center center / cover no-repeat;
  filter: grayscale(100%);
}

/* Scale left-side content to the width of the 50% column */
@supports (width: 1cqw) {
  .hero-desktop__left {
    padding: clamp(20px, 4cqw, 44px);
  }

  .hero__logo--desktop {
    width: clamp(110px, 24cqw, 190px);
    margin-bottom: clamp(16px, 3cqw, 30px);
  }

  .hero-desktop__content {
    width: min(72cqw, 100%);
    max-width: none;
    gap: clamp(14px, 2.4cqw, 28px);
  }

  .hero-desktop .hero__title {
    font-size: clamp(3.25rem, 15.5cqw, 8.5rem);
    line-height: 0.8;
    letter-spacing: -2px;
  }

  .hero-desktop .hero__text {
    margin-top: 0;
    margin-bottom: 2.1rem;
    font-size: clamp(0.95rem, 2.75cqw, 1.35rem);
    line-height: 1.55;
  }

  .hero-desktop .hero__button {
    margin-top: 0;
    font-size: 1.7rem;
  }
}

/* =========================
   Mobile
   ========================= */

.hero-mobile {
  min-height: 100vh;
  min-height: 100dvh;
  background: #111;
}

.hero-mobile__image-wrap {
  position: relative;
  overflow: hidden;
}

.hero-mobile__image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  filter: grayscale(100%);
}

.hero__logo--mobile {
  position: absolute;
  left: 1.5rem;
  bottom: 1.5rem;
  width: 155px;
  max-width: 42%;
}

.hero-mobile__content {
  background: var(--brand-blue);
  padding: 2.25rem 1.5rem 3rem;
  width: 100%;
  text-align: center;
}

.hero__title--mobile {
  font-size: 4rem;
  text-align: center;
  letter-spacing: -2px;
}

.hero__text--mobile {
  margin-top: 1.1rem;
  font-size: 1.2rem;
  line-height: 1.4;
  text-align: center;
}

.hero__button--mobile {
  margin-top: 1rem;
  display: inline-block;
  font-size: 1.7rem;
}

/* Safety fallback */
@media (max-width: 900px) {
  .hero-desktop__left,
  .hero-desktop__right {
    min-height: auto;
  }
}