@charset "UTF-8";
/*-------------------------------------------
 variable
-------------------------------------------*/
/***  color  ***/
/***  font-size  ***/
/***  screen  ***/
/***  font(google)  ***/
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap");
/***  point  ***/
/*-------------------------------------------
 reset
-------------------------------------------*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, button, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video,
main {
  margin: 0;
  padding: 0;
  border: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  vertical-align: baseline; }

ol, ul {
  list-style: none; }
  ol > li, ul > li {
    list-style: inherit; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

input[type="submit"],
input[type="button"] {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  -moz-appearance: button;
       appearance: button;
  border: none;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-appearance: none !important;
  border-radius: 0; }
  input[type="submit"]::-webkit-search-decoration,
  input[type="button"]::-webkit-search-decoration {
    display: none; }
  input[type="submit"]::focus,
  input[type="button"]::focus {
    outline-offset: -2px; }

/*-------------------------------------------
 style
-------------------------------------------*/
/***  tag  ***/
html {
  font-size: 62.5%; }
  @media screen and (max-width: 950px) {
    html {
      font-size: 57.5%; } }
  @media screen and (max-width: 600px) {
    html {
      font-size: 52.5%; } }

body {
  background-color: #ffffff;
  font-family: 'Noto Sans JP','游ゴシック Medium',YuGothic,YuGothicM,'Hiragino Kaku Gothic ProN','Hiragino Kaku Gothic Pro',メイリオ,Meiryo,sans-serif;
  font-weight: 400;
  color: #261A0C;
  font-size: 1.3rem;
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
          text-size-adjust: 100%;
  line-height: 1; }

ul {
  margin: 0;
  padding: 0;
  list-style-type: none; }
  ul li {
    list-style-type: inherit; }

button {
  background: none;
  border: none;
  padding: 0; }

a {
  color: #261A0C;
  text-decoration: none;
  -webkit-transition: all ease-in-out .2s;
  transition: all ease-in-out .2s; }
  a:hover {
    opacity: 0.6;
    -webkit-transition: all ease-in-out .2s;
    transition: all ease-in-out .2s; }

h1, h2, h3, h4, h5 {
  font-weight: normal; }

article {
  max-width: 100%;
  width: 100%; }

section {
  max-width: 1100px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 50px;
  padding-left: 20px;
  padding-right: 20px; }

p {
  font-size: 1.5rem;
  text-align: justify;
  line-height: 1.8;
  font-weight: 400;
  margin-bottom: 15px; }
  p a {
    color: #a20a1a; }

b {
  font-weight: 700; }

i {
  font-style: normal; }

/*-------------------------------------------
 style - class -
-------------------------------------------*/
/***  adjustment  ***/
html body main .pt00 {
  padding-bottom: 0; }
html body main .pt05 {
  padding-bottom: 5px; }
html body main .pt10 {
  padding-bottom: 10px; }
html body main .pt15 {
  padding-bottom: 15px; }
html body main .pt20 {
  padding-bottom: 20px; }
html body main .pt25 {
  padding-bottom: 25px; }
html body main .pt30 {
  padding-bottom: 30px; }
html body main .pt35 {
  padding-bottom: 35px; }
html body main .pt40 {
  padding-bottom: 40px; }
html body main .pt45 {
  padding-bottom: 45px; }
html body main .pt50 {
  padding-bottom: 50px; }
html body main .pb00 {
  padding-bottom: 0; }
html body main .pb05 {
  padding-bottom: 5px; }
html body main .pb10 {
  padding-bottom: 10px; }
html body main .pb15 {
  padding-bottom: 15px; }
html body main .pb20 {
  padding-bottom: 20px; }
html body main .pb25 {
  padding-bottom: 25px; }
html body main .pb30 {
  padding-bottom: 30px; }
html body main .pb35 {
  padding-bottom: 35px; }
html body main .pb40 {
  padding-bottom: 40px; }
html body main .pb45 {
  padding-bottom: 45px; }
html body main .pb50 {
  padding-bottom: 50px; }
html body main .mt00 {
  margin-top: 0; }
html body main .mt05 {
  margin-top: 5px; }
html body main .mt10 {
  margin-top: 10px; }
html body main .mt15 {
  margin-top: 15px; }
html body main .mt20 {
  margin-top: 20px; }
html body main .mt25 {
  margin-top: 25px; }
html body main .mt30 {
  margin-top: 30px; }
html body main .mt35 {
  margin-top: 35px; }
html body main .mt40 {
  margin-top: 40px; }
html body main .mt45 {
  margin-top: 45px; }
html body main .mt50 {
  margin-top: 50px; }
html body main .mt55 {
  margin-top: 55px; }
html body main .mt60 {
  margin-top: 60px; }
html body main .mt65 {
  margin-top: 65px; }
html body main .mt70 {
  margin-top: 70px; }
html body main .mt75 {
  margin-top: 75px; }
html body main .mt80 {
  margin-top: 80px; }
html body main .mt85 {
  margin-top: 85px; }
html body main .mt90 {
  margin-top: 90px; }
html body main .mt95 {
  margin-top: 95px; }
html body main .mt-05 {
  margin-top: -5px; }
html body main .mt-10 {
  margin-top: -10px; }
html body main .mt-15 {
  margin-top: -15px; }
html body main .mt-20 {
  margin-top: -20px; }
html body main .mt-25 {
  margin-top: -25px; }
html body main .mt-30 {
  margin-top: -30px; }
html body main .mt-35 {
  margin-top: -35px; }
html body main .mt-40 {
  margin-top: -40px; }
html body main .mt-45 {
  margin-top: -45px; }
html body main .mt-50 {
  margin-top: -50px; }
html body main .mb00 {
  margin-bottom: 0; }
html body main .mb05 {
  margin-bottom: 5px; }
html body main .mb10 {
  margin-bottom: 10px; }
html body main .mb15 {
  margin-bottom: 15px; }
html body main .mb20 {
  margin-bottom: 20px; }
html body main .mb25 {
  margin-bottom: 25px; }
html body main .mb30 {
  margin-bottom: 30px; }
html body main .mb35 {
  margin-bottom: 35px; }
html body main .mb40 {
  margin-bottom: 40px; }
html body main .mb45 {
  margin-bottom: 45px; }
html body main .mb50 {
  margin-bottom: 50px; }
html body main .mb55 {
  margin-bottom: 55px; }
html body main .mb60 {
  margin-bottom: 60px; }
html body main .mb65 {
  margin-bottom: 65px; }
html body main .mb70 {
  margin-bottom: 70px; }
html body main .mb75 {
  margin-bottom: 75px; }
html body main .mb80 {
  margin-bottom: 80px; }
html body main .mb85 {
  margin-bottom: 85px; }
html body main .mb90 {
  margin-bottom: 90px; }
html body main .mb95 {
  margin-bottom: 95px; }
html body main .top-05 {
  top: -5px; }
html body main .top-10 {
  top: -10px; }
html body main .top-15 {
  top: -15px; }
html body main .top-20 {
  top: -20px; }
html body main .top-25 {
  top: -25px; }
html body main .top-30 {
  top: -30px; }
html body main .top-35 {
  top: -35px; }
html body main .top-40 {
  top: -40px; }
html body main .top-45 {
  top: -45px; }
html body main .top-50 {
  top: -50px; }
html body main .tl {
  text-align: left; }
html body main .tc {
  text-align: center; }
html body main .tr {
  text-align: right; }
html body main .bt00 {
  border-top: none; }
html body main .br00 {
  border-right: none; }
html body main .bb00 {
  border-bottom: none; }
html body main .bl00 {
  border-left: none; }
html body main .tred {
  color: #a20a1a; }
html body main .sp {
  display: none; }
  @media screen and (max-width: 1200px) {
    html body main .sp {
      display: block; } }
html body main .pc {
  display: block; }
  @media screen and (max-width: 1200px) {
    html body main .pc {
      display: none; } }

/***  header  ***/
header {
  background-color: #ffffff;
  width: 100%;
  padding: 15px 20px 5px 20px;
  position: relative; }
  @media screen and (max-width: 1200px) {
    header {
      padding-top: 5px; } }
  @media screen and (max-width: 400px) {
    header {
      padding-left: 15px;
      padding-right: 15px; } }
  header::after {
    content: '';
    background-image: url("../img/bk_01.svg");
    background-size: cover;
    background-repeat: no-repeat;
    width: 100%;
    height: 50px;
    position: absolute;
    top: calc(100% - 1px);
    left: 0; }
  header nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    width: 100%;
    max-width: 1540px;
    margin-left: auto;
    margin-right: auto; }
    @media screen and (max-width: 1200px) {
      header nav {
        max-width: 1200px; } }
  header .left {
    width: 350px; }
    @media screen and (max-width: 1200px) {
      header .left {
        width: 250px; } }
    @media screen and (max-width: 600px) {
      header .left {
        width: 200px; } }
    header .left img {
      width: 100%;
      height: auto; }
  header .right ul.menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    header .right ul.menu li {
      margin-left: 70px; }
      @media screen and (max-width: 1200px) {
        header .right ul.menu li {
          margin-left: 30px; } }
      header .right ul.menu li:nth-of-type(1) {
        margin-left: 0; }
      header .right ul.menu li.non {
        display: none; }
      header .right ul.menu li a {
        color: #6b444d;
        font-size: 2rem; }
        @media screen and (max-width: 1200px) {
          header .right ul.menu li a {
            font-size: 1.8rem; } }
        header .right ul.menu li a.jump {
          background-color: #802358;
          color: #ffffff;
          display: block;
          padding: 15px 35px;
          border-radius: 35px; }
          @media screen and (max-width: 1200px) {
            header .right ul.menu li a.jump {
              padding: 12px 25px; } }
          @media screen and (max-width: 600px) {
            header .right ul.menu li a.jump {
              font-size: 1.5rem;
              padding: 10px 10px; } }

/***  footer  ***/
footer {
  background-color: #802358;
  text-align: center;
  padding: 45px; }
  @media screen and (max-width: 600px) {
    footer {
      padding: 25px 5px; } }
  footer small {
    color: #ffffff;
    font-size: 1.5rem;
    text-align: center; }

.content {
  max-width: 1100px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  position: relative; }

.hero {
  background-image: url("../img/bk_02.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  background-position-x: right;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  height: 800px;
  padding-left: 20px;
  padding-right: 20px; }
  @media screen and (max-width: 600px) {
    .hero {
      height: 500px;
      padding-bottom: 60px; } }
  @media screen and (max-width: 400px) {
    .hero {
      padding-left: 15px;
      padding-right: 15px; } }
  .hero .left {
    width: 670px; }
    @media screen and (max-width: 950px) {
      .hero .left {
        max-width: 100%;
        width: 100%; } }
    @media screen and (max-width: 950px) {
      .hero .left h1 img {
        max-width: 100%;
        width: 100%; } }
  .hero .right {
    width: calc(100% - 670px); }
    @media screen and (max-width: 950px) {
      .hero .right {
        display: none; } }
    .hero .right img {
      position: absolute;
      right: 20px;
      margin: auto;
      top: 0;
      bottom: 0; }
      @media screen and (max-width: 1200px) {
        .hero .right img {
          width: 450px; } }

.greeting {
  width: 100%;
  position: relative; }
  .greeting::before {
    content: '';
    background-image: url("../img/bk_03.svg");
    background-size: cover;
    background-repeat: no-repeat;
    width: 100%;
    height: 270px;
    position: absolute;
    top: -100px;
    left: 0; }
  .greeting .content {
    position: relative; }
    .greeting .content::before {
      content: '';
      background-image: url("../img/imo_03.png");
      background-size: contain;
      background-repeat: no-repeat;
      width: 860px;
      height: 607px;
      position: absolute;
      top: 370px;
      left: -600px; }
    .greeting .content::after {
      content: '';
      background-image: url("../img/imo_04.png");
      background-size: contain;
      background-repeat: no-repeat;
      width: 700px;
      height: 462px;
      position: absolute;
      top: 500px;
      right: -450px; }

.guide {
  background-color: #ffe7bd;
  width: 100%;
  padding-top: 50px;
  padding-bottom: 50px; }

.bk-ptn01 {
  background-image: url("../img/imo_01.png");
  background-size: 270px 270px;
  background-repeat: no-repeat;
  background-repeat: repeat;
  background-color: #ffeed0;
  width: 100%;
  height: 100%; }

.lead {
  background-image: url("../img/bk_04.svg");
  background-size: contain;
  background-repeat: no-repeat;
  width: 100%;
  padding: 50px 100px 100px;
  position: relative;
  z-index: 9; }
  @media screen and (max-width: 1200px) {
    .lead {
      padding: 30px 100px 100px; } }
  @media screen and (max-width: 950px) {
    .lead {
      background-image: url("../img/bk_05.svg");
      background-position-x: center;
      padding: 20px 40px 100px; } }
  @media screen and (max-width: 600px) {
    .lead {
      background-size: cover;
      padding-top: 40px;
      padding-bottom: 40px; } }
  @media screen and (max-width: 400px) {
    .lead {
      padding-left: 20px;
      padding-right: 20px;
      padding-bottom: 30px; } }
  .lead figure img {
    width: 100%;
    height: auto; }

.sp-catch04 {
  max-width: 400px;
  width: 100%; }
  @media screen and (max-width: 600px) {
    .sp-catch04 {
      padding: 40px 0 20px; } }

.sp-day2027 {
  max-width: 670px;
  width: 100%; }

.sp-catch02 {
  max-width: 475px;
  width: 100%; }

.box2 {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .box2.r73 div:nth-of-type(1) {
    width: 70%;
    padding-right: 20px; }
    @media screen and (max-width: 950px) {
      .box2.r73 div:nth-of-type(1) {
        width: 100%;
        padding-left: 100px;
        padding-right: 100px; } }
    @media screen and (max-width: 600px) {
      .box2.r73 div:nth-of-type(1) {
        padding-left: 10px;
        padding-right: 10px; } }
    @media screen and (max-width: 400px) {
      .box2.r73 div:nth-of-type(1) {
        padding-left: 0;
        padding-right: 0; } }
  .box2.r73 div:nth-of-type(2) {
    width: 30%; }
    @media screen and (max-width: 950px) {
      .box2.r73 div:nth-of-type(2) {
        display: none; } }

ul.box3 {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  @media screen and (max-width: 600px) {
    ul.box3 {
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; } }
  ul.box3 > li {
    width: 33.333%;
    padding-left: 10px;
    padding-right: 10px; }
    @media screen and (max-width: 950px) {
      ul.box3 > li {
        padding-left: 5px;
        padding-right: 5px; } }
    @media screen and (max-width: 600px) {
      ul.box3 > li {
        padding-left: 20px;
        padding-right: 20px;
        padding-bottom: 10px; } }
    @media screen and (max-width: 600px) {
      ul.box3 > li {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        width: 100%; } }
    @media screen and (max-width: 600px) {
      ul.box3 > li figure {
        width: 40%; } }
    ul.box3 > li figure img {
      width: 100%; }
    ul.box3 > li p {
      padding-left: 30px;
      padding-right: 30px; }
      @media screen and (max-width: 950px) {
        ul.box3 > li p {
          padding-left: 20px;
          padding-right: 20px; } }
      @media screen and (max-width: 600px) {
        ul.box3 > li p {
          width: 60%;
          padding-right: 0; } }

ul.box4 {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  @media screen and (max-width: 600px) {
    ul.box4 {
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; } }
  ul.box4 > li {
    width: 25%;
    padding-left: 10px;
    padding-right: 10px; }
    @media screen and (max-width: 600px) {
      ul.box4 > li {
        width: 50%;
        margin-bottom: 30px; } }
    ul.box4 > li a {
      display: block; }
    ul.box4 > li figure img {
      width: 100%;
      margin-bottom: 15px; }
      @media screen and (max-width: 600px) {
        ul.box4 > li figure img {
          margin-bottom: 5px; } }
    ul.box4 > li figure figcation {
      font-size: 1.6rem;
      text-align: center;
      line-height: 1.2;
      display: block; }

.btn a {
  background-color: #802358;
  color: #ffffff;
  font-size: 2.4rem;
  text-align: center;
  display: block;
  max-width: 600px;
  width: 100%;
  padding: 15px;
  border-radius: 30px; }

/*** totop ***/
.totop {
  display: none; }
  @media screen and (max-width: 950px) {
    .totop {
      display: block;
      position: absolute;
      right: 0px;
      bottom: 0px; }
      .totop a {
        background-color: #9a2949;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        width: 60px;
        height: 60px;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center; }
        .totop a img {
          width: 30px; } }
