/* 転換社債LP専用のスタイルシート */

:root {
  --default-background: hsl(0, 0%, 100%);
  --default-color: hsl(0, 0%, 25%);
  --default-border: hsla(0, 0%, 0%, 10%);

  --dark-background: hsl(220, 5%, 65%);
  --dark-color: hsl(0, 0%, 100%);

  /*
  CBのイメージ図の配色に合わせている
  https://drive.google.com/file/d/1tb8D8ZSrd2rMzcprWzr34uBvSJETvurn/view
  */
  --light-background: hsl(0, 0%, 95%);
  --light-color: hsl(0, 0%, 25%);

  --cover-background: linear-gradient(97deg, #3592d1 0%, rgba(53, 146, 209, 0.75) 50%, #5ec2db 100%);
  --cover-color: hsl(0, 0%, 96%);

  --button-background: hsl(0, 0%, 100%);
  --button-color: hsl(204, 63%, 51%);
  --button-color-hover: hsl(204, 63%, 55%);

  --ghost-white: rgba(249, 250, 251, 1);
}

main {
  line-height: 1.75;
  letter-spacing: 0.02em;
}
.itsudemo-kankin .link-button.white {
  background-color: var(--button-background);
  color: var(--button-color);
}

/* ----------------------------------------
レイアウト
---------------------------------------- */

.center {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.two-columns {
  width: 100%;
  display: flex;
  flex-direction: column;
  row-gap: 20px;
}
@media screen and (min-width: 960px) {
  .two-columns {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 20px;
    row-gap: 20px;
  }
}

.three-columns {
  width: 100%;
  display: flex;
  flex-direction: column;
  row-gap: 20px;
}
@media screen and (min-width: 960px) {
  .three-columns {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 20px;
    row-gap: 20px;
  }
}

/* ----------------------------------------
sectionの共通レイアウト
---------------------------------------- */

/* 配色 */
section {
  background-color: var(--default-background);
  color: var(--default-color);
}
section.dark {
  background-color: var(--dark-background);
  color: var(--dark-color);
}
section.light {
  background-color: var(--light-background);
  color: var(--light-color);
}
section.cover {
  background: var(--cover-background);
  color: var(--cover-color);
}

section h2 > span {
  display: block;
  line-height: 1.2;
  font-size: 0.7em;
}

/* -----------------------------------------------------------------
COVER
----------------------------------------------------------------- */

.cover {
  padding: 30px 25px;
}
@media screen and (min-width: 520px) {
  .cover {
    padding: 60px 40px;
  }
}
@media screen and (min-width: 960px) {
  .cover {
    padding: 100px 100px 0;
  }
}

.cover-grid {
  max-width: min(100%, 660px);
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 40px;
}
@media screen and (min-width: 960px) {
  .cover-grid {
    width: 100%;
    max-width: 1240px;
    display: grid;
    grid-template-columns: 1fr clamp(300px, 35vw, 409px);
    grid-template-rows: auto auto 40px;
    column-gap: 2em;
    row-gap: 60px;
  }
}

.cover h1 {
  grid-column: 1 / -1;
  grid-row: 1;
  line-height: 1.3;
  letter-spacing: 0.05em;
  font-size: clamp(20px, 7.9vw, 55px);
}
@media screen and (min-width: 960px) {
  .cover h1 {
    font-size: clamp(45px, 6vw, 78px);
  }
}

.cover p {
  grid-column: 1;
  align-self: start;
}
@media screen and (min-width: 520px) {
  .cover p {
    align-self: unset;
    font-size: 18px;
  }
}
@media screen and (min-width: 960px) {
  .cover p {
    font-size: 20px;
  }
}

.cover .cover-image {
  width: clamp(100px, 60vw, 350px);
}
@media screen and (min-width: 960px) {
  .cover .cover-image {
    grid-column: 2;
    grid-row: 1 / -1;
    align-self: end;
    width: 100%;
  }
}

.cover .button {
  grid-column: 1;
}

/* -----------------------------------------------------------------
CONVERSION
----------------------------------------------------------------- */

section.conversion {
  background: var(--cover-background);
}
@media screen and (min-width: 960px) {
  section.conversion {
    padding: 70px 100px;
  }
}

/* -----------------------------------------------------------------
特徴
----------------------------------------------------------------- */

.features {
  row-gap: 60px;
}

.features .row {
  display: flex;
  flex-direction: column;
  row-gap: 60px;
}

@media screen and (min-width: 960px) {
  .features .row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 70px;
    row-gap: 20px;
  }
}

.features .box .content {
  display: flex;
  flex-direction: column;
  row-gap: 10px;
}

@media screen and (min-width: 960px) {
  .features .box {
    display: contents;
  }

  .features .box .content {
    grid-row: 1;
  }

  .features .box :where(img, svg) {
    grid-row: 2;
    width: 100%;
  }
}

.features .counter {
  font-weight: bold;
  color: var(--blue-2023);
}

/* -----------------------------------------------------------------
INVESTOR_REVIEWS
----------------------------------------------------------------- */
.investor-reviews {
  padding: 45px 24px 60px;
  width: 100%;
  margin: 0 auto;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 35px;
  background-color: #fff;
  border-bottom: 1px solid var(--default-border);
}

.investor-reviews .title {
  color: var(--blue-2023);
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: 18px;
  font-weight: 700;
  line-height: 30px;
}

.investor-reviews .description {
  display: flex;
  flex-direction: column;
  row-gap: 20px;
  text-align: center;
}

.investor-reviews .company-name {
  font-size: 12px;
  color: #666;
}

@media screen and (min-width: 960px) {
  .investor-reviews {
    padding: 86px 50px 101px;
    row-gap: 50px;
  }
  .investor-reviews .title {
    font-size: 22px;
    line-height: 28px;
  }

  .investor-reviews .description {
    font-size: 18px;
  }

  .investor-reviews .company-name {
    font-size: 14px;
  }
}

/* -----------------------------------------------------------------
RISKS
----------------------------------------------------------------- */

.risks {
  background-color: var(--ghost-white);
  padding: 45px 24px 60px;
  width: 100%;
  margin: 0 auto;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 35px;
}

.risks .title {
  color: var(--blue-2023);
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: 18px;
  font-weight: 700;
  line-height: 30px;
}

.risks .description {
  display: flex;
  flex-direction: column;
  row-gap: 20px;
  text-align: left;
}

.risks .description .heading {
  font-weight: 700;
}
.risks .description .heading::after {
  content: "：";
}

@media screen and (min-width: 960px) {
  .risks {
    padding: 86px 50px 101px;
    row-gap: 50px;
  }
  .risks .title {
    font-size: 22px;
    line-height: 28px;
  }

  .risks .company-name {
    font-size: 14px;
  }
}
