@charset "UTF-8";

html {
  height: 100%;
  font-size: 100%;
  /* ブラウザのデフォルト = 16px */
}

body {
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", "游ゴシック体", YuGothic, "メイリオ", Meiryo, "ヒラギノ角ゴ ProN", sans-serif;
  width: 100%;
  max-width: 1920px;
  /* background: #fafafa; */
  word-break: break-word;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  letter-spacing: .5px;
  color: #555;
}

/* fade-in */
body {
  animation: loading .4s;
}

@keyframes loading {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

a {
  transition: var(--hover-transition);
  color: #555;
}

a:hover {
  transition: var(--hover-transition);
  opacity: var(--hover-opacity-8);
}

ol {
  padding: 0 0 0 20px;
  text-indent: 5px;
}

img,
video {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
img {
	image-rendering: -webkit-optimize-contrast;
}


/* フォームの共通クラス .common-search-form-01 内の input[name="as_q"] を指定 */
.common-search-form-01 input[name="as_q"] {
  /* デフォルトの背景色（入力前の背景色を設定） */
  background-color: #ffffff !important; /* 例: 白 */
  transition: background-color 0.3s; /* スムーズな変化のため */
}

/* has-valueクラスが付与されたときのスタイル */
.common-search-form-01 input[name="as_q"].has-value {
  /* 入力値があるときの背景色を透明に設定 */
  background-color: transparent !important;
}


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

table th,
table td {
  vertical-align: middle;
  text-align: left;
  font-weight: normal;
}

table th p,
table td p {
  line-height: 1.6;
}

/*** table-sp-block ***/
.table-sp-block th,
.table-sp-block td {
  display: block;
}

/*** common-table ***/
.common-table th {
  font-weight: bold;
}
.common-table th,.common-table td {
  padding: min(var(--vw10), 15px) 16px;
}
/****************************************************/
@media (min-width: 768px) {

  .table-sp-block th,
  .table-sp-block td {
    display: table-cell;
  }
}

/****************************************************/
/* sp - tb - pc 表示切替 */
/****************************************************/
/*
  基本的な考え方：
  モバイルファーストのため、デフォルトで.spが適用されます。
  ブレークポイントを超えるごとに、より広い画面向けのクラスが追加で表示されるようにします。
*/

/* スマートフォン (sp): 0px から適用 */
/* スマートフォンでは、.sp と .sp-tb が表示され、.tb-pc と .pc は非表示 */
.sp {
  display: block !important;
  /* スマートフォンで表示 */
}

.sp-tb {
  display: block !important;
  /* スマートフォンで表示 */
}

.tb-pc,
.pc {
  display: none !important;
  /* スマートフォンで非表示 */
}

/* タブレット縦方向 (sp-tb): 768px 以上で適用 */
@media (min-width: 768px) {
  .sp {
    display: none !important;
    /* タブレット以上で非表示 */
  }

  .sp-tb {
    display: block !important;
    /* タブレットで表示 */
  }

  .tb-pc {
    display: block !important;
    /* タブレットで表示 */
  }

  .pc {
    display: none !important;
    /* タブレットで非表示 */
  }
}

/* PC (pc): 1024px 以上で適用 */
@media (min-width: 1024px) {

  /* ここでタブレット横方向〜PCを一本化し、1024px以上をPCとして扱います */
  .sp,
  .sp-tb {
    display: none !important;
    /* PCで非表示 */
  }

  .tb-pc {
    display: block !important;
    /* PCで表示 */
  }

  .pc {
    display: block !important;
    /* PCで表示 */
  }
}




/****************************************************/
/* Flex and Grid */
/****************************************************/
.dp-flex {
  display: flex;
}

.dp-grid {
  display: grid;
}

.dp-block {
  display: block;
}

.dp-inline-block {
  display: inline-block;
}

.flex-sp-tb-col-pc-row,
.flex-sp-tb-col-pc-row-l,
.flex-sp-col-tb-pc-row {
  display: flex;
  flex-direction: column;
}

@media (min-width: 1280px) {
  .flex-sp-tb-col-pc-row-l {
    flex-direction: row;
  }
}

@media (min-width: 960px) {
  .flex-sp-tb-col-pc-row {
    flex-direction: row;
  }
}

@media (min-width: 768px) {
  .flex-sp-col-tb-pc-row {
    flex-direction: row;
  }
}

.flex-dir-col,
.flex-dir-col-sp-only {
  flex-direction: column;
}

@media (min-width: 768px) {
  .flex-dir-col-sp-only {
    flex-direction: inherit;
  }
}

.flex-sp-only {
  display: flex;
}

@media (min-width: 768px) {
  .flex-sp-only {
    display: block;
  }
}

.flex-pc-tb-only {
  display: block;
}

@media (min-width: 768px) {
  .flex-pc-tb-only {
    display: flex;
  }
}

.flex-pc-tb-only-l {
  display: block;
}

@media (min-width: 1080px) {
  .flex-pc-tb-only-l {
    display: flex;
  }
}

/* grid patterns */
[class*="dp-grid-"] {
  display: grid;
}

[class*="dp-grid-sp-2-"],
[class*="dp-grid-sp-tb-2-"] {
  grid-template-columns: repeat(2, 1fr);
}

[class*="dp-grid-sp-1-"],
[class*="dp-grid-sp-tb-1-"] {
  grid-template-columns: repeat(1, 1fr);
}

@media (min-width: 480px) {

  /* sp */
  .dp-grid-sp-2-tb-4-pc-6,
  .dp-grid-sp-1-tb-2-pc-4,
  .dp-grid-sp-1-tb-2-pc-3,
  .dp-grid-sp-1-tb-pc-2 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 600px) {

  /* sp - tablet */
  .dp-grid-sp-1-tb-pc-3,
  .dp-grid-sp-1-tb-3-pc-4 {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 768px) {

  /* tablet */
  .dp-grid-sp-2-tb-3-pc-4 {
    grid-template-columns: repeat(3, 1fr);
  }
  .dp-grid-sp-2-tb-4-pc-6,
  .dp-grid-sp-2-tb-pc-4 {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (min-width: 1024px) {

  /* PC */
  .dp-grid-sp-2-tb-4-pc-6 {
    grid-template-columns: repeat(6, 1fr);
  }

  .dp-grid-sp-2-tb-pc-4,
  .dp-grid-sp-tb-2-pc-4,
  .dp-grid-sp-1-tb-3-pc-4,
  .dp-grid-sp-1-tb-2-pc-4 {
    grid-template-columns: repeat(4, 1fr);
  }
  .dp-grid-sp-tb-2-pc-3,
  .dp-grid-sp-1-tb-pc-3,
  .dp-grid-sp-1-tb-2-pc-3 {
    grid-template-columns: repeat(3, 1fr);
  }

  .dp-grid-sp-tb-1-pc-2,
  .dp-grid-sp-1-tb-pc-2 {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* MIX : Grid and Flex patterns */
.dp-sp-flex-tb-pc-grid,
.dp-sp-tb-flex-pc-grid {
  display: flex;
  flex-direction: column;
}

@media (min-width: 1025px) {

  /* PC */
  .dp-grid-sp-2-tb-3-pc-4 {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (min-width: 600px) {

  /* sp - tablet */
  .dp-sp-flex-tb-pc-grid {
    display: grid;
  }
}

@media (min-width: 1024px) {

  /* PC */
  .dp-sp-flex-tb-pc-grid {
    display: grid;
  }
}

/* flex grid option */
.flex-wrap {
  flex-wrap: wrap;
}

.justify-content-sa {
  justify-content: space-around;
}

.justify-content-sb {
  justify-content: space-between;
}

.justify-content-c {
  justify-content: center;
}

.align-items-c {
  align-items: center;
}

.align-items-base {
  align-items: baseline;
}

.align-items-end {
  align-items: end;
}

.align-items-st {
  align-items: stretch;
}

.flex-dir-c {
  flex-direction: column;
}

.place-items-c {
  place-items: center;
}

/****************************************************/
/* common width */
/****************************************************/
.common-main-w-s {
  width: var(--common-main-w-s);
}

.common-main-w-m {
  width: var(--common-main-w-m);
}

/****************************************************/
@media (min-width: 768px) {
  .common-main-w-m {
    max-width: 88%;
  }
}

@media (min-width: 1120px) {
  .common-main-w-m {
    max-width: 1200px;
  }
}

/****************************************************/
/* margin */
/****************************************************/
.m-a {
  margin: auto;
}

.m-0-a {
  margin: 0 auto;
}

.m-1-a-0 {
  margin: 10px auto 0;
}

.m-r-a {
  margin: 0 0 0 auto;
}

.m-top-l-a-a {
  margin: 18.666vw auto auto;
}

.m-top-m-a-a {
  margin: 10.666vw auto auto;
}

.m-top-s-a-a {
  margin: 5.333vw auto auto;
}

@media (min-width: 768px) {
  .m-top-l-a-a {
    margin: 70px auto auto;
  }

  .m-top-m-a-a {
    margin: 45px auto auto;
  }

  .m-top-s-a-a {
    margin: 20px auto auto;
  }
}

/****************************************************/
/* padding */
/****************************************************/
.common-inner-vertical-padding {
  padding: min(var(--vw48), 64px) 0 min(var(--vw64), 80px);
}
.common-padding-btm-m {
  padding-bottom: min(var(--vw80), 120px);
}

/****************************************************/
/* radius */
/****************************************************/
.radius-10 {
  border-radius: 10px;
}
.radius-40 {
  border-radius: 40px;
}
.radius-0-120-0-0 {
  border-radius: 0 120px 0 0;
}

/****************************************************/
/* img */
/****************************************************/
.img-fit img {
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
  height: 100%;
}

/****************************************************/
/* background */
/****************************************************/

.bg-black-main {
  background: var(--color-black-main);
  }
.bg-green-500 {
  background: var(--color-green-500);
  }
.bg-green-600 {
  background: var(--color-green-600);
  }
.bg-gray-dark {
  background: var(--color-gray-dark);
  }
.bg-gray-light {
  background: var(--color-gray-light);
  }
.bg-fff {
  background: #fff;
}

/****************************************************/
/* news-icon */
/****************************************************/
.common-new-mark {
  display: inline-block;
  border-radius: 2px;
  line-height: 1;
  font-size: var(--rem13);
}
/****************************************************/
/* news-icon */
/****************************************************/
[class*='news-icon-'] {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 200px;
}

[class*='news-icon-'] img {
  max-width: 56%;
}


/****************************************************/
/* text-align */
/****************************************************/
.align-j {
  text-align: justify;
}

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

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

.align-l {
  text-align: left;
}

.align-sp-l-pc-c {
  text-align: left;
}

.align-sp-c-pc-l {
  text-align: center;
}

@media (min-width: 768px) {
  .align-sp-l-pc-c {
    text-align: center;
  }

  .align-sp-c-pc-l {
    text-align: left;
  }
}

/****************************************************/
/* text font */
/****************************************************/
.letter-spacing-0 {
  letter-spacing: 0;
}

.tx-deco-underline {
  text-decoration: underline;
}

.bold {
  font-weight: bold;
}

.semi-bold {
  font-weight: 600;
}

.medium {
  font-weight: 500;
}

.regular {
  font-weight: 400;
}

.light {
  font-weight: 300;
}

.extra-light {
  font-weight: 200;
}

/****************************************************/
/* color */
/****************************************************/
.color-green-500 {
  color: var(--color-green-500);
  }
.color-green-600 {
  color: var(--color-green-600);
  }
.fff {
  color: #fff;
}


/****************************************************/
/* a */
/****************************************************/
.icon-target-blank::after,
.icon-target-blank-white::after,
.medical-prof-list td a::after {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  margin-left: 5px;
  background: url(../img/icon-target-blank-01.svg) no-repeat;
  background-size: cover;
  opacity: .6;
}
.icon-target-blank-white::after {
  background: url(../img/icon-target-blank-white-01.svg) no-repeat;
  background-size: cover;
  opacity: 1;
}

/****************************************************/
/* others */
/****************************************************/
.pointer-events-none {
  pointer-events: none;
}

.relative {
  position: relative;
}

.absolute {
  position: absolute;
}

.absolute-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}



/****************************************************/
/* common site original */
/* 

*/
/****************************************************/


/*
common-search-form-01
*/


/****************************************************/
/*
common-btn-01
*/
/****************************************************/
[class*='common-btn-01-'] {
  max-width: 256px;
  min-width: 230px;
}
[class*='common-btn-01-'] a,
[class*='common-btn-01-'] input {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 10px;
  border: 1px solid var(--color-green-600);
  background: #fff;
  padding: 16px 32px;
  color: var(--color-green-600);
  position: relative;
}

[class*='common-btn-01-'] a::after,
[class*='common-btn-01-'] input::after,
.common-pager-link.pager-prev a::before,
.common-pager-link.pager-next a::after,
.page-numbers .next::after,
.page-numbers .prev::before {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  background-image: url('../img/icon-2-lined-arrow-green.svg');
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  right: 4%;
}

.common-btn-01-tx {
  display: block;
  margin: 0 auto;
  padding: 0 8px;
  line-height: 1.4;
}

.common-btn-01-sp-c-pc-r {
  margin: 0 auto;
}

@media (min-width: 768px) {
  .common-btn-01-sp-c-pc-r {
    margin: 0 0 0 auto;
  }
}

/****************************************************/
/* 
header-lower-page
*/
/****************************************************/
.breadcrumbs {
  margin: 15px 15px 0;
  line-height: 1.4;
  font-size: clamp(var(--rem12), var(--vw13), var(--rem14));
}

.header-lower-page {
  margin: min(var(--vw80), 80px) auto 0;
}

/****************************************************/
/**
common-news-list
*/
/****************************************************/
.common-news-list {
  gap: 10px;
}

.news-item {
  border-bottom: 1px dashed #ddd;
  padding: 0 0 10px;
}

.news-item-header {
  gap: 10px 12px;
}

.news-item-body {
  gap: 4px 0;
}

.news-item-meta {
  gap: 10px;
}

.news-item-meta .cats li {
  border-radius: 100px;
  padding: 3px 8px;
  font-size: clamp(var(--rem11), var(--vw12), var(--rem12));
}

/****************************************************/
/**
main-news-cat-list
*/
.main-news-cat-list {
  gap: 10px 3.333%;
}

.main-news-cat-list li {
  flex-grow: 1;
}

.main-news-cat-list li a {
  display: block;
  border: 1px solid #ddd;
  border-radius: 200px;
  background: #fff;
  padding: 15px;
  text-align: center;
}

/****************************************************/
@media (min-width: 768px) {
  .main-news-cat-list {
    /* gap: 3.333%; */
  }
}

/****************************************************/
/* common-link-list */
/****************************************************/
.common-link-list li {
  width: 80%;
  margin: auto;
}

/****************************************************/
@media (min-width: 768px) {
  .common-link-list li {
    width: auto;
  }
}

/****************************************************/
/* common-heading, common-summary, common-editor-content */
/****************************************************/
/* 
heading-01
*/
.common-heading-h1 {
  line-height: 1.4;
  font-size: clamp(var(--rem22), var(--vw32), var(--rem44));
}

.common-heading-01 .title-jp {}

.common-heading-01 .title-eng {}

/* 
heading-02
*/
.common-heading-h2 {
  margin: min(var(--vw60), 60px) auto 0;
  border-bottom: solid 3px #bbb;
  font-size: clamp(var(--rem24), var(--vw26), var(--rem36));
  position: relative;
}
.common-heading-h2::after {
  content: " ";
  display: block;
  border-bottom: solid 3px var(--color-green-600);
  position: absolute;
  bottom: -3px;
  width: 20%;
}
.common-inner-vertical-padding .common-heading-h2 {
  margin: 0;
}
.common-editor-content h2 {
  margin: min(var(--vw60), 60px) auto 0;
  padding: 10px 12px;
  font-size: clamp(var(--rem22), var(--vw24), var(--rem28));
}

.common-editor-content h2:first-of-type {
  margin: 0 auto;
}

/* 
heading-03
*/
[class*="common-heading-03"],
.common-editor-content h3 {
  margin: min(var(--vw55), 55px) auto 0;
  padding: 0 0 10px;
  font-size: clamp(var(--rem18), var(--vw20), var(--rem32));
}


/* 
heading-04
*/
.common-heading-04,
.common-editor-content h4 {
  margin: min(var(--vw50), 50px) auto 0;
  padding: 0 0 0 10px;
  font-size: clamp(var(--rem16), var(--vw18), var(--rem18));
}

/* 
heading-05
*/
.common-heading-05,
.common-editor-content h5 {
  margin: min(var(--vw45), 45px) auto 0;
  font-size: clamp(var(--rem16), var(--vw18), var(--rem18));
}


/* 
heading-06
*/
.common-heading-06,
.common-editor-content h6 {
  margin: min(var(--vw40), 40px) auto 0;
  font-size: clamp(var(--rem16), var(--vw18), var(--rem18));
}

.common-heading-sub {
  margin: min(var(--vw15), 15px) auto 0;
  font-size: clamp(var(--rem14), var(--vw16), var(--rem16));
}

/****************************************************/
/* common-editor-content */
/****************************************************/
/* 
.common-editor-content
*/
.common-editor-content {
  margin: min(var(--vw60), 60px) auto 0;
  container-type: inline-size;
  /* 画面幅 100vw があるとなぜかはみ出るため，その対策 */
}

/* 
p
*/
.common-editor-content > p {
  margin: min(var(--vw30), 30px) auto 0;
}
.common-editor-content p {
  line-height: 1.8;
}

.common-editor-content *>*>p:last-of-type {}

/* 
img figure
*/
.common-editor-content .img-single-main {
  width: min(100%, 640px);
  margin: min(var(--vw30), 30px) auto;
}

/* 
ul ol
*/
.common-editor-content ul {
  margin: min(var(--vw30), 30px) auto 0;
  line-height: 1.4;
}


/* 
blockquote
*/
.common-editor-content blockquote {
  width: calc(100% - 20px);
  margin: min(var(--vw30), 30px) auto 0;
  box-shadow: 10px -10px #fff, -10px 10px #fff, 10px 10px #ddd, -10px -10px #ddd;
  background: #fcfcfc;
  padding: min(var(--vw20), 20px);
}

/* 
notice class
*/
.common-editor-content .attention {}

.common-editor-content .attention::before {}

/* 
a
*/
.common-editor-content a:not(:has(img)) {
  text-decoration: underline;
}

/****************************************************/
@media (min-width: 768px) {}


/****************************************************/
/* news-single */
/****************************************************/
.common-single-date {
  margin: min(var(--vw10), 15px) 0 0;
}
.common-single-img-main {
  width: min(80%, 560px);
  margin: min(var(--vw20), 30px) auto 0;
}
.common-single-content {
  margin: min(var(--vw20), 30px) auto 0;
}


/****************************************************/
/* common-anchor */
/****************************************************/


/****************************************************/
/* common-arrow */
/****************************************************/

/* 
common-arrow-basic-
*/
[class*="common-arrow-basic-"] {}

[class*="common-arrow-basic-"]::after {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  background-repeat: no-repeat;
  background-size: contain;
}

[class*="common-arrow-basic-right"]::after {}

[class*="common-arrow-basic-down"]::after {}

.common-arrow-basic-right-white::after {
  background-image: url('../img/icon-arrow-right-white.svg');
}

.common-arrow-basic-right-gray::after {
  background-image: url('../img/icon-arrow-right-gray.svg');
}



/****************************************************/
/* common-border-item-01 */
/****************************************************/
.common-border-item-01 {
  border: 1px solid #ddd;
  border-radius: 100px;
  padding: 5px 10px;
  text-align: center;
}

/****************************************************/
/* common-notice */
/****************************************************/
.common-notice {}


/****************************************************/
/* pagination */
/****************************************************/
/* archive */
.page-numbers {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 12px;
}
.page-numbers .page-numbers {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid #ddd;
  border-radius: 100px;
  background: #fff;
  text-decoration: none;
}
.page-numbers .next::after,
.page-numbers .prev::before {
  background-position: center;
}
.page-numbers .prev::before {
  transform: rotate(180deg);
}
.page-numbers .current {
  width: 44px;
  height: 44px;
  border: 2px solid #ddd;
  background: #fff;
  font-weight: bold;
}

/* single */
.common-pager-link-list {
  gap: 12px;
  width: min(100%, 400px);
}

.common-pager-link a {
}

.common-pager-link.prev a::before,
.common-pager-link.next a::after {
  content: '';
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  background: var(--color-green-600);
  text-decoration: none;
  background-image: url('../img/icon-3-lined-arrow-r-white.svg');
  background-repeat: no-repeat;
  background-position: center;
}

.common-pager-link.prev a::before {
  transform: rotate(180deg);
}

/****************************************************/
/* google map & iframe */
/****************************************************/
.google-map,.iframe-wrapper {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  /* 16:9のアスペクト比 */
  height: 0;
}

.google-map iframe,.iframe-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.google-maps-link {
  display: inline-block;
}
.google-maps-link a {
  margin-top: 10px;
  border-radius: 4px;
  background: #666;
  padding: 5px 16px;
  color: #fff;
}


/****************************************************/
/* common-cat-nav */
/****************************************************/
.common-cat-nav .current {
  border-radius: 100px;
  border: 1px solid #ddd;
}
.common-cat-nav .item a {
  display: inline-block;
  padding: 8px 24px;
}

/****************************************************/
/* scroll hint */
/****************************************************/
.js-scrollable table.wrapped {
  min-width: 200% !important;
}

/****************************************************/
/* checkbox AND radio */
/****************************************************/
.common-input-list-horizontal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
  max-width: 80%;
}
form label {
  display: flex;
  align-items: center;
}
input[type="checkbox"],
input[type="radio"] {
  accent-color: #666;
  transform: scale(1.5);
}
.common-input-each {
  margin: 0 10px 0 0;
}
/****************************************************/
@media (min-width: 768px) {
  .common-input-list-horizontal {
    justify-content: center;
  }
}