@charset "UTF-8";
/* Author: FUMIHIKO OKAMURA / Seiren Graphico
/* my design parts library */

/* -------------------------------- */
/*  swiper のナビゲーションを中央配置 CDN swiper-bundle.min.cssを上書き
========================================================================== */

.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
  bottom: var(--swiper-pagination-bottom, 8px);
  top: var(--swiper-pagination-top, auto);
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 100%;
}

/* メニューアイコンのスタイル */
/* -------------------------------- */
/*  color style サイトで使う色指定(色数が増えすぎないようにここで管理)
 ========================================================================== */

.mycolor {
  /* hutarino main */
  color: #e62f8b;
  /* 主なリンクカラー */
  color: #0054b3;
  /* ブルー系の汎用カラー */
  color: #1fc3f9;
  /* オレンジ系の汎用カラー */
  color: #f9a51f;
}

/* -------------------------------- */
/* Badge style
 ========================================================================== */
/* 上書きmystyle */
.uk-card-badge {
  border-radius: 4px;
  background: rgba(22, 180, 253, 0.8);
}

.badge-bl {
  display: block;
  margin: 5px 0;
  padding: 5px 8px 3px 8px;
  border-radius: 5px;
  line-height: 1.3em;
  color: rgb(255, 255, 255);
  background: rgba(22, 180, 253, 0.8);
}

.badge-pk {
  display: block;
  margin: 5px 0;
  padding: 5px 4px 3px 4px;
  border-radius: 4px;
  line-height: 1.3em;
  color: rgb(255, 255, 255);
  background: rgba(251, 38, 233, 0.753);
}

.badge-red {
  box-sizing: border-box;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 500px;
  vertical-align: middle;
  background: #f03a1e;
  color: #fff !important;
  font-size: 11px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  line-height: 0;
}

/* Button Style
	 ========================================================================== */

/* product の在庫表示タグ */
.btn-debut {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  font-size: 0.7em;
  font-weight: bold;
  color: #fff;
  padding: 5px;
  background-color: #14d9f391;
}

.btn-notinstock {
  position: absolute;
  bottom: 0;
  left: 0;
  display: inline-block;
  font-size: 0.7em;
  font-weight: bold;
  color: #fff;
  padding: 6px 6px 4px 5px;
  margin: 0px 0px 0px 0px;
  background-color: #ff139d77;
}

.btn-soldout {
  position: absolute;
  bottom: 0;
  left: 0;
  display: inline-block;
  font-size: 0.7em;
  font-weight: bold;
  color: #fff;
  padding: 6px 6px 4px 5px;
  margin: 0px 0px 0px 0px;
  background-color: #13131377;
}

.btn-newp {
  margin-top: 7px;
  font-size: 1em;
  color: #fff;
  padding: 3px 4px 4px 4px;
  border: 1px solid #ff4242;
  background-color: #ff4242;
}

.btn-ranklt {
  margin-top: 7px;
  font-size: 0.8em;
  color: #fff;
  padding: 3px 6px 4px 6px;
  border: 1px solid #fcc800;
  background-color: #fcc800;
}

.btn-rankint {
  margin-top: 7px;
  font-size: 0.8em;
  color: #fff;
  padding: 3px 6px 4px 6px;
  border: 1px solid #e95464;
  background-color: #e95464;
}

.submit-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 250px;
  margin: 0 auto;
  padding: 0.9em 2em;
  border: 2px solid #fff;
  border-radius: 25px;
  box-shadow: 0 0 0 3px #25c5d0;
  background-color: #25c5d0;
  color: #fff;
  font-weight: 600;
  font-size: 1em;
}

.button {
  display: inline-block;
  font-weight: 700;
  text-align: center;
}

.button-medium {
  display: block;
  margin: 0 auto;
  padding: 10px;
  border-radius: 36px;
  font-size: 1rem;
  max-width: 220px;
}

.button-large {
  display: block;
  margin: 0 auto;
  padding: 12px;
  border-radius: 36px;
  font-size: 1.2rem;
  max-width: 320px;
}

.button-x-large {
  display: block;
  margin: 0 auto;
  padding: 12px;
  border-radius: 36px;
  font-size: 1.2rem;
  max-width: 420px;
}

.button-yellow,
.button-blue {
  border: 1px solid;
  color: #fff;
}

.button-blue {
  background: #1e87f0;
  border-color: #1e87f0;
  transition: 0.4s;
}

.button-blue a {
  text-decoration: none;
}

.button-blue:hover {
  background-color: #e62f8b;
  color: #ecec1b;
  text-decoration: none;
}

.button-blue:visited {
  color: #e6e6e6;
}

.button-yellow {
  background: #fad02c;
  border-color: #e7c025;
  transition: 0.4s;
}

.button-yellow a {
  text-decoration: none;
}

.button-yellow:hover {
  background-color: #fde582;
  border-color: #e7c025;
  text-decoration: none;
}

.button-yellow:visited {
  color: #b61621;
}

/* シンプルな矢印ボタン */

.btn-common__wrap {
  max-width: 340px;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .btn-common__wrap {
    position: relative;
  }
}
@media (max-width: 767px) {
  .btn-common__wrap::before {
    width: 100%;
    height: 100%;
    content: "";
    display: block;
    border-right: 1px solid #999;
    border-bottom: 1px solid #999;
    position: absolute;
    right: -5px;
    bottom: -5px;
  }
}
.btn-common__link {
  width: 100%;
  padding: 15px 20px;
  text-align: center;
  color: #333;
  box-sizing: border-box;
  transition: 0.3s;
  display: inline-block;
  position: relative;
  border: 1px solid #999;
  background: #fff;
}
.btn-common__link--green {
  border: 1px solid #fde582;
  background: #fde582;
}
.btn-common__link:link,
.btn-common__link:visited,
.btn-common__link:hover,
.btn-common__link:active {
  text-decoration: none;
  color: inherit;
}
.btn-common__link:hover {
  transition: 0.3s;
}
.btn-common__link:hover::before,
.btn-common__link:hover::after {
  right: -38px;
}
@media (max-width: 767px) {
  .btn-common__link:hover::before,
  .btn-common__link:hover::after {
    right: 10px;
  }
}
.btn-common__link::before {
  width: 56px;
  height: 1px;
  margin: auto;
  content: "";
  display: block;
  background: #333;
  position: absolute;
  top: 0;
  right: -28px;
  bottom: 0;
  transition: 0.3s;
}
@media (max-width: 767px) {
  .btn-common__link::before {
    width: 20px;
    right: 10px;
  }
}
.btn-common__link::after {
  width: 12px;
  height: 1px;
  margin: auto;
  content: "";
  display: block;
  background: #333;
  position: absolute;
  top: 0;
  right: -28px;
  bottom: 0;
  transform: rotate(45deg);
  transform-origin: right;
  transition: 0.3s;
}
@media (max-width: 767px) {
  .btn-common__link::after {
    width: 6px;
    right: 10px;
  }
}
.btn-common__txt {
  font-size: 17px;
  line-height: 1.6;
}
@media (max-width: 767px) {
  .btn-common__txt {
    font-size: 12px;
  }
}

.cv-btn {
  text-align: center;
  overflow: hidden;
  /* display: inline-block; */
  /* width: 80%; */
  margin: 20px 0;
  padding: 20px 20px;
  color: #fff;
  border-radius: 4px;
  background: #1a73e8;
  transition: all 0.3s;
}
.cv-btn a {
  color: #fff;
  padding: 20px 1px 20px 1px;
}

@media screen and (max-width: 767px) {
  .cv-btn {
    overflow: hidden;
    width: auto;
    padding: 20px 20px;
    color: #fff;
    font-size: 1em;
    border-radius: 4px;
    background: #1a73e8;
    transition: all 0.3s;
  }
}

.cv-btn:hover {
  /* padding: 1.5em 8em; */
  color: #fff;
  /* border-radius: 0; */

  background: rgb(203, 56, 56);
}

.cv-btn-notext {
  text-align: center;
  overflow: hidden;
  display: inline-block;
  width: 80%;
  margin: 20px 0;
  /* padding: 30px 20px 5px 10px; */
  color: #fff;
  font-size: 1.2em;
  border-radius: 4px;
  background: #1a73e8;
  transition: all 0.3s;
}
.cv-btn-notext a {
  color: #fff;
}

@media screen and (max-width: 767px) {
  .cv-btn-notext {
    overflow: hidden;
    width: 100%;
    margin: 20px 0;
    /* padding: 20px 20px; */
    color: #fff;
    font-size: 1em;
    border-radius: 4px;
    background: #1a73e8;
    transition: all 0.3s;
  }
}

.cv-btn-notext:hover {
  /* padding: 1.5em 8em; */
  color: #fff;
  /* border-radius: 0; */

  background: rgb(203, 56, 56);
}

/* ボタンをinheritで効率よく作るstyle のベース設定 */

.btn,
a.btn,
button.btn {
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.5;
  position: relative;
  display: inline-block;
  padding: 1em 1em;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: #212529;
  border-radius: 0.5rem;
}

/* 角丸ボタン orange */
.btn--orange,
a.btn--orange {
  color: #fff;
  background-color: rgba(253, 128, 5, 1);
}
.btn--orange:hover,
a.btn--orange:hover {
  color: #fff;
  background: #f56500;
}

/* 角丸ボタン blue */
.btn--blue,
a.btn--blue {
  color: #fff;
  background-color: #25c5d0;
}
.btn--blue:hover,
a.btn--blue:hover {
  color: #fff;
  background: #25c5d0;
}

/* big yellowボタン */

a.btn--yellow {
  color: #000;
  background-color: #fff2008f;
}

a.btn--yellow:hover {
  color: #000;
  background: #fff20a;
}

a.btn--yellow.btn--cubic {
  border-bottom: 5px solid #ccc100;
}

a.btn--yellow.btn--cubic:hover {
  margin-top: 3px;
  border-bottom: 2px solid #ccc100;
}

a.btn-c {
  font-size: 1rem;
  position: relative;
  padding: 1.2rem 1.8rem 1.2rem 1.8rem;
  border-radius: 100vh;
}

a.btn-c i.fa {
  margin-right: 1rem;
}

a.btn-c:before {
  font-size: 1.2rem;
  line-height: 1;
  position: absolute;
  top: calc(50% - 0.8rem);
  right: 1rem;
  margin: 0;
  padding: 0;
}

/*その他と主な共通部分は省略*/
/* 薬型のボタン */

a.btn--orangebox {
  color: #fff;
  background-color: rgba(253, 128, 5, 1);
}

a.btn--orangebox:hover {
  color: #fff;
  background: #f56500;
}

a.btn-cbox {
  font-size: 1rem;
  position: relative;
  padding: 1.2rem 1.7rem 1.2rem 1.7rem;
  border-radius: 100vh;
}

a.btn-cbox i.fa {
  margin-right: 1rem;
}

/*--------------------------------------------------------------
>>> 背景 background STYLE
----------------------------------------------------------------*/
.bg-white {
  background-color: rgba(255, 255, 255, 1);
}

.bg-white-06 {
  background-color: rgba(255, 255, 255, 0.6);
}

.bg-white-08 {
  background-color: rgba(255, 255, 255, 0.8);
}

.bg-white-09 {
  background-color: rgba(255, 255, 255, 0.9);
}

.bg-black {
  background-color: rgba(0, 0, 0, 0.6);
}

.bg-white-shadow {
  margin: 0 20px 20px 20px;
  background-color: rgba(255, 255, 255, 0.6);
  border-radius: 3px;
  box-shadow: 10px 10px 0px 0px rgba(253, 128, 5, 1);
}

/*--------------------------------------------------------------
>>> Box STYLE
----------------------------------------------------------------*/
.arrow_box_bt {
  position: relative;
  background: #faf5f0;
  border-radius: 4px;
  padding: 20px;
}
@media screen and (max-width: 767px) {
  .arrow_box_bt {
    position: relative;
    background: #faf5f0;
    border-radius: 4px;
    padding: 10px;
  }
}

.arrow_box_bt:after {
  top: 100%;
  left: 50%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border-color: rgba(250, 245, 240, 0);
  border-top-color: #faf5f0;
  border-width: 20px;
  margin-left: -20px;
}

/* タイトル見出し付きbox */
/* single-acfで使用 */
.box-with-title {
  position: relative;
  max-width: auto;
  margin: 60px auto 0px;
  margin-bottom: 40px;
  padding: 1em 1.5em;
  border: 2px solid #1fc3f9;
  border-radius: 3px;
}
@media screen and (max-width: 767px) {
  .box-with-title {
    position: relative;
    max-width: auto;
    margin: 60px auto 0px;
    margin-bottom: 40px;
    padding: 1em 5px;
    border: 2px solid #1fc3f9;
    border-radius: 3px;
  }
}

.box-with-title .box-title {
  position: absolute;
  top: -1.9em;
  left: -2px;
  padding: 0.2em 0.8em;
  border-radius: 5px 5px 0 0;
  background-color: #1fc3f9;
  color: #fff;
}

.box-with-title p {
  color: #333;
}

.box-with-title-or {
  position: relative;
  max-width: auto;
  margin: 60px auto 0px;
  margin-bottom: 40px;
  padding: 1em 1.5em;
  border: 2px solid #f9a51f;
  border-radius: 3px;
}
@media screen and (max-width: 767px) {
  .box-with-title-or {
    position: relative;
    max-width: auto;
    margin: 60px auto 0px;
    margin-bottom: 40px;
    padding: 1em 5px;
    border: 2px solid #f9a51f;
    border-radius: 3px;
  }
}

.box-with-title-or .box-title-or {
  position: absolute;
  top: -1.9em;
  left: -2px;
  padding: 0.2em 0.8em;
  border-radius: 5px 5px 0 0;
  background-color: #f9a51f;
  color: #fff;
}

.box-with-title-or p {
  color: #333;
}

.hitokoto-kakomi-gy {
  display: block;
  border-radius: 5px;
  background-color: #d4d4d4;
  padding: 15px;
  color: #2c2c2c;
  font-size: 1em;
  line-height: 2;
}

.hitokoto-kakomi-gy:before {
  /* font-family: "Font Awesome 6 Free"; */
  font-weight: 900;
  /* content: "\f304"; */
}

/* 左線付きのチェックポイントボックス */
.box-point-check {
  background: #f8f8f8;
  border-left: 4px solid #d85030;
  padding: 10px 15px;
  margin-bottom: 20px;
  border-radius: 3px;
}

/* タイトル部分（hタグを使わずクラス化） */
.box-point-check .check-title {
  font-size: 15px;
  margin: 0 0 5px 0;
  font-weight: bold;
  color: #333;
}

/* リスト部分 */
.box-point-check ul.uk-list {
  font-size: 15px;
  margin: 0;
}

/* 危険・警告用の赤いボックス */
.box-alert-danger {
  background: #fff3f3;
  color: #d85030;
  border: 1px solid #d85030;
  padding: 15px;
  border-radius: 5px;
  margin-bottom: 20px;
}

/* タイトル部分（hタグを使わずにクラスで指定） */
.box-alert-danger .alert-title {
  color: #d85030;
  margin-top: 0;
  margin-bottom: 10px;
  font-weight: bold;
  font-size: 16px; /* h4〜h5相当のサイズ */
  display: block; /* 改行させる */
}

/* 本文 */
.box-alert-danger p {
  color: #d85030;
  margin-bottom: 0;
}

.dotted-hr {
  border-top: 1px dashed #d85030;
  margin: 10px 0;
}

/* 青色のお役立ち・誘導ボックス */
.box-info-blue {
  background: #f0f8ff; /* 淡い青色の背景（AliceBlue） */
  border: 1px solid #1e87f0; /* 鮮やかな青色の枠線 */
  border-radius: 5px; /* 角丸 */
  padding: 20px; /* 内側の余白 */
  margin-bottom: 30px; /* 下の余白 */
}

/* ボックス内のタイトル */
.box-info-blue .info-title {
  color: #1e87f0; /* 文字色も青に統一 */
  font-size: 16px; /* h4〜h5相当 */
  font-weight: bold; /* 太字 */
  margin-top: 0;
  margin-bottom: 10px;
  display: block; /* ブロック要素にする */
}

/* ボックス内のテキスト */
.box-info-blue p {
  font-size: 14px;
  margin-bottom: 15px;
  color: #333;
}

/* ボタンの調整（丸みをつけるなど） */
.box-info-blue .uk-button {
  border-radius: 20px; /* ボタンをカプセル型に */
}

/*--------------------------------------------------------------
>>> Font STYLE
----------------------------------------------------------------*/

.bold {
  font-weight: bold;
}

.tx-blue {
  color: #42a5f5;
}

.tx-link-blue {
  color: #0054b3;
}

.tx-lightblue {
  color: #00a1e9;
}

.tx-black {
  color: #333;
}

.tx-orange {
  color: rgba(253, 128, 5, 1);
}

.tx-magenta {
  color: #e4007f;
}

.tx-red {
  color: rgb(253, 22, 5);
}

.tx-redpink {
  color: #e62f8b;
}

/* text fuchidori color
========================================================================== */

.fuchi-wh-pinkred {
  color: #e62f8b;
  text-shadow: 1px 1px 0 #fcfcfc6d, -1px -1px 0 #fcfcfc6d, -1px 1px 0 #fcfcfc6d, 1px -1px 0 #fcfcfc6d, 0px 1px 0 #fcfcfc6d, 0 -1px 0 #fcfcfc6d, -1px 0 0 #fcfcfc6d, 1px 0 0 #fcfcfc6d;
}
.fuchi-gy-wh {
  color: #ffffff;
  text-shadow: 1px 1px 0 #969696, -1px -1px 0 #969696, -1px 1px 0 #969696, 1px -1px 0 #969696, 0px 1px 0 #969696, 0 -1px 0 #969696, -1px 0 0 #969696, 1px 0 0 #969696;
}

.fuchi-bl-wh {
  text-shadow: 1px 1px #fff, -1px 1px #fff, -1px -1px #fff, 1px -1px #fff, 1px 0px #fff, 0px 1px #fff, -1px 0px #fff, 0px -1px #fff;
  color: rgb(57, 71, 90);
}

.fontedge-white {
  text-shadow: #fff 2px 0, #fff -2px 0, #fff 0 -2px, #fff 0 2px, #fff 2px 2px, #fff -2px 2px, #fff 2px -2px, #fff -2px -2px, #fff 1px 2px, #fff -1px 2px, #fff 1px -2px, #fff -1px -2px, #fff 2px 1px,
    #fff -2px 1px, #fff 2px -1px, #fff -2px -1px;
}

.fuchi-pinkred-wh {
  color: #fcfcfc;
  text-shadow: 1px 1px 0 #e62f8b, -1px -1px 0 #e62f8b, -1px 1px 0 #e62f8b, 1px -1px 0 #e62f8b, 0px 1px 0 #e62f8b, 0 -1px 0 #e62f8b, -1px 0 0 #e62f8b, 1px 0 0 #e62f8b;
}

/* -------------------------------- */
/* hr style */
/*  ========================================================================== */

/* 45度の斜めストライプを作成しています。 */
.stylish-hr {
  border: none; /* 枠線を削除 */
  height: 10px; /* 区切り線の高さ */
  background-image: repeating-linear-gradient(
    45deg,
    /* 45度の斜め線 */ #8f8f8f,
    /* 緑色のストライプ */ #8f8f8f 10px,
    /* 線の幅 */ #f1efe9 10px,
    /* 線と線の間の色（白） */ #f1efe9 20px /* 線の間隔 */
  );
  margin: 20px 0; /* 上下の余白 */
}

/* ドットスタイルの区切り線 */
.dotted-hr {
  border: none;
  border-top: 3px dotted #d4e157; /* ドット線の色と太さ */
  margin: 20px 0;
  height: 0;
}

/* 波線スタイル */
.wavy-hr {
  border: none;
  height: 10px;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="10" viewBox="0 0 100 10"><path d="M0 5 C 20 0, 40 10, 60 5 S 100 5, 100 5" stroke="%23d4e157" stroke-width="2" fill="none" /></svg>')
    repeat-x;
  background-size: auto 10px;
  margin: 20px 0;
}

/* -------------------------------- */
/* h tag style title装飾 */
/*  ========================================================================== */

/* 上下に細いライン style
========================================================================== */

.jouge-line {
  border-top: 1px solid #404040;
  border-bottom: 1px solid #404040;
  padding: 10px 5px 8px 5px;
}

.jouge-line-bl {
  border-top: 1px solid #0e42a4;
  border-bottom: 1px solid #0e42a4;
  line-height: 1.5em;
  padding: 10px 5px 8px 5px;
}

/* 左側に縦ライン style
========================================================================== */
.left-line-ttl {
  padding: 0.25em 0.5em; /*上下 左右の余白*/
  color: #494949; /*文字色*/
  background: transparent; /*背景透明に*/
  border-left: solid 5px #12c5f1; /*左線*/
}

.left-line-ttl-red {
  padding: 0.35em 0.8em; /*上下 左右の余白*/
  color: #494949; /*文字色*/
  background: transparent; /*背景透明に*/
  border-left: solid 10px #d80c18; /*左線*/
}

.left-blue-tag {
  font-size: 1.1em;
  font-weight: 400;
  display: inline-block;
  padding: 0.35em 0.8em; /*上下 左右の余白*/
  color: #222222; /*文字色*/
  background: transparent; /*背景透明に*/
  border-left: solid 10px #2696ff; /*左線*/
}

.left-red-tag {
  font-size: 1.1em;
  display: inline-block;
  padding: 0.35em 0.8em; /*上下 左右の余白*/
  color: #222222; /*文字色*/
  background: transparent; /*背景透明に*/
  border-left: solid 10px #d80c18; /*左線*/
}

/* 左右に縦ライン style
========================================================================== */
.sayuu-line-double-ttl {
  position: relative;
  display: inline-block;
  padding: 0 55px;
}

.sayuu-line-double-ttl::before {
  content: "";
  position: absolute;
  top: 40%;
  display: inline-block;
  width: 45px;
  height: 5px;
  border-top: solid 1px black;
  border-bottom: solid 1px black;
}

.sayuu-line-double-ttl::before {
  left: 0;
}

.sayuu-line-double-ttl::after {
  content: "";
  position: absolute;
  top: 40%;
  display: inline-block;
  width: 45px;
  height: 5px;
  border-top: solid 1px black;
  border-bottom: solid 1px black;
}

.sayuu-line-double-ttl::after {
  right: 0;
}

/* 黒い下線 使用中 */

.underline-ttl {
  border-bottom: 1px solid #181818;
  padding-bottom: 2px;
  margin-bottom: 2px;
}

/* 鉤括弧見出し */
.kagi-kakko-heading {
  position: relative;
  padding: 0.5em 1em;
  color: #333333;
}

.kagi-kakko-heading::before,
.kagi-kakko-heading::after {
  display: inline-block;
  position: absolute;
  width: 10px;
  height: 100%;
  border: 3px solid #25c5d0;
  box-sizing: border-box;
  content: "";
}

.kagi-kakko-heading::before {
  top: 0;
  left: 0;
  border-right: none;
}

.kagi-kakko-heading::after {
  bottom: 0;
  right: 0;
  border-left: none;
}

/* カラフルなシャドウ見出し */

.colorshadow-blue-heading {
  padding: 0.5em 0.7em;
  border: 2px solid #2589d0;
  box-shadow: 5px 5px #2589d0;
  color: #2589d0;
}
.colorshadow-black-heading {
  padding: 0.5em 0.7em;
  border: 2px solid #343434;
  box-shadow: 5px 5px #343434;
  color: #343434;
}

.underline-single-heading {
  border-bottom: 1px solid #181818;
  padding-bottom: 3px;
}

/* 左右に斜線見出し */

.sayuu-slash-heading {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #333333;
}

.sayuu-slash-heading::before,
.sayuu-slash-heading::after {
  width: 3px;
  height: 40px;
  background-color: #181818;
  content: "";
}

.sayuu-slash-heading::before {
  transform: rotate(-35deg);
  margin-right: 30px;
}

.sayuu-slash-heading::after {
  transform: rotate(35deg);
  margin-left: 30px;
}

/* 四角飾り見出し */
.cubic-cubic-heading {
  position: relative;
  padding: 0.3em 0 0.2em 1em;
  border-bottom: 3px solid #555555;
  color: #333333;
}

.cubic-cubic-heading::before {
  position: absolute;
  top: 0;
  left: 0.3em;
  transform: rotate(55deg);
  height: 11px;
  width: 12px;
  background: #d8e8f4;
  content: "";
}

.cubic-cubic-heading::after {
  position: absolute;
  transform: rotate(15deg);
  top: 0.6em;
  left: 0;
  height: 8px;
  width: 8px;
  background: #aebbc5;
  content: "";
}

/* シンプルなボーダーライン付き見出し */
.simple-border-heading {
  position: relative;
  padding: 10px 0;
  font-size: 2rem;
  text-align: center;
  color: #333;
}

.simple-border-heading::before,
.simple-border-heading::after {
  content: "";
  position: absolute;
  height: 2px;
  background: #d4e157; /* 線の色 */
  width: 30%;
  top: 50%;
  transform: translateY(-50%);
}

.simple-border-heading::before {
  left: 0;
}

.simple-border-heading::after {
  right: 0;
}

.underline-short-heading {
  display: inline-block;
  position: relative;
  color: #333;
}

.underline-short-heading:before {
  content: "";
  display: inline-block;
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 4px;
  background-color: rgba(253, 128, 5, 1);
}

/* ストライプボックス見出し */
.stripe-box-heading {
  padding: 1rem 2rem;
  position: relative;
  color: #fff;
  background: linear-gradient(-45deg, darken(#eb6100, 3%) 25%, #eb6100 0, #eb6100 50%, darken(#eb6100, 3%) 0, darken(#eb6100, 3%) 75%, #eb6100 0);
  background-size: 20px 20px;
}

/* 下吹き出し風見出し */

.under-baloon-heading {
  position: relative;
  padding: 1.3em 0.5em 0.4em 0.5em;
  border-bottom: 3px solid #454545;
  color: #333333;
}

.under-baloon-heading::before,
.under-baloon-heading::after {
  position: absolute;
  left: 30px;
  bottom: -15px;
  width: 30px;
  height: 15px;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  content: "";
}

.under-baloon-heading::before {
  background-color: #454545;
}

.under-baloon-heading::after {
  bottom: -11px;
  background-color: #fff;
}

@media (max-width: 640px) {
  .under-baloon-heading {
    margin-top: 20px;
    margin-left: 5px;
    position: relative;
    padding: 1em 0.5em 1em 0.5em;
    border: 3px solid #454545;
    color: #333333;
    line-height: 1.7;
  }

  .under-baloon-heading::before,
  .under-baloon-heading::after {
    position: absolute;
    left: 30px;
    bottom: -15px;
    width: 30px;
    height: 15px;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    content: "";
  }

  .under-baloon-heading::before {
    background-color: #454545;
  }

  .under-baloon-heading::after {
    bottom: -11px;
    background-color: #fff;
  }
}

/* 背景に回り込む見出し */
.heading-11 {
  position: relative;
  padding: 0.5em 0.7em;
  background-color: #089dd9;
  color: #fff;
}

.heading-11::before {
  position: absolute;
  top: 100%;
  left: 0;
  border-bottom: solid 10px transparent;
  border-right: solid 20px #116cae;
  content: "";
}

/* リボン付き付き見出し */
.ribbon-heading {
  position: relative;
  width: 290px;
  margin: 0 auto;
  padding: 0.5em 0.7em;
  background-color: #fda308;
  color: #fff;
  text-align: center;
}

.ribbon-heading::before,
.ribbon-heading::after {
  position: absolute;
  bottom: -10px;
  z-index: -1;
  border-style: solid;
  border-color: #ed9300;
  content: "";
}

.ribbon-heading::before {
  left: -30px;
  border-width: 25px 25px 25px 15px;
  border-left-color: transparent;
}

.ribbon-heading::after {
  right: -30px;
  border-width: 25px 15px 25px 25px;
  border-right-color: transparent;
}

.ribbon-heading span::before,
.ribbon-heading span::after {
  position: absolute;
  bottom: -10px;
  width: 10px;
  height: 10px;
  background-color: #9d4300;
  content: "";
}

.ribbon-heading span::before {
  left: 0;
  clip-path: polygon(0 0, 100% 0%, 100% 100%);
}

.ribbon-heading span::after {
  right: 0;
  clip-path: polygon(0 0, 100% 0%, 0% 100%);
}

/* 縦リボン付き見出し */

.tate-ribbon-heading {
  position: relative;
  padding: 1rem 2rem 1rem 4em;
  background: #fff;
}

.tate-ribbon-heading span {
  position: absolute;
  top: -10px;
  left: 20px;
  display: inline-block;
  width: 52px;
  height: 50px;
  text-align: center;
  background: #fa4141;
}

.tate-ribbon-heading span:before,
.tate-ribbon-heading span:after {
  position: absolute;
  content: "";
}

.tate-ribbon-heading span:before {
  right: -10px;
  width: 0;
  height: 0;
  border-right: 10px solid transparent;
  border-bottom: 10px solid #d90606;
}

.tate-ribbon-heading span:after {
  top: 50%;
  left: 0;
  display: block;
  height: 50%;
  border: 1em solid #fa4141;
  border-bottom-width: 15px;
  border-bottom-color: transparent;
}

/* バックグラウンド付き見出し */
.background-heading {
  display: inline-block;
  background-color: #42a5f5; /* 背景色 */
  color: #fff;
  padding: 5px 15px;
  border-radius: 5px; /* 角丸効果 */
  font-size: 1.5rem;
}

/* 下線にアイコン付き */
.icon-underline-heading {
  display: inline-block;
  position: relative;
  font-size: 2rem;
  color: #333;
}

.icon-underline-heading::after {
  content: "★";
  position: absolute;
  left: 50%;
  bottom: -10px;
  transform: translateX(-50%);
  font-size: 1.2rem;
  color: #d4e157;
}

.icon-underline-heading::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 2px;
  background-color: #d4e157; /* 下線の色 */
  bottom: -15px;
  left: 0;
}

/* グラデーション文字 */
.gradient-heading {
  font-size: 2rem;
  background: linear-gradient(90deg, #ff6f61, #d4e157, #42a5f5);
  -webkit-background-clip: text;
  color: transparent;
}

/* シャドウ付き立体見出し */
.shadow-heading {
  font-size: 2.5rem;
  color: #333;
  text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2), 4px 4px 10px rgba(0, 0, 0, 0.1);
}

/* 両サイドに装飾ライン */
.line-side-heading {
  display: flex;
  align-items: center;
  font-size: 2rem;
  color: #333;
}

.line-side-heading::before,
.line-side-heading::after {
  content: "";
  flex: 1;
  height: 2px;
  background: #d4e157;
  margin: 0 15px;
}

/* 波線付き見出し */
.wavy-heading {
  position: relative;
  font-size: 2rem;
  text-align: center;
  color: #333;
}

.wavy-heading::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -10px;
  height: 10px;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="10" viewBox="0 0 100 10"><path d="M0 5 C 20 0, 40 10, 60 5 S 100 5, 100 5" stroke="%23d4e157" stroke-width="2" fill="none" /></svg>')
    repeat-x;
  background-size: auto 10px;
}

/* アウトライン風見出し */
.outline-heading {
  font-size: 2rem;
  color: transparent;
  -webkit-text-stroke: 1px #d4e157; /* 外枠の色 */
  text-transform: uppercase; /* 大文字に変換 */
}

/* 両端にブロックの見出し */
.decorated-heading {
  display: flex; /* 念のためUIkitのflexを補完 */
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-weight: bold;
  color: #333;
}

.decorated-heading .line {
  height: 2px; /* 線の太さ */
  background-color: #333; /* 線の色 */
  position: relative;
}

.decorated-heading h2 {
  font-weight: bold;
  color: #333;
  text-transform: uppercase; /* NEWSをすべて大文字に */
  margin-top: 20px; /* uk-h2のmargin-top を上書き */
}

.decorated-heading .line::before {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  background-color: #333; /* 四角の色 */
  left: -12px; /* 四角の位置調整（線の外側） */
  top: 50%;
  transform: translateY(-50%);
}

.decorated-heading .line:last-of-type::before {
  left: auto;
  right: -12px; /* 右側の四角位置調整 */
}

.bg-blue-heading {
  background-color: #42a5f5; /* 背景色 */
  color: #fff;
  padding: 5px 10px;
  border-radius: 6px; /* 角丸効果 */
  font-size: 1.2rem;
}

/* 下線のみの吹き出し風見出し */

/* シンプルなストライプの見出し */
.underline-stripe-heading {
  position: relative;
  padding: 1.5rem 1rem;
}

.underline-stripe-heading:after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 10px;
  content: "";
  background-image: -webkit-repeating-linear-gradient(135deg, #000, #000 1px, transparent 2px, transparent 5px);
  background-image: repeating-linear-gradient(-45deg, #000, #000 1px, transparent 2px, transparent 5px);
  background-size: 7px 7px;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* 下線2色の見出し */

.underline-twocolor-heading {
  position: relative;
  padding: 1rem 2rem 0.5rem 0.5em;
  border-bottom: 6px solid #fad02c;
}

.underline-twocolor-heading:before {
  position: absolute;
  bottom: -6px;
  left: 0;
  width: 20%;
  height: 6px;
  content: "";
  background: rgba(253, 128, 5, 1);
}

/* -------------------------------- */
/* Margin style */
/* -------------------------------- */

/* margin remove margin 0
	 ========================================================================== */

.no-mg {
  margin: 0;
}

/* margin サイズ別 上下左右指定
	 ========================================================================== */

.mg2 {
  margin: 2px;
}

.mg5 {
  margin: 5px;
}

.mg10 {
  margin: 10px;
}

.mg20 {
  margin: 20px;
}
.mg30 {
  margin: 30px;
}
.mg40 {
  margin: 40px;
}
.mg50 {
  margin: 50px;
}
.mg60 {
  margin: 60px;
}
.mg70 {
  margin: 70px;
}
.mg80 {
  margin: 80px;
}
.mg90 {
  margin: 90px;
}
.mg100 {
  margin: 100px;
}

/* margin サイズ別 上下のみの指定
	 ========================================================================== */

.mgtb5 {
  margin: 5px 0;
}

.mgtb10 {
  margin: 10px 0;
}

.mgtb20 {
  margin: 20px 0;
}

.mgtb30 {
  margin: 30px 0;
}

.mgtb40 {
  margin: 40px 0;
}

.mgtb50 {
  margin: 50px 0;
}
.mgtb60 {
  margin: 60px 0;
}
.mgtb70 {
  margin: 70px 0;
}

/* critical css にcopy CLS改善のため */
/* .mgtb80 {
  margin: 80px 0;
} */

.mgtb100 {
  margin: 100px 0;
}

/* margin サイズ別 マージントップのみの指定
	 ========================================================================== */

.mgt3 {
  margin-top: 3px;
}

.mgt5 {
  margin-top: 5px;
}

.mgt10 {
  margin-top: 10px;
}

.mgt15 {
  margin-top: 15px;
}

.mgt20 {
  margin-top: 20px;
}

.mgt30 {
  margin-top: 30px;
}

.mgt40 {
  margin-top: 40px;
}

.mgt50 {
  margin-top: 50px;
}

.mgt60 {
  margin-top: 60px;
}

.mgt70 {
  margin-top: 70px;
}
.mgt80 {
  margin-top: 80px;
}
.mgt90 {
  margin-top: 90px;
}
.mgt100 {
  margin-top: 100px;
}
.mgt120 {
  margin-top: 120px;
}
.mgt150 {
  margin-top: 150px;
}
.mgt200 {
  margin-top: 200px;
}

/* margin サイズ別 マージンボトムのみの指定
	 ========================================================================== */

.mgb2 {
  margin-bottom: 2px;
}

.mgb5 {
  margin-bottom: 5px;
}

.mgb10 {
  margin-bottom: 10px;
}

.mgb16 {
  margin: 16px;
}

.mgb15 {
  margin-bottom: 30px;
}

.mgb20 {
  margin-bottom: 20px;
}

.mgb25 {
  margin-bottom: 25px;
}

.mgb30 {
  margin-bottom: 30px;
}

.mgb40 {
  margin-bottom: 40px;
}

.mgb50 {
  margin-bottom: 50px;
}

.mgb60 {
  margin-bottom: 60px;
}

.mgb70 {
  margin-bottom: 70px;
}

.mgb80 {
  margin-bottom: 80px;
}
.mgb90 {
  margin-bottom: 90px;
}
.mgb100 {
  margin-bottom: 100px;
}

/* margin サイズ別 マージン左のみの指定
	 ========================================================================== */
@media screen and (max-width: 767px) {
  .mgl0 {
    margin-left: 0;
  }
}

.mgl2 {
  margin-left: 2px;
}
.mgl5 {
  margin-left: 5px;
}
.mgl10 {
  margin-left: 10px;
}

.mgl15 {
  margin-left: 15px;
}

.mgl20 {
  margin-left: 20px;
}
.mgl30 {
  margin-left: 30px;
}

.mgl40 {
  margin-left: 40px;
}

.mgl17 {
  margin-left: 17px;
}

.mgl60 {
  margin-left: 60px;
}

/* margin サイズ別 マージン右のみの指定
	 ========================================================================== */

.mgr5 {
  margin-right: 5px;
}
.mgr10 {
  margin-right: 10px;
}

.mgr15 {
  margin-right: 15px;
}

.mgr17 {
  margin-right: 17px;
}
.mgr20 {
  margin-right: 20px;
}

/* opacity style
     ========================================================================== */
.op-08 {
  opacity: 0.8;
}

/* padding style
     ========================================================================== */

.no-pdd {
  padding: 0px;
}

.pdd1 {
  padding: 1px;
}

.pdd2 {
  padding: 2px;
}

.pdd5 {
  padding: 5px;
}

.pdd10 {
  padding: 10px;
}

.pdd20 {
  padding: 20px;
}

.pdd30 {
  padding: 30px;
}

.pdd40 {
  padding: 40px;
}

.pdd50 {
  padding: 50px;
}
.pdd60 {
  padding: 60px;
}

/* padding サイズ別 topのみの指定
	 ========================================================================== */

.pddt20 {
  padding-top: 20px;
}

.pddt40 {
  padding-top: 40px;
}

/* padding サイズ別 bottomのみの指定
	 ========================================================================== */

.pddb5 {
  padding-bottom: 5px;
}

.pddb20 {
  padding-bottom: 20px;
}

.pddb40 {
  padding-bottom: 40px;
}

/* padding サイズ別 上下の指定
	 ========================================================================== */

.pddtb20 {
  padding-top: 20px;
  padding-bottom: 20px;
}

/* padding サイズ別 左のみの指定
	 ========================================================================== */
.pddl5 {
  padding-left: 5px;
}

.pddl10 {
  padding-left: 10px;
}

.pddl15 {
  padding-left: 15px;
}

.pddl20 {
  padding-left: 20px;
}
.pddl40 {
  padding-left: 40px;
}

/* padding サイズ別 右のみの指定
	 ========================================================================== */
.pddr5 {
  padding-right: 5px;
}

.pddr10 {
  padding-right: 10px;
}

.pddr20 {
  padding-right: 20px;
}

/* padding サイズ別 左右の指定
	 ========================================================================== */

.pddlr1 {
  padding: 0 1px;
}

.pddlr5 {
  padding: 0 5px;
}
.pddlr10 {
  padding: 0 10px;
}

.pddlr20 {
  padding: 0 20px;
}
.pddlr40 {
  padding: 0 40px;
}

/* padding 0の指定
	 ========================================================================== */
.pdd0 {
  padding: 0 0 0 0;
}

/* p のStyle
	 ========================================================================== */
.pl-height-15 {
  line-height: 1.5;
}

.pl-height-20 {
  line-height: 2;
}

/* Radius 角丸の設定
	 ========================================================================== */

.radi4 {
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
}
.radi5 {
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
}

.radi6 {
  border-radius: 6px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
}

.radi10 {
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
}

.enn {
  width: 200px;
  height: 200px;
  border-radius: 50%;
}

.enn-orange {
  display: inline-block;
  margin: 0;
  width: 100px;
  height: 100px;
  padding-top: 30px;
  line-height: 1.2;
  background-color: rgb(255, 179, 16);
  border-radius: 50%;
  color: #fff;
  text-align: center;
}

.square-orange {
  display: inline-block;
  margin: 0;
  width: 100px;
  height: 100px;
  padding: 20px;
  line-height: 1.2;
  background-color: rgb(255, 179, 16);
  /* border-radius: 40%; */
  color: #fff;
  text-align: center;
}

/* text 文字の大きさ 
========================================================================== */
.txsize-06 {
  font-size: 0.6em;
}

.txsize-07 {
  font-size: 0.7em;
}

.txsize-08 {
  font-size: 0.8em;
}

.txsize-09 {
  font-size: 0.9em;
}

.txsize-10 {
  font-size: 1em;
}

.txsize-11 {
  font-size: 1.1em;
}

.txsize-12 {
  font-size: 1.2em;
}

.txsize-13 {
  font-size: 1.3em;
}

.txsize-14 {
  font-size: 1.4em;
}

.txsize-15 {
  font-size: 1.5em;
}

.txsize-16 {
  font-size: 1.6em;
}

.txsize-17 {
  font-size: 1.7em;
}

.txsize-18 {
  font-size: 1.8em;
}

.txsize-19 {
  font-size: 1.9em;
}

.txsize-20 {
  font-size: 2em;
}

.txsize-25 {
  font-size: 2.5em;
}

.txsize-30 {
  font-size: 3em;
}

.txsize-31 {
  font-size: 3.1em;
}

.txsize-32 {
  font-size: 3.2em;
}

.txsize-r32 {
  font-size: 3.2rem;
}

@media screen and (max-width: 767px) {
  /* ここから -0.2 */
  .txsize-10 {
    font-size: 0.9em;
  }

  .txsize-11 {
    font-size: 1em;
  }

  .txsize-12 {
    font-size: 1em;
  }

  .txsize-13 {
    font-size: 1.1em;
  }

  .txsize-14 {
    font-size: 1.2em;
  }

  .txsize-15 {
    font-size: 1.3em;
  }

  .txsize-16 {
    font-size: 1.4em;
  }

  .txsize-17 {
    font-size: 1.5em;
  }

  .txsize-18 {
    font-size: 1.6em;
  }

  .txsize-19 {
    font-size: 1.7em;
  }

  /* ここから-0.5 */
  .txsize-20 {
    font-size: 1.5em;
  }

  .txsize-25 {
    font-size: 2em;
  }

  .txsize-30 {
    font-size: 2.5em;
  }

  .txsize-31 {
    font-size: 2.6em;
  }

  .txsize-32 {
    font-size: 2.7em;
  }
}
