@charset "utf-8";

*,*::before,*::after{box-sizing:border-box;}
body,h1,h2,h3,h4,p,ul,ol,li,figure,figcaption,blockquote,dl,dd{margin:0;}
ul,ol{list-style:none;padding:0;}
a{color:inherit;text-decoration:inherit;text-decoration-skip-ink:auto;}
img,svg,video,iframe{vertical-align:middle;}
img,video{max-width:100%;}
img[height]{height:auto;}
input,button,textarea,select{font:inherit;}
button{border:0;padding:0;background:none;-webkit-appearance: none;-moz-appearance: none;appearance: none;}
small{font-size:inherit;}
sub{vertical-align:baseline;}
@media (prefers-reduced-motion:reduce){*{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}}
html {
	scroll-behavior: auto;
	-webkit-text-size-adjust: 100%;
}
body {
	overscroll-behavior: auto;
	color: black;
	font-size: 1em;
	line-height: 2;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	letter-spacing: .05em;
	font-feature-settings: "pkna";
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
body.is-fixed {
	position: fixed;
	width: 100%;
}
@media print, (min-width: 768px) {
	.v-mb { display: none !important; }
}
@media screen and (max-width: 767px) {
	.v-dt { display: none !important; }
}
@media all and (-ms-high-contrast: none) {
	.hasScrollbar body {
		overflow-x: hidden;
	}
}
@media print {
	body {
		font-size: calc(16px / 1.5);
	}
}

.l-header { z-index: 3; }
.l-main { z-index: 1; }
.l-footer { z-index: 2; }
.l-menu { z-index: 4; }
.l-menubutton { z-index: 5; }

.logo {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0;
	text-align: center;
}
.c-link {
	display: block;
	position: relative;
	padding: .5em 0 .5em 28px;
}
.c-link .ar {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: .5em;
	left: 0;
	width: 20px;
	height: 20px;
	padding: 6px;
	border-radius: 20px;
	background: black;
	fill: none;
	stroke: white;
}
@media (hover: hover) {
	.c-link:hover {
		color: #a63162;
	}
}
.c-button {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 240px;
	height: 60px;
	color: white;
	font-size: 12px;
	line-height: 1.4;
	font-weight: 700;
	background: black;
}
@media print {
	.logo {
		font-size: calc(16px / 1.5);
	}
	.c-button {
		width: 5cm;
		height: 1.2cm;
		font-size: calc(12px / 1.5);
	}
}
@media (hover: hover) {
	.c-button {
		z-index: 1;
		position: relative;
		background: black;
	}
	.c-button::after {
		content: "";
		z-index: -1;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: linear-gradient(to right, #f6aad4, #b5e1f3);
		transition: opacity .1s;
	}
	.c-button:not(:hover)::after {
		opacity: 0;
		transition-duration: .6s;
	}
}
.c-theme {
	display: flex;
	align-items: center;
}
.c-theme .main {
	align-self: center;
	z-index: 0;
	position: relative;
	padding: 4px .7em;
	font-size: 20px;
	font-weight: 700;
	text-align: center;
	background: linear-gradient(to right, #c69ab2, #b1ccd7);
}
.c-theme .main .to {
	font-size: 80%;
}
.c-theme .main::before {
	content: "";
	z-index: -1;
	position: absolute;
	top: 4px;
	right: 4px;
	bottom: 4px;
	left: 4px;
	background: white;
}
.c-theme .sub {
	margin-left: .5em;
	font-size: 15px;
	line-height: 1.2;
	font-weight: 400;
}
.l-main {
	overflow: hidden;
}
@media print {
	.c-theme .main {
		font-size: calc(20px / 1.5);
	}
	.c-theme .sub {
		font-size: calc(15px / 1.5);
	}
}
@media screen and (-ms-high-contrast: none) {
	main { display: block; }
}

/**
 * header
 * ---------------------------------------- */
.l-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	width: 100%;
	max-width: 1200px;
	height: 136px;
	margin: 0 auto;
	padding: 0 24px;
}
.l-header .logo {
	width: 217px;
}
.l-header .logo .sub {
	display: none;
}
.l-header .menu,
.l-header .menu_sub,
.l-header .menu .parent {
	display: flex;
	align-items: center;
}
.l-header .menu {
	font-size: 12px;
	font-family: "Roboto", "Noto Sans JP", sans-serif;
	font-weight: 500;
	letter-spacing: .1em;
	white-space: nowrap;
}
.l-header .menu_sub  {
	font-size: 9px;
}
.l-header .menu_sub .to {
	font-size: 80%;
}
.l-header .menu a {
	display: block;
	padding: 1em;
}
.l-header .menu a {
	background: linear-gradient(currentcolor, currentcolor) right 1em bottom 1em / 0 1px no-repeat;
}
.l-header .menu a[aria-current="page"] {
	background-size: calc(100% - 2em) 1px;
}
@media (hover: hover) {
	.l-header .menu a {
		transition: background-size .4s cubic-bezier(0.215, 0.61, 0.355, 1);
	}
	.l-header .menu a:hover {
		background-position: left 1em bottom 1em;
		background-size: calc(100% - 2em) 1px;
	}
}
@media print, (min-width: 768px) {
	.l-header .logo {
		margin-right: 24px;
	}
}
@media print {
	.l-header {
		height: 2cm;
	}
	.l-header .logo {
		width: 4cm;
	}
	.l-header .menu {
		font-size: calc(12px / 1.5);
	}
	.l-header .menu_sub  {
		font-size: calc(9px / 1.5);
	}
}
@media screen and (max-width: 1023px) {
	.l-header .menu a {
		padding: 1em .7em;
	}
}
@media screen and (max-width: 767px) {
	.l-header {
		height: 104px;
	}
	.l-header .menu {
		display: none;
	}
}
@media screen and (max-width: 479px) {
	.l-header {
		height: 80px;
	}
	.l-header .logo {
		width: 120px;
		font-size: 9px;
	}
}

/**
 * footer
 * ---------------------------------------- */
.l-footer {
	display: flex;
	justify-content: space-between;
	position: relative;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 56px 24px;
}
.l-footer::before {
	content: "";
	z-index: -1;
	position: absolute;
	top: 0;
	right: calc(50% - 50vw);
	bottom: 0;
	left: calc(50% - 50vw);
	background: linear-gradient(to right, #f6aad4, #b5e1f3);
}
.hasScrollbar .l-footer::before {
	right: calc(50% - 50vw + var(--scroll-bar-width) / 2);
	left: calc(50% - 50vw + var(--scroll-bar-width) / 2);
}
.l-footer .logo {
	width: 293px;
}
.l-footer .contentsinfo {
	position: relative;
}
.l-footer .menu {
	columns: 2;
	font-size: 12px;
	font-weight: 500;
	white-space: nowrap;
}
.l-footer .menu .global {
	font-size: 9px;
}
.l-footer .menu a,
.l-footer .takenaka a {
	display: block;
	padding: .2em 0;
}
.l-footer .menu_sub {
	padding-left: .5em;
	font-size: 10px;
}
.l-footer .menu_sub .to {
	font-size: 80%;
}
.l-footer .menu_sub a::before {
	content: "-";
	display: inline-block;
	width: 1em;
	text-align: center;
}
.l-footer .pagetop {
	z-index: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	position: fixed;
	right: 24px;
	bottom: 20px;
	width: 50px;
	height: 50px;
	background: #2f2f2f;
}
.l-footer .pagetop.is-anim {
	transition: opacity .3s;
}
.l-footer .pagetop.is-fix {
	position: absolute;
	top: -74px;
	bottom: auto;
}
.l-footer .pagetop:not(.is-show) {
	opacity: 0;
	transition-duration: .1s;
}
.l-footer .pagetop svg {
	fill: none;
	stroke: white;
	stroke-width: 3;
}
.l-footer .copyright {
	font-size: 11px;
	font-family: "Roboto", sans-serif;
}
@media print, (min-width: 768px) {
	.l-footer {
		align-items: flex-start;
		padding-bottom: 160px;
	}
	.l-footer .logo {
		margin-right: 32px;
	}
	.l-footer .contentsinfo {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		margin-left: auto;
	}
	.l-footer .menu {
		margin-right: 48px;
	}
	.l-footer .menu li {
		width: 6em;
	}
	.l-footer .menu li:nth-child(2) {
		break-after: column;
	}
	.l-footer .menu .global {
		padding-left: 24px;
	}
	.l-footer .copyright {
		position: absolute;
		right: 24px;
		bottom: 40px;
	}
}
@media print, (min-width: 1024px) {
	.l-footer .menu li {
		width: 8em;
	}
}
@media print, (min-width: 1200px) {
	.l-footer .pagetop:not(.is-fix) {
		right: calc(50vw - 600px + 24px);
	}
	.hasScrollbar .l-footer .pagetop:not(.is-fix) {
		right: calc(50vw - 600px + 24px - var(--scroll-bar-width) / 2);
	}
}
@media print {
	.l-footer {
		max-height: 6cm;
		break-inside: avoid;
		page-break-inside: avoid;
	}
	.l-footer .logo {
		width: 5cm;
	}
	.l-footer .menu {
		font-size: calc(12px / 1.5);
	}
	.l-footer .menu .global {
		font-size: calc(9px / 1.5);
	}
	.l-footer .menu_sub {
		font-size: calc(10px / 1.5);
	}
	.l-footer .takenaka {
		width: 3cm;
	}
	.l-footer .copyright {
		font-size: calc(11px / 1.5);
	}
}
@media screen and (max-width: 767px) {
	.l-footer {
		flex-direction: column;
		align-items: center;
		padding: 48px 24px;
	}
	.l-footer .menu {
		columns: 2;
		margin-top: 32px;
	}
	.l-footer .menu li:nth-child(4) {
		break-after: column;
	}
	.l-footer .takenaka,
	.l-footer .copyright {
		margin-top: 32px;
	}
}

/**
 * nav
 * ---------------------------------------- */
@media print, (min-width: 768px) {
	.l-menu,
	.l-menubutton {
		display: none;
	}
}
@media screen and (max-width: 767px) {
	.l-menubutton {
		cursor: pointer;
		position: fixed;
		top: 24px;
		right: 24px;
		width: 48px;
		height: 48px;
		padding: 11px;
	}
	.l-menubutton .bar {
		position: absolute;
		top: calc(50% - 2px);
		left: calc(50% - 13px);
		fill: none;
		stroke: currentcolor;
		stroke-width: 1;
	}
	.l-menubutton .-b1 {
		transform: translateY(-9px);
	}
	.l-menubutton .-b3 {
		transform: translateY(9px);
	}
	.l-menubutton.is-active .-b1 {
		transform: rotate(45deg);
	}
	.l-menubutton.is-active .-b2 {
		transform: scaleX(0);
	}
	.l-menubutton.is-active .-b3 {
		transform: rotate(-45deg);
	}
	/* motion */
	.l-menubutton.is-anim .-b1,
	.l-menubutton.is-anim .-b3 {
		animation: menubar1 .4s cubic-bezier(.3,1,.7,1) both;
	}
	.l-menubutton.is-anim .-b2 {
		transition: transform .4s cubic-bezier(.3,1,.7,1);
	}
	.l-menubutton.is-anim .-b3 {
		animation-name: menubar3;
	}
	.l-menubutton.is-anim:not(.is-active) .-b1,
	.l-menubutton.is-anim:not(.is-active) .-b3 {
		animation-direction: reverse;
		animation-timing-function: cubic-bezier(.3,0,.7,0);
	}
	@keyframes menubar1 {
		0% { transform: translateY(-9px); }
		40% { transform: none; }
		to { transform: rotate(45deg); }
	}
	@keyframes menubar3 {
		0% { transform: translateY(9px); }
		40% { transform: none; }
		to { transform: rotate(-45deg); }
	}
}
@media screen and (max-width: 479px) {
	.l-menubutton {
		top: 12px;
		right: 12px;
	}
}
@media screen and (max-width: 767px) {
	.l-menu,
	.l-menu .overlay {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
	.l-menu .overlay {
		background: linear-gradient(to right, #f6aad4, #b5e1f3);
		opacity: .96;
	}
	.l-menu .close {
		position: absolute;
		top: 24px;
		right: 24px;
	}
	.l-menu .container {
		position: absolute;
		top: calc(50% - 32vh);
		left: calc(50% - 150px);
		width: 300px;
		height: 64vh;
		padding: 24px;
		border-radius: 8px;
		background: white;
	}
	.l-menu .menu {
		display: flex;
		flex-direction: column;
		justify-content: space-around;
		height: 100%;
		padding: 10% 0;
		font-size: 14px;
		line-height: 1.2;
		font-weight: 600;
	}
	.l-menu .menu li + li,
	.l-menu .menu_sub li {
		margin-top: 4px;
	}
	.l-menu .menu_sub a::before {
		content: "-";
		display: inline-block;
		width: 1em;
		padding-left: .5em;
		text-align: center;
	}
	.l-menu .menu_sub,
	.l-menu .menu .global {
		font-size: 12px;
		font-weight: 400;
	}
	.l-menu .menu_sub a,
	.l-menu .menu .global a {
		display: block;
		padding: .5em;
		padding-left: 1em;
	}
	/* motion */
	.l-menu:not(.is-active) {
		pointer-events: none;
	}
	.l-menu .overlay:not(.is-active),
	.l-menu:not(.is-active) .container {
		opacity: 0;
	}
	.l-menu:not(.is-active) .container {
		transform: translateY(24px);
	}
	.l-menu.is-anim:not(.is-active) .container {
		transform: translateY(-24px);
	}
	.l-menu .overlay.is-anim,
	.l-menu.is-anim .container {
		transition: opacity .6s, transform .6s cubic-bezier(.3,1,.7,1);
	}
	.l-menu .overlay.is-anim:not(.is-active),
	.l-menu.is-anim.is-active .container {
		transition-delay: .3s;
	}
}

/**
 * svg
 * -------------------------------------------------- */
.svg-parts,
.visuallyhidden {
	position: absolute;
	clip: rect(0 0 0 0);
	overflow: hidden;
	width: 1px;
	height: 1px;
}

/**
 * javascript
 * -------------------------------------------------- */
.visuallyhidden {
	display: none;
	position: absolute;
	clip: rect(0 0 0 0);
	overflow: hidden;
	width: 1px;
	height: 1px;
}

/* inview */
.js-inview:not(.is-inview) {
	opacity: 0;
	transform: translateY(24px);
}
.js-inview.is-anim {
	transition: opacity .6s, transform .6s cubic-bezier(.3,1,.7,1);
}

/* lazy */
img[data-src]:not(.is-loaded) {
	opacity: 0;
}
img.is-anim {
	transition: opacity .6s;
}

/*! Flickity v2.3.0
https://flickity.metafizzy.co
---------------------------------------------- */
.flickity-enabled{position:relative}
.flickity-enabled:focus{outline:0}
.flickity-viewport{overflow:hidden;position:relative;height:100%}
.flickity-slider{position:absolute;width:100%;height:100%}
.flickity-enabled.is-draggable{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
.flickity-enabled.is-draggable 
.flickity-viewport{cursor:move;cursor:-webkit-grab;cursor:grab}
.flickity-enabled.is-draggable 
.flickity-viewport.is-pointer-down{cursor:-webkit-grabbing;cursor:grabbing}
.flickity-button{cursor:pointer;position:absolute;color:white;background:#3d3d3d;border:none}
.flickity-button:hover{opacity:.8}
.flickity-button:focus{outline:0;box-shadow:0 0 0 5px #19f}
.flickity-button:active{opacity:.6}
.flickity-button:disabled{opacity:.3;cursor:auto;pointer-events:none}
.flickity-button-icon{fill:currentColor}
.flickity-prev-next-button{top:calc(50% - 20px);width:40px;height:40px;border-radius:40px}
.flickity-prev-next-button.previous{left:10px}
.flickity-prev-next-button.next{right:10px}
.flickity-rtl 
.flickity-prev-next-button.previous{left:auto;right:10px}
.flickity-rtl 
.flickity-prev-next-button.next{right:auto;left:10px}
.flickity-prev-next-button 
.flickity-button-icon{position:absolute;left:0;top:0;width:100%;height:100%;fill:none;stroke:currentcolor;stroke-width:4}
.flickity-page-dots{position:absolute;width:100%;bottom:-25px;padding:0;margin:0;list-style:none;text-align:center;line-height:1}
.flickity-rtl 
.flickity-page-dots{direction:rtl}
.flickity-page-dots .dot{display:inline-block;width:10px;height:10px;margin:0 8px;background:#333;border-radius:50%;opacity:.25;cursor:pointer}
.flickity-page-dots .dot.is-selected{opacity:1}