@charset "UTF-8";
/*
==================================================
 カイロベーシック用スタイルシート
 Ver 1.0
 テーマ：SWELL
 サイト：マルチサイト共有
 ==================================================
*/

/* ===============================================================*/
/* 共通設定 ------------------------------------------------------*/
/* ===============================================================*/

/*共通文字装飾*/
.u  { text-decoration: underline; }
.r  { color: #f00; }
.bl { color:#0176E4; }
.blk{ color:#000; }
.wh {color:#fff;}
.dr {color:#8E0720;}
.g  {color:#0B3D10;}
.ye { color: #FFE70B; }
.w  {background-color:#1CF7FB;}
.y  {background-color:#ff0;}
.y2 {background-color:#ff0; height: 35px; display: inline-block;}
.y3 {background-color:#F3F4C6;}
.fw10 { font-weight: 100; }
.fw30 { font-weight: 300; }
.fw50 { font-weight: 500; }
.fw70 { font-weight: 700; }
.fw90 { font-weight: 900; }
.fs07 { font-size: 0.7em; }
.fs08 { font-size: 0.8em; }
.fs09 { font-size: 0.9em; }
.fs10 { font-size: 1.0em; }
.fs11 { font-size: 1.1em; }
.fs12 { font-size: 1.2em; }
.fs13 { font-size: 1.3em; }
.fs14 { font-size: 1.4em; }
.fs15 { font-size: 1.5em; }
.fs16 { font-size: 1.6em; }
.fs17 { font-size: 1.7em; }
.fs18 { font-size: 1.8em; }
.fs19 { font-size: 1.9em; }
.fs20 { font-size: 2.0em; }
.fs25 { font-size: 2.5em; }
.fs30 { font-size: 3.0em; }
.lh13 { line-height: 1.3; }
.lh14 { line-height: 1.4; }
.lh15 { line-height: 1.5; }
.lh16 { line-height: 1.6; }
.lh17 { line-height: 1.7; }
.lh18 { line-height: 1.8; }
.lh19 { line-height: 1.9; }
.lh20 { line-height: 2.0; }
.ls {letter-spacing: -0.15em;}
.b  { font-weight: bold; }
.y_marker{ background: linear-gradient(transparent 50%, #ffffac 50%); }
.border{ border-bottom: 1px dotted #eee; }

.gothic { font-family:'Yu Gothic', sans-serif; }
.mincho { font-family:"Noto Serif JP", "游明朝体", "YuMincho", "游明朝", "Yuh Mincho", serif; font-weight: 700; font-style: normal; }
.noto { font-family: "Shin Go Bold",'Century Gothic','Yu Gothic', sans-serif; }
.noto_mincho { font-family: 'Ryumin Bold KL', "游明朝体", "YuMincho", "游明朝", "Yu Mincho", serif; }

.glow_bk {text-shadow: 0px 0px 10px rgba(0, 0, 0, 1);}
.glow_wh {text-shadow: 0px 0px 5px rgb(255, 255, 255), 0px 0px 10px rgb(255, 255, 255), 0px 0px 15px rgb(255, 255, 255);}
.glow_yl {text-shadow: 0px 0px 5px rgb(255, 255, 0), 0px 0px 10px rgb(255, 255, 0), 0px 0px 15px rgb(255, 255, 0);}

.drop_shadow_bk {text-shadow: 2px 3px 3px rgba(0, 0, 0, 0.4);}
.drop_shadow_wh {text-shadow: 2px 3px 3px rgba(255, 255, 255, 0.6);}
.drop_shadow_yl {text-shadow: 2px 3px 3px rgba(255, 255, 0, 0.6);}

/*非表示設定*/
.hi { display: none; }
.hy { display: block; }

/* レスポンシブ表示用設定 ----------------------------------------------*/
/* タブレット表示の装飾 ------------------------------------------------*/
/*960px以下（タブレット）*/
@media screen and (max-width: 959px) {
  /*文字装飾*/
  .fs07 { font-size: 0.7em; }
  .fs08 { font-size: 0.8em; }
  .fs09 { font-size: 0.9em; }
  .fs10 { font-size: 1.0em; }
  .fs11 { font-size: 1.0em; }
  .fs12 { font-size: 1.1em; }
  .fs13 { font-size: 1.1em; }
  .fs14 { font-size: 1.2em; }
  .fs15 { font-size: 1.2em; }
  .fs16 { font-size: 1.3em; }
  .fs17 { font-size: 1.3em; }
  .fs18 { font-size: 1.4em; }
  .fs19 { font-size: 1.4em; }
  .fs20 { font-size: 1.5em; }
  .fs25 { font-size: 1.5em; }
  .fs30 { font-size: 2.5em; }
  
  /*非表示設定*/
  .hi { display: block; }
  .hy { display: none; }
}

/* スマホ表示の装飾 ------------------------------------------------*/
/*600px以下（スマホ）*/
@media screen and (max-width: 599px) {
	.sp_none {display: none;}
	.sp_align_left { text-align: left; }
	.sp_align_right { text-align: right; }
	.sp_align_center { text-align: center; }
	div.swell-block-columns.sp_reverse div.swell-block-columns__inner { flex-wrap: wrap-reverse; }
}



/* ===============================================================*/
/* アニメーション ------------------------------------------------*/
/* ===============================================================*/

/* フラッシュ ------------------------------------------------*/
@keyframes flash {
	from, 50%, to {
		opacity: 1;
		text-shadow:
		0px 0px 10px #ff0,
		0px 0px 30px #ff0,
		0px 0px 50px #ffffbd;}
	25%, 75% {
		opacity: 0.3;
		text-shadow:none;}}
@-webkit-keyframes flash {
	from, 50%, to {
		opacity: 1;
		text-shadow:
		0px 0px 10px #ff0,
		0px 0px 30px #ff0,
		0px 0px 50px #ffffbd;}
		25%, 75% {
			opacity: 0.3;
			text-shadow:none;}}
.flash {
	animation-duration:3s;
	animation-iteration-count:infinite;
	-webkit-animation-name: flash;
	animation-name: flash;
	margin: inherit;
}

/* フェードイン ------------------------------------------------*/
.fadein {
	animation-name: fadeinAnime;
	animation-duration: 3s;
	animation-fill-mode: forwards;
	opacity : 0;
}
@keyframes fadeinAnime {
	from { opacity: 0; }
	to { opacity: 1; }
}

/* バウンス ------------------------------------------------*/
.bounce {
  animation: bounce 1.5s linear infinite;
}
@keyframes bounce {
  from, 20%, 53%, 80%, to {
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    transform: translate3d(0,0,0);}
  40%, 43% {
    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    transform: translate3d(0, -15px, 0); }
  70% {
    transform: translate3d(0, -10px, 0); }
  90% {
    transform: translate3d(0,-4px,0); }
}

/* キラリ ------------------------------------------------*/
.reflection {
  position: relative;
  overflow: hidden;
}
.reflection::after {
  content: "";
  display: block;
  width: 30px;
  height: 100%;
  position: absolute;
  top: -180px;
  left: 0;
  background-color: #FFF;
  opacity: 0;
  transform: rotate(45deg);
  animation: reflect 2s ease-in-out infinite;
  -webkit-transform: rotate(45deg);
  -webkit-animation: reflect 2s ease-in-out infinite;
}
@keyframes reflect {
  0% { transform: scale(0) rotate(45deg); opacity: 0; }
  80% { transform: scale(0) rotate(45deg); opacity: 0.5; }
  81% { transform: scale(4) rotate(45deg); opacity: 1; }
  100% { transform: scale(50) rotate(45deg); opacity: 0; }
}
@-webkit-keyframes reflect {
  0% { transform: scale(0) rotate(45deg); opacity: 0; }
  80% { transform: scale(0) rotate(45deg); opacity: 0.5; }
  81% { transform: scale(4) rotate(45deg); opacity: 1; }
  100% { transform: scale(50) rotate(45deg); opacity: 0; }
}

/* ===============================================================*/
/* 汎用ボタン ----------------------------------------------------*/
/* ===============================================================*/
/* 共通 */
.deco {text-align: center; margin-right: 5px;}
.button,
.button::after {
	display: block;
	overflow: hidden;
}
.button:hover {cursor: pointer;}
.btn-cart-button li {
	line-height: 1;
}
.button ul {
	list-style: none;
}
.button .btn-price {
	margin-bottom: 0.5em;
}
.button .btn-price ul {
	list-style: none;
	list-style-type: none;
	margin: 0;
	padding: 0;
}
.button .btn-price li.btn-price-special {
	color: #f00;
	font-size: 1em;
	font-weight: 900;
}
.button .btn-price li.btn-price-listprice {
	color: #000;
	font-size: 1em;
	font-weight: 900;
}
.button .btn-price li.btn-price-listprice-sub {
	color: #000;
	font-size: 0.7em;
	font-weight: 900;
}
.button .btn-price li .btn-price-taxlabel {
	font-size: 0.8em;
}
.button .btn-price li .btn-price-num {
	font-size: 1.2em;
}
.single_button {
	max-width: 620px;
	margin: 0 auto;
}

/* タイプa（グラデーション） */
.btn_typea {
	position: relative;
	text-align: center;
	border-radius: 10px;
}
.btn_typea::after {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	content: "";
	transition: all 0.1s ease-in-out 0.1s;
	opacity: 0;
	color: #000;
}
.btn_typea:active {
	top: 6px;
	left: 5px;
	box-shadow:inset 0 -1px 10px rgb(0 0 0) !important;
	transition: all 0.3s ease-in-out 0.1s;
}

/* タイプb（ソリッド） */
.btn_typeb {
	border-radius: 10px;
	box-shadow: 4px 4px 8px 0px rgb(0 0 0 / 30%);
}

/* ===============================================================*/
/* モーダルウィンドウ --------------------------------------------*/
/* ===============================================================*/
div.pagebox iframe {
	width: 100%;
	height: 85vh;
}
.modal {
    display: none;
    top: 0;
	left: 0;
    width: 100%;
    height: 100vh;
    box-sizing: border-box;
    position: fixed;
	z-index: 999;
}
.modal__bg {
    background: rgba(0,0,0,0.8);
    height: 100vh;
    position: absolute;
    width: 100%;
}
div#pagebox {
	position: absolute;
	top: calc(50% + 30px);
	left: 50%;
	width: 90%;
	padding: 5px 5px;
	background: #fff;
	transform: translate(-50%,-50%);
	opacity: 0;
	-webkit-transition: opacity 1s;
	-moz-transition: opacity 1s;
	-ms-transition: opacity 1s;
	-o-transition: opacity 1s;
	transition: opacity 1s;
}
.open {
	-webkit-transition: opacity 1s !important;
	-moz-transition: opacity 1s !important;
	-ms-transition: opacity 1s !important;
	-o-transition: opacity 1s !important;
	transition: opacity 1s ease-in-out !important;
	opacity: 1 !important;
}
div.modal.mobile div#pagebox {
	width: 100%;
	padding: 5px 0;
}
div#pagebox .modal-close {
	text-align: right;
}
div#pagebox .modal-close span {
	display: inline-block;
	width: calc(100% - 40px);
	margin: 0 auto;
	padding: 0;
	text-align: center;
	vertical-align: top;
	font-size: 1.3em;
	font-weight: 700;
}
div#pagebox .modal-close a {
	text-align: right;
	text-decoration: none;
	font-size: 40px;
	line-height: 40px;
}

/* ===============================================================*/
/* カウントダウンタイマー ----------------------------------------*/
/* ===============================================================*/
.cdt_wrapper {
	position: sticky;
	top: 0;
	z-index: 10;
	display: -ms-flexbox;
	display: none;
	-ms-flex-pack: center;
	justify-content: center;
	-ms-flex-align: center;
	width: 100%;
	padding: 0.2em 0;
	text-align: center;
	letter-spacing: 1px;
	font-weight: bold;
	box-shadow: 0 1px 4px #000;
}
#CDT {font-weight: bold;}
.cdt_txt {
	font-size: 1em;
	margin-right: 0.6em;
}
.cdt_num {
	margin-right: 0.1em;
	padding: 0 0.15em;
	font-size: 1.5em;
	font-weight: 900;
}
.cdt_br {display: none;}
@media screen and (max-width: 1024px) {
	.cdt_txt {font-size: 0.6em;}
	.cdt_num {font-size: 0.8em;}
}
@media screen and (max-width: 760px) {
	.cdt_wrapper {
		height: 40px;
		padding: 0 0 5px 10px;
		line-height: 0.6em;
		box-sizing: border-box;
	}
	.cdt_txt {
		font-size: 0.5em;
		margin-right: 0;
	}
	.cdt_num {
		font-size: 0.6em;
		margin-right: 0;
	}
	.cdt_br {display: block;}
}



/* ===============================================================*/
/* ブロックエディターで使用する装飾 ------------------------------------------------*/
/* ===============================================================*/
.t-aligncenter {text-align: center;}
.c-red {color: #f00;}
p.has-background.komi1 {padding: 1em 2em;}
.post_content h4:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {padding: 0 0 0 16px; border-left: solid 10px var(--color_htag);}
div.post_content figure.spec table tr th {width: 30% !important; text-align: center;}
div.l-content.l-container .text-u a {text-decoration: underline;}

/* コンテンツ幅の調整 */
.cw500, .cw800, .cw1000, .cw1300, .cw1500, .cw1800 {width: 100%; margin-left: auto; margin-right: auto;}
.cw500  {max-width: 500px !important;}
.cw800  {max-width: 800px !important;}
.cw1000 {max-width: 1000px !important;}
.cw1300 {max-width: 1300px !important;}
.cw1500 {max-width: 1500px !important;}
.cw1800 {max-width: 1800px !important;}
/* グループ(背景有り)の外余白除去 */
.margin_none {margin: 0 !important;}
.marginw_none {margin-left: 0 !important; margin-right: 0 !important;}
.marginh_none {margin-top: 0 !important; margin-bottom: 0 !important;}
/* グループ(背景有り)の内余白除去 */
.padding-none {padding: 0 !important;}
.paddingw-none {padding-left: 0 !important; padding-right: 0 !important;}
.paddingh-none {padding-top: 0 !important; padding-bottom: 0 !important;}
/* アンカータグのオフセット対応 */
.id-offset {padding-top: 150px !important; /*margin: 0 !important;*/}

/* 利用者の声　装飾 */
p.has-background.voice_title {
	display: inline-block;
	position: absolute;
	height: 40px;
	padding: 0.5em 2em 0;
	box-sizing: border-box;
	-webkit-transform: rotate(-5deg);
	transform: rotate(-5deg);
	z-index: 1;
}
.has-border.-border03.voice_box {
	width: 100%;
	margin: 0 10px 1.5em 10px;
	position: relative;
	padding: 3em 2em 1em;
	border: 5px dotted #F1876D;
	border-radius: 10px;
}

/* レスポンシブ表示用設定 ----------------------------------------------*/
/* タブレット表示の装飾 ------------------------------------------------*/
/*960px以下（タブレット）*/
@media screen and (max-width: 959px) {
}

/* スマホ表示の装飾 ------------------------------------------------*/
/*600px以下（スマホ）*/
@media screen and (max-width: 599px) {
.id-offset {padding-top: 100px !important;}
}
