/* ************************************ */
/* CSS RESET - DO NOT EDIT HERE */

/* 1. Use a more-intuitive box-sizing model */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* 2. Remove default margin */
* {
  margin: 0;
}

/* 3. Enable keyword animations */
@media (prefers-reduced-motion: no-preference) {
  html {
    interpolate-size: allow-keywords;
  }
}

html {
  /* I use this to use rem instead of px. And this makes 1 rem = 10px and not 16px */
  font-size: 62.5%; /* 62.5% of the browser default (usually 16px) = 10px  */
}

body {
  /* 4. Add accessible line-height */
  line-height: 1.5;
  /* 5. Improve text rendering */
  -webkit-font-smoothing: antialiased;
}

/* 6. Improve media defaults */
img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

/* 7. Inherit fonts for form controls */
input,
button,
textarea,
select {
  font: inherit;
}

/* 8. Avoid text overflows */
p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

/* 9. Improve line wrapping */
p {
  text-wrap: pretty;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  text-wrap: balance;
}

/*
    10. Create a root stacking context
  */
#root,
#__next {
  isolation: isolate;
}
/* ************************************ */
/* CSS COLORS VARIABLES */
:root {
  --color-primary: red;
  --color-black: #090909;
  --color-white: #ffffff;

  /* Trans Pride Colors */
  --trans-blue: #a8d8ff;
  --trans-pink: #ffb8d8;
  --dark-blue: #003366;
  --other-blue: #0073a8;

   /* Accessiblestyling */
  --focus-outline: #003366; /* matches dark-blue for now */

  /* Accessible pinks (semantic) */
  --accent-pink-light-bg: #AD004E; /* use on white background */
  --accent-pink-blue-bg:  #751A41; /* use on trans-blue backgrounds */
}

/* ************************************ */
/* REAL CSS - EDIT HERE! */
body {
  font-size: 1.6rem;
  font-family: "Lato", sans-serif;
  font-weight: 400;
  color: var(--color-black);
  background-color: var(--color-white);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Merriweather", serif;
  font-weight: 200;
  color: var(--color-black);
}

/* Global Styling */
h2 {
  font-size: 3.1rem;
  font-weight: 700;
}

/* Section Home */
.hero {
  min-height: 100vh;
}

/* Navigation Mobile */
.hero__nav-mobile {
  display: none;

  width: 100vw;
  height: 100vh;
  background-color: var(--trans-blue);
  border: solid 0.2rem var(--trans-pink);
  color: var(--color-white);

  /* turn on on mobile */
  @media (max-width: 1100px) {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
  }

  ul {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0;

    svg {
      stroke-width: 1.5px;
      color: var(--dark-blue);
      width: 5rem;
      height: 5rem;
    }

    svg:hover {
      color: var(--other-blue);
      cursor: pointer;
      transition: all 0.2s ease-in-out;
      transform: scale(1.5);
    }
  }

  li {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 2rem;
  }

  li a {
    text-decoration: none;
    color: var(--color-white);
    font-size: 3.1rem;
    font-family: Merriwheather;
    font-weight: 500;
    transition: all 0.2s ease-in-out;
  }

  li a:hover {
    color: var(--other-blue);
  }
}

/* Header */
.hero__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 2rem;
  background-color: var(--trans-blue);
  border-bottom: solid 0.2rem var(--trans-pink);
  /* border-top: solid 0.2rem var(--trans-pink); */
  color: var(--color-white);
  height: 10rem;
}

.hero__logo-extra-styling {
  color: var(--other-blue);
  font-size: 3.1rem;
  font-family: Merriwheather;
  font-weight: 500;

  @media (max-width: 860px) {
    font-size: 2.2rem;
    width: 70%;
    text-align: center;
  }
}

.hero__nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 2rem;
  color: var(--color-white);
}

/* Navigation Mobile */
.hero__nav_mobile-button {
  display: none;

  /* turn on on mobile */
  @media (max-width: 1100px) {
    display: block;
    position: fixed;
    top: 3.3rem;
    right: 3.3rem;
    z-index: 1;
  }

  svg {
    stroke-width: 1.5px;
    color: var(--dark-blue);
    width: 3rem;
    height: 3rem;
  }

  svg:hover {
    color: var(--other-blue);
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    transform: scale(1.5);
  }
}

/* Navigation Desktop */
.hero__nav-ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 2rem;
  color: var(--color-white);

  /* Turn off on mobile */
  @media (max-width: 1100px) {
    display: none;
  }
}

.hero__nav-item {
  list-style: none;
  padding: 0rem 2rem;
  color: var(--color-white);
}

.hero__nav a {
  color: var(--other-blue);
  text-decoration: none;
  font-size: 2rem;
}

.specialUwu {
  color: var(--other-blue) !important;
  font-weight: 700;
  text-decoration: underline !important;
  transition: all 0.2s ease-in-out;
}

.specialUwu:hover {
  color: var(--color-white) !important;
  cursor: pointer;
}

.hero__nav a:hover {
  color: var(--color-white);
  cursor: pointer;
}

/* Hero Content */
.hero__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: calc(100vh - 10rem);
  background-color: var(--color-white);
  color: var(--color-white);

  /*background-image: url("img/rainbow.png");*/
  background-size: 60%;
  background-position: center;
  background-repeat: no-repeat;

  @media (max-width: 1280px) {
    background-size: 70%;
    height: 75rem;
  }

  @media (max-width: 1100px) {
    height: 60rem;
    background-size: 85%;
  }
  @media (max-width: 860px) {
    /* height: 50rem; */
    background-size: 90%;
  }
  @media (max-width: 500px) {
    /* height: 20rem; */
    background-size: 90%;
  }
}

/* Hero style container for title + description */

/* Simple CSS animation */
@keyframes slideIn {
  from {
    transform: translateY(
      -40rem
    ); /* Moves element up by 10rem relative to its position */
    opacity: 0;
    border: solid 0.3rem var(--trans-blue);
  }
  to {
    transform: translateY(0); /* Returns element to its natural position */
    opacity: 1;
    border: solid 0.3rem var(--trans-pink);
  }
}

@keyframes btnUwU {
  from {
    background-color: var(--trans-blue);
    color: var(--color-white);
  }
  to {
    background-color: var(--trans-pink);
    color: var(--color-white);
  }
}

@keyframes containerBorder {
  from {
    border: 0.3rem solid var(--trans-blue);
  }
  to {
    border: 0.3rem solid var(--trans-pink);
  }
}

.hero__info-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-color: var(--color-white);
  padding: 2rem 4rem;
  border: solid 0.3rem var(--trans-pink);
  /* border-radius: 0.2rem; */
  min-height: 30rem;
  animation: containerBorder 4s ease-in-out, slideIn 1s ease-in-out;

  @media (max-width: 860px) {
    width: 85%;

    animation: containerBorder 6s ease-in-out, slideIn 2s ease-in-out;
  }
}
.hero__title {
  font-size: 4rem;
  font-weight: 700;
  color: var(--trans-pink);
  text-align: center;

  @media (max-width: 860px) {
    font-size: 2.5rem;
  }
}

.hero__description {
  font-size: 2rem;
  color: var(--color-black);
  padding: 1rem 0rem 2rem 1rem;
  text-align: center;

  @media (max-width: 860px) {
    font-size: 1.8rem;
    padding: 0.5rem 0rem 0.5rem 0rem;
  }
}

.hero__description-time {
  font-size: 2rem;
  color: var(--trans-blue);
  font-weight: 700;
  text-align: center;

  @media (max-width: 860px) {
    font-size: 1.8rem;
  }
}
.hero__description-top {
  font-size: 2rem;
  color: var(--trans-blue);
  font-weight: 700;
  text-align: center;

  @media (max-width: 860px) {
    font-size: 1.8rem;
  }
}
.hero__description-bottom {
  font-size: 2rem;
  color: var(--trans-blue);
  font-weight: 700;
  text-align: center;

  @media (max-width: 860px) {
    font-size: 1.8rem;
  }
}

.hero__button {
  padding: 1rem 2rem;
  border-radius: 10rem;
  font-size: 2rem;
  text-decoration: none;
  text-transform: uppercase;
  font-weight: 400;
  margin-top: 2rem;

  transition: all 0.2s ease-in-out;

  background-color: var(--trans-pink);
  color: var(--color-white);
  border: 0.2rem solid var(--trans-pink);

  animation: btnUwU 3s ease-in-out;
}

.hero__button:hover {
  cursor: pointer;

  background-color: var(--trans-blue);
  color: var(--color-white);
  border: 0.2rem solid var(--trans-pink);
}

/* SECTION ABOUT US */
.about {
  margin-top: 5rem;

  @media (max-width: 1280px) {
    margin-top: 0rem;
  }
}

.about__container {
  display: flex;
  justify-content: center;
  align-items: top;
  max-width: 100%;
  height: 70rem;
  background-color: var(--trans-pink);

  @media (max-width: 1280px) {
    flex-direction: column;
    height: auto;
  }
}

/* Left side of container */
.about__left {
  max-width: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  @media (max-width: 1280px) {
    max-width: 100%;
    width: 100%;
    margin-top: 5rem;
    margin-bottom: 5rem;
  }
}
.about__title {
  text-align: center;
  color: var(--color-white);
  width: 60%;
}

.about__info {
  font-size: 2rem;
  color: var(--color-white);
  text-align: left;
  padding: 2rem;
  width: 60%;
}

/* Right side of container */
.about__img {
  display: flex;
  justify-content: center;
  align-items: center;
  border: solid 2px var(--color-white);
  margin: 4rem 0;

  @media (max-width: 1280px) {
    margin: 0;
    padding: 10rem;
    background-color: white !important;
  }

  @media (max-width: 860px) {
    padding: 0;
    /* margin-top: 2rem; */
    margin-bottom: 10rem;
  }
}

/* Conctact Us Section */

.contact-us {
  /* margin-top: 5rem; */
  border-top: 0.2rem solid var(--color-white);
  background-color: var(--trans-blue);
  color: var(--color-white);
  height: 20rem;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}

.contact-us__title {
  font-size: 3.1rem;
  font-weight: 700;
  text-align: center;
  color: var(--color-white);
  margin-top: 5rem;
  margin-bottom: 1rem;
}

.contact-us a {
  color: var(--other-blue);
  /* text-decoration: none; */
  font-size: 2rem;
  font-weight: 400;
  transition: all 0.2s ease-in-out;
  text-align: center;
}

.contact-us a:hover {
  color: var(--dark-blue);
}

.contact-us__link-na {
  margin-top: 1rem;
  margin-bottom: 2.5rem;
  text-align: center;
}

/* --- A11Y: contrast & hover/focus styling  --- */

/* Header/logo/nav */
.hero__logo-extra-styling {
  color: var(--dark-blue);
}

/* NAV + footer links*/
.hero__nav a,
.hero__nav-mobile li a {
  color: var(--dark-blue);
  text-decoration: underline;

  /* underline is invisible by default, appears on hover/focus */
  text-decoration-color: transparent;
  text-decoration-thickness: 2px;
  text-underline-offset: 0.25em;
}

/* Makes the "Join Our Meeting!" link feel primary without becoming a button */
/* Hover: dark pink */
.hero__nav a:hover,
.hero__nav-mobile li a:hover,
.contact-us a:hover {
  color: var(--accent-pink-blue-bg);
  text-decoration-color: var(--accent-pink-blue-bg);
}

/* Keyboard focus: nav + mobile only */
.hero__nav a:focus-visible,
.hero__nav-mobile li a:focus-visible {
  outline: 3px solid var(--dark-blue);
  outline-offset: 4px;
  text-decoration-color: var(--accent-pink-blue-bg);
}

/* Hero text on white */
.hero__title {
  color: var(--accent-pink-light-bg);
}

.hero__description-time,
.hero__description-top,
.hero__description-bottom {
  color: var(--dark-blue);
}

/* --- ZOOM LINK button --- */
.hero__button {
  background-color: var(--trans-pink);
  color: var(--dark-blue);
  border: 2px solid var(--dark-blue);
  border-radius: 999px; 
  font-weight: 700;
  letter-spacing: 0.02em;
  text-decoration: none;
  padding: 12px 22px;
  display: inline-block;
}

/* Hover */
.hero__button:hover {
  background-color: var(--trans-blue);
  color: var(--dark-blue);
}

/* Keyboard focus */
.hero__button:focus-visible {
  outline: 3px solid var(--dark-blue);
  outline-offset: 4px;
}

/* About section text on trans-pink */
.about__title,
.about__info {
  color: var(--dark-blue);
}

/* Footer (Contact Us) title */
.contact-us__title {
  color: var(--accent-pink-blue-bg);

}

/* Footer links look like links */
.contact-us a {
  text-decoration: underline;
  text-decoration-color: var(--dark-blue);
  text-decoration-thickness: 2px;
  color: var(--dark-blue);
  text-underline-offset: 0.25em;
}

/* Footer hover: accent pink underline */
.contact-us a:hover {
  color: var(--accent-pink-blue-bg);
  text-decoration-color: var(--accent-pink-blue-bg);
}

/* Footer keyboard focus: keep underline & show focus ring */
.contact-us a:focus-visible {
  outline: 3px solid var(--dark-blue);
  outline-offset: 4px;
  text-decoration-color: var(--accent-pink-blue-bg);
}

/* ------------------------------------------------------------
   TARGETED OVERRIDES for existing !important rules (.specialUwu)
   ------------------------------------------------------------ */

/* Force Join Our Meeting link to behave like other nav links */
.hero__nav .specialUwu {
  color: var(--dark-blue) !important;
  text-decoration-color: transparent !important;
}

/* Hover: dark pink, not white (white fails contrast on trans-blue header) */
.hero__nav .specialUwu:hover {
  color: var(--accent-pink-blue-bg) !important;
  text-decoration-color: var(--accent-pink-blue-bg) !important;
}

/* Focus: strong ring + underline visible */
.hero__nav .specialUwu:focus-visible {
  outline: 3px solid var(--dark-blue);
  outline-offset: 4px;
  color: var(--dark-blue) !important;
  text-decoration-color: var(--accent-pink-blue-bg) !important;
}

/* --- A11Y: mobile menu buttons --- */
/* Make <button> wrappers look identical to the old clickable icons */
.icon-button {
  background: transparent;
  border: 0;
  padding: 0;
  line-height: 0;
  cursor: pointer;
  color: inherit;
}

/* Clear focus ring for keyboard users (doesn't affect mouse users) */
.icon-button:focus-visible {
  outline: 3px solid var(--dark-blue);
  outline-offset: 4px;
}

/* Ensure the icon buttons don't collapse layout */
.hero__nav_mobile-button .icon-button,
.hero__nav-mobile .icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Screen-reader only text (keeps extra info accessible without changing visuals) */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.hero__content {
  height: auto !important;
  min-height: auto !important;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;

  padding-top: clamp(2.5rem, 6vh, 5rem);
  padding-bottom: clamp(1.5rem, 3vh, 3rem);
}

.hero__rainbow {
  display: block;
  width: min(96vw, 900px);
  height: auto;
  max-height: 60vh;
  object-fit: contain;

  margin: 0 auto clamp(1rem, 2vw, 1.75rem);
}

.hero__info-container {
  margin-bottom: clamp(2.5rem, 6vh, 5rem);
}
