@charset 'UTF-8';
/* CSS Document */

@media only screen and (max-width: 1000px) {
body:before { display: none; }
body:after { display: none; }
section.main-visual div.inner { /* min-width: 100rem !important; */ max-width: inherit; padding: 8rem 2rem 0; }
}

@media only screen and (max-width: 768px) {
/* -------------------------------------------------------- header */
div.wrapper { padding-top: 0; }
div.inner { padding-left: 1rem; padding-right: 1rem; box-sizing: border-box; }
header { width: 100%; position: relative; top: 0; padding: 0; box-shadow: none; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.09); max-height: inherit !important; background: #fff; }
header > div.inner { height: auto; padding: 0; max-height: none; }
header div.top { display: none; }
header div.logo { float: none; padding: 0; margin-bottom: 0; margin: 0; width: 100%; /* margin-top: 1rem; */ padding-top: 1rem; max-width: 32.0rem; }
header div.logo a img { width: calc(100% - 4rem); max-width: 56rem; height: auto; /* margin-left: auto; margin-right: auto; */ display: block; left: 0; top: 0; padding-top: 0.25rem; padding-bottom: 0.25rem; }
header div.header-top { /* padding-bottom: 1rem; */ }
header div.header-top div.utility { float: none; }
header div.header-top div.utility div.utility-top { text-align: left; }
header div.header-top div.utility div.utility-top ul { margin-bottom: 0.25rem; }
header div.header-top div.utility div.utility-top ul li:last-child a { padding-top: 0.125rem; padding-bottom: 0.125rem; }
header div.header-top div.utility div.utility-bottom { text-align: center; }
footer a span { font-size: 2.4rem; }
header div.logo a { /* font-size: 2rem; */ float: none; position: relative; /* top: -0.75rem; */ display: block; margin-bottom: 0.5rem; }
/* -------------------------------------------------------- header ul.utility */
header > div.inner.clearfix > div.fr { float: none; }
header ul.utility { background: #f0f0f0; }
header ul.utility { width: 100%; text-align: center; }
header ul.utility li a { font-size: 1.1rem; white-space: nowrap; padding: 0 0.2em; }
header ul.utility li a::before { border: none; content: ""; height: auto; left: 0; margin: 0; position: relative; top: 0; transform: none; width: auto; }

/* -------------------------------------------------------- header nav */
header nav { left: 0; /* top: -1.25rem; */ overflow: visible; width: 100%; float: none; border: none; }
header nav.clearfix { min-height: inherit !important; }
header nav.clearfix:after { display: none; }
header nav div.inner { width: 100%; padding: 0; }
header nav ul { display: block; width: 100%; max-height: 0; margin: 0 auto; transition: all .5s ease-in-out; height: auto; /* background: #39454f; */ padding: 0; overflow: hidden; float: none; }
header nav ul.active { max-height: 1000px; }
header nav ul li { font-size: 1.6rem; display: block; /* border-bottom: 1px solid #e6e6e6; */ height: 100%; margin-right: 0; width: 100%;/* background: #39454f; */ }
nav ul li:after { display: none; }
nav ul li:first-child:before { display: none; }
header nav ul li:first-child { /* border-top: 1px solid #e6e6e6; */ }
header nav ul li:last-child { border-bottom: none; }
header nav ul li a { font-weight: normal; position: relative; display: block; box-sizing: border-box; width: 100%; /* height: 100%; */ padding: 2rem 2rem; text-align: left; font-size: 1.6rem; border-bottom: 0.1rem solid #ddd; transition: 0.25s all; min-height: 4rem; background: #f8f8f8; }
header nav ul li:first-child a { /* border-top: 0.1rem solid #a3a37c; */ }
header nav ul li a:after { position: absolute; top: 50%; right: 1.5rem; left: inherit; display: block; width: 0.75rem; height: 0.75rem; margin-top: 0; content: ''; transition: all .2s ease-in-out; transform: translateY(-50%) rotate(45deg); border-top: 0.1rem solid #a3a37c; border-right: 0.1rem solid #a3a37c; background: none; }
header nav ul li:first-child a::before { position: relative; top: auto; left: 0; width: auto; height: auto; margin-top: 0; content: ''; background: none; }
header nav ul li a:first-child { /* border-top: 0.1rem solid #e9ebec; */ }
/* header nav ul li a:last-child { border-bottom: none; } */
/* header nav ul li a::after {  position: relative; z-index: 9999; bottom: 0; left: 0; width: 0; height: auto; content: ''; background: none;   }*/

nav ul li a:hover { opacity: 1; }
nav ul li a:hover::after { /* left: inherit; border-right: 0.1rem solid #b09c7a; border-top: 0.1rem solid #b09c7a; */ }
nav ul li.current a { color: #333; }
nav ul li.current:after { position: relative; content: ""; bottom: 0; width: auto; height: 0; left: 0; background: none; transform: translateX(-50%); }
header nav ul li a div { display: inline-block; vertical-align: middle; }
/* -------------------------------------------------------- menu-button */
header div.menu-button { position: absolute; top: 0; right: 0; display: block; width: 4rem; height: 4rem; z-index: 9999; }
header div.menu-button div.menu-trigger { display: block; cursor: pointer; }
header div.menu-button div.menu-trigger > div { position: relative; display: block; width: 40px; height: 40px; margin: 0 auto; }
header div.menu-button div.menu-trigger > div div.label { font-size: 1.0rem; font-weight: normal; position: absolute; box-sizing: border-box; width: 40px; /* color: #f35955; */ color: #a3a37c; bottom: -0.5em; text-align: center; }
header div.menu-button div.menu-trigger > div div.label::before { content: 'MENU'; }
header div.menu-button div.menu-trigger > div div.label.open::before { content: 'CLOSE'; }
header div.menu-button div.menu-trigger > div div.hamburger { position: relative; width: 40px; height: 40px; }
header div.menu-button span { position: absolute; left: 0; display: inline-block; box-sizing: border-box; width: 20px; height: 2px; transition: all .4s; background: #a3a37c; }
header div.menu-button span:nth-of-type(1) { top: 13px; left: 10px; }
header div.menu-button span:nth-of-type(2) { top: 19px; left: 10px; }
header div.menu-button span:nth-of-type(3) { bottom: 13px; left: 10px; }
header div.menu-button.active span:nth-of-type(1) { transform: translateY(6px) rotate(-45deg); }
header div.menu-button.active span:nth-of-type(2) { opacity: 0; }
header div.menu-button.active span:nth-of-type(3) { transform: translateY(-6px) rotate(45deg); }

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

div.link a::before { height: 0.5rem; width: 0.5rem; }
div.contents-wrapper { background: #fff;/* padding-left: 1rem; padding-right: 1rem; */ }
div.contents-wrapper > div.inner { padding: 0; padding-left: 1rem; padding-right: 1rem; }
section { font-size: 1.6rem; line-height: 1.75; padding-top: 4rem; padding-bottom: 4rem; }
section div.title { margin-bottom: 2rem; text-align: center; }
section div.title h2 { font-size: 2.1rem; letter-spacing: 0.125rem;/* transform: scaleY(0.95); */ height: auto; padding-top: 2rem; padding-bottom: 2rem; border-left: none; }
section div.title h2 span { left: auto; position: relative; top: auto; transform: none; white-space: nowrap; padding-top: 1rem; padding-bottom: 1rem; }
/* */
section.link ul li { /* float: none; margin-right: 0; margin-bottom: 2rem; width: 100%; */ }
section div.titles-wrap { float: none; margin-right: 0; width: 100%; }
section div.titles-wrap + div { /* float: none; width: 90%; */ }
section div.titles-wrap div.description { margin-bottom: 2rem; }

section.main-visual { min-height: inherit; max-height: inherit; margin-bottom: 0; }
section.main-visual div.inner { padding: 0 2rem 0; height: auto; }
section.main-visual div.titles-wrap div.description div.copy { width: 80%; max-width: 35rem; min-width: 20rem; margin-top: 3rem; }
section.main-visual div.main-visual-figure { width: calc(100% - 4rem); }
section.main-visual div.main-visual-figure img { border-radius: 0 0 0 10rem; display: block; height: auto; position: relative; top: -10rem; box-shadow: -3rem 3rem 4rem rgba(0,22,38,0.09); z-index: 1; }
section.main-visual div.main-visual-figure:after { /* width: 80%; height: 20rem; max-height: 40rem; position: absolute; content: ""; background: #e1f0fa; z-index: 0; bottom: 8rem; right: 0; border-radius: 0 0 0 10rem; opacity: 0.75; */ }
section.main-visual div.titles-wrap div.description div.copy::after, section.main-visual div.titles-wrap div.description div.copy::before { display: none; }
section.outline div.inner div.link { width: 100%; }

section.topics div.inner { padding-bottom: 0; }
section.topics div.inner div.link { position: relative; bottom: inherit; left: inherit; width: 100%; min-width: inherit; margin-left: auto; margin-right: auto; display: block; }
div.topics-list ul, div.event-list ul { padding-left: 0; padding-right: 0; min-height: auto; }
div.topics-list ul li a, div.event-list ul li a  { padding: 2rem 3rem 2rem 0; }

section.achievement div.inner div.link { width: 100%; }

footer { padding-bottom: 2rem; }
footer a[href^="tel:"] { /* color: #fff; */ }
footer div.logo { float: none; margin-bottom: 1rem; padding-left: 3rem; padding-right: 3rem; box-sizing: border-box; width: 100%; text-align: center; margin-left: auto; margin-right: auto; max-width: 40rem; }
footer div.logo a { font-size: 2rem; }
footer div.logo img { max-width: 48rem; width: calc(100% - 8rem); }
footer div.footer-information { float: none; text-align: center; width: 100%; }
header div.logo a img { /* width: 100%; */ max-width: 56rem; height: auto; /* margin-left: auto; margin-right: auto; */ display: block; left: 0; top: 0; padding-top: 0.25rem; padding-bottom: 0.25rem; }

div.page-title div.title { text-align: left; }
div.page-title div.title h1 { font-size: 2.4rem; letter-spacing: 0.1rem; }
div.page-title div.description div { font-size: 1.4rem; }
div.page-title div.description h2 { text-align: left; }
section.greeting div.greeting-bg { height: auto; width: 100%; left: 0; transform: translateX(0); }
section.greeting div.greeting-bg img { position: relative; opacity: 0.25; left: auto; right: auto; transform: none; max-width: 80%; margin-left: auto; margin-right: auto; display: block; height: auto; }
section.greeting div.greeting-bg img { }
div.agree-text { padding: 1rem 1.5rem; }
div.article-list ul li { width: 100%; }
}


@media only screen and (max-width: 480px) {
section.outline div.outline-list:before { background: none;/* background: #f8f8f8; top: 10rem; width: 100vw; height: 10rem; left: 50%; transform: translateX(-50%); position: absolute; content: ""; */ }
section.outline div.outline-list ul { margin-bottom: 4rem; }
section.outline div.outline-list ul li { width: 100%; margin-right: 0; margin-bottom: 2rem; position: relative; }
section.outline div.outline-list ul li:before { background: #f8f8f8; top: 10rem; width: 100vw; height: 10rem; left: 50%; transform: translateX(-50%); position: absolute; content: ""; z-index: 0; }
section.outline div.outline-list ul li div.thumbnail { width: 20rem; /* min-width: 20rem; */ /* margin-left: auto; margin-right: auto; */ float: left; overflow: hidden; position: relative; z-index: 1; }
section.outline div.outline-list ul li div.thumbnail img { margin-left: -2rem; }
section.outline div.outline-list ul li div.details-wrap { float: left; width: calc(100% - 20rem + 2rem); margin-left: -3rem; margin-right: -2rem; padding-top: 2.5rem; }
section.outline div.outline-list ul li div.details-wrap div.headline { text-align: left; }
section.staff div.staff-list ul li { width: 100%; margin-right: 0; }
section.staff div.staff-list ul li:first-child { margin-bottom: 4rem; }
section.achievement div.inner div.link { width: 100%; /* margin-left: auto; margin-right: auto; */ display: block; margin-bottom: 2rem; }

footer div.logo img { max-width: 100%; width: 100%; }
footer div.footer-information { font-size: 1.3rem; line-height: 1.25; }
}
