body {
  padding: 0;
  background-color: #fff; }

/*********/
.mv {
  height: 900px;
  width: 100%;
  position: relative;
  background: url("../images/index/top_fv.jpg") center center no-repeat;
  background-size: cover; }
  .mv .mv_ttl {
    transition: .3s;
    text-align: center;
    position: absolute;
    z-index: 10;
    top: 50%;
    left: 50%;
    width: 100%;
    max-width: 1060px;
    transform: translate(-50%, -50%);
    color: #fff; }
    .mv .mv_ttl .emphasis {
      text-emphasis: filled dot;
      -webkit-text-emphasis: filled dot;
      text-emphasis-position: over; }
    .mv .mv_ttl p {
      font: 2rem/1em "Noto Sans JP", sans-serif;
      font-weight: 500;
      letter-spacing: 0.3em;
      margin-bottom: 40px;
      position: relative;
      padding: 0 0 28px; }
      .mv .mv_ttl p:before, .mv .mv_ttl p:after {
        position: absolute;
        content: "";
        display: block;
        width: 65%;
        height: 1px;
        background-color: #CCD9DC;
        left: 0;
        bottom: 4px; }
      .mv .mv_ttl p:after {
        left: auto;
        right: 0;
        bottom: 0; }
    .mv .mv_ttl h1 {
      transition: .3s;
      font: 4.4rem/1em "Zen Old Mincho", serif;
      font-weight: 500;
      letter-spacing: 0.2em;
      margin-bottom: 50px; }
      .mv .mv_ttl h1 br {
        display: none; }
    .mv .mv_ttl small {
      display: block;
      font: 3rem/1.5em "Cormorant Garamond", serif;
      font-weight: 400;
      letter-spacing: 0.2em; }

@media (max-width: 1280px) {
  .mv .mv_ttl {
    max-width: 1015px;
    overflow: hidden; }
    .mv .mv_ttl h1 {
      font: 4.2rem/1em "Zen Old Mincho", serif;
      font-weight: 500;
      letter-spacing: 0.2em;
      margin-right: -0.5em; } }
@media (max-width: 1024px) {
  .mv {
    height: 800px;
    width: 100%; }
    .mv .mv_ttl {
      max-width: 768px; }
      .mv .mv_ttl h1 {
        font: 4.4rem/1.7em "Zen Old Mincho", serif;
        font-weight: 500;
        letter-spacing: 0.02em;
        margin: 0 auto 32px; }
        .mv .mv_ttl h1 br {
          display: block; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .mv {
    height: 800px;
    width: 100%;
    position: relative;
    background: url("../images/index/top_fv_sp.jpg") center center no-repeat;
    background-size: cover; }
    .mv .mv_ttl {
      width: calc(100% - 60px); }
      .mv .mv_ttl p {
        font: 1.8rem/1em "Noto Sans JP", sans-serif;
        font-weight: 500;
        letter-spacing: 0.2em;
        margin-bottom: 30px;
        position: relative;
        padding: 0 0 28px; }
      .mv .mv_ttl h1 {
        font: 3.5rem/2em "Zen Old Mincho", serif;
        font-weight: 500;
        letter-spacing: 0.02em;
        margin-bottom: 32px; }
      .mv .mv_ttl small {
        display: block;
        font: 2.6rem/1.5em "Cormorant Garamond", serif;
        font-weight: 400;
        letter-spacing: 0.2em; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .mv {
    height: 750px;
    width: 100%;
    position: relative;
    background: url("../images/index/top_fv_sp.jpg") center center no-repeat;
    background-size: cover; }
    .mv .mv_ttl {
      top: 52%;
      width: calc(100% - 40px); }
      .mv .mv_ttl p {
        font: 1.7rem/1em "Noto Sans JP", sans-serif;
        font-weight: 500;
        letter-spacing: 0.2em;
        position: relative;
        padding: 0 0 28px;
        max-width: 315px;
        margin: 0 auto 30px; }
      .mv .mv_ttl h1 {
        font: 2.5rem/2em "Zen Old Mincho", serif;
        font-weight: 500;
        letter-spacing: 0.2em;
        margin-bottom: 32px; }
      .mv .mv_ttl small {
        display: block;
        font: 2rem/1.5em "Cormorant Garamond", serif;
        font-weight: 400;
        letter-spacing: 0.2em; } }
/*max-width:480px*/
/*********/
.content_section {
  background-color: #F3FBFD; }
  .content_section h1 {
    color: #D3E3E6;
    max-width: 1200px;
    width: calc(100% - 80px);
    margin: 0 auto;
    position: relative;
    font: 12rem/1em "Cormorant Garamond", serif;
    font-weight: 400; }
    .content_section h1 span {
      margin: 15px 0 0;
      display: block;
      font: 2.2rem/1em "Noto Serif", serif;
      font-weight: 600;
      color: #202020;
      padding: 0 0 40px 44px;
      position: relative;
      letter-spacing: 0.1em;
      background: url("../images/logo.svg") top 2px left 8px no-repeat;
      background-size: 16px 18px;
      /* &:after{
         position: absolute;
         content: "";
         display: block;
         width: 16px;
         height: 18px;
         background-size: contain;
         left: 8px;
         top: 2px
      }*/ }
      .content_section h1 span:before, .content_section h1 span:after {
        position: absolute;
        content: "";
        display: block;
        width: 65%;
        height: 1px;
        background-color: #CCD9DC;
        left: 0;
        bottom: 8px; }
      .content_section h1 span:after {
        left: auto;
        right: 0;
        bottom: 0; }

/*min-width:1920px*/
/*max-width:1280px*/
@media (max-width: 1024px) {
  .content_section h1 {
    max-width: 896px;
    font: 11rem/1em "Cormorant Garamond", serif;
    font-weight: 400; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .content_section h1 {
    max-width: 404px;
    font: 10rem/1em "Cormorant Garamond", serif;
    font-weight: 400; }
    .content_section h1 span {
      margin: 15px 0 0;
      display: block;
      font: 2rem/1em "Noto Serif", serif;
      font-weight: 600; }
      .content_section h1 span:before, .content_section h1 span:after {
        width: 75%;
        bottom: 6px; }
      .content_section h1 span:after {
        bottom: 0; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .content_section h1 {
    width: calc(100% - 30px);
    font: 8rem/1em "Cormorant Garamond", serif;
    font-weight: 400; }
    .content_section h1 span {
      font: 1.8rem/1em "Noto Serif", serif;
      font-weight: 600;
      max-width: 315px;
      margin: 10px auto 0;
      padding: 0 0 30px 35px;
      background: url("../images/logo.svg") top 1px left 5px no-repeat;
      background-size: 16px 18px; } }
/*max-width:480px*/
/*********************************************/
.about {
  padding: 96px 0 0 0; }
  .about h1 {
    margin-bottom: 64px; }

.about_flex {
  max-width: 1200px;
  width: calc(100% - 80px);
  margin: 0 auto;
  position: relative; }
  .about_flex .txt {
    width: 100%;
    max-width: 580px;
    position: relative;
    z-index: 1; }
    .about_flex .txt p {
      font: 1.8rem/2.4em "Noto Serif", serif;
      font-weight: 500;
      letter-spacing: 0.1em;
      margin-bottom: 24px;
      text-align: justify;
      text-justify: inter-ideograph; }
  .about_flex .map {
    position: absolute;
    right: 0;
    top: 0;
    background: url("../images/index/aboutus_map.png") center right no-repeat;
    background-size: contain;
    aspect-ratio: 600/543;
    width: 100%;
    max-width: 600px;
    height: auto;
    transition: .3s; }

@media (max-width: 1280px) {
  .about_flex .map {
    background: url("../images/index/aboutus_map.png") center right -100px no-repeat;
    background-size: contain; } }
/*max-width:1280px*/
@media (max-width: 1024px) {
  .about_flex {
    max-width: 896px;
    margin: 0 auto;
    position: relative; }
    .about_flex .txt {
      margin-bottom: 72px; }
    .about_flex .map {
      position: relative;
      right: auto;
      top: auto;
      margin: 0 auto; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .about_flex {
    max-width: 404px;
    width: calc(100% - 60px); }
    .about_flex .txt {
      width: 100%;
      max-width: 580px;
      position: relative;
      z-index: 1; }
      .about_flex .txt p {
        font: 1.6rem/2.4em "Noto Serif", serif;
        font-weight: 500;
        letter-spacing: 0.1em;
        margin-bottom: 24px; }
        .about_flex .txt p br {
          display: none; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .about {
    padding: 64px 0 0 0; }
    .about h1 {
      margin-bottom: 40px; }

  .about_flex {
    max-width: 315px; }
    .about_flex .txt {
      width: 100%;
      max-width: 580px;
      position: relative;
      z-index: 1;
      margin-bottom: 40px; }
      .about_flex .txt p {
        font: 1.6rem/2.4em "Noto Serif", serif;
        font-weight: 500;
        letter-spacing: 0.1em;
        margin-bottom: 24px; }
      .about_flex .txt h2 {
        font: 3rem/1em "Noto Serif", serif;
        font-weight: 400;
        letter-spacing: 0.2em;
        margin-bottom: 44px; }
        .about_flex .txt h2 span {
          padding: 0 8px; }
    .about_flex .map {
      background: url("../images/index/aboutus_map_s.png") center center no-repeat;
      background-size: contain;
      aspect-ratio: 375/434;
      width: 100%;
      max-width: 375px;
      height: auto; } }
/*max-width:480px*/
/*********/
.news {
  padding: 296px 0 120px; }
  .news h1 {
    margin-bottom: 64px; }

.news-list {
  max-width: 1200px;
  width: calc(100% - 80px);
  margin: 0 auto 64px; }
  .news-list li {
    margin-bottom: 0; }

.block_link {
  display: block;
  background-color: #fff;
  width: 480px;
  height: 80px;
  border: 1px solid #A3B7BC;
  margin: 0 auto;
  text-align: center;
  font: 2rem/78px "Noto Serif", serif;
  font-weight: 500;
  text-decoration: none;
  letter-spacing: 0.1em;
  transition: .3s; }
  .block_link span {
    position: relative;
    padding: 0 48px 0 0; }
    .block_link span:before, .block_link span:after {
      transition: .3s;
      position: absolute;
      content: "";
      display: block;
      width: 24px;
      height: 24px;
      top: 1px;
      right: 0; }
    .block_link span:before {
      background: url("../images/common/arrow_block01.svg") center center no-repeat;
      background-size: contain; }
    .block_link span:after {
      background: url("../images/common/arrow_block02.svg") center center no-repeat;
      background-size: contain;
      opacity: 0; }

@media (hover: hover) {
  .block_link:hover {
    background-color: #0E798A;
    color: #fff; }
    .block_link:hover span {
      position: relative;
      padding: 0 48px 0 0; }
      .block_link:hover span:before {
        opacity: 0; }
      .block_link:hover span:after {
        opacity: 1; } }
@media (max-width: 1024px) {
  .news {
    padding: 96px 0 120px; }

  .news-list {
    max-width: 896px;
    width: calc(100% - 60px);
    margin: 0 auto 8px; }
    .news-list li {
      margin-bottom: 48px; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .block_link {
    width: calc(100% - 80px);
    max-width: 400px; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .news-list {
    max-width: 315px; }

  .news {
    padding: 64px 0 80px; }
    .news h1 {
      margin-bottom: 40px; }

  .block_link {
    width: calc(100% - 60px);
    max-width: 315px;
    font-weight: 500;
    font: 1.6rem/78px "Noto Serif", serif; } }
/*max-width:480px*/
