@charset "UTF-8";
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  overflow-wrap: anywhere;
  word-break: normal;
  line-break: strict;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}
table caption {
  font-weight: bold;
  text-align: left;
  margin: 0 0 0.8rem;
}
table th, table td {
  text-align: left;
}
table thead th {
  text-align: center;
}

a {
  transition: all, 0.2s;
}

small {
  font-size: 85%;
}

sup, sub {
  font-size: 75%;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

/***** orig *****/
html {
  scroll-behavior: smooth;
}

html, body {
  font-size: 13px;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.5;
}

body {
  background-color: #ededed;
  color: #000;
  line-height: 1.6;
}

/********** common ******************/
h1, .h1 {
  font-size: 18px;
}

h2, .h2,
h3, .h3,
h4, .h4 {
  font-size: 16px;
}

h5, .h5 {
  font-size: 15px;
}

h6, .h6 {
  font-size: 14px;
}

a {
  color: #023384;
  transition: all, 0.3s;
}
a:hover {
  color: #808080;
}

/* mixin */
/*==========================================================================
SVGをBase64コードに変換する
============================================================================*/
/***** SVGアイコン 変数 $color で色をフレキシブルに変更できる *****/
/* 右矢印 */
/* 別窓 */
.container {
  max-width: 780px;
  margin: 0 auto;
  padding: 15px;
}
.container > :first-child {
  margin-top: 0;
}
.container > :last-child {
  margin-bottom: 0;
}

section {
  padding: 15px 18px;
}
section.section-white {
  margin: 1.2rem 0;
  border-radius: 8px;
  background-color: #FFF;
  box-shadow: 0 0 7px rgba(0, 0, 0, 0.2);
}

/* common */
.label {
  display: inline-block;
  border-radius: 5px;
  background-color: #ed1c24;
  color: #FFF;
  text-align: center;
  padding: 3px 10px;
  font-weight: 500;
  font-size: 11px;
  line-height: 1.2;
  min-width: 3.2em;
  margin-right: 3px;
}

.couponitem a {
  display: block;
  overflow: hidden;
  border: solid 1px #dedede;
  border-radius: 6px;
  text-decoration: none;
}
.couponitem a:hover {
  border-color: #023384;
}
.couponitem .coupon-thumb {
  position: relative;
  margin-bottom: 11px;
}
.couponitem .coupon-thumb > img {
  width: 100%;
}
.couponitem .coupon-thumb .label {
  position: absolute;
  bottom: -13px;
  left: 5px;
}
.couponitem .coupon-text {
  box-sizing: border-box;
  padding: 7px;
  text-align: center;
  font-size: 12px;
  line-height: 1.5;
  color: #000;
}
.couponitem .coupon-catch {
  background-color: #f7931e;
  color: #FFF;
  font-size: 11px;
  line-height: 1.3;
  padding: 7px 9px;
  font-weight: bold;
}

/* TOP */
.slider-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.slider-head p > a {
  text-decoration: none;
}
.slider-head p > a::after {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-left: 5px;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2011.896%2019.466%22%3E%3Cpath%20d%3D%22M1.53%2C19.466c-.392%2C0-.783-.149-1.082-.448-.597-.597-.597-1.566%2C0-2.164l7.121-7.121L.448%2C2.612C-.149%2C2.014-.149%2C1.046.448.448%2C1.046-.149%2C2.014-.149%2C2.612.448l9.284%2C9.285L2.612%2C19.017c-.299.299-.69.448-1.082.448Z%22%20fill%3D%22%23023384%22%2F%3E%3C%2Fsvg%3E");
}

.swiper.coupon {
  margin-right: -18px;
  margin-left: -6px;
}
.swiper.coupon .swiper-slide {
  width: 150px;
}

.foot-nav .back2top {
  text-align: center;
  margin-bottom: 1.4em;
}
.foot-nav .back2top a {
  font-weight: 500;
  text-decoration: none;
}
.foot-nav .back2top a::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  transform: rotate(180deg);
  margin-right: 5px;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2011.896%2019.466%22%3E%3Cpath%20d%3D%22M1.53%2C19.466c-.392%2C0-.783-.149-1.082-.448-.597-.597-.597-1.566%2C0-2.164l7.121-7.121L.448%2C2.612C-.149%2C2.014-.149%2C1.046.448.448%2C1.046-.149%2C2.014-.149%2C2.612.448l9.284%2C9.285L2.612%2C19.017c-.299.299-.69.448-1.082.448Z%22%20fill%3D%22%23023384%22%2F%3E%3C%2Fsvg%3E");
}
.foot-nav .linkbtn {
  height: 50px;
  font-weight: 400;
}

/* クーポン */
.headvis {
  margin-bottom: -72px;
}
.headvis > img {
  width: 100%;
}
.headvis + .container {
  position: relative;
  z-index: 2;
}

.picimage {
  text-align: right;
  font-size: 10px;
  color: #FFF;
}
.picimage + section {
  margin-top: 10px;
}

.coupon-card {
  background-color: #f9f8ed;
  border: solid 1px #dedede;
  border-radius: 6px;
  padding: 1.2rem;
  margin-bottom: 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.coupon-num {
  font-weight: 600;
}

.coupon-title {
  margin: 2px 0 8px;
  color: #ed1c24;
  text-align: center;
}

.coupon-setumei {
  font-size: 88.5%;
}
.coupon-setumei dl.col-list > dt {
  margin-right: 0;
  white-space: nowrap;
}

.coupon-code {
  border-radius: 6px;
  overflow: hidden;
  margin: 2em auto;
  width: 220px;
  border: solid 1px #808080;
  text-align: center;
}
.coupon-code h4 {
  margin: 0;
  padding: 8px 10px;
  text-align: center;
  background-color: #023384;
  color: #FFF;
}
.coupon-code p {
  margin: 0;
  padding: 8px 10px;
  font-weight: bold;
  font-size: 20px;
}

.coupon-botan {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.coupon-botan .linkbtn {
  height: 52px;
}

.coupon-done {
  text-align: center;
  font-weight: bold;
  color: #ed1c24;
}

/* 検索 */
.search-botan {
  margin: 1em 0 0.8em;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.search-botan .linkbtn {
  height: 50px;
  border: solid 1px #023384;
  color: #023384;
  background-color: #FFF;
  text-decoration: none;
}
.search-botan .linkbtn:hover {
  color: #FFF;
  background-color: #023384;
  text-decoration: none;
}

.page-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.page-nav p.next > a {
  text-decoration: none;
}
.page-nav p.next > a::after {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-left: 5px;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2011.896%2019.466%22%3E%3Cpath%20d%3D%22M1.53%2C19.466c-.392%2C0-.783-.149-1.082-.448-.597-.597-.597-1.566%2C0-2.164l7.121-7.121L.448%2C2.612C-.149%2C2.014-.149%2C1.046.448.448%2C1.046-.149%2C2.014-.149%2C2.612.448l9.284%2C9.285L2.612%2C19.017c-.299.299-.69.448-1.082.448Z%22%20fill%3D%22%23023384%22%2F%3E%3C%2Fsvg%3E");
}
.page-nav p.prev > a {
  text-decoration: none;
}
.page-nav p.prev > a::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-right: 5px;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  transform: rotate(180deg);
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2011.896%2019.466%22%3E%3Cpath%20d%3D%22M1.53%2C19.466c-.392%2C0-.783-.149-1.082-.448-.597-.597-.597-1.566%2C0-2.164l7.121-7.121L.448%2C2.612C-.149%2C2.014-.149%2C1.046.448.448%2C1.046-.149%2C2.014-.149%2C2.612.448l9.284%2C9.285L2.612%2C19.017c-.299.299-.69.448-1.082.448Z%22%20fill%3D%22%23023384%22%2F%3E%3C%2Fsvg%3E");
}

/* font */
.fc-primary {
  color: #023384 !important;
}

.fc-secondary {
  color: #808080 !important;
}

.fc-danger {
  color: #f7931e !important;
}

.fc-warning {
  color: #ed1c24 !important;
}

.fc-white {
  color: #FFF !important;
}

.bg-primary {
  background-color: #023384 !important;
  color: #FFF;
}

.bg-secondary {
  background-color: #808080 !important;
  color: #FFF;
}

.bg-danger {
  background-color: #f7931e !important;
  color: #FFF;
}

.bg-warning {
  background-color: #ed1c24 !important;
  color: #FFF;
}

.bg-lightgray {
  background-color: #ededed !important;
}

.fs-small {
  font-size: 88.5%;
}

.fs-large {
  font-size: 120%;
}

.fs-xlarge {
  font-size: 145%;
}

/*** text align ***/
.txCenter {
  text-align: center;
}

.txLeft {
  text-align: left;
}

.txRight {
  text-align: right;
}

/***** media ******/
.kadomaru {
  border-radius: 14px;
}

.imglinks a:hover,
a.hover-opacity:hover {
  opacity: 0.7;
}

.youtube {
  width: 100%;
  aspect-ratio: 16/9;
}
.youtube iframe {
  width: 100%;
  height: 100%;
}

/*** margin ***/
.mgt0 {
  margin-top: 0em !important;
}

.mgb0 {
  margin-bottom: 0em !important;
}

.mgr0 {
  margin-right: 0em !important;
}

.mgl0 {
  margin-left: 0em !important;
}

.mgt5 {
  margin-top: 0.5em !important;
}

.mgb5 {
  margin-bottom: 0.5em !important;
}

.mgr5 {
  margin-right: 0.5em !important;
}

.mgl5 {
  margin-left: 0.5em !important;
}

.mgt10 {
  margin-top: 1em !important;
}

.mgb10 {
  margin-bottom: 1em !important;
}

.mgr10 {
  margin-right: 1em !important;
}

.mgl10 {
  margin-left: 1em !important;
}

.mgt15 {
  margin-top: 1.5em !important;
}

.mgb15 {
  margin-bottom: 1.5em !important;
}

.mgr15 {
  margin-right: 1.5em !important;
}

.mgl15 {
  margin-left: 1.5em !important;
}

.mgt20 {
  margin-top: 2em !important;
}

.mgb20 {
  margin-bottom: 2em !important;
}

.mgr20 {
  margin-right: 2em !important;
}

.mgl20 {
  margin-left: 2em !important;
}

.mgt25 {
  margin-top: 2.5em !important;
}

.mgb25 {
  margin-bottom: 2.5em !important;
}

.mgr25 {
  margin-right: 2.5em !important;
}

.mgl25 {
  margin-left: 2.5em !important;
}

.mgt30 {
  margin-top: 3em !important;
}

.mgb30 {
  margin-bottom: 3em !important;
}

.mgr30 {
  margin-right: 3em !important;
}

.mgl30 {
  margin-left: 3em !important;
}

.mgt35 {
  margin-top: 3.5em !important;
}

.mgb35 {
  margin-bottom: 3.5em !important;
}

.mgr35 {
  margin-right: 3.5em !important;
}

.mgl35 {
  margin-left: 3.5em !important;
}

.mgt40 {
  margin-top: 4em !important;
}

.mgb40 {
  margin-bottom: 4em !important;
}

.mgr40 {
  margin-right: 4em !important;
}

.mgl40 {
  margin-left: 4em !important;
}

.mgt45 {
  margin-top: 4.5em !important;
}

.mgb45 {
  margin-bottom: 4.5em !important;
}

.mgr45 {
  margin-right: 4.5em !important;
}

.mgl45 {
  margin-left: 4.5em !important;
}

.mgt50 {
  margin-top: 5em !important;
}

.mgb50 {
  margin-bottom: 5em !important;
}

.mgr50 {
  margin-right: 5em !important;
}

.mgl50 {
  margin-left: 5em !important;
}

/*** padding ***/
.padding-s {
  padding: 6px;
}

.padding-m {
  padding: 10px;
}

.padding-l {
  padding: 20px;
}

/*** grid - カラム幅同じ ***/
.lab-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.lab-grid > * {
  box-sizing: border-box;
}
.lab-grid > * > :last-child {
  margin-bottom: 0;
}
.lab-grid.grid-column-auto > * {
  flex-basis: auto;
}
.lab-grid.grid-column-w1_1 > * {
  flex-basis: calc((100% - 10px * (1 - 1)) / 1);
}
.lab-grid.grid-column-w1_2 > * {
  flex-basis: calc((100% - 10px * (2 - 1)) / 2);
}
.lab-grid.grid-column-w1_3 > * {
  flex-basis: calc((100% - 10px * (3 - 1)) / 3);
}
.lab-grid.grid-column-w1_4 > * {
  flex-basis: calc((100% - 10px * (4 - 1)) / 4);
}
.lab-grid.grid-column-w1_5 > * {
  flex-basis: calc((100% - 10px * (5 - 1)) / 5);
}
.lab-grid.grid-column-w1_6 > * {
  flex-basis: calc((100% - 10px * (6 - 1)) / 6);
}
.lab-grid.gap-s {
  gap: 6px;
}
.lab-grid.gap-s.grid-column-w1_1 > * {
  flex-basis: calc((100% - 6px * (1 - 1)) / 1);
}
.lab-grid.gap-s.grid-column-w1_2 > * {
  flex-basis: calc((100% - 6px * (2 - 1)) / 2);
}
.lab-grid.gap-s.grid-column-w1_3 > * {
  flex-basis: calc((100% - 6px * (3 - 1)) / 3);
}
.lab-grid.gap-s.grid-column-w1_4 > * {
  flex-basis: calc((100% - 6px * (4 - 1)) / 4);
}
.lab-grid.gap-s.grid-column-w1_5 > * {
  flex-basis: calc((100% - 6px * (5 - 1)) / 5);
}
.lab-grid.gap-s.grid-column-w1_6 > * {
  flex-basis: calc((100% - 6px * (6 - 1)) / 6);
}
.lab-grid.gap-l {
  gap: 20px;
}
.lab-grid.gap-l.grid-column-w1_1 > * {
  flex-basis: calc((100% - 20px * (1 - 1)) / 1);
}
.lab-grid.gap-l.grid-column-w1_2 > * {
  flex-basis: calc((100% - 20px * (2 - 1)) / 2);
}
.lab-grid.gap-l.grid-column-w1_3 > * {
  flex-basis: calc((100% - 20px * (3 - 1)) / 3);
}
.lab-grid.gap-l.grid-column-w1_4 > * {
  flex-basis: calc((100% - 20px * (4 - 1)) / 4);
}
.lab-grid.gap-l.grid-column-w1_5 > * {
  flex-basis: calc((100% - 20px * (5 - 1)) / 5);
}
.lab-grid.gap-l.grid-column-w1_6 > * {
  flex-basis: calc((100% - 20px * (6 - 1)) / 6);
}
@media (min-width: 640px) {
  .lab-grid.grid-m-column-w1_1 > * {
    flex-basis: calc((100% - 10px * (1 - 1)) / 1);
  }
  .lab-grid.grid-m-column-w1_2 > * {
    flex-basis: calc((100% - 10px * (2 - 1)) / 2);
  }
  .lab-grid.grid-m-column-w1_3 > * {
    flex-basis: calc((100% - 10px * (3 - 1)) / 3);
  }
  .lab-grid.grid-m-column-w1_4 > * {
    flex-basis: calc((100% - 10px * (4 - 1)) / 4);
  }
  .lab-grid.grid-m-column-w1_5 > * {
    flex-basis: calc((100% - 10px * (5 - 1)) / 5);
  }
  .lab-grid.grid-m-column-w1_6 > * {
    flex-basis: calc((100% - 10px * (6 - 1)) / 6);
  }
  .lab-grid.gap-s.grid-m-column-w1_1 > * {
    flex-basis: calc((100% - 6px * (1 - 1)) / 1);
  }
  .lab-grid.gap-s.grid-m-column-w1_2 > * {
    flex-basis: calc((100% - 6px * (2 - 1)) / 2);
  }
  .lab-grid.gap-s.grid-m-column-w1_3 > * {
    flex-basis: calc((100% - 6px * (3 - 1)) / 3);
  }
  .lab-grid.gap-s.grid-m-column-w1_4 > * {
    flex-basis: calc((100% - 6px * (4 - 1)) / 4);
  }
  .lab-grid.gap-s.grid-m-column-w1_5 > * {
    flex-basis: calc((100% - 6px * (5 - 1)) / 5);
  }
  .lab-grid.gap-s.grid-m-column-w1_6 > * {
    flex-basis: calc((100% - 6px * (6 - 1)) / 6);
  }
  .lab-grid.gap-l.grid-m-column-w1_1 > * {
    flex-basis: calc((100% - 20px * (1 - 1)) / 1);
  }
  .lab-grid.gap-l.grid-m-column-w1_2 > * {
    flex-basis: calc((100% - 20px * (2 - 1)) / 2);
  }
  .lab-grid.gap-l.grid-m-column-w1_3 > * {
    flex-basis: calc((100% - 20px * (3 - 1)) / 3);
  }
  .lab-grid.gap-l.grid-m-column-w1_4 > * {
    flex-basis: calc((100% - 20px * (4 - 1)) / 4);
  }
  .lab-grid.gap-l.grid-m-column-w1_5 > * {
    flex-basis: calc((100% - 20px * (5 - 1)) / 5);
  }
  .lab-grid.gap-l.grid-m-column-w1_6 > * {
    flex-basis: calc((100% - 20px * (6 - 1)) / 6);
  }
}

/*** flex 段組み ***/
/*** 間隔は gap-x で調整 但し上下間隔は個別にmgtで対応 ***/
.lab-flex {
  display: flex;
  flex-wrap: wrap;
  margin-left: -10px;
}
.lab-flex > * {
  box-sizing: border-box;
  padding-left: 10px;
}
.lab-flex.flex-nowrap {
  flex-wrap: nowrap;
}
.lab-flex > .column-w-auto {
  width: auto;
}
.lab-flex > .column-w-expand {
  flex: 1;
}
.lab-flex > [class^=w] {
  flex-shrink: 0;
  box-sizing: content-box;
}
.lab-flex > .column-w1_1 {
  flex-basis: 100%;
}
.lab-flex > .column-w1_2 {
  flex-basis: 50%;
}
.lab-flex > .column-w1_3 {
  flex-basis: 33.33%;
}
.lab-flex > .column-w2_3 {
  flex-basis: 66.66%;
}
.lab-flex > .column-w1_4 {
  flex-basis: 25%;
}
.lab-flex > .column-w3_4 {
  flex-basis: 75%;
}
.lab-flex > .column-w1_5 {
  flex-basis: 20%;
}
.lab-flex > .column-w2_5 {
  flex-basis: 40%;
}
.lab-flex > .column-w3_5 {
  flex-basis: 60%;
}
.lab-flex > .column-w4_5 {
  flex-basis: 80%;
}
.lab-flex > .column-w1_6 {
  flex-basis: 16.66%;
}
.lab-flex > .column-w5_6 {
  flex-basis: 83.33%;
}
.lab-flex.gap-s {
  margin-left: -6px;
}
.lab-flex.gap-s > * {
  padding-left: 6px;
}
.lab-flex.gap-l {
  margin-left: -20px;
}
.lab-flex.gap-l > * {
  padding-left: 20px;
}

.flex-top {
  align-items: flex-start;
}

.flex-middle {
  align-items: center;
}

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

.flex-left {
  justify-content: flex-start;
}

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

.flex-right {
  justify-content: flex-end;
}

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

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

/*** button ***/
.linkbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  box-sizing: border-box;
  padding: 6px 12px;
  height: 44px;
  width: 100%;
  text-indent: 0.05em;
  line-height: 1.2;
  border-radius: 28px;
  font-size: 14px;
  font-weight: 500;
  border-width: 0;
  cursor: pointer;
  color: #FFF;
  background-color: #023384;
  text-decoration: none;
}
.linkbtn:hover {
  color: #FFF;
  background-color: rgb(1.4671641791, 37.4126865672, 96.8328358209);
  text-decoration: none;
}
.linkbtn.fs-small {
  font-size: 12px;
}
.linkbtn.btn-white {
  box-shadow: 0 0 7px rgba(0, 0, 0, 0.2);
  color: #023384;
  background-color: #FFF;
  text-decoration: none;
}
.linkbtn.btn-white:hover {
  color: #FFF;
  background-color: #023384;
  text-decoration: none;
}
.linkbtn.btn-secondary {
  color: #FFF;
  background-color: #808080;
  text-decoration: none;
}
.linkbtn.btn-secondary:hover {
  color: #FFF;
  background-color: rgb(110.15, 110.15, 110.15);
  text-decoration: none;
}
.linkbtn.btn-danger {
  color: #FFF;
  background-color: #f7931e;
  text-decoration: none;
}
.linkbtn.btn-danger:hover {
  color: #FFF;
  background-color: rgb(233.0150214592, 129.4527896996, 8.2849785408);
  text-decoration: none;
}
.linkbtn.btn-warning {
  color: #FFF;
  background-color: #ed1c24;
  text-decoration: none;
}
.linkbtn.btn-warning:hover {
  color: #FFF;
  background-color: rgb(212.4534693878, 16.8465306122, 24.333877551);
  text-decoration: none;
}

.linkbtn-group {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

/*** width ***/
.w80, .w120, .w180, .w240, .w300,
.w20p, .w40p, .w50p, .w60p, .w80p, .w100p {
  box-sizing: border-box;
  max-width: 100%;
}

.w40 {
  width: 40px;
}

.w80 {
  width: 80px;
}

.w120 {
  width: 120px;
}

.w180 {
  width: 180px;
}

.w240 {
  width: 240px;
}

.w300 {
  width: 300px;
}

.w20p {
  width: 20%;
}

.w40p {
  width: 40%;
}

.w50p {
  width: 50%;
}

.w60p {
  width: 60%;
}

.w80p {
  width: 80%;
}

.w100p {
  width: 100%;
}

/*** list ***/
/* デフォルト */
ul.default-list {
  margin-left: 2rem;
  list-style-type: disc;
}

ol.default-list {
  margin-left: 2rem;
  list-style-type: decimal;
}

/* 括弧番号リスト */
ol.kakkonum {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
}
ol.kakkonum > li {
  counter-increment: cnt;
  position: relative;
  padding-left: 2em;
}
ol.kakkonum > li::before {
  display: marker;
  position: absolute;
  top: 0;
  left: 0;
  width: 1.8em;
  text-align: right;
  content: "(" counter(cnt) ")";
}

/* 丸番号リスト */
ol.marunum {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
}
ol.marunum > li {
  counter-increment: cnt;
  position: relative;
  padding-left: 2em;
}
ol.marunum > li::before {
  display: marker;
  position: absolute;
  top: 0.4em;
  left: 0;
  width: 24px;
  height: 24px;
  border-radius: 12px;
  background-color: #023384;
  color: #FFF;
  text-align: center;
  font-size: 14px;
  line-height: 22px;
  content: counter(cnt);
}

/* 字下げリスト */
.jisage-list {
  margin-left: 0;
  padding-left: 0;
  list-style: none;
}
.jisage-list li {
  padding-left: 1em;
  text-indent: -1em;
  margin-bottom: 0.2em;
}
.jisage-list li:first-letter {
  display: inline-block;
  width: 1em;
}

/* ラインリスト */
.list-line {
  padding-left: 0;
  margin-left: 0;
  list-style: none;
  border-top: solid 1px #dedede;
}
.list-line li {
  padding: 1em 0.1em;
  border-bottom: solid 1px #dedede;
}

/* リスト項目間隔 */
.mgb-list5 > li {
  margin-bottom: 5px;
}

.mgb-list10 > li {
  margin-bottom: 10px;
}

.mgb-list20 > li {
  margin-bottom: 20px;
}

/* リストマーク：■　●　※ */
.kaku-list, .maru-list, .kome-list {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
}
.kaku-list > li, .maru-list > li, .kome-list > li {
  padding-left: 1em;
  text-indent: -1em;
}
.kaku-list > li::before, .maru-list > li::before, .kome-list > li::before {
  display: inline-block;
  width: 1em;
  text-indent: 0;
}

.kaku-list > li::before {
  content: "■";
  color: #808080;
  transform: scale(0.5);
}

.maru-list > li::before {
  content: "●";
  color: #808080;
  transform: scale(0.5);
}

.kome-list > li::before {
  content: "※";
}

/* 段組UL */
ul.column-list {
  -moz-column-fill: balance;
       column-fill: balance;
}
ul.column-list > li {
  -moz-column-width: auto;
       column-width: auto;
  -moz-column-break-inside: avoid;
       break-inside: avoid;
}
ul.column-list.column-2 {
  -moz-column-count: 2;
       column-count: 2;
}
ul.column-list.column-3 {
  -moz-column-count: 3;
       column-count: 3;
}
ul.column-list.column-4 {
  -moz-column-count: 4;
       column-count: 4;
}
ul.column-list.column-5 {
  -moz-column-count: 5;
       column-count: 5;
}

/* 段組DL */
dl.col-list {
  display: flex;
  flex-wrap: wrap;
}
dl.col-list > dt {
  margin-right: 1em;
}
dl.col-list.col-dtr > dt {
  text-align: right;
}
dl.col-list > dd {
  margin-bottom: 0.3em;
}
dl.col-list.col-3em > dt {
  width: 3em;
}
dl.col-list.col-3em > dd {
  width: calc(100% - 4em);
}
dl.col-list.col-4em > dt {
  width: 4em;
}
dl.col-list.col-4em > dd {
  width: calc(100% - 5em);
}
dl.col-list.col-5em > dt {
  width: 5em;
}
dl.col-list.col-5em > dd {
  width: calc(100% - 6em);
}
dl.col-list.col-6em > dt {
  width: 6em;
}
dl.col-list.col-6em > dd {
  width: calc(100% - 7em);
}
dl.col-list.col-7em > dt {
  width: 7em;
}
dl.col-list.col-7em > dd {
  width: calc(100% - 8em);
}
dl.col-list.col-8em > dt {
  width: 8em;
}
dl.col-list.col-8em > dd {
  width: calc(100% - 9em);
}
dl.col-list.col-9em > dt {
  width: 9em;
}
dl.col-list.col-9em > dd {
  width: calc(100% - 10em);
}
dl.col-list.col-10em > dt {
  width: 10em;
}
dl.col-list.col-10em > dd {
  width: calc(100% - 11em);
}
dl.col-list.col-11em > dt {
  width: 11em;
}
dl.col-list.col-11em > dd {
  width: calc(100% - 12em);
}
dl.col-list.col-12em > dt {
  width: 12em;
}
dl.col-list.col-12em > dd {
  width: calc(100% - 13em);
}
dl.col-list.col-13em > dt {
  width: 13em;
}
dl.col-list.col-13em > dd {
  width: calc(100% - 14em);
}
dl.col-list.col-14em > dt {
  width: 14em;
}
dl.col-list.col-14em > dd {
  width: calc(100% - 15em);
}
dl.col-list.col-15em > dt {
  width: 15em;
}
dl.col-list.col-15em > dd {
  width: calc(100% - 16em);
}
dl.col-list.col-16em > dt {
  width: 16em;
}
dl.col-list.col-16em > dd {
  width: calc(100% - 17em);
}
dl.col-list.col-17em > dt {
  width: 17em;
}
dl.col-list.col-17em > dd {
  width: calc(100% - 18em);
}
dl.col-list.col-18em > dt {
  width: 18em;
}
dl.col-list.col-18em > dd {
  width: calc(100% - 19em);
}

/*** table ***/
table.cellcenter * {
  text-align: center;
}

table.cellmiddle * {
  vertical-align: middle !important;
}

table.tdcenter td {
  text-align: center;
}

table.tdright td {
  text-align: right;
}

table.thcenter th {
  text-align: center;
}

table.thright th {
  text-align: right;
}

/* グリッドテーブル */
.table-grid {
  width: 100%;
}
.table-grid th, .table-grid td {
  padding: 0.8rem 1rem;
  border: 1px solid #dedede;
  line-height: 1.8;
}

/* 横ラインテーブル */
.table-horizontal {
  border-top: 1px solid #dedede;
  width: 100%;
}
.table-horizontal th, .table-horizontal td {
  padding: 0.8rem 0;
  border-bottom: 1px solid #dedede;
  line-height: 1.8;
}

/* スクロール */
.table-scroll {
  overflow-x: auto;
}
.table-scroll table {
  width: auto !important;
  min-width: 100%;
}
.table-scroll table th, .table-scroll table td {
  width: auto;
}

/* 縦に並べる */
.table-stack table {
  display: block;
  width: 100%;
}
.table-stack table caption, .table-stack table thead, .table-stack table tbody, .table-stack table tfoot, .table-stack table tr, .table-stack table th, .table-stack table td {
  display: block;
}
.table-stack table tr {
  padding: 0.7em 0;
}
.table-stack table th, .table-stack table td {
  border-width: 0;
  width: 100% !important;
  padding: 0.2em 0 !important;
}
.table-stack table.table-grid, .table-stack table.table-horizontal {
  border-top: 1px solid #dedede;
}
.table-stack table.table-grid tr, .table-stack table.table-horizontal tr {
  border-bottom: 1px solid #dedede;
}

/*** CARD ***/
.lab-card {
  border: solid 1px #dedede;
  padding: 25px 30px;
}
.lab-card > :last-child {
  margin-bottom: 0;
}