/* RESET */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}


/* YHTENÄISET SÄVYT */

:root {
  --soft-pink: rgba(255, 236, 243, 0.82);
  --soft-light: rgba(255, 255, 255, 0.92);
  --text-color: #2f6dac;
  --deep-berry: #1b5fa3;
}


/* BODY */

body {
  font-family: 'Quicksand', sans-serif;

  background:
    radial-gradient(circle at top left, rgba(214, 228, 242, 0.45), transparent 32%),
    radial-gradient(circle at bottom right, rgba(232, 220, 244, 0.30), transparent 35%),
    linear-gradient(135deg, #ffffff 0%, #f8fbff 45%, #fdfcff 100%);

  background-size: cover;
  background-position: center;
  background-attachment: fixed;

  min-height: 100vh;

  color: var(--text-color);
}


/* KAIKKI TEKSTIT KÄYTTÄÄ ROOT-MUUTTUJIA */

p,
li,
span,
strong,
em {
  color: var(--text-color);
}

h1,
h2,
h3,
h4,
h5,
h6,
.logo,
.eyebrow {
  color: var(--deep-berry);
}

a,
a:visited {
  color: var(--deep-berry);
}


/* OVERLAY */

.overlay {
  min-height: 100vh;
  background-color: rgba(255, 255, 255, 0.18);
  padding: 170px 20px 60px 20px;
}


/* NAVBAR */

.navbar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;

  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 25px;

  padding: 18px 42px;

  background-color: rgba(255, 240, 246, 0.78);
  backdrop-filter: blur(10px);

  z-index: 999;

  box-shadow: 0 4px 18px rgba(0,0,0,0.06);
  border-bottom: 1px solid rgba(255,255,255,0.55);
}


/* LOGO */

.logo {
  font-family: 'DM Serif Display', serif;
  font-size: 2.7rem;
  letter-spacing: 1px;
  white-space: nowrap;
}


/* NAV LINKIT */

.nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.nav-links a {
  text-decoration: none;
  background-color: rgba(255,255,255,0.62);
  padding: 9px 17px;
  border-radius: 999px;

  color: var(--deep-berry);

  font-weight: 600;
  font-size: 0.92rem;

  backdrop-filter: blur(4px);
  transition: 0.3s;
}

.nav-links a:hover {
  background-color: rgba(255,255,255,0.92);
  transform: translateY(-2px);
}


/* SISÄLTÖ */

.content-container {
  max-width: 1300px;
  margin: 65px auto 0 auto;
  display: flex;
  justify-content: center;
  padding: 40px 0;
}


/* TEKSTILAATIKKO */

.text-box {
  position: relative;
  width: 100%;
  max-width: 1250px;

  background-color: rgba(255, 236, 243, 0.84);

  padding: 135px 140px 65px 140px;
  border-radius: 34px;

  backdrop-filter: blur(10px);

  box-shadow: 0 12px 34px rgba(120, 140, 170, 0.10);
  border: 1px solid rgba(255,255,255,0.75);
}

.text-box-content {
  max-width: 760px;
}


/* EYEBROW */

.eyebrow {
  margin-bottom: 12px;

  font-size: 0.95rem;
  font-weight: 600;

  letter-spacing: 1.5px;
  text-transform: uppercase;

  opacity: 0.82;
}


/* OTSIKKO */

.text-box h1 {
  margin-bottom: 24px;

  font-family: 'Playfair Display', serif;

  font-size: 2.55rem;
  line-height: 1.18;

  font-weight: 700;
}


/* TEKSTIT */

.text-box p {
  margin-bottom: 18px;

  font-size: 1.16rem;
  line-height: 1.85;

  color: var(--text-color);

  text-align: justify;
}


/* PYÖREÄ PROFIILIKUVA */

.profile-image {
  position: absolute;

  top: -115px;
  right: 42px;

  width: 225px;
  height: 225px;

  border-radius: 50%;
  overflow: hidden;

  border: 7px solid rgba(255,255,255,0.92);
  box-shadow: 0 10px 28px rgba(90,110,140,0.14);
}

.profile-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* YHTEYSTIEDOT */

.contact-box {
  max-width: 850px;
  margin: 60px auto 0 auto;

  text-align: center;

  background-color: rgba(255, 236, 243, 0.84);

  padding: 38px 36px;
  border-radius: 32px;

  backdrop-filter: blur(10px);

  box-shadow: 0 10px 30px rgba(120, 140, 170, 0.10);
  border: 1px solid rgba(255,255,255,0.75);
}

.contact-button {
  display: inline-block;

  margin-top: 20px;

  padding: 14px 28px;

  background-color: rgba(255,255,255,0.62);

  color: var(--deep-berry);

  text-decoration: none;

  font-weight: 600;
  font-size: 1rem;

  letter-spacing: 0.4px;

  border-radius: 40px;

  backdrop-filter: blur(4px);

  box-shadow: 0 8px 20px rgba(90,110,140,0.12);

  transition: 0.3s;
}

.contact-button:hover {
  background-color: rgba(255,255,255,0.92);

  color: var(--deep-berry);

  transform: translateY(-2px);
}

.contact-box h2 {
  margin-bottom: 20px;

  font-family: 'Playfair Display', serif;

  font-size: 2.15rem;
}

.contact-box p {
  margin-bottom: 10px;

  font-size: 1.2rem;

  color: var(--text-color);
}

.contact-box a,
.contact-box a:visited {
  color: var(--deep-berry);

  text-decoration: none;

  font-size: 1.1rem;
}


/* PIENET LINKIT */

.small-links {
  margin-top: 22px;
  text-align: center;
}

.small-links a,
.small-links a:visited {
  font-size: 0.95rem;

  color: var(--text-color);

  text-decoration: none;

  border-bottom: 1px solid var(--text-color);

  transition: 0.3s;
}

.small-links a:hover {
  color: var(--deep-berry);

  border-bottom: 1px solid var(--deep-berry);
}


/* HINNASTO */

.price-box,
.price-info {
  max-width: 1050px;

  margin: 38px auto 0 auto;

  background-color: rgba(255, 236, 243, 0.84);

  padding: 34px 42px;

  border-radius: 30px;

  backdrop-filter: blur(10px);

  box-shadow: 0 10px 30px rgba(120, 140, 170, 0.10);

  border: 1px solid rgba(255,255,255,0.75);

  text-align: center;
}

.price-box h2,
.price-info h2 {
  margin-bottom: 18px;

  font-family: 'Playfair Display', serif;

  font-size: 2rem;
}

.price-box p,
.price-info p {
  margin-bottom: 12px;

  font-size: 1.08rem;

  color: var(--text-color);

  line-height: 1.7;
}

.large-profile {
  width: 300px;
  height: 300px;

  top: -165px;
  right: 45px;
}

.document-link {
  margin-top: 28px;

  text-align: right;
}

.document-link a,
.document-link a:visited {
  font-size: 0.78rem;

  color: var(--text-color);

  opacity: 0.65;

  text-decoration: none;

  border-bottom: 1px solid rgba(47, 95, 145, 0.25);

  transition: 0.25s;
}

.document-link a:hover {
  opacity: 1;

  color: var(--deep-berry);

  border-bottom: 1px solid var(--deep-berry);
}


/* MOBIILI */

@media (max-width: 768px) {

  body {
    background-attachment: scroll;
    overflow-x: hidden;
  }

  .overlay {
    padding: 175px 14px 40px 14px;
  }

  .navbar {
    flex-direction: column;
    justify-content: center;

    gap: 10px;

    padding: 14px 16px;

    backdrop-filter: blur(16px);

    border-radius: 0 0 18px 18px;
  }

  .logo {
    font-size: 1.9rem;

    text-align: center;

    white-space: normal;

    line-height: 1.1;

    max-width: 90%;
  }

  .nav-links {
    gap: 8px;

    justify-content: center;
  }

  .nav-links a {
    padding: 7px 12px;

    font-size: 0.82rem;
  }

  .content-container {
    margin-top: 75px;

    padding: 30px 0;

    flex-direction: column;

    align-items: center;
  }

  .text-box {
    width: 100%;
    min-width: 0;

    padding: 130px 28px 40px 28px;

    border-radius: 26px;
  }

  .text-box-content {
    max-width: 100%;
  }

  .profile-image {
    top: -62px;

    right: 50%;

    transform: translateX(50%);

    width: 178px;
    height: 178px;
  }

  .large-profile {
    width: 220px;
    height: 220px;

    top: -95px;

    right: 50%;

    transform: translateX(50%);
  }

  .eyebrow {
    text-align: center;

    font-size: 0.7rem;

    letter-spacing: 0.8px;

    line-height: 1.4;

    opacity: 0.78;
  }

  .text-box h1 {
    font-size: 1.45rem;

    line-height: 1.22;

    text-align: center;

    text-wrap: balance;

    max-width: 22ch;

    margin-left: auto;
    margin-right: auto;

    margin-bottom: 20px;
  }

  .text-box p {
    font-size: 0.99rem;

    line-height: 1.75;

    text-align: left;

    color: var(--text-color);

    max-width: 38ch;

    margin: 0 auto 18px auto;
  }

  .contact-box {
    width: 100%;

    padding: 30px 24px;

    border-radius: 26px;
  }

  .contact-box h2 {
    font-size: 1.8rem;
  }

  .contact-box p {
    font-size: 1.02rem;

    line-height: 1.65;

    text-align: center;
  }

  .contact-box a,
  .contact-box a:visited {
    font-size: 1rem;

    word-break: break-word;
  }

  .contact-button {
    width: 100%;

    max-width: 260px;

    padding: 13px 20px;

    font-size: 0.98rem;

    text-align: center;
  }

  .small-links,
  .document-link {
    margin-top: 20px;

    text-align: center;
  }

  .small-links a,
  .small-links a:visited,
  .document-link a,
  .document-link a:visited {
    font-size: 0.78rem;
  }

}