:root {
  --color-dark-navy: #242742;
  --color-white: #ffffff;
  --color-vermellion: #FF6155;
  --color-invalit-input-bg: rgba(255, 97, 85, 0.15);
  --gradient-btn: linear-gradient(82deg, #FF6A3A, #FF527B);
}

/* TYPOGRAPHY */

main {
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-variation-settings: "wdth" 100;
}

h1,
h2 {
  font-size: clamp(2.5rem, 5.6vw, 3.5rem);
  color: var(--color-dark-navy);
  font-weight: 700;
}

p,
li {
  font-size: 1rem;
  line-height: 1.5;
  color: var(--color-dark-navy);
}

label {
  font-size: 0.75rem;
  line-height: 1.5;
  font-weight: 700;
  color: var(--color-dark-navy);
}

.input::placeholder {
  font-size: 1rem;
  line-height: 1.5;
  color: var(--color-dark-navy);
  opacity: 50%;
}

/* LAYOUT */
body {
  background-color: var(--color-dark-navy);
}

.sub {
  /* 30em = 480px assuming 1em = 16px */
  inline-size: min(100%, 30em);
  margin-inline: auto;
  background-color: var(--color-white);
}

.img-container img {
  /* 30em = 480px assuming 1em = 16px */
  inline-size: min(100%, 30em);
}

.content {
  padding: 40px 24px;
}

h1 {
  margin-block-end: 24px;
}

.sub p {
  margin-block-end: 24px;
}

ul {
  margin-block-end: 40px;
  /* 37 = icon-list.svg width + space between icon and text = 21 + 16 */
  padding-inline-start: 37px;
}

li {
  list-style: none;
  position: relative;
  margin-bottom: 10px;
}

li::before {
  content: url(/assets/images/icon-list.svg);
  position: absolute;
  top: 2px;
  /* 37 = icon-list.svg width + space between icon and text = 21 + 16 */
  left: -37px;
}

li:last-child {
  margin-bottom: 0;
}

form {
  inline-size: 100%;
  margin-inline: auto;
}

.input {
  all: unset;
  display: block;
  box-sizing: border-box;
  margin-block: 8px 24px;
  margin-inline: auto;
  inline-size: 100%;
  padding: 16px 24px;
  border-radius: 8px;
  border: 1px solid rgba(25, 24, 43, 0.25);
}

.input:focus {
  border: 1px solid rgba(25, 24, 43);
}

.btn-primary {
  all: unset;
  display: block;
  padding-block: 16px 14px;
  text-align: center;
  background-color: var(--color-dark-navy);
  color: var(--color-white);
  border-radius: 8px;
  inline-size: 100%;
  margin-inline: auto;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
}

.btn-primary:hover {
  cursor: pointer;
  background: var(--gradient-btn);
  box-shadow: 0 16px 32px 0 rgba(255, 97, 85, 0.5);
}

.message {
  /* 30em = 480px assuming 1em = 16px */
  inline-size: min(100%, 30em);
  margin-inline: auto;
  background-color: var(--color-white);
  height: 100vh;
  padding-inline: 24px;
  padding-block: min(18.5vh, 150px) 40px;
  display: flex;
  flex-flow: column;
  justify-content: space-between;
}

h2 {
  margin-block: 40px 24px;
}

/* UTILITY CLASSES */
.hide {
  display: none;
  visibility: hidden;
  height: 0;
}

.invalid-input {
  border: 1px solid var(--color-vermellion);
  background-color: var(--color-invalit-input-bg);
  color: var(--color-vermellion);
}

#invalid-input-notif {
  font-size: 0.75rem;
  line-height: 1.5;
  font-weight: 700;
  color: var(--color-vermellion);
}

.flex-row-container {
  display: flex;
  justify-content: space-between;
}

/* DESKTOP BREAKPOINT */
/* 70em = 1120px assuming 1em = 16px */
@media (min-width: 70em) {
  main {
    /* 34em = 544px is the maximum height of <message> container
        this responsive padding, instead of fixed padding, doesn't create
        unnecessary vertical scrollbar in smaller screens */
    padding-block: min(calc((100vh - 34em) / 2), 128px);
  }

  .sub {
    inline-size: 58em;
    display: flex;
    flex-direction: row-reverse;
    border-radius: 36px;
    overflow: hidden;
  }

  .img-container {
    padding-block: 24px;
    padding-inline-end: 24px;
    min-inline-size: 424px;
  }

  .content {
    padding-inline: 64px;
    padding-block: 98px;
  }

  .message {
    inline-size: 31.5em;
    padding-inline: 64px;
    padding-block: 48px 64px;
    border-radius: 36px;
  }

  .message.show {
    display: block;
    height: auto;
  }

  #confirm-msg {
    margin-block-end: 40px;
  }
}