/* =========================================================
   FONT
========================================================= */

html,
body,
body.sachi-page,
.sachi-page,
.sachi-page * {

	font-family:
		"Noto Serif JP",
		"Yu Mincho",
		"YuMincho",
		"Hiragino Mincho ProN",
		"Hiragino Mincho Pro",
		"MS PMincho",
		serif !important;
}


.sachi-page {

	background: #f8f7f3;
	color: #222;

	font-weight: 400;

	overflow-x: hidden;
}


.sachi-page h1,
.sachi-page h2,
.sachi-page h3,
.sachi-page h4,
.sachi-page h5,
.sachi-page h6 {

	font-weight: 400;
}


.sachi-page img {

	max-width: 100%;
}



/* =========================================================
   CONTAINER
========================================================= */

.sachi-container {

	width: 90%;
	max-width: 1120px;

	margin: 0 auto;
}



/* =========================================================
   WOW BASE
========================================================= */

/*
   WOW.jsによる初期非表示。
   animate.min.cssと組み合わせて使用。
*/

.sachi-page .wow {

	visibility: hidden;

}



/* =========================================================
   LUXURY ANIMATION
========================================================= */


/* -------------------------
   FADE UP
------------------------- */

@keyframes sachiFadeUp {

	0% {

		opacity: 0;

		transform:
			translate3d(0, 70px, 0);

	}

	100% {

		opacity: 1;

		transform:
			translate3d(0, 0, 0);

	}

}


.sachi-page .sachi-fade-up.animated {

	animation-name: sachiFadeUp;

	animation-duration: 1.5s;

	animation-timing-function:
		cubic-bezier(0.22, 1, 0.36, 1);

	animation-fill-mode: both;

}



/* -------------------------
   FADE DOWN
------------------------- */

@keyframes sachiFadeDown {

	0% {

		opacity: 0;

		transform:
			translate3d(0, -30px, 0);

	}

	100% {

		opacity: 1;

		transform:
			translate3d(0, 0, 0);

	}

}


.sachi-page .sachi-fade-down.animated {

	animation-name: sachiFadeDown;

	animation-duration: 1.4s;

	animation-timing-function:
		cubic-bezier(0.22, 1, 0.36, 1);

	animation-fill-mode: both;

}



/* -------------------------
   SLIDE LEFT
------------------------- */

@keyframes sachiSlideLeft {

	0% {

		opacity: 0;

		transform:
			translate3d(-90px, 0, 0);

	}

	100% {

		opacity: 1;

		transform:
			translate3d(0, 0, 0);

	}

}


.sachi-page .sachi-slide-left.animated {

	animation-name: sachiSlideLeft;

	animation-duration: 1.6s;

	animation-timing-function:
		cubic-bezier(0.22, 1, 0.36, 1);

	animation-fill-mode: both;

}



/* -------------------------
   SLIDE RIGHT
------------------------- */

@keyframes sachiSlideRight {

	0% {

		opacity: 0;

		transform:
			translate3d(90px, 0, 0);

	}

	100% {

		opacity: 1;

		transform:
			translate3d(0, 0, 0);

	}

}


.sachi-page .sachi-slide-right.animated {

	animation-name: sachiSlideRight;

	animation-duration: 1.6s;

	animation-timing-function:
		cubic-bezier(0.22, 1, 0.36, 1);

	animation-fill-mode: both;

}



/* =========================================================
   PHOTO SLIDE
========================================================= */

/*
   写真専用。
   横から滑り込みながら、
   少し拡大 → 定位置へ。
*/


@keyframes sachiPhotoLeft {

	0% {

		opacity: 0;

		transform:
			translate3d(-110px, 0, 0)
			scale(1.08);

	}

	100% {

		opacity: 1;

		transform:
			translate3d(0, 0, 0)
			scale(1);

	}

}


.sachi-page .sachi-photo-left.animated {

	animation-name: sachiPhotoLeft;

	animation-duration: 2s;

	animation-timing-function:
		cubic-bezier(0.16, 1, 0.3, 1);

	animation-fill-mode: both;

}



/* -------------------------
   PHOTO RIGHT
------------------------- */

@keyframes sachiPhotoRight {

	0% {

		opacity: 0;

		transform:
			translate3d(110px, 0, 0)
			scale(1.08);

	}

	100% {

		opacity: 1;

		transform:
			translate3d(0, 0, 0)
			scale(1);

	}

}


.sachi-page .sachi-photo-right.animated {

	animation-name: sachiPhotoRight;

	animation-duration: 2s;

	animation-timing-function:
		cubic-bezier(0.16, 1, 0.3, 1);

	animation-fill-mode: both;

}



/* =========================================================
   TITLE REVEAL
========================================================= */

@keyframes sachiTitleReveal {

	0% {

		opacity: 0;

		transform:
			translate3d(0, 55px, 0)
			scale(0.96);

	}

	100% {

		opacity: 1;

		transform:
			translate3d(0, 0, 0)
			scale(1);

	}

}


.sachi-page .sachi-title-reveal.animated {

	animation-name: sachiTitleReveal;

	animation-duration: 1.7s;

	animation-timing-function:
		cubic-bezier(0.22, 1, 0.36, 1);

	animation-fill-mode: both;

}



/* =========================================================
   MESSAGE REVEAL
========================================================= */

@keyframes sachiMessageReveal {

	0% {

		opacity: 0;

		transform:
			translate3d(0, 90px, 0)
			scale(0.94);

	}

	100% {

		opacity: 1;

		transform:
			translate3d(0, 0, 0)
			scale(1);

	}

}


.sachi-page .sachi-message-reveal.animated {

	animation-name: sachiMessageReveal;

	animation-duration: 2.2s;

	animation-timing-function:
		cubic-bezier(0.16, 1, 0.3, 1);

	animation-fill-mode: both;

}



/* =========================================================
   LINE
========================================================= */

@keyframes sachiLineReveal {

	0% {

		opacity: 0;

		transform:
			scaleX(0);

		transform-origin: left center;

	}

	100% {

		opacity: 1;

		transform:
			scaleX(1);

		transform-origin: left center;

	}

}


.sachi-page .sachi-line-reveal.animated {

	animation-name: sachiLineReveal;

	animation-duration: 1.3s;

	animation-timing-function:
		cubic-bezier(0.22, 1, 0.36, 1);

	animation-fill-mode: both;

}



/* =========================================================
   HEADER
========================================================= */

.sachi-header {

	padding: 25px 0;

	background: #f8f7f3;

	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}


.sachi-header-inner {

	display: flex;

	align-items: center;

	justify-content: space-between;

	width: 90%;

	max-width: 1300px;

	margin: 0 auto;
}


.sachi-back {

	color: #333;

	font-size: 10px;

	letter-spacing: 0.18em;

	text-decoration: none;

	transition:
		color 0.4s ease;
}


.sachi-back span {

	margin-right: 8px;

	color: #c9a227;
}


.sachi-back:hover {

	color: #c9a227;

	text-decoration: none;
}


.sachi-header-title {

	font-family:
		"Times New Roman",
		serif !important;

	font-size: 11px;

	letter-spacing: 0.22em;

	color: #555;
}



/* =========================================================
   INTRO TITLE
========================================================= */

.sachi-intro-title {

	padding: 130px 20px 90px;

	background: #f8f7f3;

	text-align: center;
}


.sachi-intro-en {

	display: block;

	margin-bottom: 20px;

	font-size: 11px;

	letter-spacing: 0.4em;

	color: #999;
}


.sachi-intro-title h1 {

	margin: 0 0 22px;

	font-size: 36px;

	font-weight: 300;

	line-height: 1.6;

	letter-spacing: 0.16em;

	color: #222;
}


.sachi-intro-title p {

	margin: 0;

	font-size: 12px;

	line-height: 1.8;

	letter-spacing: 0.16em;

	color: #888;
}



/* =========================================================
   HERO
========================================================= */

.sachi-hero {

	padding: 70px 0 150px;

	background: #f8f7f3;
}


.sachi-hero-grid {

	display: grid;

	grid-template-columns:
		minmax(0, 1.15fr)
		minmax(360px, 0.85fr);

	align-items: center;

	gap: 0;
}


.sachi-hero-photo {

	width: 100%;

	overflow: hidden;

	background: #e8e6e0;

	will-change: transform;
}


.sachi-hero-photo img {

	display: block;

	width: 100%;

	height: auto;

	object-fit: cover;

	transition:
		transform 1.5s
		cubic-bezier(0.22, 1, 0.36, 1);
}


.sachi-hero-photo:hover img {

	transform: scale(1.025);
}


.sachi-hero-content {

	padding: 60px 50px 60px 75px;
}


.sachi-en {

	display: block;

	margin-bottom: 20px;

	font-size: 10px;

	letter-spacing: 0.25em;

	color: #999;
}


.sachi-hero-content h1 {

	margin: 0;

	font-size: 64px;

	font-weight: 300;

	line-height: 1.1;

	letter-spacing: 0.12em;

	color: #222;
}


.sachi-reading {

	margin: 10px 0 30px;

	font-size: 13px;

	letter-spacing: 0.2em;

	color: #777;
}


.sachi-gold-line {

	width: 42px;

	height: 1px;

	margin-bottom: 28px;

	background: #c9a227;
}


.sachi-hero-content h2 {

	margin: 0;

	font-size: 16px;

	font-weight: 400;

	line-height: 2;

	letter-spacing: 0.12em;

	color: #333;
}


.sachi-organizer {

	margin: 22px 0 0;

	font-size: 12px;

	letter-spacing: 0.12em;

	color: #666;
}


.sachi-location {

	margin: 50px 0 0;

	font-size: 10px;

	letter-spacing: 0.4em;

	color: #aaa;
}



/* =========================================================
   COMMON SECTION
========================================================= */

.sachi-section-label {

	display: block;

	margin-bottom: 25px;

	font-size: 10px;

	letter-spacing: 0.35em;

	color: #999;
}


.sachi-section-heading {

	margin-bottom: 75px;
}


.sachi-section-heading span {

	display: block;

	margin-bottom: 18px;

	font-size: 10px;

	letter-spacing: 0.35em;

	color: #999;
}


.sachi-section-heading h2 {

	margin: 0;

	font-size: 38px;

	font-weight: 300;

	line-height: 1.7;

	letter-spacing: 0.12em;

	color: #222;
}



/* =========================================================
   PROFILE
========================================================= */

.sachi-profile-intro {

	padding: 150px 0;

	background: #fff;
}


.sachi-profile-lead {

	display: grid;

	grid-template-columns: 45% 55%;

	align-items: start;
}


.sachi-profile-lead h2 {

	margin: 0;

	font-size: 39px;

	font-weight: 300;

	line-height: 1.8;

	letter-spacing: 0.12em;
}


.sachi-lead-text {

	padding-left: 80px;
}


.sachi-lead-text p {

	margin: 0 0 25px;

	font-size: 13px;

	font-weight: 300;

	line-height: 2.3;

	letter-spacing: 0.08em;

	color: #666;
}



/* =========================================================
   ABOUT
========================================================= */

.sachi-about {

	padding: 150px 0;

	background: #f8f7f3;
}


.sachi-about-grid {

	display: grid;

	grid-template-columns: 42% 58%;

	align-items: start;
}


.sachi-about-heading {

	padding-right: 50px;
}


.sachi-about-heading > span {

	display: block;

	margin-bottom: 22px;

	font-size: 10px;

	letter-spacing: 0.3em;

	color: #999;
}


.sachi-about-heading h2 {

	margin: 0;

	font-size: 32px;

	font-weight: 300;

	line-height: 1.9;

	letter-spacing: 0.12em;
}


.sachi-about-text {

	padding-left: 70px;
}


.sachi-about-text p {

	margin: 0 0 25px;

	font-size: 13px;

	font-weight: 300;

	line-height: 2.35;

	letter-spacing: 0.08em;

	color: #666;
}



/* =========================================================
   CAREER
========================================================= */

.sachi-career {

	padding: 150px 0;

	background: #fff;
}


.sachi-career-list {

	border-top: 1px solid #ddd;
}


.sachi-career-item {

	display: grid;

	grid-template-columns: 100px 1fr;

	padding: 32px 0;

	border-bottom: 1px solid #ddd;
}


.sachi-career-item > span {

	font-size: 11px;

	letter-spacing: 0.18em;

	color: #c9a227;
}


.sachi-career-item h3 {

	margin: 0;

	font-size: 17px;

	font-weight: 400;

	line-height: 1.8;

	letter-spacing: 0.08em;
}


.sachi-career-item p {

	max-width: 650px;

	margin: 12px 0 0;

	font-size: 12px;

	line-height: 2;

	letter-spacing: 0.08em;

	color: #777;
}



/* =========================================================
   GALLERY
========================================================= */

.sachi-photo-gallery {

	padding: 130px 0;

	background: #f8f7f3;
}


.sachi-gallery-heading {

	max-width: 760px;

	margin: 0 auto 65px;

	text-align: center;
}


.sachi-gallery-heading span {

	display: block;

	margin-bottom: 15px;

	font-size: 10px;

	letter-spacing: 0.35em;

	color: #999;
}


.sachi-gallery-heading h2 {

	margin: 0 0 22px;

	font-size: 34px;

	font-weight: 400;

	letter-spacing: 0.16em;

	color: #222;
}


.sachi-gallery-heading p {

	margin: 0;

	font-size: 13px;

	line-height: 2.2;

	letter-spacing: 0.12em;

	color: #777;
}


.sachi-gallery-grid {

	display: grid;

	grid-template-columns:
		2fr 1fr 1fr;

	grid-template-rows:
		270px 270px;

	gap: 12px;
}


.sachi-gallery-main {

	grid-row: span 2;
}


.sachi-gallery-item {

	overflow: hidden;

	background: #e9e7e1;

	will-change: transform;
}


.sachi-gallery-item img {

	display: block;

	width: 100%;

	height: 100%;

	object-fit: cover;

	transition:
		transform 1.5s
		cubic-bezier(0.22, 1, 0.36, 1);
}


.sachi-gallery-item:hover img {

	transform: scale(1.045);
}



/* =========================================================
   SHIZU × UGOKU
========================================================= */

.sachi-shizutougo {

	padding: 150px 0;

	background: #f8f7f3;
}


.sachi-shizutougo-grid {

	display: grid;

	grid-template-columns: 1fr 1fr;
}


.sachi-shizutougo-item {

	padding: 60px;

	border-top: 1px solid #ccc;
}


.sachi-shizutougo-item:first-child {

	border-right: 1px solid #ccc;
}


.sachi-shizutougo-number {

	margin-bottom: 25px;

	font-size: 11px;

	letter-spacing: 0.2em;

	color: #c9a227;
}


.sachi-shizutougo-item h3 {

	display: inline-block;

	margin: 0 18px 0 0;

	font-size: 58px;

	font-weight: 300;

	letter-spacing: 0.08em;
}


.sachi-shizutougo-item > span {

	font-size: 10px;

	letter-spacing: 0.3em;

	color: #999;
}


.sachi-small-line {

	width: 35px;

	height: 1px;

	margin: 30px 0;

	background: #c9a227;
}


.sachi-shizutougo-item p {

	margin: 0 0 20px;

	font-size: 13px;

	font-weight: 300;

	line-height: 2.25;

	letter-spacing: 0.08em;

	color: #666;
}



/* =========================================================
   CONNECTION
========================================================= */

.sachi-connection {

	padding: 150px 0;

	background: #fff;
}


.sachi-connection-grid {

	display: grid;

	grid-template-columns: 45% 55%;
}


.sachi-connection-grid h2 {

	margin: 0;

	font-size: 38px;

	font-weight: 300;

	line-height: 1.8;

	letter-spacing: 0.12em;
}


.sachi-connection-text {

	padding-left: 70px;
}


.sachi-connection-text p {

	margin: 0 0 25px;

	font-size: 13px;

	font-weight: 300;

	line-height: 2.3;

	letter-spacing: 0.08em;

	color: #666;
}



/* =========================================================
   FESTIVAL
========================================================= */

.sachi-festival {

	padding: 150px 0;

	background: #101820;

	color: #fff;
}


.sachi-festival .sachi-section-heading span {

	color: #c9a227;
}


.sachi-festival .sachi-section-heading h2 {

	color: #fff;
}


.sachi-festival-content {

	max-width: 720px;

	margin-left: auto;
}


.sachi-festival-content p {

	margin: 0 0 28px;

	font-size: 13px;

	font-weight: 300;

	line-height: 2.35;

	letter-spacing: 0.08em;

	color: #ddd;
}



/* =========================================================
   PROGRAM
========================================================= */

.sachi-program {

	padding: 150px 0;

	background: #f8f7f3;
}


.sachi-program-flow {

	display: grid;

	grid-template-columns:
		1fr 50px
		1fr 50px
		1fr 50px
		1fr;

	align-items: center;

	border-top: 1px solid #ccc;

	border-bottom: 1px solid #ccc;
}


.program-step {

	padding: 45px 15px;

	text-align: center;
}


.program-step > span {

	display: block;

	margin-bottom: 20px;

	font-size: 11px;

	letter-spacing: 0.18em;

	color: #c9a227;
}


.program-step h3 {

	margin: 0 0 15px;

	font-size: 16px;

	font-weight: 400;

	line-height: 1.7;

	letter-spacing: 0.1em;
}


.program-step p {

	margin: 0;

	font-size: 11px;

	line-height: 2;

	letter-spacing: 0.05em;

	color: #777;
}


.program-arrow {

	font-size: 18px;

	text-align: center;

	color: #c9a227;
}


.sachi-program-note {

	max-width: 650px;

	margin: 75px auto 0;

	text-align: center;
}


.sachi-program-note h3 {

	margin: 0 0 25px;

	font-size: 25px;

	font-weight: 300;

	letter-spacing: 0.18em;
}


.sachi-program-note p {

	margin: 0 0 15px;

	font-size: 12px;

	line-height: 2.2;

	letter-spacing: 0.08em;

	color: #777;
}



/* =========================================================
   PARTICIPATION
========================================================= */

.sachi-participation {

	padding: 150px 0;

	background: #fff;
}


.sachi-participation-grid {

	display: grid;

	grid-template-columns: 1fr 1fr;

	gap: 80px;
}


.sachi-participation-grid > div {

	padding-top: 30px;

	border-top: 1px solid #ccc;
}


.sachi-participation-grid h3 {

	margin: 0 0 25px;

	font-size: 18px;

	font-weight: 400;

	letter-spacing: 0.1em;
}


.sachi-participation-grid p {

	margin: 0 0 18px;

	font-size: 12px;

	line-height: 2.2;

	letter-spacing: 0.08em;

	color: #777;
}



/* =========================================================
   MESSAGE
========================================================= */

.sachi-message {

	display: flex;

	align-items: center;

	justify-content: center;

	min-height: 620px;

	padding: 120px 20px;

	background: #101820;

	text-align: center;
}


.sachi-message-inner {

	max-width: 900px;
}


.sachi-message-inner > span {

	display: block;

	margin-bottom: 40px;

	font-size: 10px;

	letter-spacing: 0.4em;

	color: #c9a227;
}


.sachi-message h2 {

	margin: 0 0 35px;

	font-size: 44px;

	font-weight: 300;

	line-height: 1.9;

	letter-spacing: 0.15em;

	color: #fff;
}


.sachi-message p {

	margin: 0;

	font-size: 13px;

	font-weight: 300;

	letter-spacing: 0.1em;

	color: #ccc;
}



/* =========================================================
   FESTIVAL MESSAGE
========================================================= */

.sachi-festival-message {

	padding: 150px 0;

	background: #f8f7f3;
}


.sachi-festival-message .sachi-section-label {

	display: block;

	margin-bottom: 20px;

	text-align: center;
}


.sachi-festival-message > .sachi-container > h2 {

	margin-left: auto;

	margin-right: auto;

	text-align: center;

	font-size: 38px;

	font-weight: 300;

	line-height: 1.8;

	letter-spacing: 0.13em;
}


.sachi-festival-image {

	width: 100%;

	max-width: 1100px;

	margin: 60px auto 70px;

	overflow: hidden;

	background: #eee;
}


.sachi-festival-image img {

	display: block;

	width: 100%;

	height: 480px;

	object-fit: cover;

	object-position: center;

	transition:
		transform 1.5s
		cubic-bezier(0.22, 1, 0.36, 1);
}


.sachi-festival-image:hover img {

	transform: scale(1.025);
}


.sachi-festival-message-text {

	max-width: 760px;

	margin: 0 auto;
}


.sachi-festival-message-text p {

	margin: 0 0 30px;

	font-size: 14px;

	font-weight: 300;

	line-height: 2.4;

	letter-spacing: 0.12em;

	color: #555;
}


.sachi-festival-message-text .sachi-message-final {

	margin-top: 50px;

	padding-top: 35px;

	border-top: 1px solid #d8d5cd;

	font-size: 17px;

	line-height: 2.2;

	letter-spacing: 0.15em;

	color: #222;
}



/* =========================================================
   VIDEO
========================================================= */

.sachi-video-section {

	padding: 150px 0;

	background: #101820;

	color: #fff;
}


.sachi-video-layout {

	display: grid;

	grid-template-columns:
		0.85fr 1.35fr;

	align-items: center;

	gap: 90px;
}


.sachi-video-copy {

	padding-left: 20px;
}


.sachi-video-label {

	display: block;

	margin-bottom: 25px;

	font-size: 10px;

	letter-spacing: 0.4em;

	color: #c9a227;
}


.sachi-video-copy h2 {

	margin: 0 0 35px;

	font-size: 34px;

	font-weight: 400;

	line-height: 1.9;

	letter-spacing: 0.12em;

	color: #fff;
}


.sachi-video-line {

	width: 45px;

	height: 1px;

	margin-bottom: 35px;

	background: #c9a227;
}


.sachi-video-lead {

	margin: 0 0 30px;

	font-size: 17px;

	line-height: 2.1;

	letter-spacing: 0.14em;

	color: #fff;
}


.sachi-video-description {

	margin: 0 0 22px;

	font-size: 12px;

	line-height: 2.3;

	letter-spacing: 0.12em;

	color: rgba(255,255,255,0.65);
}


.sachi-video-frame {

	position: relative;

	width: 100%;

	overflow: hidden;

	background: #000;
}


.sachi-video-frame video {

	display: block;

	width: 100%;

	height: auto;

	aspect-ratio: 16 / 9;

	object-fit: cover;

	background: #000;
}



/* =========================================================
   LINKS
========================================================= */

.sachi-links {

	padding: 130px 0;

	background: #fff;
}


.sachi-links h2 {

	margin: 0 0 60px;

	font-size: 31px;

	font-weight: 300;

	letter-spacing: 0.12em;
}


.sachi-links-list {

	border-top: 1px solid #ccc;
}


.sachi-links-list a {

	display: grid;

	grid-template-columns:
		150px 1fr 30px;

	align-items: center;

	padding: 27px 0;

	border-bottom: 1px solid #ccc;

	color: #333;

	text-decoration: none;

	transition:
		color 0.4s ease;
}


.sachi-links-list a:hover {

	color: #c9a227;
}


.sachi-links-list span {

	font-size: 10px;

	letter-spacing: 0.2em;

	color: #999;
}


.sachi-links-list strong {

	font-size: 14px;

	font-weight: 400;

	letter-spacing: 0.08em;
}


.sachi-links-list b {

	font-size: 17px;

	font-weight: 400;

	text-align: right;

	color: #c9a227;
}



/* =========================================================
   BACK
========================================================= */

.sachi-back-section {

	padding: 75px 20px;

	background: #f8f7f3;

	text-align: center;
}


.sachi-back-section a {

	color: #333;

	font-size: 10px;

	letter-spacing: 0.2em;

	text-decoration: none;
}


.sachi-back-section a span {

	margin-right: 8px;

	color: #c9a227;
}


.sachi-back-section a:hover {

	color: #c9a227;

	text-decoration: none;
}



/* =========================================================
   FOOTER
========================================================= */

.sachi-footer {

	padding: 38px 20px;

	background: #101820;

	text-align: center;

	color: #c9a227;
}


.sachi-footer div {

	font-size: 10px;

	letter-spacing: 0.25em;
}


.sachi-footer p {

	margin: 12px 0 0;

	font-size: 9px;

	letter-spacing: 0.1em;

	color: #777;
}



/* =========================================================
   TABLET
========================================================= */

@media (max-width: 991px) {

	.sachi-hero-grid {

		grid-template-columns:
			52% 48%;

	}


	.sachi-hero-content {

		padding:
			40px 30px 40px 50px;

	}


	.sachi-hero-content h1 {

		font-size: 50px;

	}


	.sachi-profile-lead {

		grid-template-columns:
			50% 50%;

	}


	.sachi-lead-text {

		padding-left: 40px;

	}


	.sachi-about-grid {

		grid-template-columns:
			45% 55%;

	}


	.sachi-about-text {

		padding-left: 40px;

	}


	.sachi-program-flow {

		grid-template-columns:
			1fr 30px
			1fr 30px
			1fr 30px
			1fr;

	}


	.sachi-video-layout {

		gap: 50px;

	}

}



/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {


	.sachi-container {

		width: 90%;

	}



	/* HEADER */

	.sachi-header {

		padding: 20px 0;

	}


	.sachi-header-title {

		font-size: 9px;

	}



	/* INTRO */

	.sachi-intro-title {

		padding:
			90px 20px 60px;

	}


	.sachi-intro-title h1 {

		font-size: 27px;

		letter-spacing: 0.12em;

	}



	/* HERO */

	.sachi-hero {

		padding:
			35px 0 90px;

	}


	.sachi-hero-grid {

		display: block;

	}


	.sachi-hero-photo {

		width: 100%;

	}


	.sachi-hero-content {

		padding:
			45px 5px 0;

	}


	.sachi-hero-content h1 {

		font-size: 42px;

	}


	.sachi-hero-content h2 {

		font-size: 13px;

	}


	.sachi-location {

		margin-top: 35px;

	}



	/* COMMON */

	.sachi-section-heading {

		margin-bottom: 50px;

	}


	.sachi-section-heading h2 {

		font-size: 28px;

	}



	/* PROFILE */

	.sachi-profile-intro {

		padding: 90px 0;

	}


	.sachi-profile-lead {

		display: block;

	}


	.sachi-profile-lead h2 {

		margin-bottom: 40px;

		font-size: 28px;

	}


	.sachi-lead-text {

		padding-left: 0;

	}


	.sachi-lead-text p {

		font-size: 12px;

		line-height: 2.1;

	}



	/* ABOUT */

	.sachi-about {

		padding: 90px 0;

	}


	.sachi-about-grid {

		display: block;

	}


	.sachi-about-heading {

		padding-right: 0;

		margin-bottom: 45px;

	}


	.sachi-about-heading h2 {

		font-size: 27px;

	}


	.sachi-about-text {

		padding-left: 0;

	}


	.sachi-about-text p {

		font-size: 12px;

		line-height: 2.15;

	}



	/* CAREER */

	.sachi-career {

		padding: 90px 0;

	}


	.sachi-career-item {

		grid-template-columns:
			55px 1fr;

		padding: 25px 0;

	}


	.sachi-career-item h3 {

		font-size: 14px;

	}



	/* GALLERY */

	.sachi-photo-gallery {

		padding:
			85px 0;

	}


	.sachi-gallery-heading {

		margin-bottom: 40px;

	}


	.sachi-gallery-heading h2 {

		font-size: 27px;

	}


	.sachi-gallery-heading p {

		font-size: 12px;

	}


	.sachi-gallery-grid {

		grid-template-columns:
			1fr 1fr;

		grid-template-rows:
			220px 160px 160px;

		gap: 7px;

	}


	.sachi-gallery-main {

		grid-column: span 2;

		grid-row: auto;

	}



	/* SHIZU */

	.sachi-shizutougo {

		padding: 90px 0;

	}


	.sachi-shizutougo-grid {

		display: block;

	}


	.sachi-shizutougo-item {

		padding:
			45px 5px;

	}


	.sachi-shizutougo-item:first-child {

		border-right: none;

	}


	.sachi-shizutougo-item h3 {

		font-size: 48px;

	}



	/* CONNECTION */

	.sachi-connection {

		padding: 90px 0;

	}


	.sachi-connection-grid {

		display: block;

	}


	.sachi-connection-grid h2 {

		margin-bottom: 45px;

		font-size: 28px;

	}


	.sachi-connection-text {

		padding-left: 0;

	}


	.sachi-connection-text p {

		font-size: 12px;

		line-height: 2.15;

	}



	/* FESTIVAL */

	.sachi-festival {

		padding: 95px 0;

	}


	.sachi-festival-content {

		margin-left: 0;

	}


	.sachi-festival-content p {

		font-size: 12px;

		line-height: 2.15;

	}



	/* PROGRAM */

	.sachi-program {

		padding: 90px 0;

	}


	.sachi-program-flow {

		display: block;

		border-top: 1px solid #ccc;

	}


	.program-step {

		padding:
			35px 10px;

		border-bottom:
			1px solid #ccc;

	}


	.program-arrow {

		display: none;

	}


	.sachi-program-note {

		margin-top: 50px;

	}


	.sachi-program-note h3 {

		font-size: 21px;

	}



	/* PARTICIPATION */

	.sachi-participation {

		padding: 90px 0;

	}


	.sachi-participation-grid {

		display: block;

	}


	.sachi-participation-grid > div {

		margin-bottom: 50px;

	}


	.sachi-participation-grid p {

		font-size: 11px;

		line-height: 2.1;

	}



	/* MESSAGE */

	.sachi-message {

		min-height: 480px;

		padding:
			100px 20px;

	}


	.sachi-message h2 {

		font-size: 26px;

		line-height: 1.9;

	}



	/* FESTIVAL MESSAGE */

	.sachi-festival-message {

		padding: 90px 0;

	}


	.sachi-festival-message > .sachi-container > h2 {

		font-size: 28px;

	}


	.sachi-festival-image {

		margin:
			45px auto 50px;

	}


	.sachi-festival-image img {

		height: 260px;

	}


	.sachi-festival-message-text {

		margin-left: 0;

	}


	.sachi-festival-message-text p {

		font-size: 12px;

		line-height: 2.2;

		margin-bottom: 25px;

	}


	.sachi-festival-message-text .sachi-message-final {

		margin-top: 40px;

		padding-top: 30px;

		font-size: 15px;

	}



	/* VIDEO */

	.sachi-video-section {

		padding: 90px 0;

	}


	.sachi-video-layout {

		display: flex;

		flex-direction: column;

		gap: 55px;

	}


	.sachi-video-copy {

		padding-left: 0;

	}


	.sachi-video-copy h2 {

		font-size: 27px;

		line-height: 1.8;

	}


	.sachi-video-lead {

		font-size: 15px;

	}


	.sachi-video-description {

		font-size: 11px;

		line-height: 2.2;

	}



	/* LINKS */

	.sachi-links {

		padding: 90px 0;

	}


	.sachi-links h2 {

		margin-bottom: 40px;

		font-size: 25px;

	}


	.sachi-links-list a {

		grid-template-columns:
			90px 1fr 20px;

		padding:
			20px 0;

	}


	.sachi-links-list span {

		font-size: 8px;

	}


	.sachi-links-list strong {

		font-size: 12px;

	}



	/* BACK */

	.sachi-back-section {

		padding: 55px 20px;

	}



	/* MOBILE ANIMATION */

	.sachi-page .sachi-photo-left.animated,
	.sachi-page .sachi-photo-right.animated {

		animation-duration: 1.5s;

	}


	.sachi-page .sachi-slide-left.animated,
	.sachi-page .sachi-slide-right.animated {

		animation-duration: 1.3s;

	}


}



/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

	.sachi-page .wow {

		visibility: visible !important;

		animation: none !important;

		transform: none !important;

		opacity: 1 !important;

	}

}

/* =========================================================
   BACK TO TOP
========================================================= */

.sachi-back-to-top {
	position: fixed;
	right: 32px;
	bottom: 32px;
	z-index: 9999;

	width: 58px;
	height: 58px;

	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;

	text-decoration: none;

	background: rgba(16, 24, 32, 0.92);
	border: 1px solid rgba(201, 162, 39, 0.75);
	border-radius: 50%;

	color: #c9a227;

	opacity: 0;
	visibility: hidden;
	transform: translateY(20px);

	transition:
		opacity 0.5s ease,
		visibility 0.5s ease,
		transform 0.5s cubic-bezier(.22, 1, .36, 1),
		background 0.4s ease,
		color 0.4s ease;
}

.sachi-back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.sachi-back-to-top-arrow {
	font-family: "Times New Roman", serif;
	font-size: 20px;
	font-weight: 300;
	line-height: 1;
	margin-bottom: 2px;
}

.sachi-back-to-top-text {
	font-family: "Times New Roman", "Noto Serif JP", serif;
	font-size: 8px;
	letter-spacing: 0.2em;
	line-height: 1;
}

/* hover */
.sachi-back-to-top:hover {
	background: #c9a227;
	color: #101820;
	transform: translateY(-4px);
}

/* mobile */
@media (max-width: 768px) {

	.sachi-back-to-top {
		right: 18px;
		bottom: 18px;

		width: 50px;
		height: 50px;
	}

	.sachi-back-to-top-arrow {
		font-size: 18px;
	}

	.sachi-back-to-top-text {
		font-size: 7px;
	}
}

/* motion reduction */
@media (prefers-reduced-motion: reduce) {

	.sachi-back-to-top {
		transition: none;
	}

	html {
		scroll-behavior: auto;
	}
}