/*
Theme Name: Listing-Theme_v3
Description: 2024年6月12日に作成した占いリンク集のテーマです。白背景でパステルデザインを要所要所に差し入れたバージョンです。
*/

@charset "UTF-8";

/*--------------------------------
reset
--------------------------------*/
html,body,div,p,img,iframe,a,span,blockquote,q,address,cite,
pre,code,em,small,strong,b,i,
header,article,section,nav,figure,figcaption,hgroup,menu,aside,footer,time,
h1,h2,h3,h4,h5,h6,
ul,ol,li,dl,dt,dd,
table,tbody,thead,tfoot,th,tr,td,
form,fieldset,legend,label,select,input,textarea,button{
    margin: 0;
    padding: 0;
    border: 0;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    vertical-align: baseline;
}
header,article,section,nav,figure,figcaption,hgroup,menu,aside,footer{
    display: block;
}
ul li{
    list-style-type: none;
}
h1,h2,h3,h4,h5,h6{
    font-weight: 500;
}
body{
    line-height: 1;
}
a{
    text-decoration: none;
}
img{
    vertical-align: middle;
}
table{
    border-collapse: collapse;
    border-spacing: 0;
}
select,option,input:not([type=checkbox]):not([type=radio]),textarea,button{
    font: inherit;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    outline: none;
}
blockquote::before,blockquote::after,q::before,q::after{
    content: '';
    content: none;
}
[type=submit],[type=button],[type=reset],[type=file],button{
    cursor: pointer;
}
:focus{
    outline: none;
}

/*--------------------------------
base
--------------------------------*/
html {
    height: 100%;
}
body{
    margin: 0;
    padding: 0;
    height: 100%;
    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
    font-size: 16px;
    line-height: 1.6;
    color: #170411;
}
a{
    color: #241157;
    text-decoration: underline;
}
img{
    max-width: 100%;
    height: auto;
}
h1,h2,h3,h4,h5,h6{
    line-height: 1.3;
    font-weight: bold;
}
.wrap{
    margin: auto;
    height: 100%;
    max-width: 750px;
}
.wrap.enter{
    padding-bottom: 77px;
    position: relative;
}
.wrap.enter .footer{
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
}
.h2{
    margin: 16px;
    padding: 0 0 16px 0;
    background: url(images/heading-btm.webp) no-repeat center bottom / 50px;
    position: relative;
    text-align: center;
    font-size: 20px;
    font-weight: bold;
    color: #040316;
}
.h2::after{
    width: 100%;
    border-bottom: solid 2px;
    left: 0;
    right: 0;
    bottom: 2px;
    z-index: -1;
}
.h2 img{
    width: 60%;
    max-width: 240px;
}
.h2::after,
.app .border::before{
    margin: auto;
    content: "";
    position: absolute;
}
.app .contents .accent,
.app .contents .h2{
    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}
.emoji{
    width: 17px;
    position: relative;
    top: -2px;
}
.bold{
    font-weight: bold;
}
.red{
    color: red;
}
.yellow-line{
    /*background:linear-gradient(transparent 60%, #ff6 60%);*/
    background: linear-gradient(transparent 60%, #e2d2ff 60%);
}
.purple-line{
    background: linear-gradient(transparent 60%, #e2d2ff 60%);
}

/*--------------------------------
contents
--------------------------------*/
.header{
    margin-bottom: 16px;
    padding: 16px;
    background: url(./images/hero-bg.webp) no-repeat top center / cover;
}
.header .h1{
    margin: 0 0 0 79%;
}
.header.small{
    background: url(./images/hero-small-bg.webp) no-repeat top center / cover;
}
.header.small .h1{
    margin: 0;
}
.header .frame-text{
    margin: 0 10% 0 0;
}
.header .frame-text img{
    width: 84%;
}
.age-check .text {
    margin-bottom: 16px;
    padding: 0 16px;
    text-align: center;
    color: #fff;
}
.age-check .text .strong {
    font-weight: bold;
    color: #fff2af;
}
.age-check .btn-box {
    margin: 16px 0;
    padding: 0 16px;
    display: flex;
}
.age-check .btn-box .btn {
    margin: 0;
    padding: 18px 0px;
    display: block;
    border-radius: 4px;
    background: linear-gradient(to right, rgba(191,127,255,1) 0%,rgba(127,127,255,1) 100%);
    text-align: center;
    text-decoration: none;
    line-height: 1;
    font-size: 20px;
    font-weight: bold;
    color: #fff;
}
.age-check .btn-box .btn.yes {
    width: 100%;
}
.age-check .btn-box .btn.no {
    margin-right: 16px;
    width: 100%;
    background: none;
    border: solid 2px #170411;
    color: #170411;
}
.article-list-heading {
    margin: 16px;
    border: solid;
    border-image: url(./images/black-frame.webp) 44 round;
    border-width: 24px;
    text-align: center;
}
.article-list-heading .inner{
    margin: -8px;
    display: block;
}
.app{
    margin: 0 16px 16px;
    padding: 0 0 16px;
    display: block;
    border-bottom: solid 1px #e6e6e6;
}
.app:last-child{
    margin: 0 16px;
    border-bottom: none;
}
.app .border{
    border: solid 50px;
    border-image: url(./images/app-frame.webp) 100 round;
    position: relative;
}
.app .border::before{
    width: 50px;
    height: 30px;
    background: url(./images/app-frame-head.webp) no-repeat bottom center / contain,#280041;
    top: -49px;
    left: 0;
    right: 0;
}
.app.first .border::before{
    background: url(./images/app-frame-head.webp) no-repeat bottom center / contain,#4e174e;
}
.app .border .contents{
    margin: -44px;
    padding: 35px 12px 14px;
    position: relative;
}
.app .contents .accent{
    padding: 4px;
    width: 135px;
    display: inline-block;
    background: url(./images/app-accent-left.webp) no-repeat left 2px center / 22px, url(./images/app-accent-right.webp) no-repeat right 4px bottom 4px / 14px,#cc00cc;
    text-shadow: -4px -4px 0px #cc00cc,-4px -3px 0px #cc00cc,-4px -2px 0px #cc00cc,-4px -1px 0px #cc00cc,-4px 0px 0px #cc00cc,-4px 1px 0px #cc00cc,-4px 2px 0px #cc00cc,-4px 3px 0px #cc00cc,-4px 4px 0px #cc00cc,-3px -4px 0px #cc00cc,-3px 4px 0px #cc00cc,-2px -4px 0px #cc00cc,-2px 4px 0px #cc00cc,-1px -4px 0px #cc00cc,-1px 4px 0px #cc00cc,0px -4px 0px #cc00cc,0px 4px 0px #cc00cc,1px -4px 0px #cc00cc,1px 4px 0px #cc00cc,2px -4px 0px #cc00cc,2px 4px 0px #cc00cc,3px -4px 0px #cc00cc,3px 4px 0px #cc00cc,4px -4px 0px #cc00cc,4px -3px 0px #cc00cc,4px -2px 0px #cc00cc,4px -1px 0px #cc00cc,4px 0px 0px #cc00cc,4px 1px 0px #cc00cc,4px 2px 0px #cc00cc,4px 3px 0px #cc00cc,4px 4px 0px #cc00cc;
    position: absolute;
    top: 4px;
    right: -18px;
    text-align: center;
    font-size: 15px;
    line-height: 1.2;
}
.app .contents .accent.no-img{
    padding: 4px 6px 2px;
    background: #cc00cc;
}
.app .h2{
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    line-height: 1.2;
    font-size: 24px;
    font-weight: bold;
    color: #a0b5ff;
}
.app .sub-title{
    margin-bottom: 16px;
    padding: 12px 0 12px 68px;
    background: url(./images/suisyo-icon.webp) no-repeat left center / 60px;
    font-size: 20px;
}
.app .h2 .big{
    font-size: 20px;
    font-weight: bold;
    line-height: 1.4;
}
.app .h2 .hyphen{
    display: none;
}
.app .text{
    margin-bottom: 12px;
}
.app .text img{
    margin: 8px 0;
}
.app .detail-btn{
    margin-bottom: 16px;
    padding: 4px;
    display: block;
    background: #e0e0e0;
    text-align: center;
    border-radius: 22px;
    line-height: 1.4;
    font-weight: bold;
    color: #3366cc;
}
.app .hr{
    margin: 0 0 12px;
    height: 1px;
    background: #f4c057;
    border-width: 1px 0;
    border-color: #f4e2dc;
    border-style: solid;
}
.app .info{
    margin-bottom: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.app .info .left{
    margin-right: 12px;
    width: 130px;
}
.app .info .right{
    flex: 1;
}
.app .info .right .h4{
    margin-bottom: 8px;
    font-size: 18px;
}
.app .ul{
}
.app .ul .li {
    margin: 0 2px 6px 0;
    padding: 4px 4px;
    display: inline-block;
    border: solid 1px;
    line-height: 1.2;
    font-size: 14px;
}
.app .app-text{
    margin-bottom: 16px;
}
.app .btn{
    margin: 0 0 16px 0;
    padding: 14px 16px;
    display: block;
    border-radius: 8px;
    background: url(./images/btn-deco-left.webp) no-repeat left 4px bottom 4px / 20px ,url(./images/btn-deco-right.webp) no-repeat right 4px top 4px / 20px ,linear-gradient(to right, rgba(191,127,255,1) 0%,rgba(127,127,255,1) 100%);
    /* animation: poyon 1.2s infinite; */
    text-decoration: none;
    text-align: center;
    font-size: 20px;
    font-weight: bold;
    color:#fff;
}
.app .btn .inner{
    padding-right: 24px;
    display: inline-block;
    background: url(./images/btn-arrow-white.webp) no-repeat right center / 12px;
    line-height: 1.3;
}
.app .btn.detail{
  margin-bottom: 16px;
  background: none;
  background: url(./images/detail-btn-deco-left.webp) no-repeat left 4px bottom 4px / 20px, url(./images/detail-btn-deco-right.webp) no-repeat right 4px top 4px / 20px;
  border: solid 2px #170411;
  color: #170411;
}
.app .btn.detail .inner{
    background: url(./images/btn-arrow-black.webp) no-repeat right center / 12px;
}
@keyframes poyon{
  0%{
      transform: scale(1.0, 1.0) translate(0%, 0%);
  }
  15%{
      transform: scale(0.9, 0.9) translate(0%, 5%);
  }
}
.app .info .get{
    margin-top: 8px;
    padding: 4px;
    display: block;
    background: -webkit-linear-gradient(top, rgba(29,204,29,1) 0%,rgba(5,79,5,1) 100%);
    background: linear-gradient(to bottom, rgba(29,204,29,1) 0%,rgba(5,79,5,1) 100%);
    border: solid 2px;
    border-radius: 22px;
    font-size: 18px;
    text-align: center;
    line-height: 1.4;
    font-weight: bold;
    color: #ffffff;
}
.star-box,
.star{
    width: 108px;
    height: 20px;
}
.star-box{
    margin-bottom: -3px;
    display: inline-block;
    background: url(./images/app-star-bg.webp) no-repeat left center / cover;
    position: relative;
}
.star{
    margin: auto;
    background: url(./images/app-star.webp) no-repeat left center / cover;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
}
.star.star0{
    width: 0;
}
.star.star0h{
    width: 11px;
}
.star.star1{
    width: 21px;
}
.star.star1h{
    width: 32px;
}
.star.star2{
    width: 43px;
}
.star.star2h{
    width: 54px;
}
.star.star3{
    width: 65px;
}
.star.star3h{
    width: 75px;
}
.star.star4{
    width: 85px;
}
.star.star4h{
    width: 97px;
}
.star.star5{
    width: 106px;
}
.review{
    margin: 16px;
}
.review .h2{
    margin: 0 0 16px;
}
.review .swiper-slide{
    height: auto!important;
    display: flex;
    flex-direction: column;
}
.review .heading{
    margin-bottom: 16px;
    display: flex;
    justify-content: space-between;
}
.review .heading .left{
    margin-right: 12px;
    width: 72px;
    height: 72px;
    overflow: hidden;
    text-align: center;
}
.review .heading .left img{
    height: 100%;
    object-fit: contain;
}
.review .heading .right{
    display: flex;
    flex: 1;
    flex-direction: column;
}
.review .heading .review-star{
    margin-bottom: 8px;
    height: 20px;
}
.review .heading .h3{
    flex: 1;
    display: flex;
    align-items: center;
    line-height: 1.4;
    font-size: 16px;
    font-weight: bold;
}
.review .text{
    flex: 1;
}
.swiper-pagination{
    margin: 16px auto 0;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}
.swiper-pagination-bullet{
    margin: 0 12px 16px;
    width: 8px;
    height: 8px;
    background: #cccccc;
    border-radius: 8px;
}
.swiper-pagination-bullet-active{
    background: #8f68ff;
}
.question{
    padding: 24px 16px;
    background: url(images/question-bg.webp) no-repeat top center / cover;
}
.question .h2{
    margin: 0 0 8px;
    padding: 0 0 0 38px;
    background: url(./images/question-icon.webp) no-repeat left center / 30px;
    text-align: left;
    color: #fff799;
}
.question .box{
    overflow: hidden;
}
.question .box img{
    margin: 0 0  8px 8px;
    width: 100px;
    float: right;
}
.question .box .text{
    color: white;
}
.osusume{
    margin: 16px;
}
.osusume .h2{
    margin: 0 0 16px;
}
.osusume .swiper-slide{
    height: auto!important;
    display: flex;
    justify-content: space-between;
}
.osusume .swiper-slide .left{
    margin-right: 12px;
    width: 90px;
}
.osusume .swiper-slide .right{
    flex: 1;
}
.osusume .right .h3{
    margin-bottom: 4px;
    font-size: 16px;
    font-weight: bold;
}
.osusume .right .text{
    margin-bottom: 8px;
}
.osusume .right .btn{
    padding: 4px;
    display: block;
    background: linear-gradient(to right, rgba(191,127,255,1) 0%,rgba(127,127,255,1) 100%);
    border-radius: 4px;
    text-align: center;
    text-decoration: none;
    font-size: 16px;
    font-weight: bold;
    color: #ffffff;
}
.icon-list{
    margin: 0 16px 20px;
}
.icon-list .ul{
    display: flex;
    justify-content: center;
    column-gap: 24px;
    flex-wrap: wrap;
}
.icon-list .ul .li{
    margin: 0 0 8px;
    width: 90px;
}
.icon-list .li a{
    display: block;
}
.icon-list .li .text{
    margin-top: 8px;
    display: block;
    text-align: center;
    font-size: 16px;
    color: #280041;
}
.pagination{
    margin: 0 16px 32px;
}
.footer{
    padding: 16px;
    width: 100%;
    background: #1a1a1a;
    position: sticky;
    top: 100vh;
    text-align: center;
    font-size: 14px;
    color: white;
}
.footer a{
    color: white;
}
.app.error .border .contents{
    padding: 33px 12px 14px;
}
.app.error .detail-btn{
    margin-bottom: 8px;
}

/*--------------------------------
mini-tablet
--------------------------------*/
@media screen and (min-width: 600px){
    body{
        font-size: 24px;
    }
    .h2 {
        margin: 32px;
        padding: 0 0 24px 0;
        background: url(images/heading-btm.webp) no-repeat center bottom / 77px;
        font-size: 30px;
    }
    .h2::after {
        bottom: 4px;
    }
    .header{
        margin-bottom: 32px;
        padding: 32px;
    }
    .header .h1 {
        margin: 0 0 0 77%;
    }
    .header .frame-text {
        margin: 0 30% 0 0;
    }
    .header .frame-text img{
        width: 100%
    }
    .age-check .btn-box {
        margin: 32px 0;
        padding: 0 32px;
    }
    .age-check .btn-box .btn {
        padding: 23px 0px;
        border-radius: 8px;
        font-size: 30px;
    }
    .article-list-heading {
        margin: 32px;
        border-width: 44px;
    }
    .article-list-heading .inner {
        margin: -16px;
    }
    .app {
        margin: 0 32px 32px;
        padding: 0 0 32px;
        border-bottom: solid 2px #e6e6e6;
    }
    .app:last-child{
        margin: 0 32px;
    }
    .app .sub-title {
        margin-bottom: 32px;
        padding: 24px 0 24px 116px;
        background: url(./images/suisyo-icon.webp) no-repeat left center / 100px;
        font-size: 30px;
    }
    .app .info {
        margin-bottom: 32px;
    }
    .app .info .left {
        margin-right: 16px;
        width: 180px;
    }
    .app .info .right .h4 {
        font-size: 28px;
    }
    .app .ul .li {
        margin: 0 4px 8px 0;
        padding: 6px;
        font-size: 20px;
    }
    .app .app-text {
        margin-bottom: 32px;
    }
    .app .btn {
        margin: 0 0 32px 0;
        padding: 16px 24px;
        border-radius: 16px;
        background: url(./images/btn-deco-left.webp) no-repeat left 8px bottom 8px / 24px, url(./images/btn-deco-right.webp) no-repeat right 8px top 8px / 24px, linear-gradient(to right, rgba(191,127,255,1) 0%,rgba(127,127,255,1) 100%);
        font-size: 30px;
    }
    .app .btn.detail {
        margin-bottom: 32px;
        background: url(./images/detail-btn-deco-left.webp) no-repeat left 8px bottom 8px / 24px, url(./images/detail-btn-deco-right.webp) no-repeat right 8px top 8px / 24px;
        border: solid 2px #170411;
    }
    .app .btn .inner {
        padding-right: 32px;
        background: url(./images/btn-arrow-white.webp) no-repeat right center / 16px;
    }
    .app .btn.detail .inner {
        background: url(./images/btn-arrow-black.webp) no-repeat right center / 16px;
    }
    .app .btn {
        font-size: 36px;
    }
    .app .sub-title {
        font-size: 36px;
    }
    .app .info .right .h4 {
        font-size: 32px;
    }
    .app .ul .li {
        font-size: 24px;
    }
    .question {
        padding: 48px 32px;
    }
    .question .h2 {
        margin: 0 0 16px;
    }
    .question .box img {
        margin: 0 0 16px 16px;
        width: 200px;
    }
    .review .h2 {
        margin: 0 0 32px;
    }
    .review {
        margin: 32px;
    }
    .review .heading {
        margin-bottom: 32px;
    }
    .review .heading .h3 {
        font-size: 24px;
    }
    .review .heading .left {
        margin-right: 24px;
        width: 124px;
        height: 124px;
    }
    .review .heading .review-star {
        height: 40px;
    }
    .star-box {
        margin-bottom: -1px;
    }
    .star-box, .star {
        width: 129px;
        height: 24px;
    }
    .star.star0h{
        width: 13px;
    }
    .star.star1{
        width: 26px;
    }
    .star.star1h{
        width: 38px;
    }
    .star.star2{
        width: 52px;
    }
    .star.star2h{
        width: 64px;
    }
    .star.star3{
        width: 77px;
    }
    .star.star3h{
        width: 90px;
    }
    .star.star4{
        width: 103px;
    }
    .star.star4h{
        width: 116px;
    }
    .star.star5{
        width: 129px;
    }
    .swiper-pagination {
        margin: 32px auto 0;
    }
    .swiper-pagination-bullet {
        margin: 0 16px 32px;
        width: 16px;
        height: 16px;
    }
    .osusume {
        margin: 32px;
    }
    .osusume .h2 {
        margin: 0 0 32px;
    }
    .osusume .swiper-slide .left {
        margin-right: 24px;
        width: 124px;
    }
    .osusume .right .h3 {
        margin-bottom: 8px;
        font-size: 24px;
    }
    .osusume .right .text {
        margin-bottom: 16px;
    }
    .osusume .right .btn {
        padding: 8px;
        border-radius: 8px;
        font-size: 24px;
    }
    .footer {
        padding: 32px;
        font-size: 20px;
    }
}

/*--------------------------------
tablet
--------------------------------*/
@media screen and (min-width: 768px){
    body{
        font-size: 28px;
    }
    .h2 {
        font-size: 34px;
    }
    .age-check {
        margin: 48px 0;
    }
    .age-check .btn-box .btn {
        font-size: 34px;
    }
    .app .btn {
        font-size: 34px;
    }
    .app .sub-title {
        font-size: 34px;
    }
    .app .info .right .h4 {
        font-size: 32px;
    }
    .app .ul .li {
        font-size: 24px;
    }
    .review .heading .h3 {
        font-size: 28px;
    }
    .star.star0h{
        width: 15px;
    }
    .star.star1{
        width: 30px;
    }
    .star.star1h{
        width: 45px;
    }
    .star.star2{
        width: 60px;
    }
    .star.star2h{
        width: 75px;
    }
    .star.star3{
        width: 91px;
    }
    .star.star3h{
        width: 105px;
    }
    .star.star4{
        width: 121px;
    }
    .star.star4h{
        width: 136px;
    }
    .star.star5{
        width: 151px;
    }
    .star-box, .star {
        width: 150px;
        height: 28px;
    }
    .osusume .right .btn {
        font-size: 28px;
    }
}