.p-products {
	padding-bottom: 96px;
	position: relative;
}

.p-products__banner {
	padding-top: 96px;
}

.p-products__banner-stats {
	align-items: flex-start;
	display: flex;
	gap: 52px;
	justify-content: center;
}

.p-products__banner-stat {
	display: block;
	height: auto;
}

.p-products__banner-stat--items {
	width: 138px;
}

.p-products__banner-stat--series {
	margin-top: 25px;
	width: 154px;
}

.p-products__banner-stat--animals {
	width: 197px;
}

.p-products__inner {
	margin-top: 48px;
}

.p-products__search {
	display: flex;
	flex-direction: column;
	gap: 24px;
	scroll-margin-top: 120px;
}

.p-products__search-title {
	color: #222222;
	font-family: "IBM Plex Sans JP", sans-serif;
	font-size: 28px;
	font-weight: 700;
	margin: 0;
}

.p-products__search-box {
	display: flex;
	flex-direction: column;
}

.p-products__tabs {
	align-items: center;
	display: flex;
	gap: 8px;
}

.p-products__tab {
	-webkit-appearance: none;
	-moz-appearance: none;
	align-items: center;
	appearance: none;
	background: #222222;
	border: none;
	border-radius: 8px 8px 0 0;
	cursor: pointer;
	display: flex;
	filter: drop-shadow(4px 0px 0px #ED1C24);
	gap: 8px;
	justify-content: center;
	padding: 12px 16px;
}

.p-products__tab.is-active {
	background: #ED1C24;
	filter: drop-shadow(4px 0px 0px #333);
}

.p-products__tab--reset {
	background: #FFFFFF;
	border: 1px solid #ED1C24;
	padding: 11px 16px;
}

.p-products__tab--reset .p-products__tab-label {
	color: #ED1C24;
}

.p-products__tab-icon {
	display: block;
	flex-shrink: 0;
	height: 24px;
	width: 24px;
}

.p-products__tab-label {
	color: #FFFFFF;
	font-family: "IBM Plex Sans JP", sans-serif;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.03em;
	white-space: nowrap;
}

.p-products__panel {
	background: #FFFFFF;
	border: 2px solid #ED1C24;
	border-radius: 0 24px 24px 24px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
	padding: 48px;
}

.p-products__panel:not(.is-active) {
	display: none;
}

.p-products__panel-lead {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 16px;
	text-align: center;
}

.p-products__panel-heading {
	align-items: center;
	color: #ED1C24;
	display: flex;
	font-family: "IBM Plex Sans JP", sans-serif;
	font-size: 40px;
	font-weight: 700;
	gap: 4px;
	justify-content: center;
	margin: 0;
}

.p-products__panel-icon {
	display: block;
	flex-shrink: 0;
	height: auto;
	width: 38px;
}

.p-products__panel-text {
	color: #222222;
	font-family: "IBM Plex Sans JP", sans-serif;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.03em;
	line-height: 1.8;
	margin: 0;
	max-width: 680px;
}

.p-products__shuffle {
	display: block;
	margin-top: 16px;
}

.p-products__shuffle img {
	display: block;
	height: auto;
	width: 132px;
}

.p-products__panel-btn {
	border: 1px solid #ED1C24;
	border-radius: 9999px;
	color: #ED1C24;
	flex-shrink: 0;
	font-family: "IBM Plex Sans JP", sans-serif;
	font-size: 14px;
	font-weight: 700;
	padding: 8px 20px;
}

.p-products__months {
	align-items: flex-start;
	display: flex;
	justify-content: space-between;
	width: 100%;
}

.p-products__month {
	align-items: center;
	background: #FFFFFF;
	border: 1px solid #ED1C24;
	border-radius: 9999px;
	box-shadow: 2px 4px 0px 0px #ED1C24;
	color: #222222;
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	height: 80px;
	justify-content: center;
	text-align: center;
	transition: all 0.4s ease;
	width: 80px;
}

.p-products__month:hover {
	background: #ED1C24;
	box-shadow: none;
	color: #FFFFFF;
}

.p-products__month.is-current {
	background: linear-gradient(90deg, rgb(137, 237, 253) 0%, rgb(194, 209, 255) 15%, rgb(245, 175, 248) 37%, rgb(255, 198, 167) 78%, rgb(255, 214, 82) 100%);
	color: #222222;
}

.p-products__month-jp {
	font-family: "IBM Plex Sans JP", sans-serif;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.p-products__month-en {
	font-family: "Figtree", sans-serif;
	font-size: 13px;
	font-weight: 700;
}

.p-products__series {
	align-items: flex-start;
	display: flex;
	justify-content: space-between;
	width: 100%;
}

.p-products__series-item {
	align-items: center;
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	gap: 16px;
}

.p-products__series-img {
	border: 2px solid #ED1C24;
	border-radius: 8px;
	display: block;
	height: 110px;
	overflow: hidden;
	transition: all 0.4s ease;
	width: 110px;
}

.p-products__series-img img {
	-o-object-fit: cover;
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.p-products__series-name {
	background: #ffeeee;
	border-radius: 4px;
	color: #ED1C24;
	font-family: "IBM Plex Sans JP", sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	padding-left: 4px;
	padding-right: 4px;
	text-align: center;
}

.p-products__series-item.is-current .p-products__series-name {
	background: linear-gradient(90deg, rgb(137, 237, 253) 0%, rgb(194, 209, 255) 15%, rgb(245, 175, 248) 37%, rgb(255, 198, 167) 78%, rgb(255, 214, 82) 100%);
	border-radius: 9999px;
	color: #222222;
	padding: 2px 8px;
}

.p-products__tags {
	align-content: flex-start;
	align-items: flex-start;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 8px;
}

.p-products__tag {
	align-items: center;
	background: linear-gradient(90deg, rgb(137, 237, 253) 0%, rgb(194, 209, 255) 15%, rgb(245, 175, 248) 37%, rgb(255, 198, 167) 78%, rgb(255, 214, 82) 100%);
	border-radius: 9999px;
	color: #222222;
	display: inline-flex;
	font-size: 16px;
	gap: 4px;
	justify-content: center;
	line-height: 1;
	padding: 5px 9px;
	position: relative;
	text-align: center;
	white-space: nowrap;
	z-index: 0;
}

.p-products__tag::before {
	background: #FFFFFF;
	border-radius: inherit;
	bottom: 1px;
	content: "";
	left: 1px;
	position: absolute;
	right: 1px;
	top: 1px;
	transition: opacity 0.4s ease;
	z-index: -1;
}

.p-products__tag:hover::before {
	opacity: 0;
}

.p-products__tag--feature,
.p-products__tag.is-current {
	color: #222222;
}

.p-products__tag--feature::before,
.p-products__tag.is-current::before {
	opacity: 0;
}

.p-products__tag--hidden {
	display: none;
}

.p-products__tag-hash {
	font-family: "Figtree", sans-serif;
	font-weight: 700;
}

.p-products__tag-label {
	font-family: "IBM Plex Sans JP", sans-serif;
	font-weight: 700;
}

.js-products-tags.is-expanded .p-products__tag--hidden {
	display: inline-flex;
}

.p-products__more {
	-webkit-appearance: none;
	-moz-appearance: none;
	align-items: center;
	appearance: none;
	background: transparent;
	border: none;
	border-radius: 12px;
	color: #ED1C24;
	cursor: pointer;
	display: inline-flex;
	font-family: "IBM Plex Sans JP", sans-serif;
	font-size: 14px;
	font-weight: 500;
	justify-content: center;
	letter-spacing: 0.03em;
	line-height: 1.8;
	padding-left: 16px;
	padding-right: 16px;
}

.p-products__grid-more {
	display: flex;
	justify-content: center;
	margin-top: 24px;
}

.p-products__result {
	margin-top: 48px;
}

.p-products__result-heading {
	font-feature-settings: "palt" 1;
	color: #ED1C24;
	font-family: "IBM Plex Sans JP", sans-serif;
	font-size: 24px;
	font-weight: 700;
	margin: 0;
}

.p-products__result-count {
	color: #222222;
	font-family: "IBM Plex Sans JP", sans-serif;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.03em;
	margin: 0;
}

.p-products__grid {
	--products-columns: 5;
	-moz-column-count: 5;
	-moz-column-gap: 10px;
	column-count: 5;
	column-gap: 10px;
	margin-top: 48px;
	padding-left: 20px;
	padding-right: 20px;
}

.p-products__grid.is-masonry {
	-moz-columns: auto;
	align-items: flex-start;
	columns: auto;
	display: flex;
	gap: 10px;
}

.p-products__col {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	min-width: 0;
}

.p-products__empty {
	margin-top: 48px;
	text-align: center;
}

.p-products__item {
	-moz-column-break-inside: avoid;
	-webkit-column-break-inside: avoid;
	align-items: center;
	border-radius: 24px;
	break-inside: avoid;
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin-bottom: 24px;
	page-break-inside: avoid;
	position: relative;
	width: 100%;
}

.p-products__item:hover,
.p-products__item:focus-visible {
	z-index: 1;
}

.p-products__item-media {
	align-items: center;
	border-radius: 24px;
	display: flex;
	justify-content: center;
	overflow: hidden;
	width: 100%;
}

.p-products__item-img {
	display: block;
	flex-shrink: 0;
}

.p-products__item-img img {
	-o-object-fit: contain;
	display: block;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.p-products__item-card {
	background: #FFFFFF;
	border: #ED1C24 solid 1px;
	border-radius: 24px;
	box-shadow: 4px 6px 0px 0px #EC3940;
	display: flex;
	flex-direction: column;
	gap: 8px;
	justify-content: center;
	left: 50%;
	max-width: calc(100% - 24px);
	opacity: 0;
	padding: 16px 16px 12px;
	pointer-events: none;
	position: absolute;
	top: 50%;
	transform: translateX(-50%);
	transition: opacity 0.25s ease, visibility 0.25s ease;
	visibility: hidden;
	width: 224px;
	z-index: 1;
}

.p-products__item:hover .p-products__item-card,
.p-products__item:focus-visible .p-products__item-card {
	opacity: 1;
	visibility: visible;
}

.p-products__item.is-card-up .p-products__item-card {
	bottom: 50%;
	top: auto;
}

.p-products__item-name {
	color: #222222;
	display: flex;
	flex-direction: column;
	gap: 4px;
	text-align: left;
}

.p-products__item-name-en {
	color: #ED1C24;
	font-family: "Figtree", sans-serif;
	font-size: 12px;
	font-style: italic;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
}

.p-products__item-name-jp {
	font-family: "IBM Plex Sans JP", sans-serif;
	font-size: 18px;
	font-weight: 700;
}

.p-products__item-info {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.p-products__item-birthday {
	align-items: center;
	color: #222222;
	display: flex;
	font-family: "Figtree", sans-serif;
	font-size: 16px;
	font-weight: 700;
	gap: 8px;
	line-height: 1.1;
}

.p-products__item-cake {
	display: block;
	flex-shrink: 0;
	height: 20px;
	width: 20px;
}

.p-products__item-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

.p-products__item-tag {
	align-items: center;
	background: linear-gradient(136deg, rgb(137, 237, 253) 0%, rgb(194, 209, 255) 15%, rgb(245, 175, 248) 37%, rgb(255, 198, 167) 78%, rgb(255, 214, 82) 100%);
	border-radius: 9999px;
	color: #222222;
	display: inline-flex;
	font-size: 13px;
	gap: 4px;
	justify-content: center;
	line-height: 1;
	padding: 5px 9px;
	position: relative;
	text-align: center;
	white-space: nowrap;
	z-index: 0;
}

.p-products__item-tag::before {
	background: #FFFFFF;
	border-radius: inherit;
	bottom: 1px;
	content: "";
	left: 1px;
	position: absolute;
	right: 1px;
	top: 1px;
	z-index: -1;
}

.p-products__item--sm .p-products__item-img {
	height: 150px;
	width: 150px;
}

.p-products__item--md .p-products__item-img {
	height: 200px;
	width: 200px;
}

.p-products__item--xl .p-products__item-img {
	height: 300px;
	width: 300px;
}

.p-products__item--logo {
	overflow: hidden;
	padding-left: 16px;
	padding-right: 16px;
}

.p-products__item--logo img {
	display: block;
	height: auto;
	width: 180.7px;
}

.p-products__item--copy {
	background: url(../images/common/deco_heart.webp) no-repeat center/contain;
	min-height: 300px;
	overflow: hidden;
	padding: 24px 16px;
}

.p-products__copy {
	color: #FFFFFF;
	font-family: "Shrikhand", cursive;
	font-size: 24px;
	font-style: italic;
	line-height: 1.2;
	margin: 0;
	text-align: center;
}

.p-products__item--link {
	background: #FFFFFF;
	border: 1px solid #ED1C24;
	gap: 16px;
	min-height: 260px;
	overflow: hidden;
	padding: 24px 16px;
}

.p-products__link-head {
	align-items: center;
	color: #222222;
	display: flex;
	font-family: "IBM Plex Sans JP", sans-serif;
	font-size: 14px;
	font-weight: 700;
	gap: 4px;
	justify-content: center;
	letter-spacing: 0.03em;
	text-align: center;
}

.p-products__link-icon {
	display: block;
	flex-shrink: 0;
	height: 24px;
	transform: rotate(-20deg);
	width: 24px;
}

.p-products__link-title {
	font-feature-settings: "palt" 1;
	color: #222222;
	font-family: "IBM Plex Sans JP", sans-serif;
	font-size: 24px;
	font-weight: 700;
	text-align: center;
}

.p-products__link-more {
	align-items: center;
	display: flex;
	gap: 12px;
}

.p-products__link-more-text {
	color: #222222;
	font-family: "Figtree", sans-serif;
	font-size: 14px;
	font-weight: 600;
}

@media (max-width: 1579px) {

.p-products__item--xl .p-products__item-img {
	max-width: 100%;
}

}

@media (max-width: 1023px) {

.p-products__panel-heading {
	font-size: 24px;
}

.p-products__months {
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
}

.p-products__series {
	flex-wrap: wrap;
	gap: 24px 16px;
	justify-content: center;
}

.p-products__grid {
	--products-columns: 4;
	-moz-column-count: 4;
	column-count: 4;
}

}

@media (max-width: 767px) {

.p-products {
	padding-bottom: 48px;
}

.p-products__banner {
	padding-top: 48px;
}

.p-products__banner-stats {
	gap: 16px;
}

.p-products__banner-stat--items {
	width: 80px;
}

.p-products__banner-stat--series {
	margin-top: 21px;
	width: 80px;
}

.p-products__banner-stat--animals {
	width: 110px;
}

.p-products__inner {
	margin-top: 24px;
}

.p-products__search {
	scroll-margin-top: 80px;
}

.p-products__search-title {
	font-size: 24px;
}

.p-products__tabs {
	flex-wrap: wrap;
	gap: 8px 12px;
}

.p-products__tab {
	padding: 8px 12px;
}

.p-products__tab--reset {
	padding: 7px 12px;
}

.p-products__tab-icon {
	height: 20px;
	width: 20px;
}

.p-products__tab-label {
	font-size: 14px;
}

.p-products__panel {
	padding: 16px;
}

.p-products__panel-heading {
	font-size: 18px;
}

.p-products__panel-icon {
	width: 20px;
}

.p-products__panel-text {
	font-size: 14px;
}

.p-products__shuffle {
	margin-top: 8px;
}

.p-products__shuffle img {
	width: 100px;
}

.p-products__month {
	height: 64px;
	width: 64px;
}

.p-products__month-jp {
	font-size: 14px;
}

.p-products__month-en {
	font-size: 11px;
}

.p-products__series {
	grid-gap: 16px 8px;
	display: grid;
	gap: 16px 8px;
	grid-template-columns: repeat(3, 1fr);
}

.p-products__series-item {
	gap: 8px;
	width: 100%;
}

.p-products__series-img {
	aspect-ratio: 1;
	height: auto;
	width: 100%;
}

.p-products__series-name {
	font-size: 11px;
}

.p-products__tags {
	gap: 8px;
}

.p-products__tag {
	font-size: 14px;
}

.p-products__result {
	margin-top: 24px;
}

.p-products__grid {
	--products-columns: 3;
	-moz-column-count: 3;
	-moz-column-gap: 2.5px;
	column-count: 3;
	column-gap: 2.5px;
	margin-top: 24px;
}

.p-products__grid.is-masonry {
	gap: 2.5px;
}

.p-products__item {
	margin-bottom: 8px;
}

.p-products__item-card {
	display: none;
}

.p-products__item--sm .p-products__item-img {
	height: 80px;
	width: 80px;
}

.p-products__item--md .p-products__item-img {
	height: 94px;
	width: 94px;
}

.p-products__item--xl .p-products__item-img {
	height: 110px;
	width: 110px;
}

.p-products__item--logo {
	padding-left: 4px;
	padding-right: 4px;
}

.p-products__item--logo img {
	width: 94px;
}

.p-products__item--copy {
	background-size: 100px 88px;
	min-height: 110px;
	padding: 16px 8px;
}

.p-products__copy {
	font-size: 12px;
}

.p-products__item--link {
	gap: 8px;
	min-height: 130px;
	padding: 15px 8px;
}

.p-products__link-icon {
	height: 20px;
	width: 20px;
}

.p-products__link-title {
	font-size: 10px;
	font-weight: 600;
	letter-spacing: -0.02em;
}

.p-products__link-more-text {
	display: none;
}

}

