@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100..900&display=swap');

:root {
	--brown: #523221;
	--brown2: #8e6859;
	--beige: #efeae8;
	--beige2: #f6f4f4;
	--gray: #f9f9f9;
	--red: #d33a3a;
}

/*-------------------------------------------------------
 common
-------------------------------------------------------*/

.iblock {
	display: inline-block;
}

#main .w100{
	width: 100%;
}

#main .w80{
	width: 80%;
}

/* margin */
#main .mtop-1 {
	margin-top: 1rem;
}

#main .mtop-2 {
	margin-top: 2rem;
}

#main .mtop-3 {
	margin-top: 3rem;
}

#main .mtop-4 {
	margin-top: 4rem;
}

#main .mtop-5 {
	margin-top: 5rem;
}

#main .mtop-6 {
	margin-top: 6rem;
}

#main .mbtm-1 {
	margin-bottom: 1rem;
}

#main .mbtm-2 {
	margin-bottom: 2rem;
}

#main .mbtm-3 {
	margin-bottom: 3rem;
}

#main .mbtm-4 {
	margin-bottom: 4rem;
}

#main .mbtm-5 {
	margin-bottom: 5rem;
}

#main .mbtm-6 {
	margin-bottom: 6rem;
}

/* text align */
#main .text-left {
	text-align: left;
}

#main .text-right {
	text-align: right;
}

#main .text-center {
	text-align: center;
}

#main .centering {
	width: fit-content;
	margin-inline: auto;
}

#main .en {
	font-family: "Montserrat", sans-serif;
}

#main b {
	color: var(--red);
}

/* note style */
#main .note {
	line-height: 1.5;
	color: inherit;
}

#main .note+.note {
	margin-top: .3em;
}

#main .note li {
	padding-left: 1.1em;
	position: relative;
}

#main .note li:not(:last-child) {
	margin-bottom: .3em;
}

#main .note li::before {
	content: '※';
	display: inline-block;
	position: absolute;
	left: 0;
}

#main .numnote {
	counter-reset: numnote;
}

#main .numnote li {
	padding-left: 2em;
}

#main .numnote li::before {
	content: '※' counter(numnote);
	counter-increment: numnote;
	letter-spacing: .1em;
}

/* #main .numnote.countreset-2 {
	counter-reset: numnote 1;
}

#main .numnote.countreset-3 {
	counter-reset: numnote 2;
}

#main .numnote.countreset-4 {
	counter-reset: numnote 3;
}

#main .numnote.countreset-5 {
	counter-reset: numnote 4;
}

#main .numnote.countreset-6 {
	counter-reset: numnote 5;
} */

#main .numlist {
	counter-reset: numlist;
}

#main .numlist li::before {
	content: counter(numlist)'.';
	counter-increment: numlist;
}

/* object fit */
#main .objectfit-cover {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#main .objectfit-contain {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

#main .flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

#main .flex.columns-2>* {
    width: 48%;
}

#main .flex.columns-3>* {
    width: 30%;
}

#main .flex.columns-4>* {
    width: 23%;
}

@media (max-width: 767px) {
    #main .flex.columns-2 ,
    #main .flex.columns-3 ,
    #main .flex.columns-4 {
        gap: 2em 4%;
    }

    #main .flex.columns-2>* {
        width: 100%;
    }

    #main .flex.columns-3>*,
    #main .flex.columns-4>* {
        width: 48%;
    }
}

@media (max-width: 500px) {
    #main .flex.columns-3>* {
        width: 100%;
    }
}

#main .box-wide {
    width: 100%;
}

/*-------------------------------------------------------
 header
-------------------------------------------------------*/
#main .page-header {
	position: relative;
}

@media screen and (min-width:768px) {
	#main .page-header {
		height: 500px;
		display: flex;
	}
}

#main .page-header .hgroup {
    width: min(680px, 40%);
    padding: 1em;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    flex-shrink: 0;
    background: var(--beige);
}

@media (max-width:767px) {
	#main .page-header .hgroup {
		width: min(460px, 85%);
		padding: 2em 1em;
		position: absolute;
		left: 50%;
		top: 50%;
		translate: -50% -50%;
		z-index: 2;
		background-color: rgb(240 240 240/0.9);
	}
}

#main .page-header .hgroup .sub {
	font-size: min(1.4em, 4.5vw) !important;
	color: var(--brown);
}

#main .page-header .hgroup .page-title {
	margin-top: .3em;
	font-size: min(2.5em, 7vw);
}

#main .page-header .hgroup .page-title .sml {
	display: block;
	margin-inline: auto;
	font-size: .75em;
}

#main .page-header .hgroup p:not(.sub) {
	margin-top: 1.5em;
	font-size: min(1em, 3.8vw);
}

#main .page-header .img {
	flex-grow: 1;
	flex-shrink: 1;
}

@media (max-width:767px) {
	#main .page-header .img {
		width: 100%;
		height: min(500px, 100vw);
		position: relative;
		z-index: 1;
	}
}

/*==============================================================
contents
==============================================================*/
#main .contents-title {
    text-align: center;
    font-size: min(1.8em, 5.4vw);
    font-weight: 500;
    letter-spacing: .05em;
    text-decoration: none;

}

#main .contents-title .tsmol {
	font-size: 0.8em;
	display: block;
	margin-bottom: 0.3em;
}

#main .contents-lead {
	margin-top: 1.2em;
	text-align: center;
	font-size: min(1.2em, 4vw);
}

#main .link-btn {
    display: block;
    width: max-content;
    padding: .7em 3em;
    margin: 0 auto;
    text-align: center;
    font-size: min(1em, 4vw);
    font-weight: 500;
    letter-spacing: .05em;
    text-decoration: none;
    background-color: #fff;
    color: var(--brown);
    border: solid 1px var(--brown);
    border-radius: 100vmax;
    transition: all .2s linear;
    cursor: pointer;
    position: relative;
}

#main .link-btn:hover {
    background-color: var(--brown2);
    color: #fff;
}

#main .link-btn::before,
#main .link-btn::after {
    content: '';
    position: absolute;
    right: 1em;
    top: 50%;
    border-color: var(--brown);
    transition: all .2s ease;
}

#main .link-btn:hover::before,
#main .link-btn:hover::after {
    border-color: #fff;
}

#main .link-btn::before {
    width: .5em;
    height: .5em;
    border-top: solid 1px;
    border-right: solid 1px;
    transform: rotate(45deg) translate(0, -40%);
    transform-origin: center top;
}

#main .link-btn::after {
    width: .8em;
    height: .8em;
    border-top: solid 1px;
}

#main .link-btn.under-arrow::before {
	transform: rotate(135deg) translate(0, -30%);
	transform-origin: center top;
}

#main .link-btn.under-arrow::after {
	content: none;
}

/*==============================================================
modal-contents
==============================================================*/
.modal-contents {
	display: none;
}

.pagemodal-bg,
.pagemodal-bg * ,
.pagemodal-bg *::before ,
.pagemodal-bg *::after {
	box-sizing: border-box;
}

.pagemodal-bg {
	width: 100dvw;
	height: 100dvh;
	padding: min(4em, 15vw) min(4em, 5vw);
	position: fixed;
	inset: 0;
	background-color: rgba(0, 0, 0, 0.8);
	overflow-y: scroll;
	z-index: 8001;
	display: none;
	cursor: pointer;

	font-family: 'Roboto', 'NotoSansCJKjp', 'Hiragino Kaku Gothic ProN', メイリオ, Meiryo, sans-serif;
	text-align: left;
	font-size: 16px;
}

.pagemodal-bg .close-btn {
	--border-color: var(--beige);
	width: min(3em, 15vw);
	height: min(3em, 15vw);
	display: grid;
	place-items: center;
	cursor: pointer;
	pointer-events: auto;
	position: fixed;
	right: min(.5em, 3vw);
	top: min(.5em, 3vw);
	z-index: 8003;
}

.pagemodal-bg .close-btn::before,
.pagemodal-bg .close-btn::after {
	content: "";
	width: 70%;
	position: absolute;
	left: 50%;
	top: 50%;
	border-top: solid 3px var(--border-color);
	transform: translate(-50%, -50%) rotate(45deg);
}

.pagemodal-bg .close-btn::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.pagemodal {
	width: min(1100px, 100%);
	margin: 0px auto;
	min-height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: unset;
	cursor: default;
	pointer-events: none;
	position: relative;
	z-index: 8002;
}

.pagemodal-inner {
	width: 100%;
	margin: 0px auto;
	padding: min(2em, 8vw) min(2em, 5vw);
	border-radius: .5em;
	background-color: #fff;
	box-shadow: rgba(30, 30, 30, 0.4) 0px 0px 3px 0px;
	position: relative;
	pointer-events: auto;
}

.pagemodal-inner .modal-title {
	margin-bottom: .75em;
	font-size: min(1.5em, 5vw);
	font-weight: 500;
	text-decoration: none;
}

.pagemodal img,
.pagemodal video,
.pagemodal iframe {
	max-width: 100%;
	height: auto;
	vertical-align: top;
}

.pagemodal video,
.pagemodal iframe {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* image */
.type-image .pagemodal {
	width: min(900px, 100%);
}

.type-image .pagemodal-inner {
	padding: 1em;
}


/* video, youtube */
.type-video,
.type-youtube {
	--ratio-w: 16;
	--ratio-h: 9;
	height: 100%;
	padding: 0;
}

.type-video .pagemodal,
.type-youtube .pagemodal {
	height: 100%;
}

.type-video .pagemodal-inner,
.type-youtube .pagemodal-inner {
	width: min(90%, calc(90dvh * (var(--ratio-w) / var(--ratio-h))));
	max-width: 100%;
	aspect-ratio: var(--ratio-w) / var(--ratio-h);
	padding: 0;
	background-color: transparent;
	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
}

/* vertical-mov */
.vertical-mov {
	--ratio-w: 9;
	--ratio-h: 16;
}

html.pagemodal-open {
	overflow: clip;
	width: 100%;
	height: 100%;
}