@charset "UTF-8";
:root{
    --mainColor:#de0d4f;
    --mainColor:#d9143b;
    --baseColor:#;
    --keyColor:#;
    --txtColor:#170d02;
}
*{
    max-width:100%;/*スマホ崩れ防止*/
}

body{
    margin: 0;
    font-family: 'Hiragino Kaku Gothic Pro','ヒラギノ角ゴ Pro W3','メイリオ',Meiryo,'ＭＳ Ｐゴシック',sans-serif;
    font-size: 16px;
    -webkit-font-feature-settings: "palt";
    font-feature-settings: "palt";
    word-break: break-all;
    position: relative;
    color: var(--txtColor);
    background-color: #eef9f9;
    background-color: #eef9f99e;
}

body.windows,
body.android{
    font-size: 15px;
}

a{
    text-decoration: none;
    color: var(--);
}
img{
    vertical-align:bottom;
    width: 100%;
    height: auto;
}
ul,li{
    list-style:none;
    padding:0;
    margin:0
}

.wrapper{
    max-width: 750px;
    margin:0 auto;
    background: linear-gradient(90deg,  rgb(254,253,252) 0%, #ffffff 35%,#ffffff 65%,rgb(254,253,252));
    box-shadow: 0 0 4px #c1bfbe80;
}

.container{
    padding:0 0px;
}

.highlight{
    color: var(--mainColor);
    font-weight: bold;
}

.underline{
    background:linear-gradient(transparent 65% , #ffee7d 65% -100%,transparent 100% );
}

.colPink{
    color: #e0315d;
}

header{
    text-align: center;
    font-family: "Shippori Mincho",'Hiragino Kaku Gothic Pro','ヒラギノ角ゴ Pro W3','メイリオ',Meiryo,'ＭＳ Ｐゴシック',sans-serif;
}

header .container > p{
    color: #fff;
    font-size: min(3.46vw,26px);
    background-image: linear-gradient(90deg,  rgba(235, 75, 117, 1) 0%, rgba(240, 105, 139, 1) 50%, rgba(235, 75, 117, 1));
    box-shadow: 0 1px 0 0 rgba(159, 43, 67, 0.25);
    padding: 0.538em 0;
    position: relative;
    z-index: 20;
}

#top header .container > p::before{
    content: 'PR';
    font-family: 'Hiragino Kaku Gothic Pro','ヒラギノ角ゴ Pro W3','メイリオ',Meiryo,'ＭＳ Ｐゴシック',sans-serif;
    font-size: 0.7em;
    width: 2em;
    position: absolute;
    top: 50%;
    right:1em ;
    transform:translateY(-50%);
    border: #fff 1px solid;
    padding:0.11em 0 0.025em;
    line-height: 1;
}

header .container > p span{
    position: relative;
    text-shadow: 0 0 0.266vw rgba(209, 0, 59, 0.25);
    font-weight: 500;
}

header .container > p span::before,
header .container > p span::after{
    content: '';
    width: 0.807em;
    height: 0.769em;
    background: url(../img/decor-shine.png) center center / contain no-repeat;
    position: absolute;
    top: 50%;
    left: -0.807em;
    transform: translate(-50%,-50%);
}

header .container > p span::after{
    left: auto;
    right: -1.61em;
    transform: translate(-50%,-50%) scaleX(-1);
}

#keyVisual{
    background:url(../img/fv-background.webp) center center/ contain no-repeat ;
    height: min(54.6vw,410px);
    position: relative;
    z-index: 10;
}

#keyVisual > p:first-child{
    position: absolute;
    background: url(../img/asset-ribbon.png) center center /contain no-repeat;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width:min(14.4vw,108px);
    height: min(11.9vw,89px);
    z-index: 0;
    top: -1px;
    left: min(7.33vw,55px);
    color: #fff;
    text-shadow: 0 0 3px rgba(204, 0, 58, 0.25);
    padding-bottom: min(1.866vw,14px);
}

#keyVisual > p:first-child span:first-child{
    font-size: min(2.305vw,17.29px);
    padding:0 0 0.115em 0.25em;
}

#keyVisual > p:first-child span:first-child strong{
    font-size: min(1.312em,22.69px);
    letter-spacing: 0.01em;
    display: inline-block;
    margin-right: 0.04em;
    font-weight: 500;
}

#keyVisual > p:first-child span:last-child{
    font-size: min(2.66vw,20px);
}

#keyVisual > p:nth-of-type(2){
    font-size:min(3.33vw,25px);
    font-weight: 600;
    letter-spacing: 0.01em;
    margin-top: 1.28em;
    position: relative;
    display: inline-block;
    color: var(--txtColor);
}

#keyVisual > p:nth-of-type(2) > strong{
    font-size: 1.25em;
    font-weight: 400;
    display: inline-block;
    padding-right:0.156em ;
}

#keyVisual > p:nth-of-type(2)::before,
#keyVisual > p:nth-of-type(2)::after{
    content: '';
    width:0.84em ;
    height: 0.72em;
    position: absolute;
    bottom:0;
    left: -1.4em;
    background: url(../img/decor-popup.png) center center / contain no-repeat;
}

#keyVisual > p:nth-of-type(2)::after{
    transform: scaleX(-1);
    left: auto;
    right: -1.2em;
}

#keyVisual h1{
    display: flex;
    flex-direction: column;
    font-size: min(10vw,75px);
    font-weight: 800;
    color: var(--mainColor);
    letter-spacing: 0.05em;
    text-shadow:
rgb(255, 255, 255) 0.053333em 0em 0em,
rgb(255, 255, 255) 0.051675em 0.013195em 0em,
rgb(255, 255, 255) 0.046804em 0.025569em 0em,
rgb(255, 255, 255) 0.039023em 0.036354em 0em,
rgb(255, 255, 255) 0.028816em 0.044878em 0em,
rgb(255, 255, 255) 0.016817em 0.050613em 0em,
rgb(255, 255, 255) 0.003773em 0.053200em 0em,
rgb(255, 255, 255) -0.009506em 0.052479em 0em,
rgb(255, 255, 255) -0.022195em 0.048496em 0em,
rgb(255, 255, 255) -0.033503em 0.041497em 0em,
rgb(255, 255, 255) -0.042728em 0.031919em 0em,
rgb(255, 255, 255) -0.049296em 0.020355em 0em,
rgb(255, 255, 255) -0.052800em 0.007526em 0em,
rgb(255, 255, 255) -0.053020em -0.005770em 0em,
rgb(255, 255, 255) -0.049944em -0.018708em 0em,
rgb(255, 255, 255) -0.043763em -0.030483em 0em,
rgb(255, 255, 255) -0.034861em -0.040363em 0em,
rgb(255, 255, 255) -0.023791em -0.047733em 0em,
rgb(255, 255, 255) -0.011242em -0.052135em 0em,
rgb(255, 255, 255) 0.002005em -0.053296em 0em,
rgb(255, 255, 255) 0.015129em -0.051143em 0em,
rgb(255, 255, 255) 0.027311em -0.045810em 0em,
rgb(255, 255, 255) 0.037796em -0.037629em 0em,
rgb(255, 255, 255) 0.045930em -0.027108em 0em,
rgb(255, 255, 255) 0.051209em -0.014902em 0em,
rgb(255, 255, 255) 0.053304em -0.001770em 0em,
0em 0.066667em 0.066667em rgba(159, 43, 67, 0.65);
}

#keyVisual h1 > div{
    display: inline-block;
    margin-top: 0.15em;
}

#keyVisual h1 > div:first-child{
    font-size: 0.493em;
    font-weight: 700;
    margin-top: 0.35em;
}

#keyVisual h1 > div:last-child{
    font-size: 0.741em;
    font-weight: 600;
    letter-spacing: -0.05em;
    margin-top: 0.025em;
}

#keyVisual h1 > div:last-child > span{
    display: inline-block;
    position: relative;
    margin-left: -0.5em;
}

#keyVisual h1 > div:last-child > span::before,
#keyVisual h1 > div:last-child > span::after{
    content: '';
    width: 0.782em;
    height: 1.42em;
    position: absolute;
    top: 50%;
    left: -0.782em;
    transform:translateY(-50%);
    background:url(../img/decor-laurel.png) center center/ contain no-repeat;
}

#keyVisual h1 > div:last-child > span::after{
    left: auto;
    right: -1.042em;
    transform:translateY(-50%) scaleX(-1);
}

#keyVisual h1 > div:last-child > span > strong{
    font-weight: 500;
    color: #b8832e;
}

#keyVisual h1 > div:last-child > span > strong:first-child{
    padding-left: 0.15em;
    letter-spacing: 0.03em;
}

#keyVisual h1 > div:last-child > span > strong:nth-of-type(2){
    font-style: italic;
    display: inline-block;
    position: relative;
    font-size: 1.4em;
}
#keyVisual h1 > div:last-child > span > strong:nth-of-type(2)::before{
    content: '';
    width: 0.283em;
    height: 0.219em;
    position: absolute;
    top: 0;
    left:65% ;
    transform:translateY(-80%);
    background:url(../img/decor-crown.png) center center/ contain no-repeat;
}

#demand > .container,
#bias > .container{
    text-align: center;
    padding: 0 0 0;
}

#demand > div > p,
#bias > div > p{
    color: #704c1d;
    font-size: min(3.73vw,20px);
    font-weight: bold;
    text-align: center;
    display: inline-block;
    position: relative;
    margin-top: 2.14em;
}

#bias > div > p{
    margin-top: 0;
}

#demand > div > p::before,
#demand > div > p::after,
#bias > div > p::before,
#bias > div > p::after{
    content: '';
    width:1em ;
    height: 1em;
    position: absolute;
    top: 50%;
    left: -1em;
    transform:translate(-50%,-50%);
    background:url(../img/decor-gshine.png) center center/ contain no-repeat;
}

#demand > div > p::after,
#bias > div > p::after{
    left: auto;
    right: -1.65em;
    transform:translate(-50%,-50%) scaleX(-1);
}

#demand > div h2,
#bias > div h2{
    font-size: min(6.4vw,30px);
    font-weight: bold;
    letter-spacing: 0.065em;
    line-height: 1.35;  
    text-shadow:
  rgb(255, 255, 255) 0.1em 0em 0em,
  rgb(255, 255, 255) 0.0945em 0.03272em 0em,
  rgb(255, 255, 255) 0.07859em 0.06184em 0em,
  rgb(255, 255, 255) 0.05403em 0.08415em 0em,
  rgb(255, 255, 255) 0.02352em 0.09719em 0em,
  rgb(255, 255, 255) -0.00957em 0.09954em 0em,
  rgb(255, 255, 255) -0.04161em 0.09093em 0em,
  rgb(255, 255, 255) -0.06908em 0.07231em 0em,
  rgb(255, 255, 255) -0.08893em 0.04573em 0em,
  rgb(255, 255, 255) -0.099em 0.01411em 0em,
  rgb(255, 255, 255) -0.09817em -0.01906em 0em,
  rgb(255, 255, 255) -0.08653em -0.05013em 0em,
  rgb(255, 255, 255) -0.06536em -0.07568em 0em,
  rgb(255, 255, 255) -0.037em -0.0929em 0em,
  rgb(255, 255, 255) -0.00457em -0.0999em 0em,
  rgb(255, 255, 255) 0.02837em -0.09589em 0em,
  rgb(255, 255, 255) 0.05818em -0.08133em 0em,
  rgb(255, 255, 255) 0.08159em -0.05782em 0em,
  rgb(255, 255, 255) 0.09602em -0.02794em 0em,
  -0.1em 0.1em 0.1em rgba(191, 161, 122, 0.65);
    margin: 0.1em 0 0.52em;
}

#demandContent,
#biasContent,
#summary{
    width: min(84vw,630px);
    text-align: justify;
    margin: 0 auto;
    font-size: min(3.733vw,16px);
    padding-bottom: min(12vw,60px);
}

#demandContent p,
#biasContent p{
    line-height: 1.5;
    margin-bottom: 1.06em;
    letter-spacing: 0.065em;
}

#demandContent figure:not(:last-child),
#biasContent ul{
    margin: 0 auto 1.06em;
}

#biasContent ul{
    background-color: #f2f2f2;
    border-radius: min(2.66vw,20px);
    padding: 1.666em 1.666em;
    font-size: min(4.1vw,21px);
    font-weight: bold;
    letter-spacing: 0.1em;
    position: relative;
}

#biasContent ul::before{
    content: '';
    width:5.65em;
    height: 7.2em;
    position: absolute;
    bottom: 0;
    right:-0.7em ;
    background:url(../img/asset-woman.webp) center center/ contain no-repeat;
}

#biasContent ul li{
    line-height: 1.55;
}

#points h2,
#rank h2{
    background-color: #e63768;
    color: #fff;
    font-weight: 800;
    text-align: center;
    padding: 0.75em 0.5em;
    padding: 0.645em 0 0.783em;
    font-size:min(5.9vw,30px) ;
    box-shadow: 0 0.066em 0.033em rgba(204,175,116,0.8);
    letter-spacing: 0.02em;
    text-shadow: 0 0.066em 0.033em #ba2751;
    position: relative;
    margin-bottom: 1.5em;
}

#points h2 small,
#rank h2 small{
    display: inline-block;
    font-size: min(3.73vw,20px);
    margin-bottom: 0.412em;
}

#points h2::before,
#points h2::after,
#rank h2::before,
#rank h2::after{
    content: '';
    width: 0.272em;
    height: 0.25em;
    position: absolute;
    bottom:-0.25em;
    left: 0;
    background-color: #636363;
    clip-path: polygon(100% 0, 0 0, 100% 100%);
}
#points h2::after,
#rank h2::after{
    left: auto;
    right: 0;
    clip-path: polygon(100% 0, 0 0, 0 100%);
}

.readmore {
    position: relative;
    margin: 0 auto;
    padding: 0 0 75px;
}
.readmore{
    width:min(90.66vw,680px);
    background-color: #fbf6f1;
    padding: min(7.333vw,45px) min(5.333vw,55px) min(12vw,60px);
    padding: min(7.333vw,30px) min(5.333vw,40px) min(12vw,50px);
    margin-bottom: min(5.333vw,30px);
}
.readmore h3{
    color: var(--mainColor);
    font-size: min(6.3vw,28px);
    font-weight: bold;
    padding: 0.166em 0 0 2em;
    margin-bottom: 0.6em;
    position: relative;
    letter-spacing: 0.02em;
}

.readmore h3::before,
.readmore h3::after{
    content: 'POINT';
    color: var(--txtColor);
    font-size: 0.45em;
    width: 4.25em;
    height: 2em;
    position: absolute;
    top:0;
    left:0;
    text-align: center;
    letter-spacing: 0.03em;
}

.readmore h3::after{
    content: '01';
    font-size: 0.7em;
    width: 2.833em;
    height: 1em;
    top:auto;
    bottom: -0.075em;
}

li.readmore:nth-of-type(2) h3::after{ content: '02'; }
li.readmore:nth-of-type(3) h3::after{ content: '03'; }
li.readmore:nth-of-type(4) h3::after{ content: '04'; }
li.readmore:nth-of-type(5) h3::after{ content: '05'; }

.readmore h4{
    font-size: min(4vw,20px);
    font-weight: bold;
    padding:0 0 0 0.5em ;
    letter-spacing: 0.025em;
    position: relative;
    margin-bottom: 0.9em;
}

body.windows .readmore h4,
body.android .readmore h4{
  font-size:min(3.6vw,20px);
}

.readmore h4::before{
    content: '';
    width: 0.175em;
    height: 1.066em;
    position: absolute;
    top: 50%;
    left: 0;
    transform:translateY(-50%);
    background:var(--mainColor);
}

.readmore .content p{
    font-size: min(3.733vw,16px);
    line-height: 1.6;
    letter-spacing: 0.015em;
    margin-bottom: 1.25em;
    padding: 0 0.25em;
}

.readmore .content dl,
.readmore .content ul{
    font-size: min(3.733vw,16px);
}

.readmore .content dl dt{
    font-weight: bold;
    margin-bottom: 0.3em;
}

.readmore .content dl dd,
.readmore .content ul,
.readmore .content .img05{
    margin-bottom: 1.25em;
}

.readmore .content ul{
    background: #fff;
    padding: 1em;
    border-radius: 0.25em;
}

.readmore .content ul li{
    font-weight: bold;
    padding-left: 1.5em;
    position: relative;
}

.readmore .content ul li::before{
    content: '';
    width: 1.15em;
    height: 1.15em;
    position: absolute;
    top: 50%;
    left:0 ;
    transform:translateY(-50%);
    background:url(../img/decor-check01.png) center center/ contain no-repeat;
}

.readmore .content ul li:first-child{
    margin-bottom: 0.25em;
}

.readmore label {
    width: 100%;
    height: min(12vw,60px);
    position: absolute;
    left: 0;
    bottom: 0;
    margin: 0 auto;
    color: #fff;
    background-color: rgba(251,246,241,1);
    cursor: pointer;
    z-index: 1;
}

.readmore label::before {
    content: '';
    width: 1.5em;
    height: 1.5em;
    position: absolute;
    top: 75%;
    left: 50%;
    transform-origin: top center;
    transform: rotate(180deg) translate(50%);
    background:url(../img/asset-open.png) center center/ contain no-repeat;
}

.readmore input[type="checkbox"]:checked~label::before {
    top: 15%;
    transform: rotate(0deg) translateX(-50%);
}

.readmore input[type="checkbox"] {
    display: none
}

.readmore-content {
    position: relative;
    height: min(66.666vw,300px);
    overflow: hidden;
}

.readmore input[type="checkbox"]:checked~.readmore-content {
    height: auto
}

.readmore-content::before {
    position: absolute;
    display: block;
    content: "";
    bottom: 0;
    left: 0;
    width: 100%;
    height: 75px;
    height: min(13vw,70px);
    background: linear-gradient(rgba(251,246,241,0) 0%,rgba(251,246,241,.8) 40%,rgba(251,246,241,1) 100%)
}

.readmore input[type="checkbox"]:checked~.readmore-content::before {
    display: none
}

#comparisonTable{
    padding-bottom: min(10.666vw,80px);
}

#comparisonTable > div:nth-of-type(1){
    width: min(77.333vw,580px);
    margin: 0 auto;
}

#comparisonTable > p:nth-of-type(1){
    width: min(84vw,630px);
    text-align: justify;
    font-size: min(3.733vw,16px);
    margin: 1.428em auto 1.06em;
    line-height: 1.5;
    letter-spacing: 0.065em;
}

/* 比較表 */

.js-scrollable{
    background-color: #fff;
    border: solid 1px #eba9b7;
    color: var(--txtColor);
    overflow-x: auto !important;
    overflow-y: hidden !important;
}

.table-wrap {
  width: min(92vw,690px);
  overflow-x: auto;
  overflow-y: hidden;
  margin: 0 auto;
}
.table-wrap table {
font-family: "Google Sans",'Hiragino Kaku Gothic Pro','ヒラギノ角ゴ Pro W3','メイリオ',Meiryo,'ＭＳ Ｐゴシック',sans-serif;
  table-layout: fixed;
  border-collapse: collapse;
  min-width: calc(100% + 75vw);
  font-size: min(3.2vw,24px);
  font-weight: bold;
}

  th,td {
    text-align: center;
    border: 1px solid #bfafb4;
    padding: 15px 10px;
  }

.fixed01{
    width: min(17.333vw,130px);
    position: sticky;
    left: 0;
    color:var(--txtColor);
    background-color: #fff0f4;
    padding: min(0.666vw,5px);
    z-index: 2000;
}

.table-company{
    height: min(20.666vw,100px);
}

.table-company th{
    padding: min(1.333vw,10px);
}

.table-company th:nth-of-type(2),
.table-company th:nth-of-type(3),
.table-company th:nth-of-type(4){
    padding: min(4vw,30px) min(1.333vw,10px) min(1.333vw,10px);
}

.table-company th:nth-of-type(2) div,
.table-company th:nth-of-type(3) div,
.table-company th:nth-of-type(4) div{
    margin: 0 auto;
    width: 70%;
    position: relative;
}

.table-company th:nth-of-type(3) div{
    width: 100%;
}

.table-company th:nth-of-type(2) div::before,
.table-company th:nth-of-type(3) div::before,
.table-company th:nth-of-type(4) div::before{
    content: '';
    width: 1.95em;
    height: 1.95em;
    position: absolute;
    top: -1.5em;
    left: 50%;
    transform:translateX(-50%);
    background:url(../img/decor-crown02.png) center center/ contain no-repeat;
}

.table-company th:nth-of-type(3) div::before{
    width: 1.55em;
    height: 1.55em;
    top: -0.85em;
    background:url(../img/decor-crown03.png) center center/ contain no-repeat;
}

.table-company th:nth-of-type(4) div::before{
    width: 1.5em;
    height: 1.5em;
    top: -1.6em;
    background:url(../img/decor-crown04.png) center center/ contain no-repeat;
}

.table-score td{
    font-size: min(6.5vw,28px);
}

.table-number td{
    font-size: min(5.6vw,28px);
}
.table-score td small,
.table-number td small{
    font-size: 0.523em;
}

.table-number td.smaller{
    font-size: 1.15em;
}

.table-attribute td div:first-child,
.table-attribute td div:last-child{
    position: relative;
}
.table-attribute td div:first-child::before,
.table-attribute td div:last-child::before{
    content: '';
    width: 0.8em;
    height: 0.8em;
    position: absolute;
    top: 50%;
    left: 0;
    transform:translateY(-50%);
    background:url(../img/icon-man.png) center center/ contain no-repeat;
}
.table-attribute td div:last-child::before{
    background:url(../img/icon-woman.png) center center/ contain no-repeat;
}

.table-price th > ul{
    position:absolute;
    top:0;
    left:0.75em;
    text-align: left;
    padding-top:8px;
    padding-left:5px;
}

.table-price th > ul li{
    position:relative;
    line-height: 1;
    font-size:0.85em;
}

.table-price th > ul li:not(:last-child){
    margin-bottom:0.35em;
}

.table-price th > ul li::before{
    position:absolute;
    content:'・';
    width:1em;
    height:1em;
    font-size:1.15em;
    top:50%;
    left:-0.55em;
    transform:translateY(-50%);
    color:var(--mainColor);
}

.price li{
    text-align: right;
    line-height: 1;
    font-size: min(3.73vw,28px);
}

.price li small{
    font-size: 0.6em;
}

.table-price td > div{
    margin-top: min(1.866vw,14px);
}

.table-price td > div > span:nth-of-type(1){
    font-size: min(2.666vw,14px);
    background-color: #e9e9e9;
    padding: 0.2em;
}

.table-price td:nth-of-type(1) > div > span:nth-of-type(1){
    background-color: #ffe9ef;
}

.table-price td > div > div{
    font-size: min(5.2vw,40px);
    line-height: 1.25;
}

.table-price td > div > div > small{
    font-size: 0.5em;
}

.table-price td > div > span:nth-of-type(2){
    font-size: min(2.5vw,12px);
    font-weight: normal;
    color: #424242;
}

body.windows .table-price td > div > span:nth-of-type(2),
body.android .table-price td > div > span:nth-of-type(2){
    font-size: min(2.25vw,9px);
}

.table-support td div{
    width: 2.16em;
    height: 2.16em;
    margin: 0 auto;
}

.table-cta td a{
    display: inline-block;
    color: #fff;
    font-size: min(3.2vw,24px);
    padding: 0.625em 1.25em;
    background: url(../img/asset-tablecta.png) center center / contain no-repeat;
}

body.windows .table-cta td a,
body.android .table-cta td a{
  font-size:min(3vw,24px);
}

.gradation01{
    background-image: linear-gradient(0deg, rgba(255, 255, 252, 1), rgba(255, 255, 253, 1));
}
.gradation02{
    background-image: linear-gradient(0deg, rgba(255, 255, 249, 1), rgba(255, 255, 251, 1));
}
.gradation03{
    background-image: linear-gradient(0deg, rgba(255, 254, 247, 1), rgba(255, 255, 249, 1));
}
.gradation04{
    background-image: linear-gradient(0deg, rgba(255, 254, 245, 1), rgba(255, 254, 247, 1));
}
.gradation05{
    background-image: linear-gradient(0deg, rgba(255, 254, 241, 1), rgba(255, 254, 245, 1));
}
.gradation06{
    background-image: linear-gradient(0deg, rgba(255, 254, 240, 1), rgba(255, 254, 241, 1));
}
.gradation07{
     background-image: linear-gradient(0deg, rgba(255, 254, 240, 1));
}

.table-company th:nth-of-type(2),
.table-wrap tr:not(.table-company) td:nth-of-type(1){
    border-left: #d99500 3px solid;
    border-right: #d99500 3px solid;
}

.table-company th:nth-of-type(2),
tr.table-cta td:nth-of-type(1){
    position: relative;
}

.table-company th:nth-of-type(2)::before,
tr.table-cta td:nth-of-type(1)::before{
    content:'';
    position: absolute;
    width:100%;
    height:3px;
    border-top: #d99500 3px solid;
    top:-1.5px;
    left:0;
}

tr.table-cta td:nth-of-type(1)::before{
    border-bottom: #d99500 3px solid;
    border-top:transparent;
    top: auto;
    bottom: -1.5px;
}

.caution::before{
    content:"※2";
    position:absolute;
    font-size:0.9em;
    width:2em;
    height:1em;
    color:#424242;
}
.caution01::before{
    content:"※1";
    font-size:0.75em;
    top:auto;
    bottom:1em;
    right:1em;
}
.caution03::before{
    content:"※3";
}
.caution04::before{
    content:"※4";
}
.caution05::before{
    content:"※5";
}

.table-wrap + p{
    color: #6a6967;
    width: min(92vw,690px);
    margin: 0.75em auto 0;
    font-size: min(2.133vw,12px);
    line-height: 1.35;
    letter-spacing: 0.05em;
}

/* @END 比較表 */
.underline02{
    position: relative;
}

.underline02::before{
    content: '';
    width: 100%;
    height: 1px;
    position: absolute;
    bottom: -3px;
    left: 0;
    background: var(--mainColor);
}

body.windows .underline02::before,
body.android .underline02::before{
  bottom:0;
}

#ranking{
    background-color:#f5e9d5 ;
    padding-top: min(16vw,100px);
    padding-bottom: min(8vw,50px);
    position: relative;
}

#ranking::before{
    content: '';
    width: min(27.6vw,207px);
    height: min(8.4vw,63px);
    position: absolute;
    top: -1px;
    left: 50%;
    transform:translateX(-50%);
    background:#fff;
    clip-path: polygon(50% 100%, 0 0, 100% 0);
}

#ranking > ul > li{
    background-color: #fff;
    width: min(94.666vw,710px);
    margin: 0 auto;
    border-radius: min(1.6vw,12px);
    box-shadow: 0 0 8px rgba(107,81,24,0.15);
    padding: min(3.2vw,24px) min(4vw,30px) min(6.66vw,50px);
}

#ranking > ul > li:not(:first-child){
    margin-top: 1.5em;
}

#ranking > ul > li > div > dl{
    display: flex;
}

#ranking > ul > li > div > dl dt{
    width: 46%;
    padding-left: min(12vw,90px);
    position: relative;
}
/* 編集中 */
#ranking > ul > li#description-sunmarie > div > dl dt{
	padding-left:min(6vw,45px);
}

#ranking > ul > li#description-fiore > div > dl dt{
	padding-left:min(14vw,90px);
    padding-top:min(2vw,15px);
    padding-bottom:min(2vw,15px)
}

#ranking > ul > li > div > dl dt::before{
    content: '';
    width: min(15.86vw,120px);
    height: min(23.466vw,176px);
    position: absolute;
    top: 50%;
    left: calc( -1 * (min(2.8vw,21px)));
    transform:translateY(-50%);
    background:url(../img/asset-crown01.png) center center/ contain no-repeat;
}

#ranking > ul > li#description-sunmarie > div > dl dt::before{
    background:url(../img/asset-crown02.png) center center/ contain no-repeat;
}

#ranking > ul > li#description-fiore > div > dl dt::before{
    background:url(../img/asset-crown03.png) center center/ contain no-repeat;
}

#ranking > ul > li#description-partneragent > div > dl dt::before{
    background:url(../img/asset-crown04.png) center center/ contain no-repeat;
}

#ranking > ul > li#description-ibj > div > dl dt::before{
    background:url(../img/asset-crown05.png) center center/ contain no-repeat;
}

#ranking > ul > li > div > dl dd{
    width: 54%;
    align-content:center;
}

#ranking > ul > li > div > dl dd a{
    text-align: center;
    width: 100%;
    display: inline-block;
    background-image: linear-gradient(0deg, rgba(2, 150, 71, 1), rgba(0, 177, 103, 1));
    color: #fff;
    font-weight: bold;
    flex-direction: column;
    font-size: min(3.733vw,16px);
    padding: 0.857em 2.142em;
    margin: 0 auto;
    border-radius: 1.857em;
    border: solid 0.07em #a0dab4;
    position: relative;
    overflow: hidden;
}
#ranking > ul > li > div > dl dd a::before{
    content: "";
    display: block;
    width: 70px;
    height: 160px;
    background-color: rgba(255, 255, 255, 0.2);
    position: absolute;
    top: -100%;
    left: -30%;
    transform: rotate(30deg);
    animation: shine 2s infinite linear;
}

@keyframes shine {
  17% {
    left: 120%;
  }

  100% {
    left: 120%;
  }
}


#ranking > ul > li > div:nth-of-type(1) p{
    color: var(--mainColor);
    font-weight: bold;
    font-size: min(3.733vw,16px);
    text-align: center;
     background-image: linear-gradient(2deg, rgba(249, 225, 233, 1), rgba(250, 232, 239, 1));
    padding: 0.535em 0;
    margin: 0.357em 0 0.714em;
    border-radius: 0.214em;
}

body.windows #ranking > ul > li#description-partneragent > div:nth-of-type(1) p,
body.android #ranking > ul > li#description-partneragent > div:nth-of-type(1) p{
  font-size:min(3.359vw,16px);
}


#ranking  th,td {
    padding: 14px 10px;
  }

.table01 tr th:nth-of-type(1){
    width: 50%;
}

.table01 tr th > div {
    display: flex;
    justify-content: space-between;
}

.table01 tr th > div > div{
    display: flex;
    align-items: center;
    justify-content: center;
}

.table01 tr th > div > div{
    width: min(5.333vw,40px);
}

.table01 tr th > div > div:last-child{
    text-align: center;
    width: calc(100% - 2em);
}

.table01 tr:nth-of-type(2) th > div > div:nth-of-type(2){
    background: url(../img/asset-map.webp) center center / contain no-repeat;
}

.table02 table tr th{
    width: min(25vw,188px);
    background-color: #f2f2f2;
    font-size: min(3.333vw,16px);
}

.table02 table tr:nth-of-type(1) td:nth-of-type(1){
    width: min(20vw,150px);
    font-size: min(3.333vw,16px);
}

.table02 table tr:nth-of-type(3) td{
    padding: 8px 10px 11px;
}

.table02 table tr:nth-of-type(3) ul{
    width:min(46.666vw,350px);
    position: relative;
    margin: 0 auto;
}

.table02 table tr:nth-of-type(3) ul::before{
    content: '※紹介プランの場合';
    width: 100%;
    height: 1em;
    position: absolute;
    bottom:-0.9em;
    right: -2.5em;
    text-align: right;
    color:#4b4b4b;
    font-size: min(2.133vw,16px);
}

body.windows .table02 table tr:nth-of-type(4) th,
body.android .table02 table tr:nth-of-type(4) th{
  font-size:0.8em;
}

#description-sunmarie .table02 table tr:nth-of-type(3) ul::before{
    content: '※ベーシックコースの場合';
}

#description-fiore .table02 table tr:nth-of-type(3) ul::before{
    content: '※フィオーレコースの場合';
}

#description-partneragent .table02 table tr:nth-of-type(3) ul::before{
    content: '※スタンダードコース エリアIの場合';
}

#description-ibj .table02 table tr:nth-of-type(3) ul::before{
    content:none;
}

.table02 table tr:nth-of-type(3) ul li{
    display: flex;
    justify-content: space-between;
}

.table02 table tr:nth-of-type(3) ul li:not(:last-child){
    margin-bottom:0.3em;
}

.table02 table tr:nth-of-type(3) ul li span{
    display: inline-block;
    border: var(--txtColor) 1px solid;
    border-radius: min(0.533vw,4px);
    line-height: 1.25;
    font-size: min(2.66vw,13px);
    font-weight: bold;
    padding:0 0.25em;
}

.table02 table tr:nth-of-type(3) ul li p{
    font-weight: bold;
}

.recommend{
    margin-bottom: 1em;
}

.recommend > p,
.voice > p,
.campaign > p:first-child,
.campaign-box > p:first-child{
    font-weight: bold;
    font-size: min(3.733vw,18px);
    margin-top: 1.25em;
    margin-bottom: 0.35em;
}

.recommend ul li{
    font-size: min(3.525vw,18px);
    font-weight: bold;
    display: flex;
}

body.windows .recommend ul li,
body.android .recommend ul li{
    font-size: min(3.172vw,17px);
}

.recommend ul li:not(:last-child){
    margin-bottom: 0.25em;
}

.recommend ul li div{
    padding-left: 1.5em;
    background-color: #e0315d;
    color: #fff;
    border-radius: 1.5em;
    position:relative;
    padding:0 0.68em 0 1.5em;
    margin-right:0.25em;
}

.recommend ul li div::before{
    content: '';
    width: 1em;
    height: 1em;
    position: absolute;
    top: 50%;
    left:0.75em;
    transform:translate(-50%,-50%);
    background:url(../img/decor-check02.png) center center/ contain no-repeat;
}
.details p,
.campaign p{
    font-size: min(3.6vw,16px);
    line-height: 1.6;
    margin-bottom: 1em;
}

.voice ul li{
    background-color:#faf6f0;
    font-size: min(3.6vw,16px);
    padding:1.666em 1.481em;
    position: relative;
}

.voice ul li::before{
    content: '※あくまで個人の感想であり、効果を保証するものではありません。';
    width: 100%;
    height: 1em;
    position: absolute;
    bottom: -1.15em;
    right: 0;
    text-align: right;
    color: #4c4c4c;
    font-size: 0.65em;
}

.voice ul li:not(:last-child){
    margin-bottom: 1.5em;
}

.voice ul li > p:first-child{
    font-weight: bold;
    padding-left: 1.25em;
    font-size: 1.05em;
    margin-bottom: 0.576em;
    position: relative;
}

.voice ul li > p:first-child::before{
    content: '';
    width: 1.45em;
    height: 1.45em;
    position: absolute;
    top: 40%;
    left: -0.5em;
    transform:translateY(-50%);
    background:url(../img/icon-people.png) center center/ contain no-repeat;
}

.voice ul li > p:last-child{
    line-height: 1.6;
}
.table03 table{
    width: 100%;
    font-size: min(3.2vw,16px);
    margin-bottom: 1em;
}

#ranking .table03 th, 
#ranking .table03 td{
    padding: 0;
}

.bcBrown{
    color: #fff;
    background-color: #675656;
    font-weight: bold;
    width: min(16vw,120px);
    width: min(17vw,120px);
    line-height: 1.15;
}

.table03 td > strong,
#description-zwei .table03 td div > strong{
    font-size: 1.35em;
    color: var(--mainColor);
    margin-left: 0.25em;
    margin-right: 0.45em;
}

#description-fiore .table03 td,
#description-partneragent .table03 tr:nth-of-type(2) td{
    position: relative;
}

#description-fiore .table03 td::before,
#description-partneragent .table03 tr:nth-of-type(2) td::before{
    content: '※対象：フィオーレコース';
    width: 100%;
    height: 1em;
    position: absolute;
    bottom: 0.25em;
    right: 0.25em;
    text-align: right;
    color: #4c4c4c;
    font-size: 0.65em;
}

#description-partneragent .table03 tr:nth-of-type(2) td::before{
    content: 'エリア・コースによって異なります。';
}

#ranking .table03 td{
    padding: 5px;
}

.table03 td > div,
.table03 td > strong,
.table03 td > span{
    display: inline-block;
}

#description-zwei .table03 td > div{
    display: flex;
    align-items: center;
}

.table03 td > div > div,
.table03 td > div > strong,
.table03 td > div > span{
    display: inline-block;
    height: 100%;
}

.table03 td > div > span{
    background-color:#fcf39d;
    display: flex;
    flex-direction: column;
    padding: 0.45em;
    border-radius: 2em;
    line-height: 1.05;
}

.table03 td > span > strong{
    line-height: 1;
    color: var(--mainColor);
}

.ctaBtn > a{
    width: min(86.66vw,650px);
    display: inline-block;
    font-size: min(6.133vw,30px);
    color: #fff;
    font-weight: bold;
    padding: 0.35em 0 0.86em;
    text-align: center;
    line-height: 1;
    border-radius: min(2.4vw,18px);
    border: solid 0.13em #a0dab4;
    background-image: linear-gradient(0deg, rgba(1, 138, 60, 1), rgba(0, 178, 88, 1));
    text-shadow: 0 0 0.2em rgba(0,102,48,0.75);
    margin-top: 0.65em;
    animation: scaleAnimation 0.6s ease 0s infinite alternate;
}

#description-zwei .ctaBtn > a{
    margin-top: 1.3em;
}

@keyframes scaleAnimation {
  from {
    transform: scale(1,1);
  }
  to {
    transform: scale(1.065,1.065);
  }
}

.ctaBtn > a > span{
    color: #ffff00;
    font-size: 0.608em;
    line-height: 1.75;
}

#summary{
    padding-top:3.5em;
}

#summary h3{
    font-size:min(3.733vw,18px);
    font-weight:bold;
    position:relative;
    padding-left: 0.65em;
    margin-bottom:0.892em;
}

#summary h3::before{
    content: '';
    width: 0.25em;
    height: 1.05em;
    position: absolute;
    top: 50%;
    left: 0;
    transform:translateY(-50%);
    background-color: var(--mainColor);
}

#summary p{
    line-height:1.6;
    margin-bottom:1em;
}

#summary p:nth-of-type(2),
#summary p:nth-of-type(3){
    margin-bottom:2em;
}

footer{
    background-color: #f0f0f0;
    text-align: center;
    padding-bottom: min(1.333vw,10px);
}

footer ul{
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: min(3.466vw,14px);
    padding-top: 2.03em;
    width: min(80vw,500px);
    margin: 0 auto 3em;
}

footer ul li{
    width:100%;
    margin-bottom:0.45em;
}


footer ul li a{
    display: inline-block;
    width: 100%;
    padding:0.35em 0;
    border:solid 1px #b9b9b9;
    border-radius: 0.15em;
}

footer > small{
    color: #8c8c8c;
}

/* 下層ページ */

body:not(#top) h2{
    font-weight: bold;
    text-align: center;
    font-size: min(4.8vw,22px);
    letter-spacing: 0.05em;
    margin-top: 2.5em;
    margin-bottom: 2em;
} 

body:not(#top) section{
    width: min(84vw,550px);
    margin: 0 auto 2em;
}

body:not(#top) section:last-child{
    margin-bottom: 5em;
}

body:not(#top) h3{
    text-align: left;
    font-size: min(4vw,20px);
    font-weight: bold;
    padding-left: 0.75em;
    position: relative;
    margin-bottom: 0.85em;
} 

body:not(#top) h3::before{
    content: '';
    width:0.75em ;
    height:0.75em ;
    position: absolute;
    top: 50%;
    left: 0.25em;
    transform:translate(-50%,-60%);
    background-color:transparent;
    background-image: radial-gradient(circle,var(--mainColor) min(0.45vw,3px), transparent min(0.45vw,3px));
    background-position: center center;
    background-size: 30px 30px;
}

body:not(#top) h3::after{
    content: '';
    width: 100%;
    height: 1px;
    position: absolute;
    bottom: -5px;
    left: 0;
    background-color: var(--mainColor);
}

body:not(#top) p{
    line-height: 1.6;
    font-size: min(3.733vw,16px);
}

body:not(#top) section ul{
    margin-bottom: 1em;
}

body:not(#top) section ul li{
    font-size: min(3.733vw,16px);
    padding-left: 0.65em;
    position: relative;
}

body:not(#top) section ul li::before{
    content: '';
    width: 0.2em;
    height: 0.2em;
    position: absolute;
    top: 50%;
    left: 0.25em;
    transform:translate(-50%,-60%);
    background-color: var(--txtColor);
    border-radius: 1.5em;
}

#company table th{
    width: 28%;
    background-color: #f8f8f8;
    font-size:min(4vw,14px);
}

#company table td{
    text-align: left;
}

#contact label{
    margin-bottom: 1em;
    display: inline-block;
}

#contact label > span:first-child{
    font-weight:bold;
    padding-left:0.65em;
    position:relative;
    margin-bottom: 0.05em;
    display: inline-block;
    letter-spacing: 0.025em;
    width: 9.5em;
}

#contact label:nth-of-type(3) > span:first-child{
    vertical-align: top;
}

#contact label > span:first-child::before{
    position:absolute;
    content:'';
    width:0.25em;
    height:0.25em;
    border-radius:0.125em;
    background-color:var(--mainColor);
    top:50%;
    left:0.125em;
    transform: translateY(-50%);
}

#contact label > span:last-child input{
    width: 100%;
    height: 2.66em;
    border: 1px solid #828282;
    border-radius: 0.2em;
}

#contact label > span:last-child textarea{
    width: 100%;
    border: 1px solid #828282;
    border-radius: 0.2em;
}

#contact form > div{
    width: min(84vw,550px);
    margin: 0 auto;
}

#contact .submitBtn{
    width: 70%;
    margin: 0 auto;
}

#contact .submitBtn > input{
    width: 100%;
}

#contact .wrapper{
    max-width: 750px;
    margin: 0 auto;
    min-height: 100vh;

    display: flex;
    flex-direction: column;
}

#contact main{
    flex: 1;
}

#contact .submitBtn{
    width: 75%;
    margin: 0 auto;
}

#contact .submitBtn > input{
    width: 100%;
    background-color: #9c9c9c;
    border: none;
    color: #fff;
    border-radius: 0.2em;
    font-size: 1.05em;
    letter-spacing: 0.05em;
    padding: 0.75em;
}


/* 750px以上の場合 */
@media screen and (min-width:750px){

body.windows .underline02::before,
body.android .underline02::before{
  bottom:2px;
}

#demandContent,
#biasContent,
#comparisonTable > p:nth-of-type(1),
#summary{
    width: min(84vw,560px);
}
#demandContent{
    padding-bottom: 40px;
}

#demandContent p,
#biasContent p,
#comparisonTable > p:nth-of-type(1){
    line-height: 1.65;
}

#bias > div > p{
    margin-top: 1.5em;
}

#demandContent figure{
    margin: 1.25em auto;
}

#biasContent ul{
    padding: 1.666em 2.75em;
}

#biasContent ul::before{
    width: 7.38em;
    height: 8.95em;
    right: 1.2em;
}

#biasContent ul li{
    line-height: 1.7;
}

.readmore{
    width: min(84vw,620px);
}

.readmore .content dl,
.readmore .content div.img05 {
    max-width: 520px;
    margin-left:auto;
    margin-right: auto;
}

.readmore .content ul{
    padding: 1.25em 2em;
}

#comparisonTable > div:nth-of-type(1){
    max-width: 400px;
}

.table-wrap,
.table-wrap + p {
  width: min(92vw,660px);
}

.table-wrap table {
  min-width: auto;
  font-size: min(3.2vw,16px);
}

  th,td {
    padding: 25px 10px;
  }

.table-cta th,
.table-cta td{
    padding: 8px 6px;
  }

  .table-cta td a{
    padding: 0.625em 1.5em;
  }

.fixed01{
    width: min(17.333vw,75px);
}

.table-price th > ul{
    padding-top:10px;
}

.table-company th:nth-of-type(2) div::before{
    top: -1.7em;
}

.table-company th:nth-of-type(2) div{
    width: 80%;
}

.table-company th:nth-of-type(3) div::before{
    top: -1.15em;
}

.table-attribute{
    font-size: 15px;
}
.table-attribute td{
    padding:10px 5px 10px 10px;
}

.table-attribute td div:first-child::before,
.table-attribute td div:last-child::before{
    left: -0.45em;
}

.price li{
    font-size: min(3.73vw,18px);
}

.table-price td > div > div{
    font-size: min(5.2vw,20px);
}

.table-price td > div > span:nth-of-type(2){
    font-size: min(2.5vw,9.5px);
}

.table-cta td a{
    font-size: min(3.2vw,12.5px);
}

body.windows .table-cta td a,
body.android .table-cta td a{
  font-size:min(3vw,12.5px);
}

#ranking > ul > li{
    padding: min(3.2vw,24px) min(4vw,40px) min(6.66vw,50px);
}

#ranking > ul > li{
    width: min(92vw,640px);
}

#ranking > ul > li:not(:first-child){
    margin-top: 3em;
}

#ranking > ul > li#description-partneragent > div > dl,
#ranking > ul > li#description-ibj > div > dl{
    margin-bottom: 0.35em;
}

#ranking > ul > li > div > dl dt{
    padding-left: min(12vw,75px);
}

#ranking > ul > li > div > dl dt img{
    width: 75%;
}

#ranking > ul > li > div > dl dt::before{
    width: min(15.86vw,90px);
    height: min(23.466vw,135px);

}

#ranking > ul > li > div > dl dd a{
    font-size: min(3.733vw,22px);
    border-radius: 3.5em;
    letter-spacing: 0.025em;

}

#ranking > ul > li > div:nth-of-type(1) p{
    font-size: min(3.733vw,18px);
    padding: 0.6em 0;
    letter-spacing:0.075em;
    margin: 0.05em auto 0.45em;
    width: 540px;
}

.table01 tr th > div > div{
    width: min(5.333vw,27px);
}

.table01 tr th > div > div:nth-of-type(2){
    font-size:min(2.666vw,20px);
}
.table01 tr th:nth-of-type(2) img{
    display: inline-block;
    width: 73%;
}

.table02 tr th,
.table02 tr td{
    padding: 8px 10px;
}

.table02 table tr:nth-of-type(1) td:nth-of-type(1){
    font-size: min(3.333vw,18px);
}

.table02 table tr:nth-of-type(1) td:nth-of-type(2) img{
    width:85%;
    margin:0 auto;
}

.table02 table tr:nth-of-type(2) td img{
    width:80%;
    display:inline-block;
}

.table02 table tr:nth-of-type(4) td img{
    width:73%;
    display:inline-block;
}

.table02 table tr:nth-of-type(3) ul li p{
    font-size:22px;
}

.table02 table tr:nth-of-type(3) ul{
    width: min(46.666vw,310px);
}

.table02 table tr:nth-of-type(3) td{
    padding:12px 36px 18px;
}

.table02 table tr:nth-of-type(3) ul li{
    padding: 0 8px;
}

.table02 table tr:nth-of-type(3) ul::before{
    font-size: min(2.133vw,11px);
    bottom:-1.25em;
    right:-3em ;
}

.table02 table tr:nth-of-type(3) ul li span{
    line-height: 1.5;
}

body.windows .table02 table tr:nth-of-type(4) th,
body.android .table02 table tr:nth-of-type(4) th{
  font-size:1.15em;
}

.thumbnail,
.table01,
.table02,
.details,
.recommend,
.insert,
.voice,
.campaign{
    padding-left:10px;
    padding-right:10px;
}

.recommend ul li,
.details p,
.campaign p{
        letter-spacing:0.05em;
}
.recommend ul li div{
        margin-right:0.45em;
}

.recommend > p,
.voice > p,
.campaign > p:first-child,
.campaign-box > p:first-child{
    margin-top: 1.5em;
    margin-bottom: 0.5em;
}

#ranking .table03 td{
    padding: 5px 25px;
}

.recommend ul li:not(:last-child){
    margin-bottom: 0.3em;
}

.recommend{
	background-color:#ffc0cb1c;
	padding-top:15px;
	padding-bottom: 18px;
    width: 540px;
	margin: 1.5em auto 1em;
}

.recommend ul li{
	width:480px;
	margin: 0 auto;
}

.recommend > p{
	margin-top:0;
    padding-left: 20px;
}

.recommend ul li div{
        margin-right: 0.5em;
}

.details p,
.campaign p{
    margin-bottom: 1.75em;
}

.voice ul li > p:first-child{
    padding-left: 1.95em;
}

.voice ul li > p:first-child::before{
    width: 1.65em;
    height: 1.65em;
    left: -0.25em;
}

.ctaBtn > a{
    padding: 0.5em 0 1em;
}

footer ul{
    flex-direction: row;
    justify-content:space-between;
    margin-bottom:2em;
}

footer ul li{
    width:23.5%;
}

footer ul li:not(:last-child){
    position: relative;
    z-index: 0;
}

footer ul li:not(:last-child)::before{
    border-right:1px solid #b9b9b9;
    content: '';
    width: 100%;
    height: 60%;
    position: absolute;
    top: 50%;
    right: 0;
    transform:translateY(-50%);
    z-index: -10;
}

footer ul li a{
    letter-spacing:0.085em;
    border:none;
}

/* 下層ページ */
body:not(.top) h2{
    font-size: min(4.8vw,28px);
} 

 #contact label{
    margin-bottom: 1.5em;
}

#contact .submitBtn{
    width: 65%;
    margin: 0 auto;
}

}