@charset "utf-8";

/* ------------------------------
  main common
------------------------------ */
/*
main section.bg-white > div,
main section.bg-gray > div {
  width: 100%;
  max-width: 1080px;
  margin: auto;
  padding: 100px 25px;
  box-sizing: border-box;
  z-index: -2;
}


main section.bg-white {
  background: url(../images/bg_base.jpg) #fbfcfd;
}

main section.bg-gray {
  background: url(../images/bg_gray.jpg) #e9ebee;
}
*/

main a {
    color: #97002b;
    text-decoration: none;
    position: relative;
    display: inline-block;
}

main a::after {
    position: absolute;
    bottom: 1px;
    left: 50%;
    transform: translateX(-50%);
    content: '';
    width: 95%;
    height: 1px;
    background: #97002b;
    opacity: .8;
    visibility: visible;
    transition: .4s;
    z-index: 4;
}

main a:hover::after {
    opacity: 0;
    width: 0%;
}

/*---------------------*/
main h3 {
    position: relative;
    padding: 0 0 1.2em 0;
    margin: 0;
    font-size: 25px;
    letter-spacing: .15em;
    font-weight: 100;
}


/*---------------------*/
main .ttl-deco {
    position: relative;
    padding-bottom: .3em;
}

main .ttl-deco:after {
    position: absolute;
    content: '';
    width: 30px;
    height: 1px;
    bottom: -.02em;
    left: 50%;
    transform: translateX(-50%);
    background-color: #111;
}

/* ------------------------------
  .bg
------------------------------ */
/* sample */
main .bg_wrapper {
    padding: 20px;
}

main .bg_sample {
    width: 90px;
    height: 50px;
    text-align: center;
    line-height: 3;
    display: inline-block;
}

main .text-white {
    color: #fff;
}

/*  color black  */
main .bg_black {
    background: url(../images/bg_black.jpg) #111111;
}

/*  color gray  */
main .bg_gray {
    background: url(../images/bg_gray.jpg) #e7e8ea;
}

/*  color lgray  */
main .bg_lgray {
    background: url(../images/bg_lgray.jpg) #f2f2f4;
}

/*  color base  */
main .bg_base {
    background: url(../images/bg_base.jpg) #fbfcfd;
}

/*  color white  */
main .bg_white {
    background: url(../images/bg_white.jpg) #fff;
}

/*  color red  */
main .bg_red {
    background: url(../images/bg_red.jpg) #79233C;
}

/*  color lreed  */
main .bg_lred {
    background: url(../images/bg_lred.jpg) #752238;
}

/* ------------------------------
  .text
------------------------------ */
/*  text big  */
main .text_l {
    font-size: 25px;
}

/*  text middle  */
main .text_m {
    font-size: 19px;
}

/*  text small  */
main .text_s {
    font-size: 16px;
}

/*  text xsmall  */
main .text_xs {
    font-size: 14px;
}

/*  text furigana  */
main .text_furi {
    font-size: 13px;
}

/*  font gothic  */
main .font_goth {
    font-family: "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
}

@media screen and (max-width: 767px) {

    /*  text big  */
    main .text_l {
        font-size: 21px;
    }

    /*  text middle  */
    main .text_m {
        font-size: 17px;
    }

    /*  text small  */
    main .text_s {
        font-size: 15px;
    }

    /*  text xsmall  */
    main .text_xs {
        font-size: 13px;
    }
}

/* ------------------------------
  .text_color
------------------------------ */
/*  text important  */
main .text_important {
    color: #690b26 !important;
    font-weight: 900 !important;
}

/*  text horoku*/
main .text_hosoku {
    color: #545f70 !important;
}

/* ------------------------------
  .midashi
------------------------------ */
/*  midashi big  */
main .midashi_big {
    font-size: 25px;
    color: #000;
    line-height: 1.5;
    font-weight: 600;
    letter-spacing: 0.2em;
}

/*  midashi big center*/
main .midashi_big_center {
    font-size: 25px;
    color: #000;
    line-height: 1.5;
    text-align: center;
    position: relative;
    padding: 0.5em 0;
    font-weight: 600;
    letter-spacing: 0.2em;
}

main .midashi_big_center::after {
    content: "";
    background-color: rgb(167, 173, 181);
    position: absolute;
    bottom: 0;
    display: inline-block;
    width: 30px;
    height: 1px;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    border-radius: 2px;
    font-weight: 600;
}

/*  midashi zenhaba*/
    main .midashi_zenhaba {
    font-size: 19px;
    color: #000;
    line-height: 1.5;
    padding: 20px 30px;
    background: url(../images/bg_lgray.jpg) #f2f2f4;
    border-top: 1px solid #cfd2d7;
    border-bottom: 1px solid #cfd2d7;
    font-weight: 600;
        letter-spacing: 0.2em;
}
/*  midashi nomal red*/
    main .midashi_normal_red {
    font-size: 19px;
    color: #000;
    line-height: 1.5;
    padding: 0px 1em;
    border-left: 4px solid #97002b;
    font-weight: 600;
        letter-spacing: 0.2em;
        margin-bottom: 1em;
}

/*  midashi nomal gray*/
    main .midashi_normal_gray {
    font-size: 19px;
    color: #000;
    line-height: 1.5;
    padding: 0px 1em;
    border-left: 4px solid #545f70;
    font-weight: 600;
        letter-spacing: 0.2em;
}

@media screen and (max-width: 767px) {

    /*  midashi big  */
    main .midashi_big {
        font-size: 21px;
    }

    /*  midashi big center*/
    main .midashi_big_center {
        font-size: 21px;
    }
        /*  text middle  */
    main .midashi_zenhaba {
        font-size: 17px;
    }
    /*  midashi nomal red*/
    main .midashi_normal_red {
    font-size: 17px;
}

/*  midashi nomal gray*/
    main .midashi_normal_gray {
    font-size: 17px;
}

}
/* ------------------------------
  .lead
------------------------------ */
/* lead */

main .lead{
/*font-size: 16px;*/
    color: #000;
    line-height: 1.5em;
    letter-spacing: 0.275em;
}
/* ------------------------------
  .number
------------------------------ */
/* number red */
main .number_red{
    color: #000;
    position: relative;
}
main .number_red span{
    color: #fff;
    background-color: #752139;
    position: absolute;
    left: 0;
    text-align: center;
    box-sizing: border-box;
}
/* number white */
main .number_white{
    color: #000;
    position: relative;
}
main .number_white span{
    color: #752139;
    background-color: #fff;
    position: absolute;
    left: 0;
    text-align: center;
    border: solid 1px #752139;
    box-sizing: border-box;
}
/* number large */
main .number_l{
        padding-left: 2.5em;
    line-height: 1.6em;
    font-size: 25px;
    font-weight: 600;
}
main .number_l span{
    width: 1.6em;
    height: 1.6em;
        padding-left: .1em;
}
/* number small */
main .number_s{
        padding-left: 2.8em;
    line-height: 1.9em;
    font-size: 16px;
        font-weight: 600;
}
main .number_s span{
    width: 1.9em;
    height: 1.9em;
        padding-left: .2em;
}
@media screen and (max-width: 767px) {

/* number large */
    main .number_l {
        font-size: 21px;
    }
/* number small */
main .number_s{
    font-size: 15px;
}

}
/* ------------------------------
  .textbox
------------------------------ */
/* textbox*/

.textbox{
    border: solid 3px #e0e0e3;
        background: url(../images/bg_white.jpg) #fff;
 padding: 40px 50px;
}
@media screen and (max-width: 767px) {

        .textbox{
            padding: 20px 25px;
        }
}
/* ------------------------------
  .btn
------------------------------ */
/* common */
main .btn {
    position: relative;
    display: inline-block;
    font-weight: 500;
    line-height: 1em;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    z-index: 2;
}

main a.btn:after {
    display: none;
    opacity: 1;
}


/*  color white  */
main .btn-white {
    background: url(../images/bg_white.jpg) #fff;
    color: #000;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 1) inset, 0 0 0 4px #e0e0e1 inset;
    border: 1px solid #babebf;
}

main .btn-white:hover {
    background: url(../images/bg_lgray.jpg) #f5f6f8;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 1) inset, 0 0 0 1px #e0e0e1 inset;
    border: 1px solid #babebf;
    transition: .3s;
}

main .bg-gray .btn-white,
main .bg-gray .btn-white:hover {
    border: 1px solid #cacecf;
}


/*  color red  */
main .btn-red {
    position: relative;
    background-color: rgba(106, 11, 39, .9);
    color: #fff;
    box-shadow: 0 0 0 4px #79233C inset, 0 0 0 5px #bb5876 inset;
}

main .btn-red:hover {
    background-color: rgba(106, 11, 39, 1);
    box-shadow: 0 0 0 1px #79233C inset, 0 0 0 1px #bb5876 inset;
    transition: .3s;
}

/*  color gray  */
main .btn-gray {
    background: url(../images/bg_gray.jpg) #e7e8ea;
    color: #9b9b9b;
    box-shadow: 0 0 0 3px rgba(231, 232, 234, 1) inset, 0 0 0 4px #d4d4d4 inset;
    border: 1px solid #c8c8c8;
    cursor: default;
    pointer-events: none;
}

/*  size  */
main .btn-xl {
    /*padding: 1.2em 5em;*/
    min-width: 390px;
    padding: 1.2em;
    font-size: 21px;
}

main .btn-lg {
    /*padding: 1.25em 5em;*/
    min-width: 360px;
    padding: 1.25em;
    font-size: 19px;
}

main .btn-md {
    min-width: 320px;
    /*padding: 1.45em 5em;*/
    padding: 1.45em;
    font-size: 17px;
}

main .btn-sm {
    min-width: 260px;
    /*padding: 1.34em 3.7em;*/
    padding: 1.34em;
    font-size: 16px;
}

main .btn-xs {
    min-width: 220px;
    /*padding: 1.30em 3.7em;*/
    padding: 1.30em;
    font-size: 13px;
}

@media screen and (max-width: 767px) {
    main .btn-xl {
        min-width: 0;
    }

    main .btn-lg {
        min-width: 0;
    }

    main .btn-md {
        min-width: 0;
    }

    main .btn-sm {
        min-width: 0;
    }

    main .btn-xs {
        min-width: 0;
    }

    /*-------*/
    main h3 {
        padding: 0 0 1em 0;
    }

    /*-------*/
}

/* ------------------------------
  table
------------------------------ */

/*  table .table-white（祈祷内容）  */
main table.table-white {
    width: 100%;
    max-width: 1050px;
    margin: 0;
    border-collapse: collapse;
    border-bottom: solid 1px rgba(150, 155, 160, .35);
}

main table.table-white tr th,
main table.table-white tr td {
    padding: 20px 10px;
    text-align: center;
    vertical-align: middle;
    background: url(../images/bg_white.jpg) #fff;
}

main table.table-white tr th {
    border-top: solid 1px rgba(150, 155, 160, .35);
}

main table.table-white tr td {
    border-top: solid 1px #e6e9ec;
    border-bottom: solid 1px #e6e9ec;
}

main table.table-white tr:last-child td {
    border-bottom: none;
}

main table.table-white tr th[scope="row"] {}

main table.table-white tr th {
    background: url(../images/bg_gray.jpg) #e7e8ea;
    font-size: 19px;
    font-weight: 600;
}


main table.table-white + table.table-white th,
main table.table-white tbody + tbody th {
    border-top: none;
}




/*  table flex  */
@media screen and (min-width: 768px),
print {
    main .table-flex-wrap {
        width: 100%;
        margin: 0;
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        flex-wrap: wrap;
        align-items: stretch;
    }

    main .table-flex-wrap table {
        width: 50%;
        margin: 0 0;
    }

    main .table-flex-wrap table th {
        height: 100px;
        box-sizing: border-box;
    }
}


/*  table .table-gray（祈祷金額）  */
main table.table-gray {
    width: 100%;
    max-width: 1050px;
    margin: 0;
    border-collapse: collapse;
    border-bottom: solid 1px rgba(150, 155, 160, .35);
}

main table.table-gray tr th,
main table.table-gray tr td {
    padding: 20px 10px;
    text-align: center;
    vertical-align: middle;
    background: url(../images/bg_white.jpg) #fff;
}

main table.table-gray tr th {
    border-top: solid 1px rgba(150, 155, 160, .35);
}

main table.table-gray tr td {
    border-bottom: solid 1px rgba(150, 155, 160, .25);
}

main table.table-gray tr td {
    border-top: solid 1px #e3e6e9;
}

main table.table-gray tr td small {
    display: inline-block;
    font-size: 90%;
    letter-spacing: .12em;
}

main table.table-gray tr th[scope="row"] {}

main table.table-gray tr th {
    background: #f8f8f8;
    background: rgba(255, 255, 255, .42);
    background: url(../images/bg_lgray.jpg) #f2f2f4;
    font-size: 19px;
    font-weight: 600;
}

main table.table-gray .notes {
    font-size: 13px;
    line-height: 2.2em;
    font-weight: 500;
    display: block;
}


/*  table .table-line（縦線のあるテーブル）  */
main table.table-line {
    width: 100%;
    max-width: 1050px;
    margin: 0;
    border-collapse: collapse;
    border-bottom: solid 1px rgba(150, 155, 160, .35);

}

main table.table-line tr th,
main table.table-line tr td {
    padding: 7px 10px;
    text-align: center;
    vertical-align: middle;
    background: url(../images/bg_white.jpg) #fff;

}

main table.table-line tr th {
    border-top: solid 1px rgba(150, 155, 160, .35);
/*    border-right: solid 1px rgba(150, 155, 160, .35);*/
}

main table.table-line tr td {
    border-top: solid 1px #e6e9ec;
    border-bottom: solid 1px #e6e9ec;
                border-left: solid 1px rgba(150, 155, 160, .35);
}

main table.table-line tr:last-child td {
    border-bottom: none;
}


main table.table-line tr th[scope="row"] {}

main table.table-line tr th {
    background: url(../images/bg_lgray.jpg) #e7e8ea;
/*    font-size: 19px;*/
    font-weight: 600;
}


main table.table-line + table.table-line th,
main table.table-line tbody + tbody th {
    border-top: none;
}

main table.table-line .table-important th {
   background: #e4d1d8;
}
main table.table-line .table-important td {
   background: #f2e8eb;
}
@media screen and (max-width: 767px) {
main table.table-line tr th,
main table.table-line tr td {
    padding: 7px 6px;

    }}
/* ------------------------------
  form
------------------------------ */

/* iOS reset */
main form input[type="submit"],
main form input[type="button"] {
 border-radius: 0;
 -webkit-box-sizing: content-box;
 -webkit-appearance: button;
 appearance: button;
 border: none;
 box-sizing: border-box;
 cursor: pointer;
}
main form input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
 display: none;
}
main form input[type="submit"]::focus,
main form input[type="button"]::focus {
 outline-offset: -2px;
}

/*  form  */
main form input[type="text"] , main form input[type="email"] , main form input[type="tel"] ,  main form input[type="datetime-local"] ,  main form input[type="date"] ,main form textarea, main form select{
    padding: 14px 15px;
    font-family: 'YuMincho +36p Kana' , '游明朝体+36ポかな' , 'Yu Mincho Demibold' , 'YuMincho Demibold' , 'YuMincho' , 'MS P明朝' ,'Noto Serif JP', serif;
    border-radius: 2px;
    letter-spacing: .15em;
    font-size: 15px;
    width: 100%;
    box-sizing: border-box;
    margin: 10px 0;
    background: url(../images/bg_white.jpg) #fff;
    border: solid 1px #c8c8c8;
}
main form input::placeholder {
  color: #9b9b9b;
}

/* IE */
main form input:-ms-input-placeholder {
  color: #9b9b9b;
}

/* Edge */
main form input::-ms-input-placeholder {
  color: #9b9b9b;
}
main form textarea{
 letter-spacing: .35em;
/*    height:104px;*/
    line-height: 1.75em;
}
main form .form_text_normal{
    background: url(../images/bg_white.jpg) #fff;
    border: solid 1px #c8c8c8;
}

main form input:disabled{
    background: url(../images/bg_gray.jpg) #e7e8ea;
    border: solid 1px #c8c8c8;
}
/*

main form .form_text_disabled{
    background: url(../images/bg_gray.jpg) #e7e8ea;
    border: solid 1px #c8c8c8;
}
*/

main form input[type="text"]:invalid , main form input[type="email"]:invalid , main form input[type="tel"]:invalid , main form input[type="datetime-local"]:invalid ,main form input[type="date"]:invalid {
    background-image: none;
    background-color: #efe2e6;
    border: solid 1px #97002b;
}
main form input[type="text"]:valid , main form input[type="email"]:valid , main form input[type="tel"]:valid , main form input[type="datetime-local"]:valid ,main form input[type="date"]:valid ,
main form input[type="text"]:required, main form input[type="email"]:required , main form input[type="tel"]:required, main form input[type="datetime-local"]:required , main form input[type="date"]:required  {
   background: url(../images/bg_white.jpg) #fff;
   border: solid 1px #c8c8c8;
}
main form .form_text_error{
    background: #efe2e6;
    border: solid 1px #97002b;
}


main form select,
main form select.select_list{
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
  border-radius: 0;
  outline: none;
  background: transparent;
 }

main form select,
main form select.select_list{
  position: relative;
  display: block;
  padding: 0 1em;
  box-sizing: border-box;
  width: 100%;
/*  width: calc(100% - 4em);*/
  background: url("../images/select-arrow.png") no-repeat right 20px center,url(../images/bg_white.jpg) #fff;
  background-size: 9px auto,auto;
  color: #000;
/*  box-shadow: 0 0 0 3px rgba(255, 255, 255, 1) inset, 0 0 0 4px #e0e0e1 inset;*/
    border: solid 1px #999;
    border-radius: 2px;
  font-size: 16px;
  line-height: 50px;
 }
main form select.select_list:disabled{
        background: url(../images/select-arrow.png) no-repeat right 20px center,url(../images/bg_gray.jpg) #e7e8ea;
      background-size: 9px auto,auto;
    border: solid 1px #c8c8c8;
      color: #9b9b9b;
}

main form select::placeholder {
  color: #9b9b9b;
}

main form select.select_list option{
  display: block;
 }

main form input[type="submit"] {
    border: none;
        font-family: 'YuMincho +36p Kana' , '游明朝体+36ポかな' , 'Yu Mincho Demibold' , 'YuMincho Demibold' , 'YuMincho' , 'MS P明朝' ,'Noto Serif JP', serif;
}

main form input[type="date"]{
  position: relative;
  display: block;
  padding: 0 1em;
  box-sizing: border-box;
  width: 100%;
  background: url("../images/select-arrow.png") no-repeat right 20px center,url(../images/bg_white.jpg) #fff !important;
  background-size: 9px auto,auto !important;
  color: #000;
  border: solid 1px #999 !important;
  border-radius: 2px;
  font-size: 16px;
  line-height: 50px;
  min-height: 52px;
 }
main form input[type="date"]:disabled{
        background: url(../images/select-arrow.png) no-repeat right 20px center,url(../images/bg_gray.jpg) #e7e8ea !important;
      background-size: 9px auto,auto !important;
    border: solid 1px #c8c8c8;
      color: #9b9b9b;
}

main form input[type="date"]::placeholder {
  color: #9b9b9b;
}

/* ------------------------------
  label
------------------------------ */

/* common */

 main section span.icon{
  font-size: 12px;
  line-height: 1.4;
  display:block;
  padding: 0.25em 0.5em;
  text-align: center;
  margin-top: -0.2em;
  min-width: 6em;
  max-width: 10em;
  margin-left: 1em;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
 }

main section span.icon.col_white{
  color: #000000;
  background-color: #FFFFFF;
 }
main section.bg-white span.icon.col_white{
border: solid 1px #ccc;
 }
main section span.icon.col_red{
  color: #FFFFFF;
  background-color: #97002b;
 }
main section span.icon.col_lgray{
  color: #000000;
background: url(../images/bg_gray.jpg) #e7e8ea;
 }
main section span.icon.col_bgray{
  color: #FFFFFF;
  background-color: #545f70;
 }

/* ------------------------------
  caption
------------------------------ */
main .caption_sample {
     max-width: 410px;
    position: relative;
    margin-top: 4px;
}
main .caption_sample img{
width: 100%;
}
/* caption */
main figure figcaption {
    font-family: "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
    display: block;
    font-size: 12px;
    line-height: 1.4;
    color: #FFFFFF;
    padding: 0.5em 1em 0.5em 1.2em;
    background-color: #1b1b1b;
    position: absolute;
    bottom: 0;
    right: 0;
    z-index: 1;
}
@media screen and (max-width: 767px) {
   main figure figcaption {
    font-family: "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
    display: block;
    font-size: 12px;
    line-height: 1.4;
    color: #FFFFFF;
    padding: 0.5em 1em 0.5em 1.2em;
    background-color: #1b1b1b;
    position: absolute;
    bottom: 0;
    right: 0;
    z-index: 1;
}


}
/* ------------------------------
  keyframes
------------------------------ */

@keyframes underline {
    0% {
        opacity: .2;
        width: 95%;
    }

    90% {
        opacity: 0;
    }

    100% {
        width: 0%;

    }
}

@keyframes underline-re {
    0% {
        opacity: .2;
        width: 0%;
    }

    90% {
        opacity: 1;
    }

    100% {
        width: 95%;

    }
}
