@charset "UTF-8";

@media screen and (max-width: 640px) {
	.adult-page .adult-contact__form label {
		display: block;
		letter-spacing: 0;
		word-spacing: 0;
		text-align: left;
	}

	.adult-page .adult-contact__form label > span {
		display: inline-block;
		width: auto;
		min-width: 0;
		margin-left: 8px;
		padding: 3px 7px;
		letter-spacing: 0;
		text-align: center;
		vertical-align: middle;
	}

	.adult-page .adult-contact__form input,
	.adult-page .adult-contact__form select,
	.adult-page .adult-contact__form textarea {
		display: block;
		letter-spacing: 0;
	}

	.access-main {
		overflow: hidden;
		background: #d6cdbb;
	}

	.page-anchor-buttons {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
		width: 100%;
		margin: 0;
		padding: 14px 20px;
		background: #315F47;
		border-radius: 0;
		box-shadow: 0 10px 22px rgba(54, 26, 25, 0.14);
	}

	.page-anchor-buttons a {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 46px;
		padding: 0 34px;
		color: #2f6f67;
		background: #ffffff;
		border: 1px solid rgba(47, 111, 103, 0.28);
		border-radius: 999px;
		text-decoration: none;
		font-size: 12px;
		font-weight: 900;
		letter-spacing: 0.02em;
		white-space: nowrap;
		box-shadow: 0 7px 14px rgba(54, 26, 25, 0.06);
	}

	.page-anchor-buttons a::after {
		content: "";
		position: absolute;
		right: 13px;
		top: 50%;
		width: 13px;
		height: 13px;
		background: #2f6f67;
		mask: url(img/icon_anchor_down.png) center / contain no-repeat;
		-webkit-mask: url(img/icon_anchor_down.png) center / contain no-repeat;
		transform: translateY(-50%);
	}

	.page-anchor-buttons a:visited,
	.page-anchor-buttons a:hover,
	.page-anchor-buttons a:active,
	.page-anchor-buttons a:focus {
		color: #2f6f67;
		background: #ffffff;
		border-color: rgba(47, 111, 103, 0.28);
	}

	.page-anchor-buttons a:hover::after,
	.page-anchor-buttons a:active::after,
	.page-anchor-buttons a:focus::after,
	.page-anchor-buttons a:visited::after {
		background: #2f6f67;
	}

	.access-zone {
		padding: 58px 0 64px;
		background: #d6cdbb;
	}

	.access-zone--field {
		background: #f4f1e8;
	}

	.access-zone__inner {
		width: calc(100% - 40px);
		max-width: 100%;
		margin: 0 auto;
		box-sizing: border-box;
		overflow: hidden;
	}

	.access-place {
		display: block;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		overflow: hidden;
		background: #ffffff;
		border-radius: 8px;
		box-shadow: 0 10px 22px rgba(54, 26, 25, 0.08);
	}

	.access-place--reverse .access-place__photo {
		order: 0;
	}

	.access-place__photo {
		display: block;
		width: 100%;
		min-height: 0;
		margin: 0;
		aspect-ratio: 4 / 3;
		background: #e8ead5;
	}

	.access-place__photo img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.access-place__body {
		display: block;
		width: 100%;
		min-width: 0;
		max-width: 100%;
		padding: 24px 20px 28px;
		box-sizing: border-box;
		overflow: hidden;
		text-align: center;
	}

	.access-place__body h3 {
		margin: 0 0 12px;
		color: #2f6f67;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
		font-size: 28px;
		font-weight: 400;
		line-height: 1.25;
		text-align: left;
	}

	.access-place__body p {
		width: 100%;
		max-width: 100%;
		margin: 0 0 22px;
		box-sizing: border-box;
		color: #361a19;
		font-size: 13px;
		font-weight: 700;
		line-height: 1.9;
		text-align: left;
		white-space: normal;
		overflow-wrap: anywhere;
		word-break: normal;
	}

	.access-map-link {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		width: auto;
		max-width: 100%;
		min-width: 0;
		margin: 0 auto;
		padding: 12px 22px;
		box-sizing: border-box;
		color: #ffffff;
		background: #1558b0;
		border-radius: 999px;
		text-decoration: none;
		font-size: 12px;
		font-weight: 900;
		letter-spacing: 0;
		white-space: nowrap;
	}

	.access-map-link::before {
		content: "";
		display: block;
		width: 15px;
		height: 15px;
		background-image: url(img/icon_access_placeholder.png);
		background-position: center;
		background-repeat: no-repeat;
		background-size: contain;
		filter: brightness(0) invert(1);
		flex: 0 0 15px;
	}

	.access-route {
		margin-top: 46px;
	}

	.access-route__heading {
		margin-bottom: 16px;
		text-align: center;
	}

	.access-route__heading h3 {
		margin: 0 0 6px;
		color: #2f6f67;
		font-size: 20px;
		font-weight: 900;
		line-height: 1.5;
	}

	.access-route__heading p {
		margin: 0;
		color: #361a19;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
		font-size: 14px;
		line-height: 1;
	}

	.access-scroll-guide {
		display: flex;
		align-items: center;
		gap: 10px;
		width: 58%;
		margin: 0 0 0 auto;
		color: #2f6f67;
	}

	.access-scroll-guide__bar {
		display: block;
		height: 1px;
		flex: 1;
		background: rgba(47, 111, 103, 0.55);
		transform: translateY(1px);
	}

	.access-scroll-guide .voice_scr_t {
		display: block;
		margin: 0;
		color: #2f6f67;
		text-align: right;
		font-size: 12px;
		font-weight: 700;
		letter-spacing: 0.04em;
		line-height: 1;
		white-space: nowrap;
	}

	.access-route__scroll {
		display: flex;
		gap: 14px;
		width: 100%;
		max-width: 100%;
		overflow-x: auto;
		overflow-y: hidden;
		padding: 2px 0 18px;
		scroll-snap-type: x proximity;
		-webkit-overflow-scrolling: touch;
	}

	.access-route-card {
		flex: 0 0 240px;
		overflow: hidden;
		background: #ffffff;
		border-radius: 8px;
		box-shadow: 0 10px 22px rgba(54, 26, 25, 0.08);
		scroll-snap-align: start;
	}

	.access-route-card img {
		display: block;
		width: 100%;
		height: 150px;
		object-fit: cover;
	}

	.access-route-card span {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 32px;
		height: 32px;
		margin: 18px 18px 10px 21px;
		color: #ffffff;
		background: #2f6f67;
		border-radius: 50%;
		font-size: 10px;
		font-weight: 900;
	}

	.access-route-card h4 {
		margin: 0 18px 8px;
		color: #2f6f67;
		font-size: 15px;
		font-weight: 900;
		line-height: 1.5;
	}

	.access-route-card p {
		margin: 0 18px 22px;
		color: #665f54;
		font-size: 12px;
		font-weight: 700;
		line-height: 1.75;
	}
}

@media screen and (min-width: 640px) {
	.sp_on {
		display: none;
	}
}

@media screen and (max-width: 640px) {
	html,
	body {
		overflow-x: hidden;
	}

	.pc_on {
		display: none;
	}

	a {
		transition: 0.5s;
	}

	.anchorlink {
		display: block;
		padding-top: 96px;
		margin-top: -96px;
	}

	html {
		height: 100%;
	}

	* {
		box-sizing: border-box;
	}

	body {
		margin: 0 auto;
		font-size: 13px;
		padding: 0;
		line-height: 26px;
		color: #361a19;
		-webkit-text-size-adjust: none;
		letter-spacing: 0.1em;
		font-family: "Noto Sans JP", sans-serif;
		text-align: justify;
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
	}

	body.home {
		position: relative;
	}

	strong {
		font-weight: bold;
	}

	b {
		font-weight: bold;
	}

	h1,
	h2 {
		margin: 0px;
		padding: 0px;
	}

	h2 {
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
	}

	img {
		margin: 0;
		padding: 0;
		left: auto;
		right: auto;
		height: auto;
		border: none;
		top: 0px;
		max-width: 100%;
		vertical-align: top;
		position: relative;
	}

	#c_both {
		clear: both;
	}

	ul,
	li {
		list-style: none;
		margin: 0px;
		padding: 0px;
	}

	.item_center {}

	.sche_main .item_center {
		display: flex;
		align-items: center;
	}

	.markerline {
		background: linear-gradient(transparent 94%, #361a19 0%);
		padding: 6px 0;
	}

	.markerline_v {
		background: linear-gradient(transparent 0%, #2F6F67 0%);
	}

	.markerline_y {
		background: linear-gradient(transparent 0%, #A9B86E 0%);
	}

	.markerline_p {
		background: linear-gradient(transparent 0%, #7A6A45 0%);
	}

	.markerline_py {
		background: linear-gradient(transparent 92%, #7A6A45 0%);
		padding: 10px 0;
	}

	.tbig .markerline_py {
		background: linear-gradient(transparent 92%, #7A6A45 0%);
		padding: 5px 0;
	}

	.effect-fade.effect-scroll {
		opacity: 1;
		transform: translate(0px, 0px);
	}

	.graduate-words-ticker {
		position: fixed;
		left: 50%;
		bottom: 22px;
		display: flex;
		align-items: center;
		width: calc(100vw - 34px);
		height: 48px;
		z-index: 103;
		padding: 0 15px 0 72px;
		border-radius: 999px;
		background: #315F47;
		box-shadow: 0 10px 22px rgba(54, 26, 25, 0.16);
		pointer-events: none;
		overflow: visible;
		transform: translate(-50%, calc(100% + 34px));
		transition: transform 0.55s cubic-bezier(0.2, 0.9, 0.2, 1);
	}

	.graduate-words-ticker.is-visible {
		transform: translate(-50%, 0);
	}

	.graduate-words-ticker.is-at-footer {
		transform: translate(-50%, calc(100% + 34px));
	}

	.graduate-words-ticker__label {
		position: absolute;
		left: -1px;
		top: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 68px;
		height: 68px;
		border-radius: 50%;
		background: #315F47;
		color: #ffffff;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
		font-size: 12px;
		font-weight: bold;
		line-height: 1.35;
		text-align: center;
		transform: translateY(-50%);
		box-shadow: 0 7px 16px rgba(54, 26, 25, 0.14);
	}

	.graduate-words-ticker__mask {
		width: 100%;
		overflow: hidden;
	}

	.graduate-words-ticker__track {
		display: flex;
		align-items: center;
		width: max-content;
		min-width: max-content;
		flex-shrink: 0;
		will-change: transform;
		animation: graduateWordsTicker var(--graduate-ticker-duration, 100s) linear infinite;
	}

	.graduate-words-ticker__item {
		display: inline-flex;
		align-items: center;
		flex: 0 0 auto;
		padding-right: 36px;
		font-size: 11px;
		font-weight: bold;
		line-height: 1;
		letter-spacing: 0.02em;
		color: #ffffff;
		white-space: nowrap;
	}

	.graduate-words-ticker__icon {
		display: block;
		width: 18px;
		height: auto;
		margin-right: 7px;
		flex: 0 0 auto;
	}

	@keyframes graduateWordsTicker {
		from {
			transform: translateX(0);
		}

		to {
			transform: translateX(var(--graduate-ticker-distance, -50%));
		}
	}

	::selection {
		background: #E8EAD5;
	}

	::-moz-selection {
		background: #E8EAD5;
	}

	@keyframes fadein {
		from {
			opacity: 0;
			transform: translateY(50px);
		}

		to {
			opacity: 1;
			transform: translateY(0);
		}
	}

	@keyframes fadein-right {
		from {
			opacity: 0;
			transform: translateX(150px);
		}

		to {
			opacity: 1;
			transform: translateX(0);
		}
	}

	@keyframes fadein-left {
		from {
			opacity: 0;
			transform: translateX(-150px);
		}

		to {
			opacity: 1;
			transform: translateX(0);
		}
	}

	* {
		margin: 0;
		padding: 0;
		box-sizing: border-box;
		font-family: sans-serif;
	}

	.bg_g {
		background: #F4F4F3;
	}

	.bg_g2 {
		background: #d7d0c2;
	}

	.bg_v {
		background: #2F6F67;
	}

	.bg_bl {
		background: #4F744E;
		color: #ffffff;
	}

	.bg_gs {
		background-image: url(img/morinokaze_photos/diary_bg.jpg);
		background-position: center center;
		background-size: cover;
	}

	#activity-diary {
		position: relative;
		overflow: hidden;
		background-image: url(img/morinokaze_photos/diary_bg.jpg);
		background-position: center center;
		background-size: cover;
	}

	#activity-diary .activity-diary-bg-video {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		z-index: 0;
	}

	#activity-diary .activity-diary-bg-overlay {
		position: absolute;
		inset: 0;
		background: linear-gradient(rgba(35, 79, 61, 0.58), rgba(35, 79, 61, 0.58));
		z-index: 1;
		pointer-events: none;
	}

	#activity-diary> :not(.activity-diary-bg-video):not(.activity-diary-bg-overlay) {
		position: relative;
		z-index: 2;
	}

	.bg_shoo {
		background-image: url(img/morinokaze_photos/top_02.jpg);
		background-position: center center;
		background-size: cover;
	}

	.bg_jr {
		background-image: url(img/morinokaze_photos/top_04.jpg);
		background-position: center center;
		background-size: cover;
	}

	.bg_jr2 {
		background-image: url(img/morinokaze_photos/top_05.jpg);
		background-position: center center;
		background-size: cover;
	}

	header {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 88px;
		z-index: 10;
		padding-left: 30px;
		transition: 0.5s;
	}

	header .logo {
		position: absolute;
		text-decoration: none;
		transition: 0.5s;
		width: 70px;
		height: 70px;
		background-image: url(img/morinokaze_school_logo_01.png);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: center center;
		top: 50%;
		left: 20px;
		transform: translateY(-50%);
	}

	header .logo img {
		display: none;
	}

	header.scroll-nav,
	.page header {
		background: #FFFFFF;
		height: 88px;
		box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
	}

	header.scroll-nav .logo,
	.page header .logo {
		position: absolute;
		text-decoration: none;
		transition: 0.5s;
		width: 76%;
		height: 58px;
		background-image: url(img/morinokaze_school_logo_02.png);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: left center;
		top: 50%;
		left: 20px;
		transform: translateY(-50%);
	}

	.page header .logo img {
		display: none;
	}

	.page header .logo {
		top: calc(50% + 3px);
	}

	.home header .logo {
		transition: none;
	}

	.home header:not(.scroll-nav) .logo {
		position: absolute;
		width: 60vw;
		height: 60vw;
		max-width: 230px;
		max-height: 230px;
		left: 50%;
		right: auto;
		top: 64px;
		transform: translateX(-50%);
		background-image: url(img/morinokaze_school_logo_01.png);
		background-position: center center;
		background-size: contain;
		z-index: 12;
	}

	.home header.scroll-nav {
		position: fixed;
		background: transparent;
		box-shadow: none;
		pointer-events: none;
	}

	.home header.scroll-nav .logo {
		transition: none;
		background-image: url(img/morinokaze_school_logo_02.png);
		display: none;
	}

	.tops_icon_v {
		position: absolute;
		z-index: 9;
		bottom: 0;
		color: #ffffff;
		padding: 18px 0;
		font-size: 12px;
		font-weight: bold;
		line-height: 20px;
		background-color: #7A6A45;
		background-image: url(img/arrow001.png);
		background-repeat: no-repeat;
		background-position: right 30px center;
		background-size: 20px;
		transition: 0.5s;
		width: 100%;
		text-align: center;
	}

	.tops_icon_v:hover {
		background-color: #9b8d6c;
	}

	.tops_icon_v .rpwwt-post-date {
		font-size: 10px;
		text-align: right;
	}

	.tops_text {
		position: absolute;
		z-index: 9;
		bottom: 90px;
		font-size: 20px;
		line-height: 30px;
		color: #2F6F67;
		font-weight: bold;
		left: 8%;
		font-style: italic;
		width: 87%;
		text-align: center;
	}

	.junior_top .tops_text {
		font-size: 20px;
		line-height: 30px;
		bottom: 0px;
	}

	.tops_text .tbig {
		font-size: 24px;
		line-height: 14px;
		color: #FFFFFF;
		margin-bottom: 26px;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
		font-style: normal;
		font-weight: 400;
	}

	.tops_text .tbig span {
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif !important;
		font-style: normal;
		font-weight: 400;
	}

	.tops_text .tbig .markerline_v {
		display: table;
		margin: 0 auto;
		padding: 14px 10px 14px 13px;
		background: #2F6F67;
	}

	.tops_text .tbig .markerline_v:last-of-type {
		margin-bottom: 0;
	}

	.tops_text .tbig .markerline_py {
		display: inline;
		padding: 8px 0;
		background: linear-gradient(transparent 92%, #7A6A45 0%);
	}

	.junior_top .tops_text .tbig {
		font-size: 25px;
		line-height: 40px;
		color: #FFFFFF;
		margin-bottom: 25px;
	}

	.tops_text_m {
		margin-top: 22px;
		font-size: 14px;
		line-height: 22px;
		color: #FFFFFF;
		text-shadow: 0 2px 7px rgba(0, 0, 0, 0.35);
	}

	.junior_top .tops_text_m {
		margin-top: 10px;
		font-size: 13px;
		line-height: 23px;
		color: #FFFFFF;
	}

	.top_lead {
		font-size: 17px;
		line-height: 28x;
		color: #315F47;
		letter-spacing: 0.03em;
	}

	.top_lead .markerline_p {
		display: inline;
		padding: 3px 7px 3px;
		background: linear-gradient(transparent 11%, rgba(232, 234, 213, 0.88) 11%, rgba(232, 234, 213, 0.88) 87%, transparent 87%);
		-webkit-box-decoration-break: clone;
		box-decoration-break: clone;
	}

	.an4-fadeleft {
		animation-name: fadeleft;
		animation-duration: 1s;
		animation-iteration-count: 1;
	}

	@keyframes fadeleft {
		from {
			opacity: 0;
			transform: translateX(80px);
		}

		to {
			opacity: 1;
			transform: translateX(0);
		}
	}

	.fadein2 {
		opacity: 1;
		transform: translateX(0);
	}

	.position_re {
		position: relative;
	}

	.main_area {
		padding-top: 30px;
		padding-bottom: 30px;
		overflow: hidden;
	}

	.main_area60 {
		padding-top: 30px;
		padding-bottom: 30px;
		overflow: hidden;
	}

	.main_area_f {
		border-top: solid 8px #7A6A45;
		padding-top: 15px;
		padding-bottom: 15px;
		overflow: hidden;
		color: #ffffff;
		text-align: center;
		font-size: 10px;
	}

	.main_area_n {
		padding-top: 30px;
		padding-bottom: 30px;
		overflow: hidden;
	}

	.box90,
	.box80,
	.box1080,
	.box1150 {
		width: 90%;
		margin-right: auto;
		margin-left: auto;
		overflow: hidden;
	}

	.box80 {
		width: 90%;
	}

	.box900 {
		width: 90%;
		margin-right: auto;
		margin-left: auto;
		overflow: hidden;
	}

	.box_scr {
		overflow-x: scroll;
		width: 100%;
	}

	.box1080 {
		width: 90%;
	}

	.box1150 {
		width: 95%;
		margin-left: 5%;
	}

	.box_footer {
		width: 100%;
		padding: 0;
		margin-right: auto;
		margin-left: auto;
	}

	.h2title_c {
		font-size: 28px;
		line-height: 30px;
		font-weight: bold;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
		color: #2F6F67;
	}

	.bg_v .h2title,
	.bg_bl .h2title,
	.bg_gs .h2title,
	.bg_v .h2title_c,
	.bg_p .h2title_c,
	.bg_bl .h2title_c,
	.bg_gs .h2title_c {
		color: #ffffff;
	}

	.h2title_c {
		text-align: center;
	}

	.e_title_c {
		font-size: 14px;
		font-weight: bold;
		margin-top: 10px;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
	}

	.bg_v .e_title,
	.bg_bl .e_title,
	.bg_gs .e_title,
	.bg_v .e_title_c,
	.bg_p .e_title_c,
	.bg_bl .e_title_c,
	.bg_gs .e_title_c {
		color: #ffffff;
	}

	.e_title_c {
		text-align: center;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-1 {
		display: none;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 ul {
		margin-top: 30px;
		display: flex;
		overflow-x: scroll;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 li {
		overflow: hidden;
		float: right;
		width: 75%;
		flex-shrink: 0;
		list-style: none;
		margin-bottom: 30px;
		margin-left: 3%;
		padding: 12px 12px 18px;
		position: relative;
		text-align: left;
		background: #ffffff;
		border: none;
		border-radius: 10px;
		box-shadow: 0 8px 18px rgba(54, 26, 25, 0.08);
		transition: box-shadow 0.35s ease, transform 0.35s ease;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 li:hover {
		box-shadow: 0 12px 24px rgba(54, 26, 25, 0.14);
		transform: translateY(-3px);
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 li:first-of-type {
		margin-left: 5%;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 li:last-of-type {
		margin-right: 5%;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 li a {
		color: #361a19;
		text-decoration: none;
		transition: all 0.5s ease 0s;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 li a:hover {
		color: #2F6F67;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 img {
		padding: 0;
		width: 100%;
		height: 210px;
		object-fit: cover;
		transition: all 0.5s ease 0s;
		border: none;
		border-radius: 8px;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 a:hover img {
		opacity: 0.86;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 .rpwwt-post-title {
		display: block;
		margin-top: 10px;
		margin-bottom: 10px;
		font-size: 11px;
		font-weight: bold;
		line-height: 18px;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 .rpwwt-post-categories {
		font-size: 0px;
		margin: 0 6% 0 0;
		letter-spacing: 0em;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 .rpwwt-post-categories a {
		font-size: 9px;
		padding: 7px 9px 8px;
		margin-right: 10px;
		border-radius: 20px;
		font-weight: bold;
		background-color: #7A6A45;
		color: #ffffff;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 .rpwwt-post-categories a:hover {
		background-color: #C9A56A;
		color: #361a19;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 .rpwwt-post-date {
		font-size: 10px;
		color: #6d6250;
		text-align: right;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 .rpwwt-post-excerpt {
		margin: 8px 0 10px;
		font-size: 10px;
		color: #665f54;
		line-height: 19px;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 ul::-webkit-scrollbar {
		height: 3px;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 ul::-webkit-scrollbar-thumb {
		background: #2F6F67;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 ul::-webkit-scrollbar-track {
		background: rgba(255, 255, 255, 0.6);
	}

	#rpwwt-recent-posts-widget-with-thumbnails-3 {
		margin-top: 30px;
		letter-spacing: -1em;
		padding: 0 2%;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-3 li {
		display: inline-block;
		vertical-align: top;
		overflow: hidden;
		width: 50%;
		text-align: left;
		position: relative;
		letter-spacing: 0.1em;
		padding: 10px 10px 10px 10px;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-3 li a {
		color: #361a19;
		text-decoration: none;
		transition: all 0.5s ease 0s;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-3 li a:hover {
		color: #2F6F67;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-3 img {
		width: 100%;
		height: 125px;
		object-fit: cover;
		transition: all 0.5s ease 0s;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-3 a:hover img {
		opacity: 0.7;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-3 .rpwwt-post-title {
		font-size: 11px;
		font-weight: bold;
		line-height: 18px;
		display: block;
		margin-top: 10px;
		margin-bottom: 10px;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-3 .rpwwt-post-categories {
		font-size: 0px;
		margin: 0 6% 0 0;
		letter-spacing: 0em;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-3 .rpwwt-post-categories a {
		font-size: 9px;
		padding: 7px 9px 8px;
		margin-right: 10px;
		border-radius: 20px;
		font-weight: bold;
		background-color: #7A6A45;
		color: #ffffff;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-3 .rpwwt-post-categories a:hover {
		background-color: #C9A56A;
		color: #361a19;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-3 .rpwwt-post-date {
		font-size: 10px;
		color: #9C9C9C;
		text-align: right;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-3 .rpwwt-post-excerpt {
		font-size: 10px;
		color: #666666;
		line-height: 19px;
	}

	.btn01 {
		margin-top: 25px;
		position: relative;
		text-decoration: none;
		display: inline-block;
		color: #333;
		padding: 8px 50px 8px 70px;
		border-radius: 5px;
		outline: none;

		transition: ease .2s;
		font-size: 10px;
		font-weight: bolder;
		background-color: #ffffff;
		background-image: url(img/icon_note.png);
		background-repeat: no-repeat;
		background-position: 13px center;
		background-size: 25px;
	}

	.btn02 {
		margin: 20px 20% 30px 20%;
		position: relative;
		text-decoration: none;
		display: inline-block;
		padding: 8px 20px 8px 20px;
		border-radius: 5px;
		outline: none;

		transition: ease .2s;
		font-size: 10px;
		line-height: 28px;
		font-weight: bolder;
		color: #ffffff;
		border: solid 1px #ffffff;
		text-align: center;
		width: 60%;
	}

	.btn03 {
		margin: 20px 10% 0 10%;
		position: relative;
		text-decoration: none;
		display: inline-block;
		color: #333;
		padding: 8px 50px 8px 20px;
		border-radius: 5px;
		outline: none;

		transition: ease .2s;
		font-size: 10px;
		line-height: 28px;
		font-weight: bolder;
		border: solid 1px #361a19;
		width: 80%;
		background: #ffffff;
	}

	.bg_bl .btn03 {
		color: #333;
	}

	.btnarrow1::after,
	.btnarrow2::after {
		content: "";

		position: absolute;
		top: 42%;
		right: 20px;

		width: 5px;
		height: 5px;
		border-top: 2px solid #7A6A45;
		border-right: 2px solid #7A6A45;
		transform: rotate(45deg);

		transition: all .3s;
	}

	.btnarrow2::after {
		border-top: 2px solid #ffffff;
		border-right: 2px solid #ffffff;
	}

	.btnarrow1:hover::after,
	.btnarrow2:hover::after {
		right: 17px;
	}

	.project-links {
		display: grid;
		grid-template-columns: 1fr;
		gap: 18px;
		width: 88%;
		margin: 30px auto 0;
	}

	.project-links li a {
		display: grid;
		grid-template-columns: 42% 58%;
		min-height: 132px;
		color: #361a19;
		text-decoration: none;
		background: #ffffff;
		border-radius: 8px;
		overflow: hidden;
		box-shadow: 0 6px 16px rgba(54, 26, 25, 0.09);
	}

	.project-links img {
		display: block;
		width: 100%;
		height: 100%;
		min-height: 132px;
		object-fit: cover;
	}

	.project-image--bottom {
		object-position: center bottom;
	}

	.project-links__body {
		position: relative;
		padding: 18px 30px 16px 16px;
	}

	.project-links__body::after {
		content: "";
		position: absolute;
		top: 24px;
		right: 16px;
		width: 6px;
		height: 6px;
		border-top: 2px solid #8f6038;
		border-right: 2px solid #8f6038;
		transform: rotate(45deg);
	}

	.project-links h3 {
		margin: 0 0 7px;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
		font-size: 16px;
		font-weight: 400;
		line-height: 1.4;
		letter-spacing: 0;
	}

	.project-links p {
		margin: 0;
		font-size: 10px;
		line-height: 1.65;
		color: #665f54;
	}

	.site-footer {
		padding: 42px 7% 18px;
		color: #ffffff;
		text-align: left;
		background: #285d55;
		border-top: 7px solid #8f6038;
	}

	.site-footer__inner {
		display: block;
	}

	.site-footer__logo {
		display: block;
		width: 270px;
		max-width: 100%;
		margin: 0 auto;
	}

	.site-footer__logo img {
		display: block;
		width: 100%;
		height: auto;
	}

	.site-footer__brand {
		text-align: center;
	}

	.site-footer__brand p {
		margin: 20px auto 22px;
		font-size: 12px;
		line-height: 1.9;
		color: rgba(255, 255, 255, 0.82);
		font-weight: 600;
	}

	.site-footer__instagram {
		display: inline-flex;
		align-items: center;
		gap: 9px;
		padding: 9px 15px;
		color: #ffffff;
		font-size: 11px;
		font-weight: 700;
		line-height: 1;
		text-decoration: none;
		border: 1px solid rgba(255, 255, 255, 0.52);
		border-radius: 5px;
	}

	.site-footer__instagram img {
		display: block;
		width: 18px;
		height: 18px;
		object-fit: contain;
	}

	.site-footer__nav {
		display: none;
	}

	.site-footer__group h2 {
		margin: 0 0 19px;
		padding-bottom: 10px;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
		font-size: 18px;
		font-weight: 400;
		line-height: 1.3;
		letter-spacing: 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.3);
	}

	.site-footer__group ul {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 13px 18px;
	}

	.site-footer__group a {
		position: relative;
		display: inline-block;
		padding-left: 13px;
		color: rgba(255, 255, 255, 0.88);
		font-size: 10px;
		line-height: 1.55;
		text-decoration: none;
	}

	.site-footer__group a::before {
		content: "";
		position: absolute;
		top: 0.55em;
		left: 0;
		width: 4px;
		height: 4px;
		border-top: 1px solid #d8b77c;
		border-right: 1px solid #d8b77c;
		transform: rotate(45deg);
	}

	.site-footer__copyright {
		margin-top: 38px;
		padding-top: 16px;
		font-size: 9px;
		text-align: center;
		color: rgba(255, 255, 255, 0.62);
		border-top: 1px solid rgba(255, 255, 255, 0.2);
	}

	.news_area {
		width: 100%;
		overflow: hidden;
	}

	.yt_area {
		width: 100%;
		margin: 0 auto;
		overflow: hidden;
		position: relative;
		padding: 0;
	}

	.bo_p {
		border-top: solid 6px #7A6A45;
		border-bottom: solid 6px #7A6A45;
	}

	.instagram_feed_preview {
		width: 100%;
		overflow: hidden;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 3px;
		margin: 0 0 25px;
	}

	.instagram_feed_preview a {
		display: block;
		aspect-ratio: 1;
		overflow: hidden;
	}

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

	.youtube_more {
		text-align: center;
		margin-top: 30px;
		width: 100%;
		font-size: 30px;
		color: #FCFCFC;
		line-height: 30px;
		float: right;
		font-family: "Teko", sans-serif;
	}

	.youtube_more img {
		width: 130px;
		margin-bottom: 50px;
	}

	.instagram_more {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 18px;
		padding: 0 0 28px;
		font-size: 0;
		line-height: 1;
	}

	.instagram_more .instagram_logo_link {
		display: flex;
		align-items: center;
		gap: 8px;
		text-decoration: none;
	}

	.instagram_more .instagram_mark {
		display: block;
		width: 34px;
		height: 34px;
		margin: 0;
		object-fit: contain;
	}

	.instagram_more .instagram_wordmark {
		display: block;
		color: #ffffff;
		font-family: 'Grand Hotel', cursive;
		font-size: 48px;
		font-weight: 400;
		line-height: 0.9;
		letter-spacing: 0;
	}

	.instagram_more .instagram_button {
		width: auto;
		min-width: 180px;
		margin: 0;
		padding: 8px 45px 8px 20px;
		white-space: nowrap;
	}

	.sub_title,
	.sub_title_t {
		margin-top: 25px;
		margin-bottom: 15px;
		font-size: 15px;
		padding-bottom: 10px;
		border-bottom: solid 3px #2F6F67;
		position: relative;
	}

	.sub_title_t {
		margin-top: 0;
	}

	.sub_title:after,
	.sub_title_t:after {
		position: absolute;
		content: " ";
		display: block;
		border-bottom: solid 3px #7A6A45;
		bottom: -3px;
		width: 20%;
		z-index: 1;
	}

	.sub_title_s,
	.sub_title_st {
		margin-top: 0;
		margin-bottom: 15px;
		font-size: 13px;
		padding: 15px 20px;
		background: #dedede;
		line-height: 28px;
	}

	.sub_title_st {
		margin-top: 25px;
	}

	.spo_box01,
	.spo_box02 {
		width: 98%;
		margin: 0 auto 20px;
		overflow: hidden;
	}

	.spo_box02 {
		width: 95%;
	}

	.spo_box02:last-of-type {
		margin-bottom: 10px;
	}

	.spo_box01 li {
		float: left;
		width: 40%;
		margin: 5%
	}

	.spo_box02 li {
		float: left;
		width: 27.333%;
		margin: 3%
	}

	.spo_box01 li a:hover,
	.spo_box02 li a:hover {
		opacity: 0.6;
	}

	.f_icon {
		margin: 34px auto 0;
		width: 90%;
		display: flex;
		justify-content: center;
	}

	.outer-menu .f_icon a {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 27px;
	}

	.outer-menu .f_icon img {
		display: block;
		width: 100%;
		height: auto;
		filter: brightness(0) saturate(100%) invert(12%) sepia(17%) saturate(1358%) hue-rotate(326deg) brightness(94%) contrast(94%);
	}

	.f_icon li {
		width: 25px;
		float: left;
		margin-right: 25px;
	}

	.f_icon li a:hover {
		opacity: 0.6;
	}

	.f_icon li:last-of-type {
		padding-top: 2px;
		width: 100px;
		float: left;
	}

	.footer_slink {
		width: 100%;
		margin-top: 120px;
		margin-right: auto;
		margin-left: auto;
		font-size: 13px;
		color: #ffffff;
		line-height: 36px;
		text-align: center;
	}

	.footer_slink a {
		color: #ffffff;
		text-decoration: none;
	}

	.footer_slink a:hover {
		color: #ffffff;
		text-decoration: underline;
	}

	.page_title {
		background: #2F6F67;
		color: #FFFFFF;
		padding: 97px 0 23px;
		font-size: 14px;
		font-weight: bold;
		text-align: center;
		border-bottom: solid 5px #7A6A45;
	}

	.page_member_t {
		padding-top: 67px;
		font-size: 18px;
		font-weight: bold;
		border-bottom: 5px solid #7A6A45;
	}

	.page_member_s {
		font-size: 18px;
		font-weight: bold;
		border-bottom: 5px solid #7A6A45;
	}

	.m_mh {
		height: 425px;
	}

	.m_mainimg {
		width: 385px;
		position: absolute;
		right: -20%;
		bottom: 0;
		z-index: 2;
	}

	.pmt_box {
		position: absolute;
		left: 0;
		bottom: 20px;
		z-index: 2;
	}

	.pmt_p {
		color: #ffffff;
		z-index: 1;
		font-size: 30px;
		font-family: "Oswald", sans-serif;
		margin-bottom: 15px;
		font-weight: 100;
	}

	.pmt_name {
		color: #ffffff;
		z-index: 1;
		font-size: 15px;
		font-weight: bold;
		letter-spacing: 0;
	}

	.nameul {
		font-size: 40px;
		line-height: 50px;
		padding-bottom: 3px;
		margin-bottom: 10px;
		border-bottom: solid 2px #ffffff;
		font-family: "Teko", sans-serif;
	}

	.pmt_sns {
		margin-top: 30px;
	}

	.pmt_sns li {
		padding: 12px;
		float: left;
		width: 45px;
		height: 45px;
		border: solid 1px #ffffff;
		border-radius: 100px;
		margin-right: 15px;
		transition: all .3s;
	}

	.pmt_sns a:hover li {
		opacity: 0.8;
	}

	.profbox {
		width: 96%;
		margin: 0 auto;
		font-size: 12px;
		overflow: hidden;
		padding-top: 5px;
	}

	.profbox li {
		float: left;
		width: 70%;
		padding: 5px 10px;
		background: #f9f9f9;
		color: #361a19;
		text-align: center;
		margin: 1% 1% 1% 0;
		border-radius: 0 5px 5px 0;
	}

	.profbox li:nth-child(odd) {
		width: 28%;
		background: #2F6F67;
		color: #ffffff;
		margin: 1% 0 1% 1%;
		font-weight: bold;
		border-radius: 5px 0 0 5px;
	}

	.profbox_d {
		width: 96%;
		margin: 25px auto 0;
		font-size: 12px;
		overflow: hidden;
		padding: 8px 15px;
		background: #f9f9f9;
		color: #361a19;
		border-radius: 5px;
		line-height: 22px;
	}

	.profbox2 {
		width: 100%;
		margin: 0 auto;
		overflow: hidden;
		padding: 0 15px 0;
		color: #361a19;
		border-radius: 5px;
	}

	.profbox2 li {
		float: left;
		width: 69%;
		padding: 10px;
		background: #f9f9f9;
		color: #361a19;
		text-align: center;
		margin: 1% 1% 1% 0;
		border-radius: 0 5px 5px 0;
	}

	.profbox2 li:nth-child(odd) {
		width: 29%;
		background: #2F6F67;
		color: #ffffff;
		margin: 1% 0 1% 1%;
		font-weight: bold;
		border-radius: 5px 0 0 5px;
	}

	.gridbox {
		margin-top: 25px;
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
		gap: 15px 25px;
	}

	.gridbox li {
		padding: 12px 17px;
		background: #FFFFFF;
		color: #361a19;
		border-radius: 5px;
		font-size: 12px;
		line-height: 20px;
	}

	.gridbox li .title {
		font-weight: bold;
		color: #7A6A45;
		margin-bottom: 5px;
		line-height: 22px;
	}

	.cta_box {
		color: #FFFFFF;
		text-align: center;
		padding: 40px 0;
		font-size: 12px;
	}

	.cta_box .title {
		font-size: 18px;
		line-height: 32px;
		font-weight: bold;
	}

	.cta_box .button01 {
		color: #361a19;
	}

	.cta_box section {
		width: 60%;
		margin-left: 20%;
		line-height: 22px;
	}

	.dots {
		background-image: radial-gradient(circle at center, #7A6A45 20%, transparent 20%);
		background-position: top left;
		background-repeat: repeat-x;
		background-size: 1.06em 0.5em;
		padding-top: .6em;
	}

	.button01 {
		display: inline-block;
		background: #A9B86E;
		width: 78%;
		padding: 12px 0;
		text-align: center;
		color: #361a19;
		margin: 30px 0 30px;
		cursor: pointer;
		position: relative;
		text-decoration: none;
		font-size: 13px;
		font-weight: bold;
		transition: all 0.5s ease 0s;
		border-radius: 100px;
	}

	.button01:hover {
		color: #333;
		background: #C7CE8A;
	}

	.button01::after {
		content: "";
		display: block;
		position: absolute;
		top: calc(50% - 7px);
		right: 20px;
		width: 5px;
		height: 5px;
		border: 2px solid;
		border-color: transparent transparent #361a19 #361a19;
		transform: rotate(-45deg);
		transition: .3s;
	}

	.button01:hover::after {
		top: calc(50% - 4px);
		border-color: transparent transparent #333 #333;
	}

	.tbbox {
		margin-top: 5px;
		margin-bottom: 15px;
		overflow: hidden;
		border-radius: 5px;
		align-items: stretch;
		font-size: 12px;
	}

	.tbbox:last-of-type {
		margin-bottom: 0;
	}

	.tbbox_left {
		width: 100%;
		padding: 8px 15px;
		text-align: center;
		color: #ffffff;
		font-weight: bold;
		background: #4F744E;
		position: relative;
	}

	.tbbox_left strong {
		display: table-cell;
		vertical-align: middle;
		;
	}

	.tbbox_right {
		width: 100%;
		padding: 15px 20px;
		line-height: 23px;
		background: #F7F7F7;
	}

	.tbaa a {
		color: #2F6F67;
		text-decoration: underline;
	}

	.about_c {
		margin-top: 25px;
		font-weight: bold;
		text-align: center;
	}

	.img900 {
		width: 100%;
		margin: 0 auto;
		text-align: center;
		font-size: 11px;
	}

	.img900 img {
		width: 80%;
		margin: 0 auto 15px;
	}

	.img900 table {
		width: 900px;
		background-color: #4F744E;
	}

	.tb01 th,
	.tb01 td {
		width: 23%;
		padding: 15px;
		text-align: center;
		font-size: 11px;
		line-height: 16px;
		letter-spacing: 0;
	}

	.tb01 th {
		width: 31%;
		font-size: 11px;
		line-height: 16px;
	}

	.text_w {
		color: #ffffff;
	}

	.f_bold {
		font-weight: bold;
	}

	.shooters_top {
		margin-right: auto;
		margin-left: auto;
		padding: 0;
		text-align: center;
	}

	.junior_top {
		height: 50vh;
		margin-top: 40px;
		margin-right: auto;
		margin-bottom: 40px;
		margin-left: auto;
		position: relative;
	}

	.waku_v {
		margin: 20px auto 0;
		width: 90%;
		padding: 10px;
		background: #2F6F67;
		color: #ffffff;
	}

	.photo3 {
		margin: 25px auto 0;
	}

	.photo3 img {
		width: 50%;
		float: left;
	}

	.voice_scr_t {
		color: #ffffff;
		text-align: right;
		margin-top: 5px;
		margin-right: 8px;
	}

	* {
		box-sizing: border-box;
	}

	a,
	a:visited,
	a:hover,
	a:active {
		color: inherit;
		text-decoration: none;
	}

	.outer-menu {
		position: fixed;
		top: 15px;
		right: 15px;
		z-index: 200;
	}

	.outer-menu .checkbox-toggle {
		position: absolute;
		top: 0;
		right: 0;
		z-index: 202;
		cursor: pointer;
		width: 50px;
		height: 50px;
		opacity: 0;
	}

	.outer-menu .checkbox-toggle:checked+.hamburger>div {
		transform: rotate(135deg);
	}

	.outer-menu .checkbox-toggle:checked+.hamburger>div:before,
	.outer-menu .checkbox-toggle:checked+.hamburger>div:after {
		top: 0;
		transform: rotate(90deg);
	}

	.outer-menu .checkbox-toggle:checked+.hamburger>div:after {
		opacity: 0;
	}

	.outer-menu .checkbox-toggle:checked~.menu {
		pointer-events: auto;
		visibility: visible;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		touch-action: pan-y;
		background: #e8ead5;
	}

	.outer-menu .checkbox-toggle:checked~.menu>div {
		transform: scale(1);
		transition-duration: 0.75s;
		width: 100%;
		min-height: 100vh;
		min-height: 100dvh;
		height: auto;
		border-radius: 0;
		overflow: visible;
	}

	.outer-menu .checkbox-toggle:checked~.menu>div>div {
		opacity: 1;
		transition: opacity 0.4s ease 0.4s;
	}

	.outer-menu .checkbox-toggle:hover+.hamburger {
		box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.0);
	}

	.outer-menu .checkbox-toggle:checked:hover+.hamburger>div {
		transform: rotate(225deg);
	}

	.outer-menu .hamburger {
		position: absolute;
		top: 5px;
		right: 0;
		z-index: 201;
		width: 52px;
		height: 52px;
		padding: 0;
		cursor: pointer;
		transition: background-color 0.3s ease, box-shadow 0.3s ease;
		-webkit-backface-visibility: hidden;
		backface-visibility: hidden;
		display: flex;
		align-items: center;
		justify-content: center;
		background: #315F47;
		border-radius: 50%;
		box-shadow: 0 5px 14px rgba(54, 26, 25, 0.16);
	}

	.outer-menu>.f_icon {
		position: fixed;
		top: 33px;
		right: 84px;
		z-index: 201;
		width: auto;
		margin: 0;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity 0.25s ease, visibility 0.25s ease;
	}

	.outer-menu .checkbox-toggle:checked~.f_icon {
		opacity: 0.74;
		visibility: visible;
		pointer-events: auto;
	}

	.outer-menu .hamburger>div {
		position: relative;
		flex: none;
		width: 24px;
		height: 2px;
		background: #FEFEFE;
		transition: all 0.4s ease;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.outer-menu .hamburger>div:before,
	.outer-menu .hamburger>div:after {
		content: "";
		position: absolute;
		z-index: 201;
		top: -8px;
		right: 0;
		width: 100%;
		height: 2px;
		background: inherit;
		transition: all 0.4s ease;
	}

	.outer-menu .hamburger>div:after {
		top: 8px;
	}

	.outer-menu .menu {
		position: fixed;
		top: -1px;
		right: 0;
		bottom: -1px;
		left: 0;
		width: 100%;
		height: 100vh;
		height: 100dvh;
		pointer-events: none;
		visibility: hidden;
		overflow: hidden;
		-webkit-backface-visibility: hidden;
		backface-visibility: hidden;
		outline: 1px solid transparent;
		display: flex;
		align-items: flex-start;
		justify-content: center;
	}

	.outer-menu .menu>div {
		width: 360vw;
		height: 360vw;
		color: #361a19;
		background-color: #e8ead5;
		border-radius: 50%;
		transition: all 0.4s ease;
		flex: none;
		transform: scale(0);
		-webkit-backface-visibility: hidden;
		backface-visibility: hidden;
		overflow: hidden;
		display: flex;
		align-items: flex-start;
		justify-content: center;
		position: relative;
	}

	.outer-menu .menu>div>div {
		text-align: center;
		width: min(82vw, 340px);
		max-width: 100vw;
		min-height: 100vh;
		min-height: 100dvh;
		opacity: 0;
		transition: opacity 0.4s ease;
		overflow: visible;
		flex: none;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		padding: 38px 0 44px;
	}

	.sp-menu-logo {
		display: none;
	}

	.sp-menu-logo img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: contain;
		object-position: left center;
	}

	.outer-menu .menu>div>div>ul.sp-menu-list {
		list-style: none;
		padding: 0;
		display: block;
		width: 100%;
		max-height: none;
		margin: 0;
	}

	.sp-menu-item {
		padding: 16px 0;
		border-bottom: 1px solid rgba(54, 26, 25, 0.12);
		font-size: 15px;
		font-weight: bold;
		color: #361a19;
		width: 100%;
		text-align: left;
	}

	.sp-menu-item__link {
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		color: #361a19;
		text-decoration: none;
	}

	.sp-menu-item__link::after {
		content: "";
		display: inline-block;
		width: 7px;
		height: 7px;
		border-top: 2px solid rgba(54, 26, 25, 0.46);
		border-right: 2px solid rgba(54, 26, 25, 0.46);
		transform: rotate(45deg);
	}

	.sp-menu-list > .sp-menu-item:first-child .sp-menu-item__link::after {
		display: none;
	}

	.accordion-toggle {
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		cursor: default;
		color: #361a19;
		line-height: 1.55;
		pointer-events: none;
		-webkit-tap-highlight-color: transparent;
		user-select: none;
	}

	.accordion-toggle::after {
		content: "";
		display: inline-block;
		width: 6px;
		height: 6px;
		border-bottom: 2px solid rgba(54, 26, 25, 0.46);
		border-right: 2px solid rgba(54, 26, 25, 0.46);
		transform: rotate(45deg);
		transition: transform 0.3s ease;
	}

	.accordion-toggle.is-open::after {
		transform: rotate(-135deg);
	}

	.sp-menu-section .accordion-toggle::after {
		display: none;
	}

	.accordion-content {
		display: none;
		margin-top: 12px;
		width: 100%;
	}

	.accordion-content.is-open {
		display: block;
	}

	.sub-links--grid.is-open {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px 12px;
		padding-left: 0;
	}

	/* 活動クラス紹介カード */
	.class-card {
		display: flex;
		gap: 13px;
		align-items: stretch;
		margin-bottom: 12px;
		padding: 12px;
		background: rgba(255, 255, 255, 0.72);
		border-radius: 8px;
		box-shadow: 0 5px 14px rgba(54, 26, 25, 0.08);
	}

	.class-card:last-child {
		margin-bottom: 0;
	}

	.class-card img {
		width: 86px;
		min-height: 0;
		height: 112px;
		object-fit: cover;
		border-radius: 6px;
		flex: 0 0 auto;
	}

	.class-card__body {
		display: grid;
		grid-template-columns: auto 1fr;
		column-gap: 9px;
		align-content: start;
		flex: 1 1 auto;
		min-width: 0;
		text-align: left;
	}

	.class-card__title {
		display: inline-block;
		margin: 0;
		font-size: 14px;
		font-weight: bold;
		color: #2F6F67;
	}

	.class-card__target {
		display: inline-flex;
		align-items: center;
		align-self: center;
		justify-self: start;
		margin: 0;
		color: #7a6a45;
		font-size: 10px;
		font-weight: 900;
		line-height: 1;
	}

	.class-card__links {
		grid-column: 1 / -1;
		display: flex;
		flex-direction: column;
		gap: 7px;
		width: 100%;
		margin-top: 9px;
	}

	.class-card__links a.btn-sub {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		min-height: 30px;
		box-sizing: border-box;
		padding: 11px 12px 11px 34px;
		font-size: 10px;
		letter-spacing: 0.02em;
		border: 1.3px solid transparent;
		border-radius: 5px;
		text-decoration: none;
		font-weight: bold;
		line-height: 1.2;
	}

	.class-card__links a.btn-sub::before {
		content: "";
		position: absolute;
		left: 14px;
		top: 50%;
		width: 14px;
		height: 14px;
		background-position: center;
		background-repeat: no-repeat;
		background-size: contain;
		transform: translateY(-50%);
	}

	.class-card__links a.btn-sub--detail {
		color: #2F6F67;
		background: #ffffff;
		border-color: #2F6F67;
	}

	.class-card__links a.btn-sub--detail::before {
		background-image: url("img/icon_experience.svg");
		filter: brightness(0) saturate(100%) invert(38%) sepia(16%) saturate(1750%) hue-rotate(126deg) brightness(94%) contrast(85%);
	}

	.class-card__links a.btn-sub--diary {
		color: #ffffff;
		background: #9B4A3F;
		border-color: #9B4A3F;
	}

	.class-card__links a.btn-sub--diary::before {
		width: 16px;
		height: 16px;
		background-image: url("img/icon_note.png");
		filter: brightness(0) invert(1);
	}

	/* サブメニューリンク一覧 */
	.sub-links {
		list-style: none;
		padding: 0 0 0 12px;
		margin: 0;
		width: 100%;
	}

	.sub-links li {
		padding: 10px 0;
		border-bottom: 1px solid rgba(54, 26, 25, 0.1);
		font-size: 13px;
	}

	.sub-links--grid li {
		padding: 0;
		border-bottom: none;
	}

	.sub-links li:last-child {
		border-bottom: none;
		padding-bottom: 0;
	}

	.sub-links li a {
		display: flex;
		justify-content: space-between;
		align-items: center;
		color: #361a19;
		text-decoration: none;
		width: 100%;
	}

	.sub-links--grid li a {
		min-height: 44px;
		padding: 10px 11px;
		background: rgba(255, 255, 255, 0.64);
		border-radius: 8px;
		font-size: 12px;
		font-weight: 800;
		line-height: 1.35;
		box-shadow: 0 4px 10px rgba(54, 26, 25, 0.06);
	}

	.sub-links li a::after {
		content: "";
		display: inline-block;
		width: 5px;
		height: 5px;
		border-top: 1.5px solid rgba(54, 26, 25, 0.42);
		border-right: 1.5px solid rgba(54, 26, 25, 0.42);
		transform: rotate(45deg);
	}

	.sp-menu-contact {
		border-bottom: none;
		margin: 18px 0;
		padding: 16px;
		background: rgba(255, 255, 255, 0.72);
		border-radius: 8px;
		box-shadow: 0 5px 14px rgba(54, 26, 25, 0.08);
	}

	.sp-menu-contact::before {
		display: none;
	}

	.sp-menu-contact__group {
		display: grid;
		gap: 8px;
	}

	.sp-menu-contact__group+.sp-menu-contact__group {
		margin-top: 14px;
		padding-top: 14px;
		border-top: 1px solid rgba(54, 26, 25, 0.08);
	}

	.sp-menu-contact__group p {
		margin: 0;
		color: #7a6a45;
		font-size: 11px;
		font-weight: 900;
		line-height: 1.5;
		text-align: center;
	}

	.sp-menu-contact__button {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		min-height: 52px;
		padding: 0 54px;
		box-sizing: border-box;
		text-align: center;
		color: #ffffff;
		text-decoration: none;
		background: #9f463c;
		border-radius: 8px;
		font-size: 14px;
		font-weight: 900;
		box-shadow: 0 7px 16px rgba(54, 26, 25, 0.14);
	}

	.sp-menu-contact__button--access {
		background: #8f6038;
	}

	.sp-menu-contact__button:hover,
	.sp-menu-contact__button:active,
	.sp-menu-contact__button:focus,
	.sp-menu-contact__button:visited {
		color: #ffffff;
		background: #9f463c;
	}

	.sp-menu-contact__button--access:hover,
	.sp-menu-contact__button--access:active,
	.sp-menu-contact__button--access:focus,
	.sp-menu-contact__button--access:visited {
		color: #ffffff;
		background: #8f6038;
	}

	.sp-menu-contact__button::before {
		content: "";
		display: block;
		position: absolute;
		left: 28px;
		top: 50%;
		width: 17px;
		height: 17px;
		background-image: url(img/icon_contact_bird.png);
		background-repeat: no-repeat;
		background-position: center center;
		background-size: contain;
		filter: brightness(0) invert(1);
		transform: translateY(-50%);
		flex: 0 0 auto;
	}

	.sp-menu-contact__button--access::before {
		width: 18px;
		height: 18px;
		background-image: url(img/icon_access_placeholder.png);
		filter: brightness(0) invert(1);
	}

	.sp-menu-section {
		padding: 18px 0;
		border-bottom: 1px solid rgba(54, 26, 25, 0.08);
	}

	.sp-menu-section .accordion-toggle {
		margin-bottom: 12px;
	}

	.sp-menu-about-section>.sp-menu-item__link,
	.sp-menu-organization-section>.sp-menu-item__link {
		margin-bottom: 14px;
	}

	.sp-menu-section .accordion-content {
		margin-top: 0;
	}

	.sp-menu-about-section .sub-links--grid li a,
	.sp-menu-blog-section .sub-links--grid li a,
	.sp-menu-related-section .sub-links--grid li a {
		display: block;
		min-height: 0;
		padding: 0;
		overflow: hidden;
		background: #ffffff;
		color: #361a19;
		border: none;
		box-shadow: 0 4px 10px rgba(54, 26, 25, 0.06);
	}

	.sp-menu-about-section .sub-links--grid li a img,
	.sp-menu-blog-section .sub-links--grid li a img,
	.sp-menu-related-section .sub-links--grid li a img {
		display: block;
		width: 100%;
		height: 76px;
		object-fit: cover;
	}

	.sp-menu-about-section .sub-links--grid li a span,
	.sp-menu-blog-section .sub-links--grid li a span,
	.sp-menu-related-section .sub-links--grid li a span {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 38px;
		padding: 8px 8px;
		color: #361a19;
		font-size: 12px;
		font-weight: 900;
		line-height: 1.25;
	}

	.sp-menu-about-section .sub-links li a::after,
	.sp-menu-blog-section .sub-links li a::after,
	.sp-menu-related-section .sub-links li a::after {
		display: none;
	}

	.sp-menu-about-section .sub-links--grid li a span,
	.sp-menu-blog-section .sub-links--grid li a span {
		min-height: 34px;
		padding: 7px 6px;
		font-size: 11px;
		line-height: 1.2;
	}

	.sp-menu-about-section .sub-links--grid.is-open,
	.sp-menu-organization-section .sub-links--grid.is-open {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 9px;
	}

	.sp-menu-about-section .sub-links--grid li a,
	.sp-menu-organization-section .sub-links--grid li a {
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 12px 10px;
		background: rgba(255, 255, 255, 0.72);
		border: 1px solid rgba(47, 111, 103, 0.18);
		border-radius: 999px;
		box-shadow: none;
	}

	.sp-menu-about-section .sub-links--grid li a span,
	.sp-menu-organization-section .sub-links--grid li a span {
		justify-content: center;
		min-height: 0;
		padding: 0;
		color: #2f6f67;
		font-size: 11px;
		font-weight: 900;
		line-height: 1.2;
		text-align: center;
	}

	.sp-menu-about-section .sub-links--grid li a .sp-menu-organization-label {
		letter-spacing: -0.06em;
		white-space: nowrap;
	}

	.sp-menu-blog-section {
		border-bottom: 1px solid rgba(54, 26, 25, 0.08);
	}

	.sp-menu-organization-section .sub-links li a::after {
		border-color: rgba(47, 111, 103, 0.48);
	}

	.sp-menu-related-section .sub-links--grid.is-open,
	.sp-menu-organization-section .sub-links--grid.is-open {
		gap: 8px;
	}

	.sp-menu-related-section {
		border-top: none;
		padding-top: 18px;
	}

	/* メニュー境界線（区切り） */
	.menu-divider {
		height: 1px;
		background: rgba(54, 26, 25, 0.08);
		margin: 18px 0 0;
		list-style: none;
	}

	.flri {
		width: 100%;
		color: #ffffff;
		margin: 0 auto 28px;
		overflow: visible;
		flex: none;
	}

	a.navibtn01,
	a.navibtn02 {
		display: block;
		text-align: center;
		vertical-align: middle;
		text-decoration: none;
		width: 100%;
		margin: 0 auto 12px;
		padding: 13px 20px 13px 44px;
		font-weight: bold;
		background: #8f6038;
		color: #ffffff;
		font-size: 12px;
		background-image: url(img/icon_admission.svg);
		background-repeat: no-repeat;
		background-position: 18px center;
		background-size: 20px;
		float: none;
		border-radius: 4px;
		box-sizing: border-box;
	}

	a.navibtn02 {
		background: #91443a;
		color: #ffffff;
		background-image: url(img/icon_experience.svg);
		background-repeat: no-repeat;
		background-position: 18px center;
		background-size: 17px;
		letter-spacing: 0.04em;
		margin-left: auto;
		margin-right: auto;
	}

	a.navibtn_contact {
		padding-top: 12px;
		padding-bottom: 12px;
	}

	.navibtn__text {
		display: block;
		text-align: center;
	}

	.navibtn__text small,
	.navibtn__text strong {
		display: block;
		line-height: 1.25;
	}

	.navibtn__text small {
		font-size: 10px;
		opacity: 0.9;
	}

	.navibtn__text strong {
		margin-top: 3px;
		font-size: 14px;
	}

	.side-project-nav {
		display: none;
	}

	.menu_s {
		margin-top: 30px;
		width: 100%;
		color: #ffffff;
		font-size: 11px;
	}

	.btnmap {
		margin-top: 10px;
		background: #4F744E;
		margin-left: 25%;
		width: 50%;
		border-radius: 6px;
		text-align: center;
	}

	.btnmap a {
		color: #ffffff;
		padding: 10px 15px;
		text-decoration: none;
		font-size: 10px;
	}

	.about-page {
		background: #d3cbbc;
		color: #361a19;
	}

	.about-hero,
	.admission-hero {
		position: relative;
		display: flex;
		align-items: center;
		min-height: 430px;
		padding: 0 24px;
		overflow: hidden;
		color: #ffffff;
	}

	.about-hero::after,
	.admission-hero::after {
		content: "";
		position: absolute;
		inset: 0;
		background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.66));
		z-index: 1;
	}

	.about-hero__image,
	.admission-hero__image {
		position: absolute;
		inset: 0;
	}

	.about-hero__image img,
	.admission-hero__image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.about-hero__body,
	.admission-hero__body {
		position: relative;
		z-index: 2;
		width: 100%;
	}

	.about-hero h1,
	.about-hero .about-kicker,
	.admission-hero h1,
	.admission-hero .about-kicker,
	.about-heading h2,
	.about-cta h2 {
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
		letter-spacing: 0;
	}

	.about-hero h1,
	.admission-hero h1 {
		margin: 8px 0 28px;
		font-size: clamp(32px, 10vw, 38px);
		line-height: 1.15;
	}

	.about-hero__lead,
	.admission-hero__lead {
		font-size: 16px;
		line-height: 32px;
		color: #315F47;
		font-weight: bold;
		font-style: italic;
		letter-spacing: 0.03em;
	}

	.about-hero__lead span,
	.admission-hero__lead span {
		display: inline;
		margin-top: 0;
		padding: 5px 7px 6px;
		color: inherit;
		background: linear-gradient(transparent 11%, rgba(232, 234, 213, 0.88) 11%, rgba(232, 234, 213, 0.88) 87%, transparent 87%);
		-webkit-box-decoration-break: clone;
		box-decoration-break: clone;
	}

	.about-kicker {
		margin: 0;
		color: #ffffff;
		font-size: 18px;
		font-weight: 900;
		line-height: 1.1;
	}

	.about-section {
		padding: 64px 0;
	}

	.about-section--intro,
	.about-section--believe {
		background: #f4f4f3;
	}

	.about-section--principal {
		background: #ffffff;
	}

	.about-section--between {
		background: #e8ead5;
	}

	.about-section--organization {
		background: #e8ead5;
	}

	.about-section--organization .about-section__inner {
		width: calc(100% - 34px);
		padding: 34px 22px;
		background: transparent;
		border-radius: 8px;
	}

	.about-section--profile {
		background: #ffffff;
		color: #361a19;
	}

	.about-section__inner {
		width: calc(100% - 44px);
		margin: 0 auto;
	}

	.about-heading {
		margin-bottom: 28px;
		padding-left: 0;
		border-left: 0;
		text-align: center;
	}

	.about-heading h2 {
		margin: 0;
		color: #2f6f67;
		font-size: 28px;
		line-height: 30px;
		font-weight: bold;
	}

	.about-section--profile .about-heading h2 {
		color: #2f6f67;
	}

	.about-en {
		margin: 10px 0 0;
		color: #361a19;
		font-size: 14px;
		font-weight: bold;
		letter-spacing: 0;
		text-transform: none;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
	}

	.about-section--profile .about-en,
	.about-cta .about-en {
		color: #361a19;
	}

	.about-copy p {
		margin: 0 0 1.45em;
		font-size: 14px;
		font-weight: 600;
		line-height: 2.05;
	}

	.principal-message {
		display: grid;
		gap: 26px;
	}

	.principal-message__photo {
		overflow: hidden;
		border-radius: 10px;
		background: #e8ead5;
	}

	.principal-message__photo img {
		display: block;
		width: 100%;
		height: 320px;
		object-fit: cover;
	}

	.principal-message__person {
		padding: 22px 20px 24px;
		background: #f4f4f3;
	}

	.principal-message__role {
		display: inline-block;
		margin: 0 0 11px;
		padding: 6px 11px;
		color: #ffffff;
		background: #2f6f67;
		border-radius: 999px;
		font-size: 10px;
		font-weight: 800;
		line-height: 1;
		letter-spacing: 0;
	}

	.principal-message h3 {
		margin: 0;
		color: #2f6f67;
		font-size: 26px;
		font-weight: 900;
		line-height: 1.35;
	}

	.principal-message h3 span {
		display: block;
		margin-top: 4px;
		color: #7a6a45;
		font-size: 13px;
		font-weight: 800;
	}

	.principal-message__summary {
		display: grid;
		gap: 10px;
		margin: 18px 0 0;
	}

	.principal-message__summary div {
		padding: 13px 14px;
		background: #ffffff;
		border-radius: 7px;
	}

	.principal-message__summary dt,
	.principal-message__summary dd {
		margin: 0;
	}

	.principal-message__summary dt {
		margin-bottom: 6px;
		color: #2f6f67;
		font-size: 11px;
		font-weight: 900;
		line-height: 1.4;
	}

	.principal-message__summary dd {
		color: #361a19;
		font-size: 12px;
		font-weight: 800;
		line-height: 1.6;
	}

	.principal-message__text p {
		margin: 0 0 1.35em;
		font-size: 14px;
		font-weight: 600;
		line-height: 2.05;
	}

	.principal-message__profile {
		display: grid;
		gap: 13px;
		margin: 28px 0 0;
	}

	.principal-message__profile div {
		padding: 19px 20px 18px;
		background: #e8ead5;
		border-radius: 8px;
	}

	.principal-message__profile dt {
		margin-bottom: 7px;
		color: #2f6f67;
		font-size: 12px;
		font-weight: 900;
	}

	.principal-message__profile dd {
		margin: 0;
		font-size: 13px;
		font-weight: 800;
		line-height: 1.8;
	}

	.principal-message__profile dd a {
		color: #2f6f67;
		text-decoration: underline;
		text-underline-offset: 4px;
	}

	.principal-message__button {
		display: flex;
		align-items: center;
		justify-content: center;
		width: fit-content;
		min-width: 220px;
		margin: 24px auto 0;
		padding: 10px 22px;
		color: #2f6f67;
		font-size: 13px;
		line-height: 1.2;
		font-weight: 900;
		text-decoration: none;
		border: 1px solid rgba(47, 111, 103, 0.55);
		border-radius: 999px;
	}

	.about-meaning {
		display: grid;
		gap: 14px;
		margin-top: 28px;
	}

	.about-meaning div {
		padding: 25px 24px 23px;
		background: #2f6f67;
		color: #ffffff;
		border-radius: 8px;
		box-shadow: 8px 8px 0 rgba(122, 106, 69, 0.24);
	}

	.about-meaning span {
		display: block;
		margin-bottom: 8px;
		color: #c9a56a;
		font-size: 28px;
		font-weight: 900;
		font-style: italic;
	}

	.about-meaning p {
		margin: 0;
		font-weight: 800;
	}

	.about-split__photo,
	.about-believe__photo,
	.about-org__photo {
		overflow: hidden;
		margin-top: 25px;
		margin-bottom: 26px;
		border-radius: 10px;
	}

	.about-split__photo img,
	.about-believe__photo img,
	.about-org__photo img {
		width: 100%;
		height: 260px;
		object-fit: cover;
	}

	.about-landscape {
		display: grid;
		gap: 26px;
		margin-top: 38px;
	}

	.about-landscape article {
		overflow: hidden;
		background: transparent;
		border-radius: 10px;
	}

	.about-landscape img {
		width: 100%;
		height: 245px;
		object-fit: cover;
		display: block;
	}

	.about-landscape article:nth-child(1) {
		transform: none;
	}

	.about-landscape article:nth-child(1) img {
		margin-left: 0;
		object-position: center center;
	}

	.about-landscape article:nth-child(2) {
		transform: none;
	}

	.about-landscape article:nth-child(2) img {
		margin-left: 0;
		object-position: center center;
	}

	.about-believe__text {
		padding: 0;
		background: transparent;
	}

	.about-believe__text p {
		margin: 0 0 1.45em;
		font-size: 14px;
		font-weight: 600;
		line-height: 2.05;
	}

	.about-values {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
		margin-top: 26px;
	}

	.about-values article {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		aspect-ratio: 1 / 1;
		padding: 16px;
		background: #e8ead5;
		border: 3px solid rgba(201, 165, 106, 0.78);
		border-radius: 50%;
		text-align: center;
	}

	.about-values strong {
		display: block;
		color: #2f6f67;
		font-size: 19px;
		font-weight: 900;
	}

	.about-values span {
		display: block;
		margin-top: 5px;
		color: #7a6a45;
		font-size: 10px;
		font-weight: 900;
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}

	.about-cta-area {
		position: relative;
		overflow: hidden;
		padding: 280px 0 20px;
		background: #d3cbbc;
	}

	.about-cta-area__video {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		z-index: 0;
	}

	.about-cta-area__overlay {
		position: absolute;
		inset: 0;
		background: rgba(211, 203, 188, 0.68);
		z-index: 1;
	}

	.about-cta {
		width: calc(100% - 34px);
		margin: 0 auto;
		padding: 38px 24px;
		background: #315f47;
		color: #ffffff;
		border-radius: 8px;
		position: relative;
		z-index: 2;
	}

	.about-cta h2 {
		color: #ffffff;
		font-size: 27px;
		line-height: 1.45;
	}

	.about-cta>div:first-child {
		text-align: center;
	}

	.about-cta p:not(.about-en) {
		margin: 16px 0 0;
		font-size: 13px;
		font-weight: 700;
		line-height: 1.9;
	}

	.about-cta__buttons {
		display: grid;
		gap: 12px;
		margin-top: 26px;
	}

	.about-cta__buttons a {
		width: 100%;
	}

	.about-cta__class {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		gap: 4px;
		min-height: 50px;
		padding: 10px 48px 10px 18px;
		color: #ffffff;
		text-align: left;
		text-decoration: none;
		background: #9f463c;
		border-radius: 8px;
		font-weight: 900;
		line-height: 1.25;
	}

	.about-cta__class::after {
		content: "";
		position: absolute;
		right: 18px;
		top: 50%;
		width: 18px;
		height: 18px;
		border: 1px solid rgba(255, 255, 255, 0.72);
		border-radius: 50%;
		transform: translateY(-50%);
	}

	.about-cta__class::before {
		content: "";
		position: absolute;
		right: 25.5px;
		top: 50%;
		width: 4px;
		height: 4px;
		border-top: 1px solid #ffffff;
		border-right: 1px solid #ffffff;
		transform: translateY(-50%) rotate(45deg);
		z-index: 1;
	}

	.about-cta__class span {
		display: block;
		color: rgba(255, 255, 255, 0.78);
		font-size: 10px;
		font-weight: 800;
		letter-spacing: 0.04em;
	}

	.admission-page .about-cta__class {
		align-items: center;
		min-height: 72px;
		padding: 16px 54px;
		border-radius: 10px;
		gap: 5px;
		text-align: center;
	}

	.admission-page .about-cta__class strong {
		font-size: 18px;
		letter-spacing: 0.04em;
	}

	.admission-page .about-cta__class span {
		font-size: 11px;
		line-height: 1.45;
	}

	.admission-page .about-cta__class::after {
		right: 24px;
		width: 20px;
		height: 20px;
	}

	.admission-page .about-cta__class::before {
		right: 32px;
		width: 5px;
		height: 5px;
	}

	.about-donation__box {
		margin-top: 26px;
		padding: 25px 24px 23px;
		background: #2f6f67;
		color: #ffffff;
		border-radius: 8px;
		box-shadow: 8px 8px 0 rgba(122, 106, 69, 0.24);
	}

	.about-donation__box h3 {
		margin: 0 0 14px;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
		font-size: 22px;
		font-weight: 400;
		line-height: 1.25;
	}

	.about-donation__box li {
		position: relative;
		margin: 0 0 9px;
		padding-left: 1.1em;
		font-weight: 700;
		line-height: 1.75;
	}

	.about-donation__box li::before {
		content: "";
		position: absolute;
		left: 0;
		top: 0.8em;
		width: 5px;
		height: 5px;
		border-radius: 50%;
		background: #c9a56a;
	}

	.about-donation__bank {
		margin-top: 20px;
		padding-top: 18px;
		border-top: 1px dashed rgba(255, 255, 255, 0.42);
	}

	.about-donation__bank h4 {
		margin: 0 0 9px;
		color: #e8ead5;
		font-size: 13px;
		font-weight: 900;
		letter-spacing: 0.08em;
	}

	.about-donation__bank p {
		margin: 0;
		color: #ffffff;
		font-size: 12px;
		font-weight: 800;
		line-height: 1.85;
	}

	.about-profile {
		display: grid;
		gap: 1px;
		margin: 0;
		background: #d3cbbc;
		border: 1px solid #d3cbbc;
	}

	.about-profile div {
		background: #ffffff;
	}

	.about-profile dt,
	.about-profile dd {
		margin: 0;
		font-size: 13px;
		line-height: 1.8;
	}

	.about-profile dt {
		padding: 21px 18px 7px;
		color: #2f6f67;
		font-weight: 900;
	}

	.about-profile dd {
		padding: 0 18px 21px;
		font-weight: 700;
	}

	.about-profile a {
		color: #2f6f67;
	}

	.staff-section {
		background: #f4f4f3;
	}

	.staff-lead {
		margin: -18px 0 30px;
		font-size: 13px;
		font-weight: 700;
		line-height: 1.9;
		color: #665f54;
	}

	.staff-grid {
		display: grid;
		gap: 24px;
	}

	.staff-card {
		overflow: hidden;
		background: #ffffff;
		border-radius: 8px;
		box-shadow: 0 8px 20px rgba(54, 26, 25, 0.08);
	}

	.staff-card__photo {
		overflow: hidden;
		aspect-ratio: 4 / 3;
		background: #e8ead5;
	}

	.staff-card__photo img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

	.staff-card__body {
		padding: 22px 20px 24px;
	}

	.staff-card__role {
		display: inline-block;
		margin: 0 0 11px;
		padding: 6px 11px;
		color: #ffffff;
		background: #2f6f67;
		border-radius: 999px;
		font-size: 10px;
		font-weight: 800;
		line-height: 1;
	}

	.staff-card h2 {
		margin: 0 0 16px;
		color: #361a19;
		font-family: "Noto Sans JP", sans-serif;
		font-size: 18px;
		font-weight: 900;
		line-height: 1.45;
	}

	.staff-card h2 span {
		display: block;
		margin-top: 5px;
		color: #2f6f67;
		font-size: 11px;
		font-weight: 800;
	}

	.staff-card dl {
		display: grid;
		gap: 10px;
		margin: 0 0 16px;
	}

	.staff-card dl div {
		padding: 12px 13px;
		background: #f4f1e8;
		border-radius: 7px;
	}

	.staff-card dt,
	.staff-card dd {
		margin: 0;
	}

	.staff-card dt {
		margin-bottom: 5px;
		color: #2f6f67;
		font-size: 10px;
		font-weight: 900;
		line-height: 1.4;
	}

	.staff-card dd {
		color: #361a19;
		font-size: 12px;
		font-weight: 800;
		line-height: 1.65;
	}

	.staff-card__message {
		margin: 0;
		color: #665f54;
		font-size: 12px;
		font-weight: 700;
		line-height: 1.85;
	}

	.contact-page .contact-section {
		padding-top: 58px;
		padding-bottom: 62px;
	}

	.contact-lead {
		margin: 0 0 28px;
		font-size: 13px;
		font-weight: 700;
		line-height: 1.9;
		text-align: left;
	}

	.contact-layout {
		display: grid;
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.contact-info,
	.contact-form-card {
		border-radius: 8px;
		box-shadow: 0 10px 22px rgba(54, 26, 25, 0.08);
	}

	.contact-info h3 {
		padding: 22px 20px 4px;
		font-size: 24px;
	}

	.contact-info ul {
		gap: 10px;
		padding: 14px 20px 22px;
	}

	.contact-info li {
		font-size: 12px;
		line-height: 1.75;
	}

	.contact-form-card {
		padding: 22px 18px;
	}

	.contact-direct {
		grid-template-columns: 1fr;
		gap: 12px;
		margin-bottom: 22px;
	}

	.contact-direct__item {
		padding: 18px 18px;
		border-radius: 8px;
	}

	.contact-direct__item h3 {
		margin-bottom: 8px;
		font-size: 12px;
	}

	.contact-direct__item p {
		font-size: 12px;
		line-height: 1.75;
	}

	.contact-direct__main {
		font-size: 18px !important;
		line-height: 1.35 !important;
	}

	.contact-direct__main::before {
		width: 21px;
		height: 21px;
		flex-basis: 21px;
	}

	.contact-form-placeholder {
		margin-top: 50px;
		margin-bottom: 22px;
		padding: 0;
	}

	.contact-form-placeholder h3 {
		font-size: 24px;
	}

	.contact-form-placeholder__en {
		margin-bottom: 14px;
		font-size: 11px;
	}

	.contact-form-placeholder__text {
		font-size: 12px;
		line-height: 1.85;
	}

	.contact-form-demo {
		gap: 28px;
	}

	.contact-form-demo label {
		gap: 11px;
		font-size: 12px;
	}

	.contact-form-demo input,
	.contact-form-demo select,
	.contact-form-demo textarea {
		padding: 13px 14px;
		font-size: 13px;
	}

	.contact-form-demo select {
		-webkit-appearance: none;
		appearance: none;
		min-height: 50px;
		padding-right: 42px;
		background-color: #fbfaf6;
		background-image: linear-gradient(45deg, transparent 50%, #2f6f67 50%), linear-gradient(135deg, #2f6f67 50%, transparent 50%);
		background-position: calc(100% - 21px) 50%, calc(100% - 14px) 50%;
		background-size: 7px 7px, 7px 7px;
		background-repeat: no-repeat;
		line-height: 1.4;
	}

	.contact-form-demo textarea {
		min-height: 145px;
	}

	.contact-form-demo button {
		width: 100%;
		min-width: 0;
		margin-top: 12px;
		padding: 15px 18px;
		font-size: 13px;
	}

	.access-page .access-section {
		padding-top: 58px;
		padding-bottom: 62px;
	}

	.access-page .about-section__inner {
		width: calc(100% - 56px);
		max-width: 100%;
		box-sizing: border-box;
		overflow: hidden;
	}

	.access-section--parking {
		background: #f4f1e8;
	}

	.access-location {
		display: grid;
		grid-template-columns: 1fr;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		overflow: hidden;
		background: #ffffff;
		border-radius: 8px;
		box-shadow: 0 10px 22px rgba(54, 26, 25, 0.08);
	}

	.access-location--reverse {
		grid-template-columns: 1fr;
	}

	.access-location--reverse .access-location__photo {
		order: 0;
	}

	.access-location__photo {
		aspect-ratio: 4 / 3;
		background: #e8ead5;
	}

	.access-location__photo img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.access-location__body {
		display: block;
		width: 100%;
		min-width: 0;
		max-width: 100%;
		box-sizing: border-box;
		overflow: hidden;
		padding: 24px 18px 26px;
		text-align: center;
	}

	.access-location__body h3 {
		margin: 0 0 12px;
		color: #2f6f67;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
		font-size: 27px;
		font-weight: 400;
		line-height: 1.25;
		text-align: left;
	}

	.access-location__body p {
		margin: 0 0 20px;
		color: #361a19;
		font-size: 13px;
		font-weight: 700;
		line-height: 1.9;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		text-align: left;
		white-space: normal !important;
		overflow-wrap: anywhere;
		word-break: normal;
	}

	.access-map-button {
		position: static !important;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		gap: 8px;
		width: auto !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 auto !important;
		box-sizing: border-box;
		padding: 12px 22px !important;
		color: #ffffff;
		background: #1558b0;
		border-radius: 999px;
		text-decoration: none;
		font-size: 12px;
		font-weight: 900;
		letter-spacing: 0;
		white-space: nowrap;
	}

	.access-map-button::before {
		content: "";
		position: static !important;
		width: 15px;
		height: 15px;
		background-image: url(img/icon_access_placeholder.png);
		background-position: center;
		background-repeat: no-repeat;
		background-size: contain;
		filter: brightness(0) invert(1);
		transform: none !important;
		flex: 0 0 15px;
	}

	.access-guide {
		margin-top: 46px;
	}

	.access-guide__heading {
		margin-bottom: 24px;
	}

	.access-steps {
		display: grid;
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.access-step {
		overflow: hidden;
		background: #ffffff;
		border-radius: 8px;
		box-shadow: 0 10px 22px rgba(54, 26, 25, 0.08);
	}

	.access-step img {
		display: block;
		width: 100%;
		aspect-ratio: 4 / 3;
		object-fit: cover;
	}

	.access-step div {
		padding: 20px 18px 22px;
	}

	.access-step span {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 34px;
		height: 34px;
		margin-bottom: 12px;
		color: #ffffff;
		background: #2f6f67;
		border-radius: 50%;
		font-size: 11px;
		font-weight: 900;
	}

	.access-step h3 {
		margin: 0 0 9px;
		color: #2f6f67;
		font-size: 16px;
		font-weight: 900;
		line-height: 1.5;
	}

	.access-step p {
		margin: 0;
		color: #665f54;
		font-size: 12px;
		font-weight: 700;
		line-height: 1.85;
	}

/* ==========================================================================
   入校・費用について（admission.html）用スマートフォンスタイル
   ========================================================================== */

	.admission-section {
		padding: 58px 0 64px;
	}

	.admission-section__inner {
		width: min(100% - 40px, 1080px);
	}

	.admission-intro__text {
		font-size: 14px;
		line-height: 1.75;
	}

	.admission-outline {
		padding: 24px 20px;
		margin-top: 24px;
	}

	.admission-table th,
	.admission-table td {
		padding: 13px 10px;
		font-size: 13px;
		line-height: 1.75;
	}

	.admission-table .class-name {
		min-width: 72px;
		padding: 8px 10px;
		font-size: 13px;
		border-radius: 5px;
	}

	.admission-target-main,
	.admission-target-sub,
	.admission-days,
	.admission-camp {
		display: block;
	}

	.admission-camp {
		margin-top: 2px;
	}

	.admission-camp-paren {
		display: none;
	}

	.admission-time {
		padding-top: 16px;
	}

	.admission-time dl {
		gap: 12px;
	}

	.admission-time dt,
	.admission-time dd {
		font-size: 13px;
	}

	.fees-grid {
		grid-template-columns: 1fr;
		gap: 16px;
		margin-top: 24px;
	}

	.fee-card--primary {
		grid-column: span 1;
	}

	.fee-card__header {
		padding: 16px 20px;
	}

	.fee-card__header h3 {
		font-size: 15px;
	}

	.fee-card__body {
		padding: 20px;
	}

	.fee-main strong {
		font-size: 24px;
	}

	.flow-steps {
		gap: 20px;
		margin-top: 24px;
	}

	.flow-steps::before {
		left: 21px;
	}

	.flow-step {
		gap: 14px;
	}

	.flow-step__num {
		width: 44px;
		height: 44px;
		font-size: 15px;
	}

	.flow-step__content {
		padding: 16px 20px;
	}

	.flow-step__content h3 {
		font-size: 14px;
	}

	.flow-step__content p {
		font-size: 12px;
		line-height: 1.6;
	}

	/* 2カラム解除と写真サイズ調整 */
	.admission-outline-grid,
	.flow-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.admission-outline-photo {
		height: 240px;
		order: 2; /* スマートフォンでは表の後に写真を表示 */
	}

	.flow-photo {
		position: static;
		height: 240px;
		order: 2; /* タイムラインの後に写真を表示 */
	}

	.flow-photo img {
		height: 100%;
	}

	.admission-intro__text {
		font-size: 14px;
		font-weight: 600;
		line-height: 2.05;
	}

	.admission-detail-button,
	.admission-detail-button:visited {
		min-height: 46px;
		padding: 0 20px;
		color: #ffffff;
		font-size: 12px;
		width: 100%;
		box-sizing: border-box;
	}

	.flow-step__note {
		font-size: 11px;
		margin-top: 4px;
	}

	.admission-video-window {
		height: 300px;
	}

	.admission-video-window video {
		position: fixed;
		top: 0;
		left: 0;
		width: 100vw;
		height: 100vh;
		object-fit: cover;
	}

	/* 活動クラス紹介ページ */
	.classes-page {
		overflow-x: hidden;
	}

	.classes-page .class-section {
		padding-top: 56px;
		padding-bottom: 0;
		background: #f7f5ed;
	}

	.class-select-guide {
		margin-top: 22px;
		font-size: 12px;
		white-space: nowrap;
	}

	.class-select-guide + .class-select {
		margin-top: 14px;
	}

	.class-select-guide--bottom {
		margin-top: 12px;
	}

	.class-select {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 8px;
		margin: 30px 0 0;
		position: relative;
		z-index: 2;
	}

	.class-select__button {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		width: 100%;
		padding: 10px 2px;
		text-align: center;
		background: #dbe4d2;
		border-radius: 10px 10px 0 0;
		opacity: 1;
		border: 1px solid rgba(47, 111, 103, 0.16);
		box-shadow: none;
		-webkit-appearance: none;
		appearance: none;
		outline: none;
		-webkit-tap-highlight-color: transparent;
		position: relative;
		transition: background-color 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease;
	}

	.class-select__button:active {
		transform: scale(0.96);
	}

	.class-select__button.is-active {
		background: #9f463c;
		opacity: 1;
		box-shadow: 0 -6px 14px rgba(54, 26, 25, 0.06);
		position: relative;
		z-index: 3;
	}

	.class-select__button[data-class-tab="shizen"] {
		background: #ffffff;
	}

	.class-select__button[data-class-tab="sato"] {
		background: #ffffff;
	}

	.class-select__button[data-class-tab="miyama"] {
		background: #ffffff;
	}

	.class-select__button[data-class-tab="shizen"].is-active {
		background: #315f47;
	}

	.class-select__button[data-class-tab="sato"].is-active {
		background: #315f47;
	}

	.class-select__button[data-class-tab="miyama"].is-active {
		background: #315f47;
	}

	.class-select__button.is-active:active {
		transform: none;
	}

	/* スマホではホバー状態でボタンを移動・浮上させない */
	.class-select__button:hover,
	.class-select__button[data-class-tab]:hover {
		transform: none;
		box-shadow: none;
	}

	.class-select__button[data-class-tab]:not(.is-active):hover {
		background: #ffffff;
		border-color: rgba(47, 111, 103, 0.16);
	}

	.class-select__button:not(.is-active):hover .class-select__name {
		color: #2f6f67;
	}

	.class-select__button:not(.is-active):hover .class-select__target {
		color: #7a6a45;
		background: #e8ead5;
	}

	.class-select__button::after {
		display: none;
	}

	.class-select__image {
		display: none;
	}

	.class-select__image img {
		display: none;
	}

	.class-select__body {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
	}

	.class-select__name {
		margin: 0 0 6px;
		color: #2f6f67;
		font-size: 14px;
		font-weight: 900;
		line-height: 1.25;
	}

	.class-select__button.is-active .class-select__name {
		color: #ffffff;
	}

	.class-select__target {
		display: inline-block;
		margin: 0;
		padding: 4px 6px;
		color: #7a6a45;
		background: #e8ead5;
		border-radius: 999px;
		font-size: 9px;
		font-weight: 900;
		line-height: 1;
		white-space: nowrap;
	}

	.class-select__button.is-active .class-select__target {
		color: #f5ead1;
		background: rgba(255, 255, 255, 0.14);
	}

	.class-select__text {
		display: none;
	}

	.class-panel {
		position: relative;
		z-index: 1;
		padding: 0;
		background: #ffffff;
		border-width: 4px 0;
		border-style: solid;
		border-color: #315f47;
		border-radius: 0;
		box-shadow: 0 10px 24px rgba(54, 26, 25, 0.08);
		overflow: hidden;
	}

	.class-panels {
		width: 100vw;
		margin-left: calc(50% - 50vw);
	}

	.class-panel[hidden] {
		display: none;
	}

	.class-panel__hero,
	.class-panel__grid,
	.class-season__grid {
		display: grid;
		gap: 16px;
	}

	.class-panel__hero {
		display: block;
		margin-bottom: 0;
	}

	.class-panel__photo {
		overflow: hidden;
		border-radius: 0;
	}

	.class-panel__photo img {
		display: block;
		width: 100%;
		height: 220px;
		object-fit: cover;
	}

	.class-panel__summary {
		padding: 24px 20px 18px;
	}

	.class-panel__label {
		margin: 0 0 8px;
		color: #a16736;
		font-size: 12px;
		font-weight: 900;
		letter-spacing: 0.1em;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
	}

	.class-panel__summary h2 {
		margin: 0 0 12px;
		color: #2f6f67;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
		font-size: 34px;
		line-height: 1.05;
		letter-spacing: 0;
	}

	.class-panel__target {
		display: inline-block;
		margin: 0 0 14px;
		padding: 6px 10px;
		color: #7a6a45;
		background: #e8ead5;
		border-radius: 999px;
		font-size: 10px;
		font-weight: 900;
	}

	.class-panel__copy {
		margin: 0;
		color: #361a19;
		font-size: 16px;
		font-weight: 900;
		line-height: 1.8;
	}

	.class-panel .class-panel__label,
	.class-panel .class-panel__summary h2,
	.class-panel .class-detail-card h3,
	.class-panel .class-season h3 {
		color: var(--class-color);
	}

	.class-panel .class-season__grid span,
	.class-panel .class-story-photo figcaption {
		background: var(--class-color);
	}

	.class-panel__grid,
	.class-season,
	.class-schedule,
	.class-panel__cta {
		margin-left: 20px;
		margin-right: 20px;
	}

	.class-detail-card,
	.class-season,
	.class-schedule {
		padding: 18px;
		background: #f7f5ed;
		border-radius: 10px;
	}

	.class-panel__grid,
	.class-season {
		margin-bottom: 18px;
	}

	.class-detail-card h3,
	.class-season h3,
	.class-schedule h3 {
		margin: 0 0 10px;
		color: #2f6f67;
		font-size: 17px;
		font-weight: 900;
		line-height: 1.4;
	}

	.class-detail-card p,
	.class-season p,
	.class-schedule p {
		margin: 0;
		color: #4f463d;
		font-size: 13px;
		font-weight: 700;
		line-height: 1.9;
	}

	.class-season__grid div {
		padding: 16px;
		background: #ffffff;
		border-radius: 8px;
	}

	.class-season__grid span {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 44px;
		height: 30px;
		margin-bottom: 10px;
		color: #ffffff;
		background: #2f6f67;
		border-radius: 999px;
		font-size: 13px;
		font-weight: 900;
	}

	.class-panel__cta {
		margin-top: 24px;
		margin-bottom: 24px;
		text-align: center;
	}

	.class-panel__cta a {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		min-height: 54px;
		padding: 14px 50px 14px 24px;
		color: #ffffff;
		background: #a9473d;
		border-radius: 999px;
		font-size: 14px;
		font-weight: 900;
		text-decoration: none;
	}

	.class-panel__cta a::after {
		content: "";
		position: absolute;
		right: 24px;
		top: 50%;
		width: 8px;
		height: 8px;
		border-top: 2px solid #ffffff;
		border-right: 2px solid #ffffff;
		transform: translateY(-50%) rotate(45deg);
	}

	.class-select--bottom {
		margin: 0;
	}

	.class-select--bottom .class-select__button {
		border-radius: 0 0 10px 10px;
	}

	/* 活動クラスの誌面レイアウト */
	.class-panel {
		padding: 0;
	}

	.class-panel__hero {
		margin-bottom: 38px;
	}

	.class-panel__photo {
		margin: 0;
		border-radius: 0;
	}

	.class-panel__photo img {
		height: 260px;
	}

	.class-panel__title-row {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: 10px 14px;
		margin-bottom: 16px;
	}

	.class-panel__summary h2,
	.class-panel__target {
		margin: 0;
	}

	.class-panel__copy {
		font-size: 16px;
		line-height: 1.95;
	}

	.class-panel__grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
		margin: 0 20px 42px;
	}

	.class-detail-card {
		padding: 18px;
		border-radius: 2px 12px 2px 12px;
	}

	.class-detail-card--wide {
		grid-column: 1 / -1;
		padding: 0 0 24px;
		background: transparent;
		border-right: 0;
		border-bottom: 1px solid rgba(122, 106, 69, 0.28);
		border-radius: 0;
	}

	.class-detail-card--wide p {
		font-size: 15px;
		line-height: 2.05;
	}

	.class-story-photo,
	.class-story-photo--right {
		position: relative;
		width: calc(100% - 28px);
		margin: 0 28px 58px 0;
	}

	.class-story-photo--right {
		margin-right: 0;
		margin-left: 28px;
	}

	.class-story-photo img,
	.class-story-photo video {
		display: block;
		width: 100%;
		height: 250px;
		object-fit: cover;
	}

	.class-story-photo figcaption,
	.class-story-photo--right figcaption {
		position: absolute;
		right: -14px;
		bottom: -28px;
		left: auto;
		width: 230px;
		padding: 16px 18px;
		font-size: 14px;
	}

	.class-story-photo--right figcaption {
		right: auto;
		left: -14px;
	}

	.class-story-photo figcaption strong {
		font-size: 22px;
		line-height: 1.55;
		white-space: normal;
	}

	.class-story-photo figcaption span {
		margin-top: 10px;
		font-size: 11px;
	}

	.class-season,
	.class-schedule {
		margin-right: 20px;
		margin-left: 20px;
	}

	.class-season {
		padding: 20px;
		margin-bottom: 18px;
	}

	.class-season__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.class-schedule {
		display: block;
		padding: 20px;
		margin-bottom: 42px;
	}

	.class-panel__cta {
		position: relative;
		display: flex;
		align-items: flex-end;
		justify-content: center;
		min-height: 590px;
		margin: 0;
		padding: 0 17px 20px;
		overflow: hidden;
		text-align: left;
	}

	.class-panel__cta video,
	.class-panel__cta-overlay {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
	}

	.class-panel__cta video {
		object-fit: cover;
	}

	.class-panel__cta-overlay {
		background: rgba(211, 203, 188, 0.68);
	}

	.class-panel__cta-content {
		position: relative;
		z-index: 1;
		display: block;
		width: 100%;
		padding: 38px 24px;
		background: #315f47;
		border-radius: 8px;
		color: #fff;
		text-align: center;
	}

	.class-panel__cta-en {
		margin: 10px 0 0;
		color: #361a19;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
		font-size: 14px;
		font-weight: bold;
	}

	.class-panel__cta-content h3 {
		margin: 0;
		color: #fff;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
		font-size: 27px;
		line-height: 1.45;
		white-space: normal;
	}

	.class-panel__cta-content > p:not(.class-panel__cta-en) {
		margin: 16px 0 0;
		font-size: 13px;
		font-weight: 700;
		line-height: 1.8;
	}

	.class-panel__cta a {
		display: flex;
		width: 100%;
		min-width: 0;
		min-height: 72px;
		margin: 40px 0 32px;
		border-radius: 10px;
		justify-content: center;
		align-items: center;
		gap: 5px;
		padding: 16px 42px;
		text-align: center;
	}

	.class-panel__cta a strong {
		font-size: 16px;
		letter-spacing: 0.04em;
	}

	.class-panel__cta a span {
		top: calc(100% + 8px);
		font-size: 11px;
		line-height: 1.45;
	}

	.class-panel__cta a::after {
		right: 14px;
		top: 50%;
		width: 20px;
		height: 20px;
		border: 1px solid rgba(255, 255, 255, 0.72);
		border-radius: 50%;
		transform: translateY(-50%);
	}

	.class-panel__cta a::before {
		content: "";
		position: absolute;
		right: 22px;
		top: 50%;
		width: 5px;
		height: 5px;
		border-top: 1px solid #fff;
		border-right: 1px solid #fff;
		transform: translateY(-50%) rotate(45deg);
		z-index: 1;
	}

	.classes-common {
		margin-top: 72px;
	}

	.admission-video-window.classes-schedule-video {
		position: relative;
		left: 50%;
		width: 100vw;
		max-width: none;
		margin-right: -50vw;
		margin-left: -50vw;
	}

	.admission-video-window.classes-schedule-video video {
		position: fixed;
		inset: auto;
		top: 0;
		left: 0;
		width: 100vw;
		height: 100vh;
		object-fit: cover;
	}

	.classes-schedule-area {
		width: 100vw;
		margin-left: calc(50% - 50vw);
		padding: 42px 20px 44px;
		background: #e8ead5;
		border-radius: 0;
	}

	.classes-schedule-area .about-heading {
		margin-bottom: 30px;
	}

	.classes-schedule-layout {
		display: grid;
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.classes-schedule-preview {
		display: block;
		width: min(500px, 100%);
		margin: 0 auto;
		background: #fff;
		box-shadow: 0 12px 28px rgba(54, 26, 25, 0.14);
	}

	.classes-schedule-preview img {
		display: block;
		width: 100%;
		height: auto;
	}

	.classes-schedule-copy h3 {
		margin: 0 0 26px;
		color: #2f6f67;
		font-family: 'Darumadrop One', 'TsunagiGothicSubset', sans-serif;
		font-size: 25px;
		font-weight: 400;
		line-height: 1.5;
	}

	.classes-schedule-copy > p {
		margin: 0;
		color: #4f463d;
		font-size: 13px;
		font-weight: 700;
		line-height: 1.9;
	}

	.classes-schedule-copy .classes-schedule-note {
		margin-top: 20px;
		font-size: 10px;
		line-height: 1.7;
	}

	.classes-schedule-button {
		position: relative;
		display: flex;
		align-items: center;
		width: 100%;
		min-height: 58px;
		margin-top: 36px;
		padding: 14px 54px 14px 18px;
		color: #fff;
		background: #9f463c;
		border-radius: 8px;
		font-size: 12px;
		font-weight: 900;
		text-decoration: none;
	}

	.classes-schedule-button::after {
		content: "";
		position: absolute;
		right: 18px;
		top: 50%;
		width: 18px;
		height: 18px;
		border: 1px solid rgba(255, 255, 255, 0.72);
		border-radius: 50%;
		transform: translateY(-50%);
	}

	.classes-schedule-button::before {
		content: "";
		position: absolute;
		right: 25.5px;
		top: 50%;
		width: 4px;
		height: 4px;
		border-top: 1px solid #fff;
		border-right: 1px solid #fff;
		transform: translateY(-50%) rotate(45deg);
		z-index: 1;
	}

	.class-panel__cta--common {
		margin-top: 38px;
		border-radius: 10px;
	}

/* 全ページ共通：スマホの縦方向リズム */
	.about-section,
	.admission-section,
	.access-zone,
	.contact-section { padding-top:72px; padding-bottom:72px; }
	.adult-news.main_area_n { padding-top:78px; padding-bottom:78px; }
	.adult-news__lead { margin-top:28px; }
	.adult-news__button { margin-top:48px; }
	.adult-page .adult-contact__form label { margin-bottom:30px; }
	.about-cta-area { padding-bottom:58px; }
	.site-footer,
	.adult-footer { padding-top:68px; }

	.adult-mobile-menu {
		max-height: calc(100vh - 78px);
		overflow-y: auto;
	}

	.adult-mobile-menu__related {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 9px;
		margin-top: 24px;
		padding-top: 22px;
		border-top: 1px solid rgba(40,107,100,.2);
	}

	.adult-mobile-menu__related a {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 48px;
		padding: 9px 8px;
		box-sizing: border-box;
		color: #286b64;
		border: 1px solid rgba(40,107,100,.34);
		border-radius: 6px;
		background: #fff;
		font-size: 11px;
		line-height: 1.45;
		text-align: center;
	}

	.adult-footer__brand h2 {
		font-size: 25px;
		line-height: 1.35;
		white-space: nowrap;
	}

/* スマホ：記事カードタイトルを全ページで読みやすく統一 */
	#rpwwt-recent-posts-widget-with-thumbnails-2 .rpwwt-post-title,
	#rpwwt-recent-posts-widget-with-thumbnails-3 .rpwwt-post-title,
	.school-blog-grid h2,
	.adult-blog-grid h2 {
		font-size: 15px;
		font-weight: 800;
		line-height: 1.65;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-2 .rpwwt-post-title,
	#rpwwt-recent-posts-widget-with-thumbnails-3 .rpwwt-post-title {
		margin-top: 14px;
		margin-bottom: 12px;
	}

	#rpwwt-recent-posts-widget-with-thumbnails-3 .rpwwt-post-title {
		font-size: 14px;
	}

/* スマホ：学校ブログ・活動日記・大人ブログの一覧レイアウトを統一 */
	.school-blog-hero,
	.adult-blog-hero {
		padding: 58px 20px 56px;
	}

	.school-blog-hero > p:first-child,
	.adult-blog-hero .adult-en {
		margin-bottom: 14px;
		font-size: 12px;
		line-height: 1.4;
	}

	.school-blog-hero h1,
	.adult-blog-hero h1 {
		font-size: 31px;
		line-height: 1.35;
	}

	.school-blog-hero > div,
	.adult-blog-hero > p:last-child {
		margin-top: 18px;
		font-size: 12px;
		line-height: 1.8;
	}

	.school-blog-main,
	.adult-blog-main {
		padding-top: 30px !important;
	}

	.school-blog-main::before,
	.adult-blog-main::before {
		height: 94px;
	}

	.school-blog-tabs,
	.adult-blog-tabs {
		margin-top: 0 !important;
		margin-bottom: 72px !important;
	}

	.school-blog-tabs a,
	.adult-blog-tabs a {
		flex: 0 1 108px;
		padding: 8px 4px;
		font-size: 11px;
	}

	.school-blog-grid article div,
	.adult-blog-grid article div {
		padding: 19px 24px 22px;
	}

	.school-blog-grid h2,
	.adult-blog-grid h2 {
		margin-top: 15px;
		margin-bottom: 9px;
	}

	.school-blog-grid p,
	.adult-blog-grid p {
		font-size: 12px;
		line-height: 1.75;
	}

	.single-archive-tabs {
		margin: 0 !important;
		padding: 30px 20px;
		box-sizing: border-box;
		background: #e9ecd8 !important;
	}

	.has-archive-heading .single-article-main {
		padding-top: 42px;
	}

	.single-article__category {
		padding: 6px 12px;
		color: #fff !important;
		font-size: 10px;
	}

	.single-article__header h1 {
		margin-top: 17px;
		font-size: 27px;
		line-height: 1.55;
	}

	.contact-page .contact-form-card {
		padding: 30px 24px 34px;
	}

	.contact-page .contact-form-placeholder {
		margin-top: 54px;
		margin-bottom: 42px;
	}

	.contact-page .contact-form-placeholder h3 {
		margin-bottom: 7px;
		line-height: 1.35;
	}

	.contact-page .contact-form-placeholder__en {
		margin-top: 0;
		margin-bottom: 22px;
	}

	.contact-page .contact-form-placeholder__text {
		line-height: 2;
	}

	.contact-page .contact-form-demo {
		gap: 34px;
	}

	.adult-contact__heading .adult-en {
		margin-bottom: 20px;
	}

	.adult-contact__heading > p:last-child {
		margin-top: 27px;
		line-height: 2;
	}

	.school-blog-hero,
	.adult-blog-hero {
		padding-top: 42px;
		padding-bottom: 40px;
	}

	.school-blog-hero > p:first-child,
	.adult-blog-hero .adult-en {
		margin-bottom: 11px;
		font-size: 11px;
	}

	.school-blog-hero h1,
	.adult-blog-hero h1 {
		font-size: 28px;
	}

	.school-blog-hero > div,
	.adult-blog-hero > p:last-child {
		margin-top: 14px;
		font-size: 11px;
		line-height: 1.7;
	}

  /* トップ：クラス紹介 */
  .home-classes {
    padding: 58px 20px;
  }

  .home-classes__en {
    margin-top: 8px;
    font-size: 13px;
  }

  .home-classes__title {
    font-size: 34px;
  }

  .home-classes__lead {
    max-width: 20em;
    margin: 16px auto 28px;
    font-size: 13px;
    line-height: 1.8;
  }

  .home-classes__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .home-class-card {
    border-radius: 12px;
  }

  .home-class-card__photo {
    aspect-ratio: 16 / 9;
  }

  .home-class-card__body {
    padding: 20px 18px 18px;
  }

  .home-class-card__heading {
    margin-bottom: 10px;
  }

  .home-class-card__heading h3 {
    font-size: 21px;
  }

  .home-class-card__body > p {
    margin-bottom: 18px;
    font-size: 13px;
    line-height: 1.8;
  }

  .home-class-card__button {
    min-height: 48px;
    font-size: 13px;
  }

  /* クラス紹介：活動写真ギャラリー */
  .class-photo-gallery {
    margin: 54px -20px 66px;
  }

  .class-photo-gallery__en,
  .class-photo-gallery > h3 {
    margin-right: 20px;
    margin-left: 20px;
  }

  .class-photo-gallery__en {
    font-size: 12px;
  }

  .class-photo-gallery > h3 {
    margin-bottom: 22px;
    font-size: 23px;
  }

.class-photo-gallery__track {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding: 0 20px 12px 32px;
    scroll-padding-left: 32px;
    scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.class-photo-gallery__guide {
  margin: 0 40px 0 auto;
}

  .class-photo-gallery__track::after {
    content: "";
    flex: 0 0 8px;
  }

  .class-photo-gallery__item,
  .class-photo-gallery__item--main {
    flex: 0 0 78vw;
    height: 250px;
    border-radius: 9px;
    scroll-snap-align: start;
  }

  .class-photo-gallery__item figcaption,
  .class-photo-gallery__item--main figcaption {
    right: 14px;
    bottom: 12px;
    left: 14px;
    font-size: 12px;
  }

  .class-season__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }

  .class-season__grid div {
    padding: 14px;
  }

}
