@charset "UTF-8";


body { margin: 0; padding: 0; font-size: 100%; font: inherit; color: inherit; line-height: inherit; vertical-align: baseline; background: initial; border: 0; }

#container{ font-family: "Yu Gothic UI", "Meiryo UI", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Arial, "Helvetica Neue", sans-serif; margin: 0; padding: 0; }

.g-header__home { display: inline-block; }
.g-header__ttl { font-weight: 700; pointer-events: none; }
.g-header__logo { vertical-align:middle; }


@media (hover: hover) { .g-footer__pagetop:hover, .g-footer__link:hover {opacity: 0.5;} }

@media screen and (min-width: 769px), print {
	.g-header__wrap , .g-footer__wrap { margin-left: auto; margin-right: auto; padding-left: 30px; padding-right: 30px; max-width: 960px; position: relative; }
}

@media screen and (min-width: 769px),print {
	#main{ margin-left: auto; margin-right: auto; padding-left: 30px; padding-right: 30px;max-width:700px;}
    .g-header { padding:18px 0 16px; border-bottom: 3px solid #d6082e; }
    .g-header__logo { width: 124px; }
    .g-header__ttl { position: absolute; top: 0; left: 0; display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; font-size: 1.5rem; }
    .g-header__ttl .ttl_s {font-size:1.2rem}
}

@media screen and (max-width: 768px),print {
	#main{ margin-left: auto; margin-right: auto; padding-left: 10px; padding-right: 10px; max-width:100%;}
    .g-header { padding:min(10.5px,1.8666666667vw) min(15px,2.6666666667vw); border-bottom: min(3px,0.5333333333vw) solid #d6082e; }
    .g-header__wrap { display: flex; justify-content: space-between; align-items: center; }
    .g-header__logo { width: min(135px,24vw); }
    .g-header__ttl { font-size: min(27px,4.8vw); letter-spacing: .03em; padding-left:10px; font-size:4vw}
}

.g-footer__pagetop {
	position: fixed;
	z-index: 1;
	aspect-ratio: 1/1;
	background: url("../img/icon-pagetop.png") no-repeat center center/contain;
	transition: opacity 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
}

body:not(.is-scroll) .g-footer__pagetop { opacity: 0; pointer-events: none; }
.g-footer__wrap { font-weight: 400; }
.g-footer__list { display: flex; align-items: center; padding-left:0; }
.g-footer__li { list-style:none; }
.g-footer__link { color: #ffffff; }
a { text-decoration: none; }

@media screen and (min-width: 769px), print {
	.g-footer { background: url("../img/bg.png") no-repeat center center/cover; }
	.g-footer__pagetop { right: 40px; bottom: 40px; width: 60px; }
	.g-footer__wrap { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; min-height: 66px;}
	.g-footer__li { font-size: 0.75rem; }
	.g-footer__li:not(:last-of-type) { padding-right: 20px; margin-right: 20px; border-right: 1px solid #ffffff; }
	.g-footer__copy { margin-left: auto; font-size: 0.75rem; color: #999; }
}
@media screen and (max-width: 768px), print {
	.g-footer { background-color: #585755; }
	.g-footer__pagetop { right: min(30px, 5.3333333333vw); bottom: min(99px, 17.6vw); width: min(69px, 12.2666666667vw); }
	.g-footer__list { flex-wrap: wrap; justify-content: center; gap: min(24px, 4.2666666667vw) 0; padding: min(36px, 6.4vw) 0 min(30px, 5.3333333333vw); }
	.g-footer__li { font-size: min(16.5px, 2.9333333333vw); text-align: center; }
	.g-footer__li:first-of-type { padding-right: min(30px, 5.3333333333vw); margin-right: min(30px, 5.3333333333vw); border-right: 1px solid #ffffff; }
	.g-footer__li:last-of-type { width: 100%; }
	.g-footer__copy { padding: min(18px, 3.2vw); font-size: min(18px, 3.2vw); color: #ffffff; text-align: center; background-color: #454545; }
}

/* ------------page link----------------------------- */

.page-link { position: relative; padding: 8px; margin: 0 10px 30px; border: 1px solid #ccc; border-radius: 6px; }
.page-link li { display: block; vertical-align: top; margin: 8px 10px 0 0; padding-left: 16px; line-height: 1.2; background: url(../img/icon_right.png) no-repeat left 0.1em; }

.page-link.asideBox {display: block; }
.page-link.asideBox p.stitle {padding: .2em 0 .5em; }
.page-link.asideBox div.lb {border-top: 1px dotted #666;padding: .5em 0 .2em; }

@media screen and (min-width: 769px), print {
	.page-link { padding: 8px 0px 8px 15px;margin: 0 0 30px; }
	.page-link ul { margin: -5px 0; padding-left:0 }
	.page-link ul li { margin: 0.7em 1em 0.7em; }
	.page-link.asideBox { display: flex;flex-wrap: wrap;align-items: center; background: #FFF; }
	.page-link.asideBox p.stitle { padding: 0 10px 0 0;white-space: nowrap; }
	.page-link.asideBox div.lb { border-left: 1px dotted #666;border-top: none;padding: 0; }
}
@media screen and (max-width: 768px), print {
	.page-link.asideBox p.stitle {margin:0; }
	.page-link.asideBox ul { margin: 0 0 -0.5em; padding-left:0}
	.page-link.asideBox ul li { margin: 0.7em 0 0.7em; font-size:0.9em}
}
