body {
	font-family: "Roboto", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
	font-weight: 300;
	/** 16px/14px **/
	font-size: clamp(0.875rem, 0.83rem + 0.23vw, 1rem);
	line-height: 1.85;
	color: #1f272b;
}

a {
	opacity: 1;
	transition: 0.2s;
}

a:hover {
	opacity: 0.6;
}

.container {
	max-width: 1100px;
}

/*********************
*  font
*********************/
/**** size ****/
.fontSS {
	font-size: 10px;
}

.fontS {
	/** 12px/10px **/
	font-size: clamp(0.625rem, 0.58rem + 0.23vw, 0.75rem);
}

.fontM {
	/** 13px/11px **/
	font-size: clamp(0.688rem, 0.642rem + 0.23vw, 0.813rem);
}

.fontML {
	/** 14px/12px **/
	font-size: clamp(0.75rem, 0.705rem + 0.23vw, 0.875rem);
}

.fontL {
	/** 16px/14px **/
	font-size: clamp(0.875rem, 0.83rem + 0.23vw, 1rem);
}

.fontLL {
	/** 18px/16px **/
	font-size: clamp(1rem, 0.955rem + 0.23vw, 1.125rem);
}

.fontX {
	/** 20px/17px **/
	font-size: clamp(1.063rem, 0.994rem + 0.34vw, 1.25rem);
}

.fontXL {
	/** 22px/18px **/
	font-size: clamp(1.125rem, 1.034rem + 0.45vw, 1.375rem);
}

.fontXXL {
	/** 24px/20px **/
	font-size: clamp(1.25rem, 1.159rem + 0.45vw, 1.5rem);
}

.fontXLL {
	/** 28px/20px **/
	font-size: clamp(1.25rem, 1.068rem + 0.91vw, 1.75rem);
}

.fontContTtl {
	/** 30px/22px **/
	font-size: clamp(1.375rem, 1.193rem + 0.91vw, 1.875rem);
}

/*********************
*  font-color
*********************/
.fc_red {
	color: #c93030;
}

.fc_gray1 {
	color: #667683;
}

.fc_gray2 {
	color: #8f9fa2;
}

.fc_gray3 {
	color: #c3ceca;
}

.fc_gray4 {
	color: #f7f5ef;
}

.fc_blue1 {
	color: #aab8d0;
}

.fc_ocher {
	color: #c0c4be;
}

/*********************
*  line
*********************/
.line18 {
	line-height: 1.8;
}

/*********************
*  background-color
*********************/
.bg_ocher {
	background-color: #f6f5f0;
}

.bg_earth {
	background-color: #f7f5ef;
}

/*********************
*  ttl
*********************/
.ttl01 {
	position: relative;
	padding-top: 30px;
}

.ttl01::after {
	content: "";
	position: absolute;
	background-color: #8f9fa2;
	width: 100px;
	height: 1px;
	top: 0;
	left: 0;
}

.ttl02 {
	position: relative;
	padding-left: 20px;
	margin-bottom: 10px;
}

.ttl02::after {
	content: "";
	position: absolute;
	background-color: #667e83;
	width: 10px;
	height: 10px;
	border-radius: 10px;
	left: 0;
	top: 7px;
}

/*********************
*  table
*********************/
table.table_style01 {
	width: 100%;
	background-color: #fff;
	border: solid 1px #cdcdcd;
}

table.table_style01 th,
table.table_style01 td {
	border: solid 1px #cdcdcd;
	padding: 10px;
}

table.table_style01 th {
	background-color: #8f9fa2;
	color: #fff;
	font-weight: normal;
}

/*********************
*  スペーシング
*********************/
.space_m_t1 {
	margin-top: 9rem;
}

.space_p_y1 {
	padding-top: 9rem;
	padding-bottom: 9rem;
}

.space_p_yt1 {
	padding-top: 9rem;
}

.space_p_yb1 {
	padding-bottom: 9rem;
}

@media (max-width: 991px) {
	.space_t1 {
		padding-top: 3rem;
	}

	.space_m_t1 {
		margin-top: 4rem;
	}

	.space_p_y1 {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}

	.space_p_yt1 {
		padding-top: 4rem;
	}

	.space_p_yb1 {
		padding-bottom: 4rem;
	}
}

/*********************
*  ボタン
*********************/
.link_txt {
	color: #c93030;
	text-decoration: underline;
}

.link_btn {
	display: block;
	background-color: #000;
	border-radius: 50px;
	text-align: center;
	color: #fff;
	padding: 8px;
	max-width: 360px;
	margin-inline: auto;
}

/*********************
*  グローバルナビ
*********************/
.header {
	position: absolute;
	left: 0;
	top: 30px;
	width: 100%;
	z-index: 300;
}

.header .container {
	max-width: 1400px;
}

.nav_menu {
	background-color: rgba(255, 255, 255, 0.7);
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);
	border-radius: 100px;
	padding: 10px 30px;
	align-items: center;
	display: flex;
}

.nav_menu ul li {
	position: relative;
}

.nav_menu>ul>li {
	padding: 20px 0;
}

.nav_menu ul li a {
	display: block;
	transition: all 0.3s;
	font-size: 12px;
}

.nav_menu ul li li a {
	margin-bottom: 5px;
}

.nav_menu ul li li:last-child a {
	margin-bottom: 0;
}

.nav_menu ul li.has-child {
	padding-right: 10px;
}

.nav_menu ul li.has-child::before {
	content: "";
	position: absolute;
	right: -2%;
	top: 40%;
	width: 7px;
	height: 7px;
	border-top: 1px solid #1f272b;
	border-right: 1px solid #1f272b;
	transform: rotate(135deg);
}

.nav_menu li.has-child ul {
	position: absolute;
	left: 0;
	top: 50px;
	z-index: 4;
	padding: 15px;
	background-color: rgba(255, 255, 255, 0.7);
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);
	border-radius: 10px;
	width: max-content;
	visibility: hidden;
	opacity: 0;
	transition: all 0.3s;
}

.nav_menu li.has-child:hover>ul,
.nav_menu li.has-child ul li:hover>ul,
.nav_menu li.has-child:active>ul,
.nav_menu li.has-child ul li:active>ul {
	visibility: visible;
	opacity: 1;
}

.nav_menu li.has-child ul ul li {
	margin-bottom: 5px;
}

.nav_menu li.has-child ul li a:hover,
.nav_menu li.has-child ul li a:active {
	opacity: 0.6;
}

.nav_list {
	display: flex;
	gap: 25px;
}

.nav_btn a {
	background: #1f272b;
	padding: 8px 40px 8px 20px;
	border-radius: 100px;
	font-size: 12px;
	color: #fff;
	margin-left: 25px;
	display: block;
	position: relative;
	text-align: center;
	min-width: 170px;
	line-height: 1.3;
}

.nav_btn a::after {
	content: "";
	background-image: url(/assets_u/common/img/icon_login.svg);
	background-repeat: no-repeat;
	width: 12px;
	height: 15px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 15px;
}

/* sp */
@media (max-width: 991px) {
	.header {
		top: 15px;
	}

	.nav_menu {
		position: fixed;
		right: -100%;
		top: 0;
		width: 100%;
		height: 100vh;
		border-radius: 0;
		background-image: url(/assets_u/common/img/sp_globalnav_bg.jpg?2);
		background-color: #f2f7fa;
		background-repeat: no-repeat;
		background-position: bottom;
		background-size: contain;
		transition: all 0.6s;
		z-index: 200;
		overflow-y: auto;
		display: block;
		padding: 15% 0;
	}

	.hamburger {
		position: fixed;
		right: 15px;
		top: 10px;
		width: 40px;
		height: 40px;
		cursor: pointer;
		z-index: 300;
	}

	.nav_list {
		margin: 0;
		padding: 0;
		flex-wrap: wrap;
		gap: 20px;
	}

	.nav_menu>ul>li {
		padding: 0;
		width: 45%;
	}

	.nav_menu li.has-child ul {
		position: inherit;
		left: inherit;
		top: inherit;
		padding: 5px 0 0 0;
		background-color: inherit;
		box-shadow: inherit;
		backdrop-filter: inherit;
		-webkit-backdrop-filter: inherit;
		border-radius: inherit;
		width: max-content;
		visibility: inherit;
		opacity: 1;
	}

	.nav_menu ul li.has-child::before {
		content: none;
	}

	.hamburger_border {
		position: absolute;
		left: 11px;
		width: 18px;
		height: 2px;
		background-color: #333;
		transition: all 0.6s;
	}

	.hamburger_border_top {
		top: 14px;
	}

	.hamburger_border_center {
		top: 20px;
	}

	.hamburger_border_bottom {
		top: 26px;
	}

	.black_bg {
		position: fixed;
		left: 0;
		top: 0;
		width: 100vw;
		height: 100vh;
		z-index: 100;
		background-color: #333;
		opacity: 0;
		visibility: hidden;
		transition: all 0.6s;
		cursor: pointer;
	}

	.nav-open .nav_menu {
		right: 0;
	}

	.nav-open .black_bg {
		opacity: 0.8;
		visibility: visible;
	}

	.nav-open .hamburger_border_top {
		transform: rotate(45deg);
		top: 20px;
	}

	.nav-open .hamburger_border_center {
		width: 0;
		left: 50%;
	}

	.nav-open .hamburger_border_bottom {
		transform: rotate(-45deg);
		top: 20px;
	}

	.nav_btn {
		margin-top: 30px;
	}

	.nav_btn a {
		margin-bottom: 15px;
		margin-left: auto;
		margin-right: auto;
		max-width: 70%;
		text-align: center;
	}
}

/*********************
*  footer
*********************/
footer {
	background-color: #1f272b;
	padding: 68px 0;
	color: #fff;
}

footer .b_partner_btn {
	display: table;
	padding: 3px 40px;
	border: 1px solid;
	border-radius: 50px;
	text-align: center;
}

footer .f_link_list {
	padding-bottom: 50px;
}

footer .f_link_list li {
	margin-bottom: 10px;
}

footer .b_top {
	border-top: 1px solid #fff;
	padding-top: 45px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

footer .sns_link_list {
	display: flex;
	gap: 25px;
	align-items: center;
}

@media only screen and (max-width: 768px) {
	footer {
		padding: 30px 0;
	}

	footer .b_partner_btn {
		margin-inline: auto;
		width: 80%;
		padding: 10px;
	}

	footer .f_link_list {
		padding-bottom: 20px;
		text-align: left;
	}

	footer .b_top {
		padding-top: 25px;
		display: block;
		text-align: center;
	}

	footer .sns_link_list {
		gap: 15px;
		justify-content: center;
		margin-top: 20px;
	}
}

/*********************
*  howto
*********************/
.howto_grid_wrap {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.howto_grid_wrap .howto_grid_box {
	display: block;
	text-align: center;
	border-right: 1px solid #cdcdcd;
}

.howto_grid_wrap .howto_grid_box span {
	display: table;
	margin-inline: auto;
	position: relative;
	padding-right: 15px;
}

.howto_grid_wrap .howto_grid_box span::after {
	content: "";
	width: 7px;
	height: 7px;
	border: 0;
	border-top: solid 1px #333;
	border-right: solid 1px #333;
	transform: rotate(45deg);
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	margin: auto;
}

@media only screen and (max-width: 768px) {
	.howto_grid_wrap {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px 0;
	}

	.howto_grid_wrap .howto_grid_box:nth-child(2n) {
		border-right: none;
	}
}

/*********************
*  article_slider
*********************/
.article_slider {
	padding-top: 60px;
	position: relative;
	width: calc(100% + (100vw - 100%) / 2);
}

.article_slider li {
	padding-right: 40px;
}

.article_slider li .ttl_txt {
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.article_slider a .img_box {
	aspect-ratio: 7 / 8;
	overflow: hidden;
}

.article_slider a .img_box img {
	object-fit: cover;
	object-position: center;
	width: 100%;
	height: 100%;
	transition: 0.4s;
}

.article_slider a:hover .img_box img {
	scale: 1.05;
}

.article_slider .tag_list {
	display: flex;
	gap: 10px;
	margin-top: 5px;
}

.article_slider .tag_list li {
	border: 1px solid;
	border-radius: 50px;
	padding: 2px 10px;
}

.article_slider .slide-arrow {
	position: absolute;
	top: -50px;
	cursor: pointer;
}

.article_slider .slide-arrow.prev-arrow {
	right: calc(80px + 10%);
}

.article_slider .slide-arrow.next-arrow {
	right: 10%;
}

.article_slider .slide-arrow.next-arrow img {
	transform: rotateY(180deg);
}

@media only screen and (max-width: 768px) {
	.article_slider {
		padding-top: 60px;
		width: 100%;
	}

	.article_slider li {
		padding-right: 7px;
		padding-left: 7px;
	}

	.article_slider .slide-arrow {
		top: 0px;
	}

	.article_slider .slide-arrow.next-arrow {
		right: 5%;
	}

	.article_slider .slide-arrow.prev-arrow {
		right: calc(58px + 5%);
	}

	.article_slider .slide-arrow img {
		width: 40px;
	}
}

/*********************
*  下層KV
*********************/
.l_mainv {
	background-size: cover;
	padding-top: 50px;
	height: 480px;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
}

@media only screen and (max-width: 768px) {
	.l_mainv {
		height: 280px;
	}
}

/*********************
*  パンくず
*********************/
.breadcrumb_wrap {
	padding: 20px 0;
}

.breadcrumb_wrap .breadcrumb__list {
	display: flex;
	gap: 10px;
}

.breadcrumb_wrap .breadcrumb__list li::after {
	content: "-";
	display: inline-block;
	padding-left: 10px;
}

.breadcrumb_wrap .breadcrumb__list li:last-child:after {
	display: none;
}

/*********************
*  トライアル_バナー
*********************/
.trial_block {
	padding: 40px 50px;
	gap: 40px;
	background: url(/assets_u/switch/img/dog/trial_bg.png) no-repeat left center;
	background-size: cover;
	border-radius: 20px;
}

.trial_block>div {
	flex-basis: 300px;
}

.trial_block a {
	position: relative;
}

.trial_block .dog a:after {
	position: absolute;
	top: -20px;
	right: 4px;
	content: url(/assets_u/switch/img/dog/trial_btn_dog.png);
	width: 57px;
	height: 86px;
}

.trial_block .cat a:after {
	position: absolute;
	top: -20px;
	right: 4px;
	content: url(/assets_u/switch/img/dog/trial_btn_cat.png);
	width: 52px;
	height: 86px;
}


.table-wrap {
	overflow-x: scroll;
}

.table-wrap>table {
	width: 100%;
	border-collapse: collapse;
	white-space: nowrap;
}

@media only screen and (max-width: 768px) {
	.trial_block {
		padding: 244px 22px 40px;
		gap: 80px;
		background: url(/assets_u/switch/img/dog/trial_bg_sp.png) no-repeat center top;
		background-size: cover;
		border-radius: 20px;
	}

	.trial_block .dog {
		padding-bottom: 40px;
	}
}

/**** list_txt ****/
.list_txt li {
	position: relative;
	padding-left: 20px;
	margin-bottom: 10px;
}

.list_txt li::after {
	content: "";
	position: absolute;
	background-color: #667e83;
	width: 6px;
	height: 6px;
	border-radius: 10px;
	left: 0;
	top: 10px;
}

.list_txt li:last-child {
	margin-bottom: 0;
}

/**** ordered_list ****/
.ordered_list {
	list-style-type: decimal !important;
}

.ordered_list li::before {
	position: relative;
	padding-left: 20px;
	margin-bottom: 10px;
}


.ordered_list li:last-child {
	margin-bottom: 0;
}

/*********************
* floatpop_btn_block
*********************/
.floatpop_btn_block {
	position: fixed;
	right: 15px;
	bottom: 3%;
	z-index: 50;
}

.floatpop_btn_block button {
	position: relative;
	width: auto;
	height: auto;
	background: inherit;
	border: none;
	padding: 0;
}

.floatpop_btn_block button .bubble_l,
.floatpop_btn_block button .bubble_m,
.floatpop_btn_block button .bubble_r {
	position: absolute;
}

.floatpop_btn_block button .bubble_l {
	top: 3px;
	left: -14px;
}

.floatpop_btn_block button .bubble_m {
	top: -14px;
	left: 42px;
}

.floatpop_btn_block button .bubble_r {
	top: 3px;
	right: -3px;
}

.fuwafuwa {
	animation: popIn 0.4s ease-out forwards;
	opacity: 0;
	transform: scale(0.5);
}

.fuwafuwa:nth-child(1) {
	animation-delay: 0s;
}

.fuwafuwa:nth-child(2) {
	animation-delay: 0.2s;
}

.fuwafuwa:nth-child(3) {
	animation-delay: 0.4s;
}

@keyframes popIn {
	0% {
		opacity: 0;
		transform: scale(0.5);
	}

	100% {
		opacity: 1;
		transform: scale(1);
	}
}


.floatpop.modal {
	--bs-modal-width: 1100px;
	--bs-modal-margin: 1rem;
}

.floatpop .btn-close {
	position: absolute;
	right: -15px;
	top: -15px;
	padding: 0;
	width: 40px;
	height: 40px;
	opacity: 1;
}

.floatpop .modal-body {
	padding: 40px 60px;
}

.floatpop .floatpop_ttl {
	line-height: 1.5;
}

.floatpop .floatpop_ttl span {
	background: linear-gradient(transparent 65%, #FEB934 65%);
}

.floatpop .f_close_btn {
	display: table;
	border: 1px solid #333;
	color: #333;
	text-align: center;
	padding: 10px;
	border-radius: 50px;
	max-width: 280px;
	width: 90%;
	margin-inline: auto;
	margin-top: 30px;
}

@media only screen and (max-width: 768px) {
	.floatpop_btn_block {
		bottom: 5px;
	}

	.floatpop_btn_block button {
		width: 110px;
	}

	.floatpop_btn_block button .bubble_l,
	.floatpop_btn_block button .bubble_m,
	.floatpop_btn_block button .bubble_r {
		height: 22px;
	}

	.floatpop_btn_block button .bubble_l {
		top: -4px;
		left: -22px;
	}

	.floatpop_btn_block button .bubble_m {
		top: -20px;
		left: 14px;
	}

	.floatpop_btn_block button .bubble_r {
		top: -6px;
		right: -7px;
	}

	.floatpop .modal-body {
		padding: 30px 20px;
	}

	.floatpop .btn-close {
		right: -10px;
		top: -10px;
		width: 35px;
		height: 35px;
	}

	.floatpop .f_close_btn {
		margin-top: 20px;
	}
}

/**** contents_voice ****/
.voice_link_box {
	display: grid;
	grid-template-columns: 255px 1fr;
	grid-template-rows: 1fr;
	align-items: center;
	gap: 30px;
	margin-bottom: 30px;
}

.voice_link_box .img_area {
	aspect-ratio: 51 / 28;
	border-radius: 10px;
	overflow: hidden;
}

.voice_link_box .img_area img {
	object-fit: cover;
	object-position: center;
	width: 100%;
	height: 100%;
	transition: 0.4s;
}

.voice_link_box:hover .img_area img {
	scale: 1.05;
}

@media only screen and (max-width: 768px) {
	.voice_link_box {
		display: grid;
		grid-template-columns: 1fr 2fr;
		gap: 10px;
		align-items: center;
		margin-bottom: 30px;
	}

	.voice_link_box .img_area {
		aspect-ratio: 1/ 1;
		border-radius: 5px;
	}
}