@charset "UTF-8";
/* -------------------------------------------------------------------
  default colors
------------------------------------------------------------------- */
/* -------------------------------------------------------------------
  default web-font
------------------------------------------------------------------- */
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@500&display=swap");
/* -------------------------------------------------------------------
  default spacing
------------------------------------------------------------------- */
/* -------------------------------------------------------------------
  hover anitionの適用（～xまで）
------------------------------------------------------------------- */
/* -------------------------------------------------------------------
  default font-size
------------------------------------------------------------------- */
@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");
/* -------------------------------------------------------------------
  font rem計算
------------------------------------------------------------------- */
/* -------------------------------------------------------------------
  各種rem計算（font以外）
------------------------------------------------------------------- */
/* -------------------------------------------------------------------
  flex時のgapを差し引いた横幅計算
------------------------------------------------------------------- */
/* -------------------------------------------------------------------
  アスペクト比固定
------------------------------------------------------------------- */
/* -------------------------------------------------------------------
  vw変換
------------------------------------------------------------------- */
/* -------------------------------------------------------------------
  2カラム専用
------------------------------------------------------------------- */
/* -------------------------------------------------------------------
  background
------------------------------------------------------------------- */
.background__base {
  background-color: #F7F9FC;
}
.background__white {
  background-color: white;
}
.background__main {
  background-color: #008BCB;
}

/* -------------------------------------------------------------------
  display
------------------------------------------------------------------- */
.d-inline {
  display: inline;
}
.d-inline-block {
  display: inline-block;
}
.d-block {
  display: block;
}
.d-flex {
  display: flex;
}

/* -------------------------------------------------------------------
  show and hide
------------------------------------------------------------------- */
.--sp {
  display: none !important;
}

@media screen and (max-width: 1025px) {
  .--pc {
    display: none !important;
  }
  .--sp {
    display: block !important;
  }
}
/* -------------------------------------------------------------------
  margin / padding
------------------------------------------------------------------- */
.mt-high {
  margin-top: clamp(32px, 5.2083333333vw, 48px);
}
.mt-middle {
  margin-top: clamp(24px, 4.1666666667vw, 40px);
}
.mt-low {
  margin-top: clamp(16px, 2.6041666667vw, 24px);
}
.mt-0 {
  margin-top: 0rem !important;
}

.mr-high {
  margin-right: clamp(32px, 5.2083333333vw, 48px);
}
.mr-middle {
  margin-right: clamp(24px, 4.1666666667vw, 40px);
}
.mr-low {
  margin-right: clamp(16px, 2.6041666667vw, 24px);
}
.mr-0 {
  margin-right: 0rem !important;
}

.mb-high {
  margin-bottom: clamp(32px, 5.2083333333vw, 48px);
}
.mb-middle {
  margin-bottom: clamp(24px, 4.1666666667vw, 40px);
}
.mb-low {
  margin-bottom: clamp(16px, 2.6041666667vw, 24px);
}
.mb-0 {
  margin-bottom: 0rem !important;
}

.ml-high {
  margin-left: clamp(32px, 5.2083333333vw, 48px);
}
.ml-middle {
  margin-left: clamp(24px, 4.1666666667vw, 40px);
}
.ml-low {
  margin-left: clamp(16px, 2.6041666667vw, 24px);
}
.ml-0 {
  margin-left: 0rem !important;
}

.mx-high {
  margin-inline: clamp(32px, 5.2083333333vw, 48px);
}
.mx-middle {
  margin-inline: clamp(24px, 4.1666666667vw, 40px);
}
.mx-low {
  margin-inline: clamp(16px, 2.6041666667vw, 24px);
}
.mx-0 {
  margin-inline: 0rem !important;
}

.my-high {
  margin-block: clamp(32px, 5.2083333333vw, 48px);
}
.my-middle {
  margin-block: clamp(24px, 4.1666666667vw, 40px);
}
.my-low {
  margin-block: clamp(16px, 2.6041666667vw, 24px);
}
.my-0 {
  margin-block: 0rem !important;
}

.ma-high {
  margin: clamp(32px, 5.2083333333vw, 48px);
}
.ma-middle {
  margin: clamp(24px, 4.1666666667vw, 40px);
}
.ma-low {
  margin: clamp(16px, 2.6041666667vw, 24px);
}
.ma-0 {
  margin: 0rem !important;
}

.pt-high {
  padding-top: clamp(32px, 5.2083333333vw, 48px);
}
.pt-middle {
  padding-top: clamp(24px, 4.1666666667vw, 40px);
}
.pt-low {
  padding-top: clamp(16px, 2.6041666667vw, 24px);
}
.pt-0 {
  padding-top: 0rem !important;
}

.pr-high {
  padding-right: clamp(32px, 5.2083333333vw, 48px);
}
.pr-middle {
  padding-right: clamp(24px, 4.1666666667vw, 40px);
}
.pr-low {
  padding-right: clamp(16px, 2.6041666667vw, 24px);
}
.pr-0 {
  padding-right: 0rem !important;
}

.pb-high {
  padding-bottom: clamp(32px, 5.2083333333vw, 48px);
}
.pb-middle {
  padding-bottom: clamp(24px, 4.1666666667vw, 40px);
}
.pb-low {
  padding-bottom: clamp(16px, 2.6041666667vw, 24px);
}
.pb-0 {
  padding-bottom: 0rem !important;
}

.pl-high {
  padding-left: clamp(32px, 5.2083333333vw, 48px);
}
.pl-middle {
  padding-left: clamp(24px, 4.1666666667vw, 40px);
}
.pl-low {
  padding-left: clamp(16px, 2.6041666667vw, 24px);
}
.pl-0 {
  padding-left: 0rem !important;
}

.px-high {
  padding-inline: clamp(32px, 5.2083333333vw, 48px);
}
.px-middle {
  padding-inline: clamp(24px, 4.1666666667vw, 40px);
}
.px-low, .inner, .inner__thin {
  padding-inline: clamp(16px, 2.6041666667vw, 24px);
}
.px-0 {
  padding-inline: 0rem !important;
}

.py-high {
  padding-block: clamp(32px, 5.2083333333vw, 48px);
}
.py-middle {
  padding-block: clamp(24px, 4.1666666667vw, 40px);
}
.py-low {
  padding-block: clamp(16px, 2.6041666667vw, 24px);
}
.py-0 {
  padding-block: 0rem !important;
}

.pa-high {
  padding: clamp(32px, 5.2083333333vw, 48px);
}
.pa-middle {
  padding: clamp(24px, 4.1666666667vw, 40px);
}
.pa-low, .section-search__inner {
  padding: clamp(16px, 2.6041666667vw, 24px);
}
.pa-0 {
  padding: 0rem !important;
}

/* -------------------------------------------------------------------
  layout
------------------------------------------------------------------- */
.section {
  margin-bottom: clamp(28px, 5.9895833333vw, 64px);
}

.inner {
  width: clamp(832px, 120.5729166667vw, 1020px);
  margin-inline: auto;
  max-width: 100%;
}
.inner__wide, .footer__inner {
  width: 1280px;
  max-width: 100%;
  margin-inline: auto;
}
.inner__thin {
  width: clamp(632px, 83.3333333333vw, 648px);
  margin-inline: auto;
  max-width: 100%;
}

@media screen and (max-width: 767px) {
  .inner.--over {
    padding-inline: 0;
  }
}
.page-home .l-container,
.single-post .l-container {
  padding-top: clamp(28px, 5.9895833333vw, 64px);
  width: 100%;
  max-width: 92.5rem;
  margin-inline: auto;
  display: grid;
  grid-template-columns: calc((100% - 3.75rem) * 1020 / 1420) calc((100% - 3.75rem) * 400 / 1420);
  column-gap: 3.75rem;
  padding-inline: clamp(20px, 3.90625vw, 40px);
}
.page-home .l-content,
.single-post .l-content {
  min-width: 0;
}
.page-home .inner,
.single-post .inner {
  width: 100%;
}

@media screen and (max-width: 1024px) {
  .page-home .l-container,
  .single-post .l-container {
    display: block;
    padding-inline: 1.25rem;
  }
  .page-home .l-sidebar,
  .single-post .l-sidebar {
    order: 2;
    margin-top: 1.6666666667rem;
  }
}
/* -------------------------------------------------------------------
  header
------------------------------------------------------------------- */
.header {
  position: relative;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 100%;
  background-color: white;
}
.header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: clamp(4px, 0.7161458333vw, 7px) clamp(16px, 3.6458333333vw, 40px) 0.5rem;
  box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16);
}
.header__logo-text {
  margin: 0;
  font-size: clamp(10px, 1.4322916667vw, 12px);
  font-weight: 400;
}
.header__logo-img {
  width: clamp(170px, 26.4973958333vw, 237px);
  height: auto;
}

/* -------------------------------------------------------------------
  header-nav
------------------------------------------------------------------- */
.header-nav {
  width: 375px;
  margin-inline: auto;
  margin-top: 1.3333333333rem;
}
.header-nav__btn {
  display: flex;
  flex-direction: column;
  row-gap: 0.25rem;
  align-items: center;
  cursor: pointer;
}
.header-nav__btn-burger {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: clamp(24px, 3.6458333333vw, 32px);
  height: clamp(14px, 2.0833333333vw, 18px);
}
.header-nav__btn-burger span {
  display: block;
  width: 100%;
  height: 2px;
  background-color: #008BCB;
  transition: all 0.3s linear;
}
.--on .header-nav__btn-burger span:nth-child(1) {
  transform: rotate(29deg);
  transform-origin: left top;
}
.--on .header-nav__btn-burger span:nth-child(2) {
  width: 0;
}
.--on .header-nav__btn-burger span:nth-child(3) {
  transform: rotate(-29deg);
  transform-origin: left bottom;
}
.header-nav__btn-text {
  line-height: 1;
}
.header-nav__btn-text::before {
  content: "メニュー";
  font-family: "Noto Serif JP", "游明朝", "Yu Mincho", "游明朝体", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HiraMinProN-W3", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
  font-size: clamp(10px, 1.5625vw, 14px);
  color: #008BCB;
}
.--on .header-nav__btn-text::before {
  content: "閉じる";
  margin-inline: 0.5em;
}
.header-nav__ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
}
.header-nav__ul li {
  border-bottom: 1px solid #008BCB;
}
.header-nav__ul li > a {
  display: block;
  padding: 1.6rem 1.0666666667rem;
  color: #008BCB;
  text-decoration: none;
  font-weight: 500;
}
.header-nav__contents {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0;
  transition: transform 0.3s width;
}
.--on .header-nav__contents {
  transition: transform 0.3s width;
  width: 100%;
}
.header-nav__contents-inner {
  position: absolute;
  top: 0;
  right: 0;
  transform: translateX(110%);
  overflow-y: scroll;
  background-color: white;
  width: 100%;
  transition: transform 0.3s linear;
}
.--on .header-nav__contents-inner {
  transform: translateX(0);
}
.header-nav__contents-inner::-webkit-scrollbar {
  width: 5px;
}
.header-nav__contents-inner::-webkit-scrollbar-track {
  background: #f1f1f1;
}
.header-nav__contents-inner::-webkit-scrollbar-thumb {
  background: #bcbcbc;
}
.header-nav__contents-btns {
  display: grid;
  justify-content: center;
  row-gap: 0.5rem;
  padding-block: 2.6666666667rem;
}
.header-nav__contents-btns a {
  min-width: 300px;
  max-width: none;
}
.header-nav__contents-btns.--pc {
  display: flex;
  gap: 2.1333333333rem;
  padding: 0;
}

.pc-header-nav__contents {
  display: flex;
  align-items: center;
  gap: 2.1333333333rem;
  padding: 1rem 0;
}
.pc-header-nav__ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
  display: flex;
  gap: 2.1333333333rem;
}
.pc-header-nav__ul li > a {
  display: block;
  text-decoration: none;
  color: #222222;
  font-weight: 500;
}

@media screen and (min-width: 600px) {
  .pc-header-nav__ul li > a:hover {
    color: #008BCB;
  }
}
/* -------------------------------------------------------------------
  768px以上
------------------------------------------------------------------- */
@media screen and (min-width: 600px) {
  .header-nav {
    width: 412px;
  }
  .header-nav__ul li > a {
    font-size: 1.1333333333rem;
  }
  .header-nav__contents-inner {
    width: 540px;
    padding-top: 2.6666666667rem;
    box-shadow: -4px 4px 8px 0px rgba(0, 139, 203, 0.16);
  }
  .header-nav__contents-btns {
    padding-block: 4.2666666667rem 2.6666666667rem;
  }
}
@media screen and (max-width: 1024px) {
  .pc-header-nav {
    display: none;
  }
}
/* -------------------------------------------------------------------
  footer
------------------------------------------------------------------- */
.footer {
  margin-top: clamp(80px, 15.625vw, 160px);
  background-color: #515456;
}
.footer__inner {
  padding: clamp(40px, 6.7708333333vw, 64px) clamp(16px, 3.6458333333vw, 40px) 1rem;
}
.footer__copy {
  display: block;
  margin-top: clamp(40px, 6.7708333333vw, 64px);
  color: white;
  font-size: 10px;
  text-align: center;
}
.footer__copy a {
  color: white;
  text-decoration: none;
}
.footer-nav__ul {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  gap: 1rem 2rem;
  margin: 0;
  padding: 0;
  list-style-type: none;
}
.footer-nav a {
  color: white;
  text-decoration: none;
  font-size: clamp(12px, 1.6927083333vw, 14px);
}
.footer-nav a:hover {
  color: white;
}

@media screen and (min-width: 768px) {
  .footer-nav__ul {
    flex-direction: row;
    justify-content: center;
  }
}
/* -------------------------------------------------------------------
  title
------------------------------------------------------------------- */
.title__main {
  position: relative;
  padding-bottom: clamp(0px, 0.9765625vw, 15px);
  color: #008BCB;
  font-family: "Noto Serif JP", "游明朝", "Yu Mincho", "游明朝体", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HiraMinProN-W3", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
  font-weight: 500;
  font-size: clamp(24px, 3.6458333333vw, 32px);
  padding-top: clamp(32px, 5.9244791667vw, 59px);
  padding-left: clamp(0px, 0.6510416667vw, 10px);
}
.title__main::before {
  content: "";
  position: absolute;
  top: 0;
  left: calc(-1 * clamp(0px, 2.4739583333vw, 38px));
  display: block;
  width: clamp(137px, 22.2005208333vw, 204px);
  height: clamp(120px, 19.8567708333vw, 185px);
  background-color: #222222;
  border-radius: 50%;
  background: linear-gradient(136.07deg, rgba(0, 139, 203, 0.15) 22.34%, rgba(0, 139, 203, 0) 74.1%);
  filter: blur(10px);
}
.title__main--center, .title__main.--center {
  text-align: center;
}
.title__sub {
  color: #222222;
}
.title__mini {
  font-size: 1rem;
  margin-bottom: 1rem;
  color: #008BCB;
  font-weight: 700;
}
.title__text {
  margin-bottom: 1rem;
  color: #008BCB;
  font-weight: 700;
  font-size: 1.2rem;
}

/* -------------------------------------------------------------------
  table
------------------------------------------------------------------- */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

table,
.table,
.table-scroll {
  width: 100%;
  position: relative;
}
table tr,
.table tr,
.table-scroll tr {
  position: relative;
}
table th, table td,
.table th,
.table td,
.table-scroll th,
.table-scroll td {
  padding-block: clamp(24px, 4.1666666667vw, 40px);
  padding-left: clamp(12px, 2.734375vw, 30px);
  border-bottom: 1px solid #008BCB;
}
table th,
.table th,
.table-scroll th {
  text-align: left;
  width: max-content;
  vertical-align: baseline;
  min-width: 6em;
}
table__remark,
.table__remark,
.table-scroll__remark {
  padding-top: 0.5rem;
  text-align: right;
  font-size: 0.75rem;
}
table.--price th, table.--price td,
.table.--price th,
.table.--price td,
.table-scroll.--price th,
.table-scroll.--price td {
  font-weight: bold;
}
table.--price th,
.table.--price th,
.table-scroll.--price th {
  font-size: min(1.25rem, 3.7333333333vw);
}
table.--price td,
.table.--price td,
.table-scroll.--price td {
  text-align: right;
  font-size: min(1.25rem, 4.8vw);
  padding-right: min(2rem, 3.2vw);
}
table.--price td small,
.table.--price td small,
.table-scroll.--price td small {
  font-size: min(1.25rem, 3.2vw);
}

.table-scroll__wrap {
  overflow: auto;
  white-space: nowrap;
  margin: 1em 0;
}
.table-scroll::-webkit-scrollbar {
  height: 5px;
}
.table-scroll::-webkit-scrollbar-track {
  background: #F1F1F1;
}
.table-scroll::-webkit-scrollbar-thumb {
  background: #BCBCBC;
}

@media screen and (max-width: 767px) {
  .table tr {
    display: grid;
    gap: 0.5rem;
  }
  .table th {
    padding-bottom: 0;
    padding-left: 0;
    border-bottom: 0;
  }
  .table td {
    padding-top: 0;
    padding-left: 0;
  }
}
/* -------------------------------------------------------------------
  main-sub
------------------------------------------------------------------- */
.main-sub {
  position: relative;
  margin-bottom: clamp(40px, 7.8125vw, 80px);
}
.main-sub__contents {
  padding-top: clamp(0px, 3.2552083333vw, 50px);
}
.main-sub__title {
  margin-top: 0;
  padding-top: clamp(63px, 10.6119791667vw, 100px);
}

.breadcrumbs {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  background-color: white;
  border-bottom: 1px solid #F1F2F2;
  font-size: clamp(10px, 1.4322916667vw, 12px);
}
.breadcrumbs__inner {
  margin-inline: 0;
  padding-inline: clamp(16px, 6.25vw, 80px);
  padding-block: 0.25rem;
}
.breadcrumbs__inner > span a, .breadcrumbs__inner > span span {
  text-decoration: none;
  color: #3B4043;
}
.breadcrumbs span {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.breadcrumbs.--single {
  position: relative;
  border-bottom: 0;
}
.breadcrumbs.--single .breadcrumbs__inner {
  padding-inline: initial;
}

@font-face {
  font-family: "icomoon";
  src: url("../fonts/icomoon.eot?k92fvz");
  src: url("../fonts/icomoon.eot?k92fvz#iefix") format("embedded-opentype"), url("../fonts/icomoon.woff2?k92fvz") format("woff2"), url("../fonts/icomoon.ttf?k92fvz") format("truetype"), url("../fonts/icomoon.woff?k92fvz") format("woff"), url("../fonts/icomoon.svg?k92fvz#icomoon") format("svg");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}
[class^=icon-], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: "icomoon" !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-arrow-l:before {
  content: "\e900";
  color: #515456;
}

.icon-arrow-r:before {
  content: "\e908";
  color: #515456;
}

.icon-crown:before {
  content: "\e901";
  color: #ffdb1c;
}

.icon-doctor:before {
  content: "\e902";
  color: #228cc6;
}

.icon-instagram:before {
  content: "\e903";
  color: #515456;
}

.icon-new:before {
  content: "\e905";
  color: #228cc6;
}

.icon-search:before {
  content: "\e906";
  color: #228cc6;
}

.icon-user:before {
  content: "\e907";
  color: #fca421;
}

.icon-x:before {
  content: "\e904";
  color: #515456;
}

/* -------------------------------------------------------------------
  btn-block
------------------------------------------------------------------- */
.btn-block {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: 0.5em;
  min-width: 250px;
  max-width: max-content;
  padding: 0.7333333333rem 1.0666666667rem;
  border: 2px solid #008BCB;
  border-radius: 4px;
  font-size: clamp(16px, 2.34375vw, 20px);
  font-weight: bold;
  text-decoration: none;
  outline: 0 !important;
  cursor: pointer;
}
.btn-block.--info, .btn-block__info, .section-search__form-submit__btn {
  background-color: #008BCB;
  border-color: #008BCB;
  color: white;
}
@media screen and (min-width: 600px) {
  .btn-block.--info, .btn-block__info, .section-search__form-submit__btn {
    transition: all 0.3s linear;
  }
  .btn-block.--info:hover, .btn-block__info:hover, .section-search__form-submit__btn:hover {
    background-color: transparent;
    color: #008BCB;
  }
}
.btn-block.--accent, .btn-block__accent, .btn-block.--sub, .btn-block__sub {
  border-radius: 8px;
  font-size: 1.0666666667rem;
  padding: 0.7333333333rem 1.2666666667rem 0.7333333333rem 3.5333333333rem;
}
.btn-block.--accent span, .btn-block__accent span, .btn-block.--sub span, .btn-block__sub span {
  position: relative;
}
.btn-block.--accent span::before, .btn-block__accent span::before, .btn-block.--sub span::before, .btn-block__sub span::before {
  content: "";
  position: absolute;
}
.btn-block.--accent, .btn-block__accent {
  background-color: #D88500;
  border-color: #D88500;
  color: white;
}
@media screen and (min-width: 600px) {
  .btn-block.--accent, .btn-block__accent {
    transition: all 0.3s linear;
  }
  .btn-block.--accent:hover, .btn-block__accent:hover {
    background-color: transparent;
    color: #D88500;
  }
}
.btn-block.--accent span::before, .btn-block__accent span::before {
  top: 50%;
  left: -1.9333333333rem;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  background: url(../assets/ico-mail.svg) no-repeat center/contain;
}
.btn-block.--sub, .btn-block__sub {
  background-color: #0A0F51;
  border-color: #0A0F51;
  color: white;
}
@media screen and (min-width: 600px) {
  .btn-block.--sub, .btn-block__sub {
    transition: all 0.3s linear;
  }
  .btn-block.--sub:hover, .btn-block__sub:hover {
    background-color: transparent;
    color: #0A0F51;
  }
}
.btn-block.--sub span::before, .btn-block__sub span::before {
  content: "";
  top: 50%;
  left: -2rem;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  background: url(../assets/ico-writing.svg) no-repeat center/contain;
}
.btn-block.--round, .btn-block__round {
  padding-inline: 1.6rem;
  border-radius: 2em;
  font-weight: 500;
}
.btn-block.--round span, .btn-block__round span {
  position: relative;
}
.btn-block.--round span::after, .btn-block__round span::after {
  content: "\e908";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: -1.3333333333rem;
  font-family: icomoon;
  font-size: 0.9333333333rem;
  line-height: 1.7;
}
.btn-block.--top {
  min-width: 510px;
}
.text-center .btn-block, .btn-block.--center {
  margin-inline: auto;
}

@media screen and (min-width: 600px) {
  .btn-block.--round {
    transition: all 0.3s linear;
  }
  .btn-block.--round span::after {
    transition: all 0.3s linear;
  }
  .btn-block.--round:hover {
    background-color: #008BCB;
    color: white;
  }
  .btn-block.--round:hover span::after {
    border-color: white;
    right: -2rem;
  }
  .btn-block.--accent:hover, .btn-block__accent:hover {
    background-color: #ffffff;
  }
  .btn-block.--accent:hover span, .btn-block__accent:hover span {
    color: #D88500;
  }
  .btn-block.--accent:hover span::before, .btn-block__accent:hover span::before {
    background: url(../assets/ico-mail__hover.svg) no-repeat center/contain;
  }
  .btn-block.--sub::before, .btn-block__sub::before {
    transition: all 0.3s linear;
  }
  .btn-block.--sub:hover, .btn-block__sub:hover {
    background-color: #ffffff;
  }
  .btn-block.--sub:hover span, .btn-block__sub:hover span {
    color: #0A0F51;
  }
  .btn-block.--sub:hover span::before, .btn-block__sub:hover span::before {
    background: url(../assets/ico-writing__hover.svg) no-repeat center/contain;
  }
}
@media screen and (max-width: 767px) {
  .btn-block.--top {
    min-width: 283px;
  }
}
.post-content p,
.editor-area p {
  text-align: justify;
  line-height: 2;
}
.post-content b,
.editor-area b {
  color: #008BCB;
  font-size: 1.2em;
}
.post-content img,
.editor-area img {
  margin-bottom: calc(1.6rem - 1em);
}

.post-links:not(.--only-next) {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 1rem;
}
.post-links__next, .post-links__prev {
  font-size: 0.8rem;
  text-decoration: none;
  color: #777;
}
.post-links__next {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 0.5em;
}
.post-links__next::after {
  content: "→";
  flex-shrink: 0;
}
.post-links__prev {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  gap: 0.5em;
}
.post-links__prev::before {
  content: "←";
  flex-shrink: 0;
}

/* -------------------------------------------------------------------
  category-list
------------------------------------------------------------------- */
.category-section {
  margin-top: clamp(14px, 2.9947916667vw, 32px);
  margin-bottom: clamp(14px, 3.5807291667vw, 41px);
}
.category-title {
  color: #008BCB;
  font-size: clamp(14px, 2.2135416667vw, 20px);
}
.category-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0 clamp(14px, 1.953125vw, 16px);
  row-gap: clamp(14px, 1.953125vw, 16px);
  margin: clamp(14px, 2.2135416667vw, 20px) 0 0;
  padding: 0;
  list-style-type: none;
  line-height: 1.5;
}
.category-list li a {
  padding: clamp(6px, 0.9114583333vw, 8px) clamp(16px, 3.125vw, 32px);
  font-weight: 500;
  font-size: clamp(14px, 1.953125vw, 16px);
  border: 2px solid #008BCB;
  border-radius: 2em;
  text-decoration: none;
  display: block;
}

@media screen and (min-width: 600px) {
  .category-list li a:hover {
    background-color: #008BCB;
    color: white;
  }
}
/* -------------------------------------------------------------------
  base
------------------------------------------------------------------- */
html,
body {
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
}

body {
  font-size: 15px;
  font-family: noto-sans-cjk-jp, sans-serif;
  font-weight: 400;
  line-height: 1.5;
  color: #222222;
  background-color: #ffffff;
  width: 100%;
  overflow-x: hidden;
}
body.--on {
  overflow: hidden;
}

a {
  color: #008BCB;
  text-decoration: underline;
}
@media screen and (min-width: 600px) {
  a {
    transition: 0.3s linear color;
  }
  a:hover {
    color: #008BCB;
  }
  a img {
    transition: 0.3s linear opacity;
  }
  a img:hover {
    opacity: 0.5;
  }
}

p {
  text-align: justify;
  margin-top: 0;
}
p:last-child {
  margin-bottom: 0;
}

img,
svg {
  vertical-align: bottom;
  max-width: 100%;
}

img {
  height: auto;
}

figure {
  margin: 0;
}

* {
  box-sizing: border-box;
}

h2,
h3,
h4,
h5 {
  margin: 0;
}

ol,
ul {
  margin-top: 0;
  padding-left: 1.5em;
}

.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}

.flex-column {
  display: flex;
  flex-direction: column;
  row-gap: 2.6666666667rem;
}
.flex-column__item {
  margin: 0;
}
.--border .flex-column__item:not(:first-child) {
  padding-top: 2.6666666667rem;
  border-top: 1px solid #008BCB;
}
.flex-column__item-dt {
  margin-bottom: 0.5rem;
  font-weight: bold;
}
.flex-column__item-dt a {
  color: #222222;
}
.flex-column__item-dd {
  margin-left: 0;
  font-size: 14px;
}

.content-catch {
  text-align: center;
  font-family: "Noto Serif JP", "游明朝", "Yu Mincho", "游明朝体", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HiraMinProN-W3", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
  font-size: clamp(20px, 2.8645833333vw, 24px);
  font-weight: 500;
  color: #008BCB;
}
.content-catch .--large {
  font-size: 1.2em;
}

.section-search {
  background-color: #f6fafd;
  border: 2px solid #008BCB;
}
.section-search__inner {
  width: max-content;
  max-width: 100%;
  margin-inline: auto;
}
.section-search__title {
  font-size: clamp(20px, 2.734375vw, 22px);
  font-weight: 500;
  color: #008BCB;
  padding-top: clamp(14px, 1.953125vw, 16px);
}
.section-search__title::before {
  content: "\e906";
  font-family: icomoon;
  margin-right: clamp(4px, 0.78125vw, 8px);
}
.section-search__form {
  display: flex;
  column-gap: 4px;
  margin-top: clamp(8px, 1.5625vw, 16px);
  width: 100%;
}
.section-search__form-input {
  width: 100%;
  padding: 0.5rem 1rem;
  border: 2px solid #008BCB;
  border-radius: 4px;
  font-size: 0.9333333333rem;
}
.section-search__form-input__wrap {
  flex: 1 1 auto;
  min-width: 0;
}
.section-search__form-submit {
  flex-shrink: 0;
  flex: 0 0 auto;
}
.section-search__form-submit__btn {
  height: 100%;
  padding-inline: 1rem;
  border-radius: 4px;
  font-size: 0.9333333333rem;
  font-weight: 700;
}
.section-search__form-submit__btn::before {
  content: "\e906";
  font-family: icomoon;
  margin-right: 4px;
}
.section-search__tags {
  margin-top: 0.5rem;
}
.section-search__btns {
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 2.0182291667vw, 17px);
  padding-top: clamp(14px, 2.2135416667vw, 20px);
  padding-bottom: clamp(14px, 1.8229166667vw, 14px);
}
.section-search__btns .btn-block {
  max-width: 100%;
}
.section-search__btns .btn-block.--accent::before {
  left: clamp(36px, 4.9479166667vw, 40px);
}
.section-search__btns .btn-block.--sub::before {
  left: clamp(39px, 5.46875vw, 45px);
}

.sticky-cvp {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background-color: rgba(255, 255, 255, 0.8);
  transform: translateY(100%);
  transition: 0.3s linear transform;
}
.sticky-cvp.--sticky {
  transform: translateY(0%);
  z-index: 100;
}
.sticky-cvp__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  justify-content: center;
  column-gap: clamp(3px, 1.2369791667vw, 16px);
  max-width: 556px;
  margin-inline: auto;
  padding: 0.5rem 0.5rem;
}
.sticky-cvp__inner .btn-block {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  text-align: center;
  font-size: clamp(14px, 1.953125vw, 16px);
}

.sidebar-ranking {
  margin-top: clamp(40px, 7.8125vw, 80px);
  margin-bottom: clamp(40px, 6.5104166667vw, 60px);
}
.sidebar-ranking__title {
  color: #008BCB;
  font-size: clamp(14px, 2.2135416667vw, 20px);
  margin-bottom: 1.0666666667rem;
}
.sidebar-ranking__list {
  padding: 0;
  margin: 0;
  list-style-type: none;
}
.sidebar-ranking__item {
  display: flex;
  gap: clamp(14px, 2.34375vw, 22px);
}
.sidebar-ranking__item:not(:last-of-type) {
  margin-bottom: clamp(20px, 3.3854166667vw, 32px);
}
.sidebar-ranking__rank {
  flex-basis: clamp(23px, 4.4921875vw, 46px);
}
.sidebar-ranking__rank span {
  border-radius: 50px;
  width: clamp(23px, 4.4921875vw, 46px);
  height: clamp(23px, 4.4921875vw, 46px);
  display: flex;
  justify-content: center;
  font-size: clamp(12px, 1.8229166667vw, 16px);
  font-family: "Inter", sans-serif;
  line-height: 1;
  align-items: center;
}
.sidebar-ranking__rank span.--rank1 {
  background-color: #f8d202;
}
.sidebar-ranking__rank span.--rank2 {
  background-color: #cccccc;
}
.sidebar-ranking__rank span.--rank3 {
  background-color: #e3860a;
}
.sidebar-ranking__rank span.--rank4, .sidebar-ranking__rank span.--rank5 {
  background-color: #ffffff;
  border: 1px solid #222222;
}
.sidebar-ranking__body {
  flex: 1;
}
.sidebar-ranking__link {
  color: #222222;
  font-size: clamp(14px, 2.0833333333vw, 18px);
}
.sidebar-ranking__meta {
  display: flex;
  gap: 1rem;
  margin-bottom: 0.1875rem;
}

/* -------------------------------------------------------------------
  1024px以上
------------------------------------------------------------------- */
/* -------------------------------------------------------------------
  768px以上
------------------------------------------------------------------- */
/* -------------------------------------------------------------------
  767以下
------------------------------------------------------------------- */
@media screen and (max-width: 767px) {
  .sticky-cvp .btn-block {
    padding-inline: 0;
  }
  .sticky-cvp .btn-block.--accent span::before, .sticky-cvp .btn-block__accent span::before, .sticky-cvp .btn-block.--sub span::before, .sticky-cvp .btn-block__sub span::before {
    display: none;
  }
  .l-sidebar .category-section,
  .sidebar-ranking {
    display: none;
  }
}
/* -------------------------------------------------------------------
  content-user
------------------------------------------------------------------- */
.content-user {
  display: grid;
  gap: 0 1.6rem;
  grid-template: "img name" auto "img job" auto "img profile" auto "img sns" 1fr/auto 1fr;
  padding-inline: clamp(15px, 2.9296875vw, 30px);
}
.content-user:not(:last-child) {
  border-bottom: 1px solid #008BCB;
  padding-bottom: 4.2666666667rem;
}
.content-user__thumb {
  aspect-ratio: 1;
  width: 100%;
  grid-area: img;
  width: 5.1333333333rem;
}
.content-user__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.content-user__thumb-img {
  border-radius: 50%;
}
.content-user__name {
  grid-area: name;
  margin-bottom: 0;
  font-size: 1.0666666667rem;
  font-weight: 700;
  margin-bottom: 0.6rem;
}
.content-user__job {
  grid-area: job;
  font-size: clamp(12px, 1.8229166667vw, 16px);
  margin-bottom: clamp(20px, 3.90625vw, 40px);
}
.content-user__profile {
  grid-area: profile;
  margin-bottom: 0.5em;
  text-align: initial;
  font-size: clamp(12px, 1.8229166667vw, 16px);
  line-height: 2;
}
.content-user__sns {
  grid-area: sns;
  display: flex;
  column-gap: 0.5rem;
}
.content-user__sns-url {
  margin-right: 1rem;
  font-size: 0.8rem;
}
.content-user__sns-url::before {
  content: "url:";
}
.content-user__sns-x, .content-user__sns-instagram {
  text-decoration: none;
}

.terms-content:not(:last-child) {
  padding-bottom: 2.6666666667rem;
}
.terms-content h2 {
  margin-bottom: 1.6rem;
}
.terms-content h2:not(:last-child) {
  margin-top: 2.6666666667rem;
}/*# sourceMappingURL=terms.css.map */