:root {
  --leap-project-main: var(--clr-primary-default, #0073aa);
  --leap-project-text-primary: var(--clr-text-primary, #404044);
  --leap-project-wh: var(--clr-wht, #fff);
  --leap-project-bg: var(--clr-bg-01, #F7F7F4);
  --leap-project-mono-01: var(--clr-mono-01, #F2F2F2);
  --leap-project-mono-02: var(--clr-mono-03, #BABDC4);
  --leap-project-bold: var(--font-weight-bold, 600);
  --leap-project-radius-none: 0;
  --leap-project-radius-default: var(--border-radius-primary, .5rem);
  --leap-project-radius-max: var(--border-radius-max, 100vmax);
}
/* table
********************************************** */
.leap_table thead th {
  background-color: var(--leap-project-main);
  color: var(--leap-project-wh);
}
.leap_table.table-row-1 tbody th {
  background-color: color-mix(in srgb, var(--leap-project-main) 20%, transparent);
}

/* 見出し付きボックス
********************************************** */
/* Leap Box Base CSS */
.leap_box {
  position: relative;
  .box--ttl {
    font-size: max(16px, 1.25rem);
    line-height: 2.2;
  }
  .box--txt {
    font-size: max(14px, 1rem);
    line-height: 2;
  }
}
@media screen and (max-width: 767px) {
  .leap_box {
    .box--ttl {
      font-size: clamp(12px, 1rem, 14px);
    }
    .box--txt {
      font-size: clamp(10px, 0.875rem, 12px);
    }
  }
} 

/* パターン1
********************************************** */
.leap_box.leap_box-01 {
  padding: 1.5rem 2.5rem;
  border: 1px solid var(--leap-project-main);
  background-color: var(--leap-project-white);
  
  .box--ttl {
    margin-bottom: 0.5rem;
    text-align: center;
    color: var(--leap-project-main) !important;
  }
}

@media screen and (max-width: 767px) {
  .leap_box.leap_box-01 {
    padding: 1rem 1.5rem; 
  }
} 

/* パターン2
********************************************** */
.leap_box.leap_box-02 {
  padding: 1.5rem 2.5rem;
  background-color: color-mix(in srgb, var(--leap-project-main) 20%, transparent);
  .box--ttl {
    margin-bottom: 0.5rem;
    text-align: center;
    color: var(--leap-project-main) !important;
  }
}

@media screen and (max-width: 767px) {
  .leap_box.leap_box-02 {
    padding: 1rem 1.5rem;
  }
}

/* パターン2-2
********************************************** */
.leap_box.leap_box-02-2 {
  padding: 1.5rem 2.5rem;
  background-color: color-mix(in srgb, var(--leap-project-main) 20%, transparent);
  .box--ttl {
    margin-bottom: 0.5rem;
    color: var(--leap-project-main) !important;
  }
}

@media screen and (max-width: 767px) {
  .leap_box.leap_box-02-2 {
    padding: 1rem 1.5rem;
  }
}

/* パターン2-3
********************************************** */
.leap_box.leap_box-02-3 {
  padding: 1.5rem 2.5rem;
  background-color: color-mix(in srgb, var(--leap-project-main) 20%, transparent);
  .box--ttl {
    margin-bottom: 0.5rem;
    padding-left: 1rem;
    border-left: 3px solid currentColor;
    color: var(--leap-project-main) !important;
  }
}

@media screen and (max-width: 767px) {
  .leap_box.leap_box-02-3 {
    padding: 1rem 1.5rem;
    .box--ttl {
      padding-left: 0.75rem;
      border-left: 2px solid currentColor;
    }
  }
}

/* パターン2-4
********************************************** */
.leap_box.leap_box-02-4 {
  padding: 1.5rem 2.5rem;
  background-color: color-mix(in srgb, var(--leap-project-main) 20%, transparent);
  .box--ttl {
    margin-bottom: 1rem;
    border-bottom: 1px solid currentColor;
    color: var(--leap-project-main) !important;
  }
}

@media screen and (max-width: 767px) {
  .leap_box.leap_box-02-4 {
    padding: 1rem 1.5rem;
  }
}

/* パターン3
********************************************** */
.leap_box.leap_box-03 {
  position: relative;
  padding: 1.5rem 2.5rem;
  border: 1px solid var(--leap-project-main);
  background-color: var(--leap-project-wh);
  .box--ttl {
    position: absolute;
    top: -.5lh;
    left: 1em;
    padding-inline: 1rem;
    background-color: var(--leap-project-wh);
    color: var(--leap-project-main) !important;
  }
}

@media screen and (max-width: 767px) {
  .leap_box.leap_box-03 {
    padding: 1rem 1.5rem;
    .box--ttl {
      left: 1.5em;
    }
  }
}

/* パターン4
********************************************** */
.leap_box.leap_box-04 {
  padding: 0;
  border: 1px solid var(--leap-project-main);
  background-color: var(--leap-project-wh);
  .box--ttl {
    width: fit-content;
    text-align: center;
    padding-inline: 1rem;
    background-color: var(--leap-project-main);
    color: var(--leap-project-wh) !important;
  }
  .box--txt {
    padding: 1.5rem 2.5rem;
  }
}

/* パターン5
********************************************** */
.leap_box.leap_box-05 {
  padding: 0;
  background-color: var(--leap-project-wh);
  .box--ttl {
    width: fit-content;
    text-align: center;
    padding-inline: 1rem;
    background-color: var(--leap-project-main);
    color: var(--leap-project-wh) !important;
  }
  .box--txt {
    padding: 1.5rem 2.5rem;
    border: 1px solid var(--leap-project-main);
    background-color: var(--leap-project-wh);
  }
}

/* パターン6
********************************************** */
.leap_box.leap_box-06 {
  padding: 0;
  background-color: var(--leap-project-wh);
  .box--ttl {
    width: 100%;
    text-align: center;
    padding-inline: 1rem;
    background-color: var(--leap-project-main);
    color: var(--leap-project-wh) !important;
  }
  .box--txt {
    padding: 1.5rem 2.5rem;
    border-left: 1px solid var(--leap-project-main);
    border-right: 1px solid var(--leap-project-main);
    border-bottom: 1px solid var(--leap-project-main);
    background-color: var(--leap-project-wh);
  }
}

/* パターン7
********************************************** */
.leap_box.leap_box-07 {
  padding: 0;
  background-color: var(--leap-project-wh);
  box-shadow: 0px 0px 24px 0px rgba(0, 0, 0, 0.10);
  backdrop-filter: blur(4px);
  .box--ttl {
    width: 100%;
    text-align: center;
    padding-inline: 1rem;
    background-color: var(--leap-project-main);
    color: var(--leap-project-wh) !important;
  }
  .box--txt {
    padding: 1.5rem 2.5rem;
    background-color: var(--leap-project-wh);
  }
}

/* パターン7-2
********************************************** */
.leap_box.leap_box-07-2 {
  padding: 0;
  background-color: var(--leap-project-wh);
  box-shadow: 0px 0px 24px 0px rgba(0, 0, 0, 0.10);
  backdrop-filter: blur(4px);
  .box--ttl {
    width: 100%;
    text-align: center;
    padding-inline: 1rem;
    background-color: var(--leap-project-main);
    color: var(--leap-project-wh) !important;
  }
  .box--txt {
    padding: 1.5rem 2.5rem;
    border-left: 1px solid var(--leap-project-main);
    border-right: 1px solid var(--leap-project-main);
    border-bottom: 1px solid var(--leap-project-main);
    background-color: var(--leap-project-wh);
  }
}

/* ボックス
********************************************** */
.leap_box-normal {
  padding: 1.5rem 2.5rem;
  
  .box--txt {
    font-size: max(14px, 1rem);
    line-height: 2;
  }
}
@media screen and (max-width: 767px) {
  .leap_box-normal {
    padding: 1rem 1.5rem;
    .box--txt {
      font-size: max(12px, 0.875rem);
    }
  }
}

.leap_box-normal.leap_box-01 {
  border: 1px solid var(--leap-project-mono-02);
  background-color: var(--leap-project-wh);
}

.leap_box-normal.leap_box-02 {
  background-color: var(--leap-project-mono-01);
}

.leap_box-normal.leap_box-03 {
  padding: 1rem;
  background-color: color-mix(in srgb, var(--leap-project-main) 20%, transparent);

  .box--txt {
    padding: 1.5rem;
    border: 1px dotted var(--leap-project-main);
  }
}
@media screen and (max-width: 767px) {
  .leap_box-normal.leap_box-03 {
    padding: 1rem 1.5rem;
  }
}

/* ブログカード
********************************************** */
/* --- blog_card --- */
.blog_card {
  position: relative;
  margin-block: 2.5rem;
  padding: 1.5rem 2rem 1.5rem 1.5rem;
  border: 1px solid var(--leap-project-text-primary);
}
.blog_card:has(.no-img) {
  padding: 1.5rem 2rem;
  border-radius: 100vmax;
}
.blog_card--caption {
  position: absolute;
  top: -1em;
  left: 40px;
  z-index: 1;
  display: inline-block;
  padding: 0 8px;
  font-size: max(14px, 1rem);
  line-height: 2;
  background: var(--leap-project-wh);
}
.blog_card--content {
  gap: 24px;
}
.blog_card--img {
  width: 12.5rem;
  aspect-ratio: 3/2;

  svg {
    fill: var(--leap-project-main);
  }
}
.blog_card--img.no-img {
  width: 4rem;
  height: 4rem;
}
.blog_card--txtarea {
  flex: 1;
}
.blog_card .blog_card--ttl {
  margin-bottom: 0 !important;
  font-size: max(16px, 1.25rem);
}
@media screen and (min-width: 768px) {
  .blog_card .blog_card--ttl:has(+ .blog_card--txt) {
    margin-bottom: 8px !important;
  }
}
.blog_card--txt {
  font-size: max(12px, 0.875rem);
}
@media screen and (max-width: 767px) {
  .blog_card {
    margin-block: 1rem;
    padding: 1rem 1.5rem;
  }
  .blog_card:has(.no-img) {
    padding: 1rem 1.5rem;
  }
  .blog_card--content {
    gap: 12px;
  }
  .blog_card--caption {
    left: 24px;
    font-size: 0.875rem;
  }
  .blog_card--img {
    width: 6.25rem;
  }
  .blog_card--img.no-img {
    width: 2rem;
    height: 2rem;
  }
  .blog_card .blog_card--ttl {
    font-size: 1rem;
  }
  .blog_card--txt {
    display: none !important;
  }
}

/* --- title_card --- */
.title_card {
  position: relative;
  margin-block: 2rem;
  padding: 1.5rem 2rem;
  border: 1px solid var(--leap-project-text-primary);
  border-radius: 100vmax;
}
.title_card--caption {
  position: absolute;
  top: -1em;
  left: 32px;
  z-index: 1;
  display: inline-block;
  padding: 0 12px;
  font-size: max(14px, 1.125rem);
  line-height: 2;
  background: var(--leap-project-wh);
  border-radius: 100vmax;
}
.title_card--content {
  display: grid;
  grid-template-columns: 4rem 1fr;
  align-items: center;
  gap: 16px;
}
.title_card--txtarea {
  flex: 1;
}
.title_card .title_card--ttl {
  font-size: max(16px, 1.25rem);
  margin-bottom: 0;
}
.title_card--img {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
}
.title_card--img svg {
  fill: var(--leap-project-main);
}
.title_card.simple {
  margin-block: 1rem;
  padding: 0.5rem 0;
  border: none;

  .title_card--img {
    border-radius: 100vmax;
    background-color: var(--leap-project-text-primary);
  }
  .title_card--img svg {
    width: 1.5rem !important;
    fill: var(--leap-project-wh);
  }
}
@media screen and (max-width: 767px) {
  .title_card {
    margin-block: 1rem;
    padding: 1rem 1.5rem;
  }
  .title_card.simple {
    margin-block: 0.5rem;
    padding: 0.5rem 0;
  }
  .title_card--img {
    width: 2rem;
    height: 2rem;
  }
  .title_card--caption {
    font-size: 0.875rem;
  }
  .title_card .title_card--ttl {
    font-size: 1.125rem;
  }
  .title_card--content {
    grid-template-columns: 2.5rem 1fr;
  }
  .title_card--caption {
    font-size: 0.75rem;
  }
}

/* ブログCTA
********************************************** */
/* --- blog_cta --- */
.blog_cta {
  margin-block: 2.5rem;
  padding: 1.5rem 2rem;
  background-color: var(--leap-project-bg);
}
.blog_cta.reverse {
  .blog_cta--link {
    flex-direction: row-reverse;
  }
}
.blog_cta--ttl {
  text-align: center;
  font-size: max(16px, 1.25rem);
  margin-bottom: 0.75rem;
}
.blog_cta--link {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;

  .btn .icon-svg {
    position: static;
    inset: auto;
    transform: inherit;
    width: 1.5rem;
    height: 1.5rem;
  }
}
.blog_cta .blog_cta--link .btn {
  margin-bottom: 0;
}
.blog_cta--link .btn a::before {
  display: none;
}
.blog_cta--link a {
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .blog_cta {
    margin-block: 1rem;
    padding: 1rem 1.5rem;
  }
  .blog_cta--link {
    flex-direction: column;
    gap: 0.5rem;
  }
  .blog_cta.reverse {
    .blog_cta--link {
      flex-direction: column-reverse;
    }
  }
  .blog_cta--link .cta_tel {
    width: 100%;
  }
}

/* bタグ
********************************************** */
b {
  font-weight: var(--leap-project-bold);
}

/* ボタン
********************************************** */
.leap_btn.btn-radius-default a {
  border-radius: var(--leap-project-radius-default) !important;
}
.leap_btn.btn-radius-none a {
  border-radius: var(--leap-project-radius-none) !important;
}
.leap_btn.btn-radius-max a {
  border-radius: var(--leap-project-radius-max) !important;
}