@charset "UTF-8";
html {
    font-size: 100%;
    scroll-behavior: smooth;
}
body {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    line-height: 1.7;
    color: #432;
    background: repeat url(../images/bg.png);
    background-attachment: fixed;
}
a {
    text-decoration: none;
    color: #395a9f;
}
a:hover {
    text-decoration: underline;
}
a:visited {
   color: #808080;
}
img {
    max-width: 100%;
}
.pc {
    display: block !important;
}
.sp {
    display: none !important;
}
.br-sp, .br-pc {
    display: none;
}
.fadeIn_up {
  opacity: 0;
  transform: translate(0, 10%);
  transition: 0.5s;
}
.fadeIn_up.is-show {
  transform: translate(0, 0);
  opacity: 1;
}
.btn {
    margin-top: 1rem;
}
.btn_top {
  filter: drop-shadow(0 5px 0 #395a9f);
  display: inline-block;
  transition: .4s;
  margin: -0.3em;
}
.btn_top:hover,
a.btn_blue:hover {
  transform: translateY(5px);
  filter: drop-shadow(0 0px 0 #395a9f);
}
.btn_blue {
  filter: drop-shadow(0 5px 0 #395a9f);
  display: inline-block;
  transition: .4s;
  margin: 0.3em;
}
.btn_blue:hover,
a.btn_blue:hover {
  transform: translateY(5px);
  filter: drop-shadow(0 0px 0 #395a9f);
}
.btn_red {
  filter: drop-shadow(0 5px 0 #cf3967);
  display: inline-block;
  transition: .4s;
  margin: 0.3em;
}
.btn_red:hover,
a.btn_red:hover {
  transform: translateY(5px);
  filter: drop-shadow(0 0px 0 #cf3967);
}
.t_btn {
    padding-top: 2rem;
    width: 80%;
}

/* header */
.top {
    background-image: url(../images/header-l.gif);
    background-size: cover;
    background-position: center top;
}
.wrapper {
    max-width: 1344px;
    margin: auto;
    padding: 0 1.5rem;
}
.period {
    background-color: #DAE600;
}
.period h2 {
    max-width: 1200px;
    margin: auto;
}
.period h2 img {
    max-width: 100%;
}
.summary {
    background-color: #fff;
}
.summary p {
    color: #4A69AF;
    text-align: center;
    font-size: 2rem;
    font-weight: 900;
    padding: 2.2rem 0;
}

/* main */
main {
    padding: 2rem 0;
    background-attachment: fixed;
    margin: auto;
}
nav {
    max-width: 1080px;
    margin: auto;
}
nav ul {
    display: flex;
    gap: 2rem;
}
nav ul li {
    list-style: none;
}
section {
    margin: 0 auto;
}
section h3 {
    text-align: center;
    padding: 1rem 0;
    background-repeat:no-repeat;
    background-position:10% center;
    background-size:100%;
    color: #fff;
}
.text {
    max-width: 1080px;
    margin: auto;
    background: #fff;
    border-radius: 1rem;
    padding: 2rem;
    box-shadow: 0px 0px 5px rgba(74,105,175,.3);
}
.text h4 {
    color: #4A69AF;
    font-size: 2.3rem;
}
.lead {
    color: #4A69AF;
    font-weight: 900;
    font-size: 1.5rem;
    margin-bottom: 2rem;
}
.notes {
    font-size: 0.875rem;
}
#campaign h4  {
  position: relative;
  padding-left: 6.5rem;
  margin-bottom: 2.5rem;
}
.cam_01, .cam_02, .cam_03 {
    border-bottom: #4A69AF dotted 1.5px;
}
#campaign .cam_01 h4::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 5.5rem;
  height: 5.5rem;
  background-image: url(../images/badge01.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
#campaign .cam_02 h4::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 5.5rem;
  height: 5.5rem;
  background-image: url(../images/badge02.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
#campaign .cam_03 h4::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 5.5rem;
  height: 5.5rem;
  background-image: url(../images/badge03.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
#campaign .cam_04 h4::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 5.5rem;
  height: 5.5rem;
  background-image: url(../images/badge04.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.rohto {
    padding: 1rem;
    width: 90%;
}
#campaign h5,
#goods h5 {
    color: #4A69AF;
    font-size: 1.5rem;
    font-weight: 900;
    text-align: center;
    padding: 2rem 1rem 0.75rem;
    border-bottom: #4A69AF dotted 1.5px;
    margin-bottom: 2rem;
}
.apply {
    padding-top: 2rem;
}

/* anniv */
#anniv h4 {
    padding-bottom: 1rem;
}
.panel_list {
    background: #ecf0f8;
}
.panel_list th {
    width: 20%;
    text-align: center;
}
th,td {
    padding: 0.5rem;
}

/* goods */
#goods h4 {
    color: #4A69AF;
    font-size: 2.25rem;
    padding: 0 0 1rem;
    text-align: center;
}
.g_01 {
    color: #4A69AF;
    font-size: 2rem;
    font-weight: 900;
}
.g_02 {
    font-size: 1.55rem;
}
.g_02w {
    font-weight: 900;
}
.g_03 {
    font-size: 0.875rem;
}
.g_03w {
    font-size: 1.875rem;
    font-weight: 900;
    color: #ee4177;
}
.ecbox {
    display: flex;
    gap: 2rem;
}
.ecbox p {
    color: #4A69AF;
    font-size: 1.3rem;
    font-weight: 900;
    padding-bottom: 2rem;
}

/* shop */
#shop .btn {
    margin: 0 auto;
}

/* attention */
.attention {
    margin-top: 4rem;
}
.attention h5 {
    color: #fff;
    font-size: 1.2rem;
    font-weight: 900;
    background-color: #4A69AF;
    padding: 2px 15px;
    border-radius: 20px;
    display: inline-block;
    margin-bottom: 0.5rem;
}
.attention h6 {
    color: #4A69AF;
    font-weight: 900;
    font-size: 1.2rem;
}
.attention  .at_text {
    margin-bottom: 2rem;
}

/* footer */
.kv_r {
    background: #fff;
}
.kv_r h4 {
    background: #4A69AF;
    text-align: center;
    color: #fff;
    padding: 1rem;
    font-size: 1.75rem;
}
.kv_lead {
    font-weight: 600;
    font-size: 1.1rem;
    margin: 1rem 1.5rem;
    padding-bottom: 1rem;
}
.dotted{
 background-image : linear-gradient(to right, #000 2px, transparent 2px);
 background-size: 6px 1.5px;
 background-repeat: repeat-x;
 background-position: left bottom;
}
.kv_yj {
    font-size: 0.825rem;
    margin: 1rem 1.5rem;
}
.url {
    font-size: 0.825rem;
    margin: 6rem 1.5rem 1rem;
}
footer h3 {
    color: #4A69AF;
    font-weight: 900;
    font-size: 2rem;
    text-align: center;
    letter-spacing: 0.2rem;
    margin-bottom: 1rem;
}
.account {
    max-width: 700px;
    margin: auto;
    display: flex;
    gap: 1rem;
    padding: 0 1rem 2rem;
}
.account img, .app img {
    width: 100%;
}
.app {
    max-width: 500px;
    margin: auto;
    display: flex;
    gap: 1rem;
    padding: 0 1rem 0.5rem;
}
.app a:hover{
    opacity: 0.85;
}
.app_text {
    font-size: 0.7rem;
    text-align: center;
    margin-bottom: 2rem;
}
.copyright {
    background-color: #DAE600;
    text-align: center;
    font-size: 0.875rem;
    padding: 1rem 0;
    color: #4A69AF;
}
.gotop {
    position: fixed;
    width: 120px;
    bottom: 145px;
    right: 16px;
} 
.goec {
    position: fixed;
    width: 120px;
    bottom: 16px;
    right: 16px;
} 
.gotop a, .goec a {
    display: block;
    text-decoration: none;
} 
.gotop:hover, .goec:hover{
    opacity: 0.85 ;
}

/* SP */
@media (max-width: 767px) {
    .pc { display: none !important; }
    .sp { display: block !important; }
    .br-sp {
        display: block;
    }
    body {
        font-size: 0.875rem;
    }
    .top {
    background-image: url(../images/header-s.gif);
    background-size: cover;
    background-position: center bottom;
    }
    .wrapper {
        max-width: 100%;
        padding: 0 1rem;
    }
    .btn {
        margin-top: 0.5rem;
    }
    .summary p {
    font-size: 1.25rem;
    padding: 1.25rem 0.5rem;
    }
    .text {
    padding: 1rem;
    }
    nav ul {
        display: flex;
        gap: 1rem;
        padding: 0 1rem;
    }
    section h3 {
    font-size: 1.75rem;
    letter-spacing: 0.4rem;
    background-image: url(../images/subtitle-s-2.png);
    margin: 2rem auto 0;
    }
    #campaign h4 {
    padding-left: 4.4rem;
    margin-bottom: 2rem;
    }
    #campaign .cam_01, .cam_02, .cam_03 {
        padding-bottom: 1.5rem;
    }
    #campaign .cam_01 h4::before {
    width: 4rem;
    height: 4rem;
    background-image: url(../images/badge01.png);
    }
    #campaign .cam_02 h4::before {
    width: 4rem;
    height: 4rem;
    background-image: url(../images/badge02.png);
    }
    #campaign .cam_03 h4::before {
    width: 4rem;
    height: 4rem;
    background-image: url(../images/badge03.png);
    }
    #campaign .cam_04 h4::before {
    width: 4rem;
    height: 4rem;
    background-image: url(../images/badge04.png);
    }
    #campaign h5,
    #goods h5 {
        margin-bottom: 1rem;
    }
    .text h4 {
        font-size: 1.5rem;
    }
    .lead {
        font-size: 1.2rem;
        margin-bottom: 1rem;
    }
    .g_01, .g_02, .g_03, .pbox p {
        text-align: center;
    }
    .g_01 {
        font-size: 1.2rem;
        padding-top: 0.5rem;
    }
    .g_02 {
        font-size: 0.875rem;
    }
    .g_03 {
        font-size: 0.875rem;
    }
    .g_03w {
        font-size: 1.2rem;
    }
    .ecbox p {
        font-size: 1rem;
        padding-bottom: 1.5rem;
    }
    footer h3 {
        font-size: 1.5rem;
        letter-spacing: 0.1rem;
        margin-bottom: 1rem;
    }
    .kv {
        padding: 0 1rem;
    }
    .kv_r h4 {
        padding: 0.75rem;
        font-size: 1.2rem;
    }
    .kv_lead {
        font-size: 1rem;
    }
    .kv_yj, .url {
        font-size: 0.75rem;
    }
    .url {
        margin: 1rem 1.5rem;
        padding-bottom: 1rem;
    }
    #goods h4 {
        font-size: 1.5rem;
    }
    #goods .sp_price, #goods .pbox {
        display: flex;
        gap:1rem;
        align-items: center;
        justify-content: center;
    }
    #goods .goods_01, #goods .goods_02 {
        padding-bottom: 2rem;
    }
    #goods .goods_03 .text_box_area {
        padding-bottom: 1rem;
    }
    #campaign .text_box {
        margin-bottom: 2rem;
    }
    #anniv .text_box {
        margin-bottom: 1rem;
    }
    .attention h5 { 
       font-size: 1rem;
    }
    .attention h6 {
        font-size: 1rem;
    }
    .account {
        gap: 0.25rem;
    }
    .copyright {
        font-size: 0.7rem;
    }
    .gotop {
        position: fixed;
        width: 70px;
        bottom: 80px;
        right: 8px;
    } 
    .goec {
        position: fixed;
        width: 70px;
        bottom: 5px;
        right: 8px;
    } 
}

/* PC */
@media (min-width: 768px) {
    .text_box_area {
        display: flex;
        gap: 2rem;
    }
    .br-pc {
        display: block;
    }
    .text_box_area .sbox img {
        height: auto;
    }
    .sbox {
        width: 50%;
    }
    .sbox_img {
        text-align: center;
    }
    .pbox, .btn {
        display: flex;
        gap: 2rem;
    }
    #goods  .sbox_price {
        padding-top: 6rem;
        padding-left: 1rem;
    }
    section h3 {
        font-size: 3.75rem;
        letter-spacing: 0.75rem;
        background-image: url(../images/subtitle-l-2.png);
        max-width: 1080px;
        margin: 2rem auto 0;
    }
    #campaign .cam_01, .cam_02, .cam_03 {
        padding-bottom: 2.5rem;
    }
    #campaign .cam_04 .btn {
        margin: 0 auto;
        width: 50%;
        padding-top: 1rem;
    }
    .pro_c {
        text-align: center;
    }
    #campaign .text_box {
        margin-bottom: 3rem;
    }
    .pro {
        padding-bottom: 2rem;
    }
    #goods .goods_01, #goods .goods_02 {
        padding-bottom: 2rem;
    }
    #shop .btn {
        width: 45%;
    }
    .kv {
        margin: auto;
        max-width: 1080px;
        display: flex;
        gap: 2rem;
        margin-bottom: 2rem;
    }
    .kv_l, .kv_r {
        width: 50%;
        min-height: min(744px, 50vw);
    }
    .kv_l {
    max-width: 100%;
    }
    .attention p {
        padding-left: 0.5rem;
        font-size: 0.9rem;
    }
}
@media (min-width: 1100px) {
    .kv_r {
        height: 744px;
    }

}