@charset "utf-8";

/*! Mediaqueries
 * @media screen and (min-width: 801px) {}
 * @media screen and (min-width: 1001px) {}
 * @media screen and (max-width: 1000px) {}
 * @media screen and (max-width: 800px) {}
 * @media screen and (max-width: 767px) {}
 * @media screen and (max-width: 480px) {}
 -------------------------------------------------- */




/**
 * NO RESULTS FOUND
 -------------------------------------------------- */
.no-results {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	min-height: 300px;
	margin-top: 32px;
}
.no-results_title {
	color: red;
	font-size: 2.2rem;
	letter-spacing: .15em;
}
.no-results_message {
	margin-top: 16px;
	font-size: 1.2rem;
}
@media screen and (min-width: 768px) {
	.no-results_title {
		font-size: 3rem;
	}
	.no-results_message {
		font-size: 1.6rem;
	}
}


/**
 * メンバー
 -------------------------------------------------- */
.p-profile {
}
.profile_photo {
	display: inline-block;
	overflow: hidden;
	width: 68px;
	height: 68px;
	border-radius: 68px;
	vertical-align: middle;
}
.profile_photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.profile_visual {
	z-index: -1;
	position: relative;
	height: 56.25vw;
	min-height: 360px;
	margin: -100px calc(50% - 50vw) 0;
}
.profile_visual img {
	position: absolute;
	top: 0;
	left: 0;
	max-width: none;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.profile_position {
	display: none;
	margin-top: 14px;
	font-size: 1.2rem;
}
.profile_name {
	margin-top: 2px;
	letter-spacing: .06em;
}
.profile_visual ~ .profile_name {
	margin-top: -16px;
}
.profile_name .en,
.profile_name .ja {
	display: block;
	line-height: 1.4;
}
.profile_name .en {
	font-size: 3rem;
	font-weight: 600;
}
.profile_name .ja {
	font-size: 1.2rem;
}
.profile_comment {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	max-width: 340px;
	margin: 12px auto 0;
	font-size: 1rem;
	text-align: center;
}
.profile_comment .job {
}
.profile_comment .text {
}
.profile_comment:empty {
	display: none;
}
.profile_button {
	margin-top: 24px;
	font-size: 1.2rem;
}
@media screen and (min-width: 768px) {
	.profile_photo {
		width: 86px;
		height: 86px;
		border-radius: 86px;
	}
	.profile_position {
		margin-top: 20px;
		font-size: 1.5rem;
	}
	.profile_name {
		margin-top: 8px;
	}
	.profile_name .en {
		font-size: 3.8rem;
	}
	.profile_name .ja {
		font-size: 1.3rem;
	}
	.profile_button {
		font-size: 1.2rem;
	}
}

.c-link {
	padding: .1em;
	background: linear-gradient(currentcolor, currentcolor) left bottom / 100% 1px no-repeat;
}
@media (hover: hover) {
	.c-link {
		transition: background-size .4s cubic-bezier(0.215, 0.61, 0.355, 1);
	}
	.c-link:hover {
		background-position: right bottom;
		background-size: 0 1px;
	}
}

/* レスポンスラベル (WORKS/LIKES) */
.response_label {
	position: relative;
	height: 32px;
	margin: 48px 0 0;
}
.response_label .title {
	position: absolute;
	top: calc(50% - 1em);
	padding: .5em;
	font-size: 3rem;
	line-height: 1;
	letter-spacing: .06em;
	text-transform: uppercase;
	transform: scale(.8);
}
.response_label:not(.is-works) .title.-works,
.response_label:not(.is-likes) .title.-likes {
	cursor: pointer;
}
.response_label .-works {
	left: 0;
}
.response_label .-likes {
	right: 0;
}
.response_label .title .arr {
	position: absolute;
	top: calc(50% - 10px);
	fill: none;
	stroke: currentcolor;
	vertical-align: middle;
}
.response_label .-works .arr {
	right: 100%;
}
.response_label .-likes .arr {
	left: 100%;
}
@media (hover: hover) {
	.response_label .title {
		transition: color .4s;
	}
	.response_label .title:hover {
		color: #00a0e9;
		transition-duration: .2s;
	}
}
/* motion */
.response_label.is-works .-works {
	left: calc(50% - 2.1em);
	transform: none;
	pointer-events: none;
}
.response_label.is-likes .-likes {
	right: calc(50% - 1.9em);
	transform: none;
	pointer-events: none;
}
.response_label.is-works .-works .arr {
	opacity: 0;
	transform: translateX(.5em);
}
.response_label.is-likes .-likes .arr {
	opacity: 0;
	transform: translateX(-.5em);
}
.response_label.is-anim .-works {
	transition: left .4s cubic-bezier(.7,0,.3,1), transform .4s cubic-bezier(.3,1,.7,1);
}
.response_label.is-anim .-likes {
	transition: right .4s cubic-bezier(.7,0,.3,1), transform .4s cubic-bezier(.3,1,.7,1);
}
.response_label.is-anim.is-works .-works,
.response_label.is-anim.is-likes .-likes {
	transition-delay: .2s;
}
.response_label.is-anim .arr {
	transition: opacity .4s, transform .4s cubic-bezier(.3,1,.7,1);
}
.response_label.is-anim:not(.is-works) .-works .arr,
.response_label.is-anim:not(.is-likes) .-likes .arr {
	transition-delay: .3s;
}

/* :::::: ワンタイム用メンバー切り替え矢印 :::::: */
.onetime_arrows {
	display: flex;
	justify-content: center;
	align-items: center;
	position: fixed;
	top: calc(50% - 24px);
	width: 48px;
	height: 48px;
}
.onetime_arrows.-prev {
	left: 8px;
}
.onetime_arrows.-next {
	right: 8px;
}
.onetime_arrows .arr {
	width: 80%;
	height: auto;
	fill: none;
	stroke: currentcolor;
	stroke-width: 2.5;
}
.onetime_arrows.-next .arr {
	transform: scaleX(-1);
}
@media (hover: hover) {
	.onetime_arrows {
		transition: transform .2s;
	}
	.onetime_arrows.-prev:hover {
		transform: translateX(-8px);
	}
	.onetime_arrows.-next:hover {
		transform: translateX(8px);
	}
}


/**
 * 案件個別ページ
 -------------------------------------------------- */
.l-products {
	padding: 100px;
	text-align: center;
}
.l-products_photo {
	width: 100%;
	margin-bottom: 80px;
}
.l-products_details {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	text-align: left;
}
.l-products .o-button {
	margin-top: 64px;
}
@media screen and (max-width: 767px) {
	.l-products_photo {
		width: 100vw;
		margin-left: -40px;
	}
}
@media screen and (max-width: 480px) {
	.l-products_photo {
		margin-left: -20px;
	}
}
@media screen and (min-width: 1400px) {
	.l-products_photo,
	.l-products_details {
		max-width: 1200px;
		margin-right: auto;
		margin-left: auto;
	}
}

/* :::::: スライド :::::: */
.c-slider,
.slider_item {
	height: calc(56.25vw - 200px * .5625);
}
.slider_item {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
}
@media screen and (max-width: 767px) {
	.c-slider,
	.slider_item {
		height: 120vw;
	}
}
@media screen and (min-width: 1400px) {
	.c-slider,
	.slider_item {
		height: 675px;
	}
}

.slider_item img,
.slider_item video {
	display: block;
	max-width: 100%;
	max-height: 100%;
}

/* :::::: 案件 :::::: */
.p-details .js-request {
	display: inline;
	text-transform: inherit;
}
.p-details .details_category {
	display: inline-block;
	margin-right: 4px;
	padding: 2px 8px;
	color: white;
	font-size: 1rem;
	text-transform: uppercase;
	background: black;
}
.p-details .details_category[href] {
	cursor: pointer;
	transition: background .2s;
}
@media (hover: hover) {
	.p-details .details_category[href]:hover {
		color: white;
		background: #00a0e9;
	}
}
html.isTouch .p-details .details_category.hover {
	color: white;
	background: #00a0e9;
}
.details_title {
	font-size: 2rem;
}
.details_comment {
	max-width: 400px;
	margin-top: 12px;
	font-size: 1.2rem;
	white-space: pre-wrap;
}
@media screen and (min-width: 768px) {
	.p-details .details_category {
		font-size: 1.2rem;
	}
	.details_title {
		font-size: 3rem;
	}
}

/* :::::: いいね！ :::::: */
.p-good {
	position: relative;
	width: 24px;
	height: 24px;
	margin: -40px 0 16px;
	line-height: 0;
}
.p-good .button {
	width: 24px;
	height: 24px;
}
.p-good .button[data-digit="1"] { width: 40px; }
.p-good .button[data-digit="2"] { width: 48px; }
.p-good .button[data-digit="3"] { width: 56px; }
.p-good .button[data-digit="4"] { width: 64px; }
.p-good .button[data-digit="5"] { width: 72px; }
.p-good .button[data-digit="6"] { width: 80px; }
.p-good .button[data-digit="7"] { width: 88px; }
.p-good .button[data-digit="8"] { width: 96px; }
.p-good .button[data-digit="9"] { width: 104px; }
.p-good .button > *,
.p-good .button.is-anim {
	pointer-events: none;
}
@media (hover: hover) {
	.p-good .button .color {
		transition: opacity .4s;
	}
	.p-good .button:hover .color {
		opacity: .8;
		transition-duration: .1s;
	}
	.p-good .button .heart {
		transition: transform .4s;
	}
	.p-good .button:hover .heart {
		transform: scale(.9);
		transition-duration: .1s;
	}
}
.p-good .heart,
.p-good .color {
	position: absolute;
	top: 0;
	left: 0;
}
.p-good .heart {
	fill: none;
	stroke: black;
	stroke-linejoin: round;
}
.p-good .color {
	fill: red;
	stroke: red;
}
.p-good .flash {
	position: absolute;
	top: -9px;
	left: -8px;
	width: 40px;
	height: 40px;
	fill: none;
	stroke: red;
	stroke-dasharray: 4px 20px;
	stroke-dashoffset: -18px;
}
.p-good .count {
	user-select: none;
	overflow: hidden;
	position: absolute;
	top: calc(50% - .6em);
	left: calc(100% + 6px);
	height: 1.2em;
	font-size: 1.4rem;
}
.p-good .count .num,
.p-good .count .new {
	display: inline-block;
	padding-right: 1em;
	line-height: 1.2;
}
.p-good .count .new {
	position: absolute;
	top: 0;
	left: 0;
	transform: translateY(100%);
}
.p-good .count.is-countup .new {
	transform: none;
}
.p-good .count.is-countup .num {
	transform: translateY(-100%);
}
.p-good .count.is-countup .num,
.p-good .count.is-countup .new {
	transition: transform .2s cubic-bezier(.7,0,.3,1);
}
.p-good .count.is-countup .new {
	transition-delay: .1s;
	transition-timing-function: cubic-bezier(.3,1,.7,1);
}
/* motion */
.p-good .button.is-popuped .heart,
.p-good .button:not(.is-popuped) .color {
	opacity: 0;
	transform: scale(.2);
}
.p-good .button:not(.is-active) .count {
	opacity: 0;
	transform: translateY(.5em);
}
.p-good .button.is-popup .heart {
	transition: opacity .2s, transform .2s;
}
.p-good .button.is-popup .color {
	animation: heartPopup .9s;
}
.p-good .button.is-popup .flash {
	animation: heartFlash .6s cubic-bezier(.3,1,.7,1);
}
.p-good .button.is-push .color {
	animation: heartPush .5s;
}
@keyframes heartPopup {
	20% { transform: scale(1.4); }
	40% { transform: scale(.8); }
	60% { transform: scale(1.1); }
	80% { transform: scale(.96); }
}
@keyframes heartFlash {
	to { stroke-dashoffset: 4px; }
}
@keyframes heartPush {
	25% { transform: scale(.8); }
	50% { transform: scale(1.2); }
	75% { transform: scale(.9); }
}

/* :::::: DATE :::::: */
.c-data {
	line-height: 1.6;
}
.details_date {
	margin-top: 24px;
}
.c-data .data_head {
	font-size: 1.2rem;
	text-transform: uppercase;
}
.c-data .data_body {
	font-size: 1.6rem;
}

/* :::::: CLIENT :::::: */
.details_client {
	margin-top: 20px;
}

/* :::::: CREDIT :::::: */
.details_credit {
	margin-top: 36px;
}
.c-type {
	display: grid;
	grid-template: auto / auto 1fr;
	align-items: center;
}
.c-type .type_head,
.c-type .type_body {
	margin-bottom: 4px;
}
.c-type .type_head {
	font-size: 1.2rem;
}
.c-type .type_body {
	padding-left: .6em;
	font-size: 1.4rem;
	font-weight: 400;
}

/* :::::: URL :::::: */
.details_url {
	margin-top: 30px;
}
.details_url .data_body {
	font-size: 1.4rem;
	word-break: break-word;
}

/* :::::: 広告賞 :::::: */
.details_award {
	display: inline-block;
	position: relative;
	margin-left: 4px;
	padding: 2px 16px;
	color: white;
	font-size: 1rem;
	text-transform: uppercase;
}
.details_award::before,
.details_award::after {
	content: "";
	z-index: -1;
	position: absolute;
	left: 0;
	width: 100%;
	border-width: 1.15em .5em;
	border-style: solid;
	border-color: transparent;
}
.details_award::before {
	top: 0;
	border-top-color: #a0823c;
	border-bottom-width: 0;
}
.details_award::after {
	bottom: 0;
	border-bottom-color: #a0823c;
	border-top-width: 0;
}
@media screen and (min-width: 768px) {
	.details_award {
		font-size: 1.2rem;
	}
}

/* :::::: RELATED :::::: */
.p-related {
	max-width: 400px;
}
.related_title {
	font-size: 1.4rem;
	text-transform: uppercase;
}
@media screen and (min-width: 768px) {
	.related_title {
		margin-bottom: 8px;
		font-size: 1.8rem;
	}
}

.c-related {
	display: flex;
	flex-wrap: wrap;
}
.related_item {
	flex-basis: 120px;
	min-width: 120px;
	height: 120px;
}
.related_item a {
	display: block;
	width: 100%;
	height: 100%;
}
.related_item .js-transition {
	transition: filter 1s, transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
}
@media (hover: hover) {
	.related_item .js-transition:hover {
		transform: translateY(-4px);
		filter: drop-shadow(0 4px 4px rgba(0,0,0,.1));
		transition-duration: .4s;
	}
}
html.isTouch .related_item .js-transition.hover {
	transform: translateY(-4px);
	filter: drop-shadow(0 4px 4px rgba(0,0,0,.1));
	transition-duration: .4s;
}
.related_item img,
.related_item video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media screen and (min-width: 1001px) {
	.p-details {
		flex-basis: calc(100% - 440px);
	}
	.p-related {
		flex-basis: 400px;
		max-width: 400px;
	}
	.related_item:not(:nth-child(3n+1)) {
		margin-left: 20px;
	}
	.related_item:nth-child(n+4) {
		margin-top: 20px;
	}
}
@media screen and (max-width: 1000px) {
	.p-details {
		flex-basis: calc(100% - 300px);
	}
	.p-related {
		flex-basis: 260px;
		max-width: 260px;
	}
	.related_item:nth-child(2n) {
		margin-left: 20px;
	}
	.related_item:nth-child(n+3) {
		margin-top: 20px;
	}
}
@media screen and (max-width: 767px) {
	.p-related {
		margin-top: 52px;
	}
	.l-products_details {
		display: block;
	}
	.p-details,
	.p-related {
		max-width: none;
	}
	.c-related {
		margin-top: 2px;
	}
	.related_item {
		flex-basis: calc(33.33333% - 20px / 3);
		min-width: 0;
		height: auto;
	}
	.related_item:nth-child(2n) {
		margin-left: 0;
	}
	.related_item:not(:nth-child(3n+1)) {
		margin-left: 10px;
	}
	.related_item:nth-child(n+3) {
		margin-top: 0;
	}
	.related_item:nth-child(n+4) {
		margin-top: 10px;
	}
	.related_item a {
		position: relative;
		height: 0;
		padding-bottom: 100%;
	}
	.related_item img {
		position: absolute;
		top: 0;
		left: 0;
	}
}


/**
 * flickity
 -------------------------------------------------- */
.flickity-enabled {
	position: relative;
	outline: 0;
	width: 100%;
}

.flickity-enabled.is-draggable {
	-webkit-tap-highlight-color: transparent;
	tap-highlight-color: transparent;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

/* :::::: viewport :::::: */
.flickity-viewport {
	position: relative;
	overflow: hidden;
}

/* :::::: slider :::::: */
.flickity-slider {
	position: absolute;
	width: 100%;
	height: 100%;
}

/* :::::: prev-next-button :::::: */
.flickity-prev-next-button {
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	cursor: pointer;
	top: calc(50% - 15px);
	width: 30px;
	height: 30px;
	color: #f0f0f0;
	background: black;
}
.flickity-prev-next-button.previous {
	left: -100px;
}
.flickity-prev-next-button.next {
	right: -100px;
}
.flickity-prev-next-button:disabled {
	pointer-events: none;
	opacity: .1;
}
.flickity-button-icon {
	width: 80%;
	height: 80%;
	fill: none;
	stroke: currentcolor;
	stroke-width: 5;
}
.flickity-prev-next-button {
	transition: background .2s;
}
@media (hover: hover) {
	.flickity-prev-next-button:hover {
		background: #00a0e9;
	}
}
html.isTouch .flickity-prev-next-button.hover {
	background: #00a0e9;
}
@media screen and (min-width: 1400px) {
	.flickity-prev-next-button.previous {
		left: calc(50% - 50vw);
	}
	.flickity-prev-next-button.next {
		right: calc(50% - 50vw);
	}
}
@media screen and (max-width: 767px) {
	.flickity-prev-next-button {
		display: none;
	}
}

/* :::::: page-dots :::::: */
.flickity-page-dots {
	list-style: none;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 50px;
}
.flickity-page-dots .dot {
	cursor: pointer;
	position: relative;
	width: 24px;
	height: 24px;
	padding: 8px;
	color: #00a0e9;
	line-height: 0;
	transition: color .2s;
}
.flickity-page-dots .dot:not(.is-selected) {
	color: gray;
}
.flickity-page-dots .dot:not(:first-child) {
	margin-left: 2px;
}
.flickity-page-dots .dot::after {
	content: "";
	display: block;
	width: 8px;
	height: 8px;
	background: currentcolor;
	border-radius: 8px;
}


/**
 * モーダル UI
 -------------------------------------------------- */
.l-modal,
.l-modal::before,
.modal_container {
	position: absolute;
	inset: 0;
}
.l-modal {
	z-index: 103;
	position: fixed;
}
.l-modal.js-preview-modal {
	z-index: 102;
}
.l-modal::before {
	content: "";
	background: #f0f0f0;
}
.modal_container {
	overflow: auto;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
}
.modal_container > * {
	z-index: 1;
	position: relative;
}
.modal_container + .o-loader {
	position: fixed;
	top: calc(50% - 20px);
	left: calc(50% - 20px);
}
.modal_contents {
	padding: 100px;
	text-align: center;
}
.modal_contents .o-button {
	margin-top: 64px;
}
@media screen and (max-width: 767px) {
	.modal_contents {
		padding: 60px 40px 120px;
	}
}
@media screen and (max-width: 480px) {
	.modal_contents {
		padding: 60px 20px 120px;
	}
}

/* :::::: motion :::::: */
.l-modal.is-anim {
	transition: opacity .4s;
}
.l-modal.is-anim:not(.is-active),
.l-modal.is-anim:not(.is-active) .modal_container {
	transition-delay: .2s;
}
.l-modal.is-anim .modal_container {
	transition: transform .4s;
}
.l-modal:not(.is-active) {
	pointer-events: none;
	opacity: 0;
}
.l-modal:not(.is-active) .modal_container {
	transform: scale(.92);
}

/* :::::: replace :::::: */
.modal_container.is-anim {
	pointer-events: none;
	transition: opacity .4s;
}
.modal_container.is-replace {
	pointer-events: none;
	opacity: 0;
}

.modal_container:not(.is-replace) + .o-loader {
	opacity: 0;
	transform: scale(.3);
}
.modal_container.is-anim + .o-loader {
	transition: opacity .4s, transform .4s;
}
.modal_container.is-replace + .o-loader {
	transition-delay: .2s;
}





/**
 * クライアント一覧
 -------------------------------------------------- */
.l-client .o-title {
	text-transform: uppercase;
}
.c-client-category_wrap {
	display: none;
	justify-content: center;
	align-items: flex-start;
}
.c-client-category {
	max-width: 15.5em;
}
.c-client-category + .c-client-category {
	margin-left: 60px;
}
@media screen and (min-width: 850px) {
	.c-client-category_wrap.-l3 {
		display: flex;
	}
	.c-client-category {
		flex-basis: 33.33333%;
	}
}
@media screen and (min-width: 375px) and (max-width: 849px) {
	.c-client-category_wrap.-l2 {
		display: flex;
	}
	.c-client-category {
		flex-basis: 50%;
	}
}
@media screen and (max-width: 374px) {
	.c-client-category_wrap.-l1 {
		display: block;
	}
}

.c-client-category {
	position: relative;
	margin-top: 80px;
	font-size: 1.4rem;
	line-height: 1.6;
	text-align: left;
}
/*.c-client-category a {
	display: inline-block;
}*/
.c-client-category .js-request {
	margin: 0 -20px;
	padding: 4px 20px;
	transition: color .2s;
}
@media (hover: hover) {
	.c-client-category .js-request:hover {
		color: #00a0e9;
	}
}
html.isTouch .c-client-category .js-request.hover {
	color: #00a0e9;
}
@media screen and (max-width: 767px) {
	.c-client-category {
		margin-top: 32px;
	}
	.c-client-category .js-request {
		padding: 4px 10px;
	}
	.c-client-category + .c-client-category {
		margin-left: 20px;
	}
}
@media screen and (max-width: 480px) {
	.c-client-category .category_item {
		font-size: 1.2rem;
	}
	.c-client-category + .c-client-category {
		margin-left: 0;
	}
}

.c-client .client_item .js-request {
	text-transform: inherit;
}


/**
 * アコーディオン
 -------------------------------------------------- */
.js-accordion {
	padding: 4px 0;
}
@media screen and (max-width: 767px) {
	.js-accordion {
		padding: 4px 10px;
	}
}
.js-accordion.-parent {
	display: inline-block;
	cursor: pointer;
	white-space: nowrap;
}
.js-accordion.-none {
	color: darkgray;
	white-space: nowrap;
}
.js-accordion.-child {
	overflow: hidden;
	margin-left: calc(13px + 1em);
	padding: 0 !important;
}
.js-accordion.-child.is-anim {
	transition: height .4s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.js-accordion.-child:not(.is-active) {
	height: 0;
}
.js-accordion .ico {
	display: inline-block;
	position: relative;
	top: -.1em;
	width: 13px;
	height: 13px;
	margin-right: 1em;
	vertical-align: middle;
}
.js-accordion .ico::before,
.js-accordion .ico::after {
	content: "";
	position: absolute;
	top: calc(50% - 1px);
	left: 0;
	width: 100%;
	border-top: 1px solid currentcolor;
	transition: transform .2s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.js-accordion:not(.is-active) .ico::before,
.js-accordion:not(.is-active) .ico::after {
	transition-duration: .4s;
}
.js-accordion .ico::after {
	transform: rotate(90deg);
}
.js-accordion:hover .ico::before {
	transform: rotate(-90deg);
}
.js-accordion:hover .ico::after {
	transform: rotate(0);
}
.js-accordion.is-active .ico::before,
.js-accordion.is-active .ico::after {
	transform: rotate(-360deg);
}


/**
 * 日付入力フォーム
 -------------------------------------------------- */
.modal_contents.l-date {
	min-height: 100vh;
}
.l-date .o-title {
	text-transform: uppercase;
}

.c-date-ui,
.c-date-form {
	display: flex;
	align-items: center;
}
.c-date-ui,
.l-date .o-button {
	letter-spacing: .1em;
}
.c-date-ui-wrap {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.c-date-ui {
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	max-width: 800px;
	font-size: 2rem;
	letter-spacing: .1em;
}
.c-date-ui .o-input {
	font-size: inherit;
}
.c-date-form {
	flex-basis: calc(50% - .6em);
	justify-content: space-between;
}
.c-date-ui .dash {
	display: inline-block;
	width: .5em;
	margin: 0 .3em;
	border-top: .1em solid currentcolor;
	vertical-align: middle;
}
@media screen and (max-width: 374px) {
	.c-date-ui {
		flex-direction: column;
		margin: 64px 20px 0;
	}
	.c-date-form {
		flex-basis: 100%;
	}
	.c-date-ui .dash {
		width: 0;
		height: 1em;
		margin: .5em 0;
		border-top: 0;
		border-left: .1em solid currentcolor;
	}
}
@media screen and (min-width: 768px) {
	.c-date-ui {
		justify-content: center;
		margin-top: 160px;
		font-size: 3rem;
	}
	.c-date-form {
		flex-basis: calc(50% - 1em);
	}
	.c-date-ui .dash {
		width: 1em;
		margin: 0 .5em;
	}
}

.date-form_item {
	flex-basis: 50%;
	display: flex;
	align-items: center;
	position: relative;
}
.date-form_item .val,
.date-form_item .o-input {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 50px;
	padding: 0 .3em;
	letter-spacing: inherit;
	text-align: center;
	background: white;
}
.date-form_item:nth-child(2)::before {
	content: "/";
	margin: -.1em .3em 0;
}
.date-form_item select {
	position: absolute;
	width: 100%;
	height: 100%;
	font-size: 1.6rem;
	opacity: 0;
}
.c-date-ui .o-button {
	flex-basis: 200px;
	width: 200px;
	margin-top: 40px;
	padding: 10px 40px;
	font-size: 1.6rem;
}
@media screen and (max-width: 374px) {
	.date-form_item:nth-child(2)::before {
		margin: -.1em .5em 0;
	}
	.date-form_item .val,
	.date-form_item .o-input {
		padding: 0 1em;
	}
	.c-date-ui .o-button {
		flex-basis: auto;
	}
}
@media screen and (min-width: 768px) {
	.date-form_item:nth-child(2)::before {
		margin: -.1em .5em 0;
	}
	.date-form_item .val,
	.date-form_item .o-input {
		height: 64px;
	}
	.c-date-ui .o-button {
		font-size: 2rem;
	}
}



/**
 * ご利用のブラウザは対応しておりません
 -------------------------------------------------- */
.l-main.-error {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: calc(100vh - 99px);
	padding-bottom: 50px;
}
.o-warning {
	z-index: 2;
	position: absolute;
	top: 50px;
	left: calc(50% - 29px);
	line-height: 1;
}
.c-warning_title,
.c-warning_text {
	letter-spacing: .1em;
}
.c-warning_title {
	font-size: 1.6rem;
}
.c-warning_text {
	margin-top: 32px;
	font-size: 1.2rem;
}
.c-warning_text + .c-warning_text {
	margin-top: 24px;
}
.l-main.-error + .l-footer {
	position: absolute;
	width: 100%;
	bottom: 0;
	left: 0;
}
@media screen and (min-width: 768px) {
	.l-main.-error {
		display: flex;
		height: calc(100vh - 172px);
	}
}