/* ===================== */
/*   Variables + Reset   */
/* ===================== */
:root {
  --light-colour: #f7f7f7;
  --dark-colour: #e8332c;
  --green-colour: #01bc78;
  --blue-colour: #007acc;
  --red-colour: #782424;
  --white-colour: #fff;
  --black-colour: #330000;
  --grey-colour: #333;
  --yellow-colour: #ffe74c;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
* {
  margin: 0;
  padding: 0;
  font-family: 'Outfit', sans-serif;
}
svg {
  overflow: visible !important;
}
html,
body {
  width: 100%;
  min-height: 100%;
  background: var(--blue-colour);
}
.hidden {
  display: none !important;
}
.no-scroll {
  overflow: hidden !important;
  position: fixed !important;
  height: 100vh;
}
a {
  color: inherit;
}
.boldFont {
  font-weight: 700 !important;
}

.addSpaceAbove {
  margin-top: 1vmin;
}

.addSpaceAboveBelow {
  margin-top: 2vmin;
  margin-bottom: 2vmin;
}

/* ===================== */
/*        Header         */
/* ===================== */
.home-page {
  position: relative;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--blue-colour);
}
.home-page-header {
  position: absolute;
  inset: 0 0 auto 0;
  z-index: 3;
  height: 12.5svh;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 2vw;
  background: var(--white-colour);
  box-shadow: rgba(0, 0, 0, 0.2) 0 0.1vmin 0.2vmin,
    rgba(0, 0, 0, 0.15) 0 0.35vmin 0.6vmin -0.15vmin,
    rgba(0, 0, 0, 0.1) 0 -0.3vmin 0 inset;
}
.logoAndName {
  display: flex;
  align-items: center;
  gap: 3vmin;
  cursor: pointer;
  user-select: none;
}
.logoAndName h1 {
  line-height: 1;
  color: var(--dark-colour);
  font-weight: 900;
  text-transform: uppercase;
  font-size: 5vmin;
}
.logo {
  display: grid;
  grid-template: 1fr/1fr;
  height: 7.5vmin;
  aspect-ratio: 1;
}
.logo > * {
  grid-area: 1/1;
  width: 100%;
  height: 100%;
}
.logo img {
  object-fit: contain;
}

.header-name {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.3vmin;
}
.header-name p {
  color: var(--dark-colour);
  font-size: 1.75vmin;
  font-weight: 300;
}
#header-name-slogan {
  line-height: 1;
  font-size: 1.6vmin;
  opacity: 0.85;
  transform: translateY(-0.1vmin);
}

.home-page-menu {
  display: flex;
  align-items: center;
  gap: 2vw;
}
.home-page-menu p {
  font-size: 1.5vmin;
  text-transform: uppercase;
  color: var(--dark-colour);
}

/* ===================== */
/*    Foreground art     */
/* ===================== */
.hero-art {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  overflow: hidden;
}
.hero-art__img {
  position: absolute;
  right: 0.5vw;
  bottom: 7.5svh;
  height: 60vh;
  width: auto;
}
/* Hide hero art earlier on small screens */
@media (max-width: 1000px) {
  .hero-art {
    display: none;
  }
}

/* ===================== */
/*      Hero section     */
/* ===================== */
.main-section {
  position: absolute;
  top: 12.5svh;
  left: 0;
  right: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-evenly;
  row-gap: 1vmin;
  height: 80svh;
  text-wrap: balance;
  background-color: #f8c2c0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2000 1500'%3E%3Cdefs%3E%3CradialGradient id='a' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%23F7F7F7'/%3E%3Cstop offset='1' stop-color='%23F8C2C0'/%3E%3C/radialGradient%3E%3ClinearGradient id='b' gradientUnits='userSpaceOnUse' x1='0' y1='750' x2='1550' y2='750'%3E%3Cstop offset='0' stop-color='%23f8dddc'/%3E%3Cstop offset='1' stop-color='%23F8C2C0'/%3E%3C/linearGradient%3E%3Cpath id='s' fill='url(%23b)' d='M1549.2 51.6c-5.4 99.1-20.2 197.6-44.2 293.6c-24.1 96-57.4 189.4-99.3 278.6c-41.9 89.2-92.4 174.1-150.3 253.3c-58 79.2-123.4 152.6-195.1 219c-71.7 66.4-149.6 125.8-232.2 177.2c-82.7 51.4-170.1 94.7-260.7 129.1c-90.6 34.4-184.4 60-279.5 76.3C192.6 1495 96.1 1502 0 1500c96.1-2.1 191.8-13.3 285.4-33.6c93.6-20.2 185-49.5 272.5-87.2c87.6-37.7 171.3-83.8 249.6-137.3c78.4-53.5 151.5-114.5 217.9-181.7c66.5-67.2 126.4-140.7 178.6-218.9c52.3-78.3 96.9-161.4 133-247.9c36.1-86.5 63.8-176.2 82.6-267.6c18.8-91.4 28.6-184.4 29.6-277.4c0.3-27.6 23.2-48.7 50.8-48.4s49.5 21.8 49.2 49.5c0 0.7 0 1.3-0.1 2L1549.2 51.6z'/%3E%3Cg id='g'%3E%3Cuse href='%23s' transform='scale(0.12) rotate(60)'/%3E%3Cuse href='%23s' transform='scale(0.2) rotate(10)'/%3E%3Cuse href='%23s' transform='scale(0.25) rotate(40)'/%3E%3Cuse href='%23s' transform='scale(0.3) rotate(-20)'/%3E%3Cuse href='%23s' transform='scale(0.4) rotate(-30)'/%3E%3Cuse href='%23s' transform='scale(0.5) rotate(20)'/%3E%3Cuse href='%23s' transform='scale(0.6) rotate(60)'/%3E%3Cuse href='%23s' transform='scale(0.7) rotate(10)'/%3E%3Cuse href='%23s' transform='scale(0.835) rotate(-40)'/%3E%3Cuse href='%23s' transform='scale(0.9) rotate(40)'/%3E%3Cuse href='%23s' transform='scale(1.05) rotate(25)'/%3E%3Cuse href='%23s' transform='scale(1.2) rotate(8)'/%3E%3Cuse href='%23s' transform='scale(1.333) rotate(-60)'/%3E%3Cuse href='%23s' transform='scale(1.45) rotate(-30)'/%3E%3Cuse href='%23s' transform='scale(1.6) rotate(10)'/%3E%3C/g%3E%3C/defs%3E%3Cg transform='rotate(0 0 0)'%3E%3Cg transform='rotate(0 0 0)'%3E%3Ccircle fill='url(%23a)' r='3000'/%3E%3Cg opacity='0.5'%3E%3Ccircle fill='url(%23a)' r='2000'/%3E%3Ccircle fill='url(%23a)' r='1800'/%3E%3Ccircle fill='url(%23a)' r='1700'/%3E%3Ccircle fill='url(%23a)' r='1651'/%3E%3Ccircle fill='url(%23a)' r='1450'/%3E%3Ccircle fill='url(%23a)' r='1250'/%3E%3Ccircle fill='url(%23a)' r='1175'/%3E%3Ccircle fill='url(%23a)' r='900'/%3E%3Ccircle fill='url(%23a)' r='750'/%3E%3Ccircle fill='url(%23a)' r='500'/%3E%3Ccircle fill='url(%23a)' r='380'/%3E%3Ccircle fill='url(%23a)' r='250'/%3E%3C/g%3E%3Cg transform='rotate(0 0 0)'%3E%3Cuse href='%23g' transform='rotate(10)'/%3E%3Cuse href='%23g' transform='rotate(120)'/%3E%3Cuse href='%23g' transform='rotate(240)'/%3E%3C/g%3E%3Ccircle fill-opacity='0.1' fill='url(%23a)' r='3000'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  background-attachment: fixed;
  background-size: cover;
}
.board-effect {
  width: 80vw;
  height: 70svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-evenly;
  background: var(--white-colour);
  border: 2vmin solid var(--light-colour);
  box-shadow: rgba(0, 0, 0, 0.2) 0 3.5vmin 0 -2vmin;
}
.home-text,
.info-text {
  width: 80%;
}
.home-text p,
.info-text p {
  text-align: center;
  font-weight: 300;
  font-size: 6vmin;
  color: var(--dark-colour);
  font-size: clamp(24px, 6vmin, 56px);
}
.info-text p {
  color: var(--white-colour);
}

.info-text p:nth-of-type(2) {
  font-size: 4vmin;
}

.main-section .home-text p {
  font-weight: 700;
  font-size: 5vmin;
}

.home-sub-text {
  width: min(60%, 900px);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  row-gap: 2vmin;
}
.home-sub-text p {
  font-weight: 300;
  font-size: 2.5vmin;
  color: var(--grey-colour);
  text-align: center;
}
.home-sub-text p:first-of-type {
  font-weight: 500;
  font-size: 3.5vmin;
}

.create-now-holder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1vmin;
  padding: 2vmin 4vmin;
}

#try-now-btn {
  padding: 3vmin 6vmin !important;
}
#try-now-btn p {
  font-size: 2vmin;
}
.belowButtonText {
  opacity: 0;
}
.belowButtonText p {
  color: var(--green-colour);
  font-size: 1.75vmin;
  text-align: center;
}

.iconsAndText {
  color: var(--white-colour);
  display: flex;
  flex-direction: row;
  height: fit-content;
  align-items: center;
  gap: 1vmin;
}

.iconsAndText p {
  font-size: 2vmin;
  font-weight: 300;
  white-space: nowrap;
  overflow: hidden;
}

.iconsAndText svg {
  fill: var(--white-colour);
  height: 3vmin;
}

/* ===================== */
/*       Side menu       */
/* ===================== */
#menu-blocker {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
  z-index: 1000;
  display: none;
  opacity: 0;
  transition: opacity 0.2s ease;
}
#menu-blocker.show {
  display: block;
  opacity: 1;
}
.side-menu {
  position: fixed;
  inset: 0 0 0 auto;
  width: min(86vw, 500px);
  background: var(--light-colour);
  transform: translateX(100%);
  transition: transform 0.25s ease;
  z-index: 1001;
  box-shadow: -2px 0 20px rgba(0, 0, 0, 0.2);
}
.side-menu.open {
  transform: translateX(0);
}
.side-menu .circleButton#close-menu-btn {
  position: absolute;
  top: 3.5vh;
  right: 2vw;
}
.side-menu-items {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3vmin;
}
.side-menu-items h2 {
  font-size: 3vmin;
  color: var(--dark-colour);
  text-transform: uppercase;
}
.side-menu-items p,
.side-menu-items a {
  font-size: 2vmin;
  color: var(--dark-colour);
  text-transform: uppercase;
  cursor: pointer;
}
.side-menu-items p:hover {
  font-weight: 900;
}
.side-menu-items a {
  text-decoration: none;
  font-size: 1.5vmin;
}

/* ===================== */
/*      Info section     */
/* ===================== */
.info-page {
  background: var(--blue-colour);
  min-height: 100svh;
  display: flex;
  align-items: center;
  padding: 4vmin 0 calc(7.5svh + 4vmin + env(safe-area-inset-bottom, 0px));
}
.info-content {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4vmin;
}
.info-content .link-text {
  color: #fff;
  font-size: 1.75vmin;
  font-weight: 700;
  text-decoration: underline;
  text-transform: uppercase;
  cursor: pointer;
}
.info-content .link-text:hover {
  color: var(--yellow-colour) !important;
}
.info-page .home-text p {
  color: #fff;
  font-size: 6vmin;
}

/* ===================== */
/*     Resources grid    */
/* ===================== */
.resources-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 25vh;
  gap: 3vmin;
  width: 90%;
  margin-inline: auto;
}
.resource {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  gap: 2.25vmin;
  padding: 2vmin;
  background: rgba(0, 0, 0, 0.05);
  border-radius: 1vmin;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.resource-media {
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: 0.5vmin solid var(--white-colour);
  box-shadow: rgba(0, 0, 0, 0.1) 0 1.75vmin 0.25vmin -1vmin,
    rgba(0, 0, 0, 0.08) 0 0 0 1px;
}
.resource-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.resource-content {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  min-width: 0;
  gap: 1.25vmin;
}

/* heads + body copy (ONLY direct children, won’t affect <p> inside .simpleButton) */
.resource-content > h3 {
  color: #fff;
  font-size: 3.5vmin;
  font-weight: 700;
  line-height: 1.1;
  margin: 0 0 0.5vmin;
}
.resource-content > p {
  color: #fff;
  font-size: 2vmin;
  font-weight: 300;
  line-height: 1.35;
  margin: 0 0 1vmin;
}

.resource-content .simpleButton {
  width: 100%;
  padding: 1.5vmin 0;
  margin-top: 0.25vmin;
}

/* Responsive */
@media (max-width: 720px) {
  .resources-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 32vh;
    gap: 4vmin;
    padding-inline: 2vmin;
  }
  .resource {
    grid-template-columns: 1fr;
    row-gap: 1.5vmin;
  }
  .resource-content > h3,
  .resource-content > p {
    text-align: center;
  }
}

/* ===================== */
/*        Footer         */
/* ===================== */
.tagline-footer {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: 7.5svh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--dark-colour);
  border-top: 2px solid rgba(255, 255, 255, 0.2);
  z-index: 5;
}
.tagline-footer .simpleButton {
  height: 5vmin;
  border-color: var(--light-colour) !important;
  color: var(--light-colour) !important;
  background-color: rgba(255, 255, 255, 0.2) !important;
}
.tagline-footer p {
  color: var(--light-colour);
  font-size: 2vmin;
  padding: 0 2vmin;
  text-align: center;
  text-wrap: balance;
  font-weight: 300;
}

#footer-code p:nth-child(3) {
  font-size: 1.35vmin;
  text-transform: uppercase;
  opacity: 0.9;
  text-decoration: underline;
  cursor: pointer;
}

.footer-pane {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 1s ease, transform 1s ease;
  pointer-events: none;
}

.footer-pane.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* Accessibility: respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .footer-pane {
    transition: none;
    transform: none;
  }
}
