@charset "UTF-8";
/* CSS Document */
/*----------------------------------------------
    reset
----------------------------------------------*/
input, button, select,textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none;
}
textarea { resize: vertical;}
input[type='checkbox'],
input[type='radio'] {
  display: none;
}
input[type='submit'],
input[type='button'],
label, button, select {
  cursor: pointer;
}
select::-ms-expand {
  display: none;
}


/*----------------------------------------------
    customize
    ranking 
----------------------------------------------*/

/* ----------------------
     header title
---------------------- */
.header__container__title {
    font-family: fot-chiaro-std, sans-serif;
    font-weight: 700;
    align-items: center;
}
.header__container__title__status {
    width: fit-content;
    position: relative;
    height: 24px;
    line-height: 24px;
    text-align: center;
    margin: 12px auto 0;
    padding: 0 15px;
    font-size: 12px;
    background: #fce58a;
    color: #000;
    box-sizing: border-box;
}
.header__container__title__status::before, 
.header__container__title__status::after {
    position: absolute;
    content: '';
    width: 8px;
    height: 0px;
    z-index: 1;
 }
.header__container__title__status::before {
    top: 0;
    left: 0;
    border-width: 12px 0px 12px 5px;
    border-color: transparent transparent transparent #650422;
    border-style: solid;
}
.header__container__title__status::after {
    top: 0;
    right: 0;
    border-width: 12px 5px 12px 0px;
    border-color: transparent #53061b transparent transparent;
    border-style: solid;
}


/* ----------------------
    navigation menu
---------------------- */
.nav-menu.ranking {
}
.nav-menu.ranking .nav-menu__list {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
}
.nav-menu.ranking .nav-menu__list li {
  width: calc(100% / 2);
  padding: 0 1px;
}
.nav-menu.ranking .nav-menu__list li a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 52px;
  background-color: rgb(255, 255, 255, 0.6);
  font-family: fot-chiaro-std, sans-serif;
  font-weight: 700;
  font-size: 12px;
  color: #42210b;
  text-decoration: none;
}

/* ----------------------
    index　：　テーマ
---------------------- */
.p-ranking__thema {
    background-color: rgb(255, 255, 255, 0.6);
    max-width: 460px;
    margin: auto;
    position: relative;
    padding: 30px 14px;
}
.p-ranking__thema::before {
    content: "";
    width: 80px;
    height: 37px;
    background-image: url(images/ranking_thema_clip.png);
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    top: -30px;
    left: 50%;
    transform: translateX(-50%);
}
.p-ranking__thema__title {}
.p-ranking__thema__title__label {
    width: fit-content;
    position: relative;
    height: 24px;
    line-height: 24px;
    text-align: center;
    margin: auto;
    padding: 0 15px;
    font-size: 12px;
    background: #7a002a;
    color: #FFF;
    box-sizing: border-box;
}
.p-ranking__thema__title__label::before, 
.p-ranking__thema__title__label::after {
    position: absolute;
    content: '';
    width: 8px;
    height: 0px;
    z-index: 1;
 }
.p-ranking__thema__title__label::before {
    top: 0;
    left: 0;
    border-width: 12px 0px 12px 5px;
    border-color: transparent transparent transparent #f0f0e7;
    border-style: solid;
}
.p-ranking__thema__title__label::after {
    top: 0;
    right: 0;
    border-width: 12px 5px 12px 0px;
    border-color: transparent #f0f0e7 transparent transparent;
    border-style: solid;
}
.p-ranking__thema__title__main {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 70%;
    height: 54px;
    margin: 12px auto 0;
    padding: 0 6px;
    text-align: center;
    font-weight: 700;
    position: relative;
}
.p-ranking__thema__title__main::before,
.p-ranking__thema__title__main::after {
    content: "";
    position: absolute;
    width: 22px;
    height: 54px;
    top: 0;
}
.p-ranking__thema__title__main::before {
    background-image: url(images/ranking_thema_frame-l.png);
    background-repeat: no-repeat;
    background-size: contain;
    left: -12px;
}
.p-ranking__thema__title__main::after {
    background-image: url(images/ranking_thema_frame-r.png);
    background-repeat: no-repeat;
    background-size: contain;
    right: -12px;
}
.p-ranking__thema__body {
    margin-top: 28px;
}
.p-ranking__thema__body h2 {
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-ranking__thema__body h2::before, .p-ranking__thema__body h2::after {
  border-top: 1px solid #42210b;
  content: "";
  width: 24px;
}
.p-ranking__thema__body h2::before {
  margin-right: 8px;
}
.p-ranking__thema__body h2::after {
  margin-left: 8px;
}
.p-ranking__thema__info {
    font-size: 12px;
    max-width: 300px;
    margin: 45px auto 0;
    /* text-align: center; */
}


/* ----------------------
    index　：　テーマ
---------------------- */
.p-ranking__result {
    background-color: #7a002a;
    max-width: 460px;
    margin: auto;
    position: relative;
    padding: 30px 14px;
    color: #fff;
}
.p-ranking__result__title {
    position: relative;
    z-index: 10;
    text-align: center;
    width: 76%;
    max-width: 300px;
    margin: auto;
}
.p-ranking__result__title::before,
.p-ranking__result__title::after {
    content: "";
    width: 51px;
    height: 74px;
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    bottom: -24px;
}
.p-ranking__result__title::before {
    background-image: url(images/ranking_result_thema_frame-l.png);
    left: -38px;
}
.p-ranking__result__title::after {
    background-image: url(images/ranking_result_thema_frame-r.png);
    right: -38px;
}
.p-ranking__result__title__label {
    display: inline-block;
    position: relative;
    height: 25px;
    text-align: center;
    box-sizing: border-box;
}
.p-ranking__result__title__label::before,
.p-ranking__result__title__label::after {
    content: '';
    position: absolute;
    width: 14px;
    bottom: -4px;
    border: 10px solid #e5cd9c;
    z-index: -2;
}
.p-ranking__result__title__label::before {
    left: -20px;
    border-left-color: transparent;
}
.p-ranking__result__title__label::after {
    right: -20px;
    border-right-color: transparent;
}
.p-ranking__result__title__label span {
    display: inline-block;
    position: relative;
    margin: 0;
    padding: 0 20px;
    line-height: 20px;
    font-size: 12px;
    color: #7a002a;
    background: #e5cd9c;
    border: 2px solid #7a002a;
}

.p-ranking__result__title__main {
    font-weight: 700;
    padding: 12px;
    border-top: 1px solid #e5cd9c;
    border-bottom: 1px solid #e5cd9c;
    position: relative;
    margin-top: 20px;
    line-height: 1.5;
}
.p-ranking__result__title__main::before {
    content: "";
    width: 40px;
    height: 23px;
    background-image: url(images/ranking_result_thema_tiara.png);
    background-repeat: no-repeat;
    background-size: contain;
}



/* ranking 投票ページ -----------------------------------------*/
.p-ranking__vote {}
.p-ranking__vote {
    background-color: #fff;
    max-width: 460px;
    margin: auto;
    position: relative;
    padding: 30px 14px;
}
.p-ranking__vote__title {}
.p-ranking__vote__title__label {
    width: fit-content;
    position: relative;
    height: 24px;
    line-height: 24px;
    text-align: center;
    margin: auto;
    padding: 0 15px;
    font-size: 12px;
    background: #7a002a;
    color: #FFF;
    box-sizing: border-box;
}
.p-ranking__vote__title__label::before, 
.p-ranking__vote__title__label::after {
    position: absolute;
    content: '';
    width: 8px;
    height: 0px;
    z-index: 1;
 }
 .p-ranking__vote__title__label::before {
    top: 0;
    left: 0;
    border-width: 12px 0px 12px 5px;
    border-color: transparent transparent transparent #fff;
    border-style: solid;
}
.p-ranking__vote__title__label::after {
    top: 0;
    right: 0;
    border-width: 12px 5px 12px 0px;
    border-color: transparent #fff transparent transparent;
    border-style: solid;
}
.p-ranking__vote__title__main {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 70%;
    height: 54px;
    margin: 12px auto 0;
    padding: 0 6px;
    text-align: center;
    font-weight: 700;
    position: relative;
}
.p-ranking__vote__title__main::before,
.p-ranking__vote__title__main::after {
    content: "";
    position: absolute;
    width: 22px;
    height: 54px;
    top: 0;
}
.p-ranking__vote__title__main::before {
    background-image: url(images/ranking_thema_frame-l.png);
    background-repeat: no-repeat;
    background-size: contain;
    left: -12px;
}
.p-ranking__vote__title__main::after {
    background-image: url(images/ranking_thema_frame-r.png);
    background-repeat: no-repeat;
    background-size: contain;
    right: -12px;
}

.p-ranking__vote__body {
    margin-top: 28px;
}
.p-ranking__vote__attention {
    font-size: 11px;
    padding: 14px 10px;
    background-color: #eaeaea;
    margin: 30px 0;
}



.p-ranking__contents {
    padding: 0 16px;
}
.p-ranking__contents__title {
    padding: 30px 0;
    text-align: center;
}
.p-ranking__contents__title__status {
    text-align: center;
}
.p-ranking__contents__head {
    font-size: 12px;
}
.p-ranking__contents__attention {
    text-align: center;
}

.p-ranking__section {
    border: 1px solid #333;
    padding: 16px;
    margin-top: 32px;
}
.p-ranking__section__title {
    text-align: center;
    font-size: 16px;
    font-weight: 700;
}
.p-ranking__section__title p {
    text-align: center;
    font-size: 10px;
}
.p-ranking__section__error {
    background-color: #750001;
    color: #fff;
    padding: 8px;
    margin: 20px 0;
}


/* 投票完了画面 ---------------------------------------------------*/
.p-ranking__vote__thank {
    margin: 42px 0 0;
    text-align: center;
    font-size: 16px;
    font-weight: 700;
}
.p-ranking__vote__thank__cap {
    font-size: 12px;
    font-weight: 300;
}
.wall__container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}
.wall__container > div {
    text-align: center;
}
.wall__container__iphone {
    width: 28%;
}
.wall__container__android {
    padding: 0 10px;
}
.wall__container > div > img {
    display: inline-block;
    height: 180px;
}

/* 投票フォーム ---------------------------------------------------*/
.form__item__wrap {
    margin-top: 30px;
}

h2.form__item__label {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: bold;
    text-align: left;
    color: #333;
    border-bottom: 1px solid #750001;
    padding-bottom: 3px;
    margin-bottom: 20px;
}
h2.required_off::after {
    content: "※任意";
    color: #999;
    padding-left: 1.5em;
    font-size: .8em;
}
.rank_icon {
    color: #900;
    padding-right: 5px;
    font-size: 1.3em;
}
.controls {
    text-align: left;
    position: relative;
}
.controls + .controls {
    margin-top: 20px;
}
.controls input[type="text"],
.controls input[type="email"],
.controls input[type="tel"],
.controls textarea,
.controls select {
    outline: none;
    padding: 18px 12px 9px;
    border: 1px solid #c6c6c6;
    width: 100%;
    color: #333;
    font-size: 16px;
    background-color: #fff;
    -moz-border-radius: 2px;
    -webkit-border-radius: 2px;
    border-radius: 2px;
    -moz-transition: all 0.3s;
    -o-transition: all 0.3s;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    box-sizing: border-box;
}
.controls.no_label select {
    padding: 4px 12px;
}
.controls input:-webkit-autofill {
    box-shadow: 0 0 0 1000px white inset;
}
.controls input[type="text"]:focus, .controls input[type="text"]:hover,
.controls input[type="email"]:focus,
.controls input[type="email"]:hover,
.controls input[type="tel"]:focus,
.controls input[type="tel"]:hover,
.controls textarea:focus,
.controls textarea:hover,
.controls button:focus,
.controls button:hover,
.controls select:focus,
.controls select:hover {
    outline: none;
    border-color: #42210b;
}
.controls input[type="text"]:focus + label, .controls input[type="text"]:hover + label,
.controls input[type="email"]:focus + label,
.controls input[type="email"]:hover + label,
.controls input[type="tel"]:focus + label,
.controls input[type="tel"]:hover + label,
.controls textarea:focus + label,
.controls textarea:hover + label,
.controls button:focus + label,
.controls button:hover + label,
.controls select:focus + label,
.controls select:hover + label {
    color: #42210b;
    cursor: text;
}
.controls .fa-sort {
    position: absolute;
    right: 10px;
    top: 17px;
    color: #999;
}
.controls select {
    -moz-appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}
.controls label {
    position: absolute;
    left: 8px;
    top: 12px;
    color: #999;
    font-size: 16px;
    display: inline-block;
    padding: 4px 10px;
    font-weight: 400;
    background-color: rgba(255, 255, 255, 0);
    pointer-events: none;
    -moz-transition: color 0.3s, top 0.3s, background-color 0.3s;
    -o-transition: color 0.3s, top 0.3s, background-color 0.3s;
    -webkit-transition: color 0.3s, top 0.3s, background-color 0.3s;
    transition: color 0.3s, top 0.3s, background-color 0.3s;
}
.controls label.active {
    top: -11px;
    color: #555;
    background-color: white;
    font-size: 14px;
}
.controls textarea {
    resize: none;
    height: 200px;
}

/* button */
.controls > button {
    font-size: 14px;
    width: 240px;
    height: 42px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 12px auto 0;
    line-height: 1.5;
    font-weight: 700;
}
.controls > button.button__submit {
    background-color: #42210b;
    color: #fff;
    border-radius: 20px;
}
.controls > button.button__return {
    width: 200px;
    background-color: #666;
    color: #fff;
    border-radius: 20px;
}


.musicList__other {
    display: none;
}
/*-- 未入力エラー -----------*/
.rankForm_error {
    color: #fff;
    background-color: #900;
    padding: 20px 14px;
    margin: 30px 0;
}

/*--確認画面用-----------*/
.p-ranking__confirm__head {
    color: #333;
    line-height: 1.3;
    text-align: center;
    padding: 0 14px 30px;
}
.p-ranking__confirm__item {
    position: relative;
    width: 100%;
    margin-top: 20px;
    padding: 20px 12px 6px;
    font-size: 16px;
    line-height: 24px;
    border: 1px solid #42210b;
    background-color: #fff;
    -moz-border-radius: 2px;
    -webkit-border-radius: 2px;
    border-radius: 2px;
    -moz-transition: all 0.3s;
    -o-transition: all 0.3s;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    box-sizing: border-box;
}
.p-ranking__confirm__item__label {
    position: absolute;
    left: 8px;
    top: -11px;
    color: #42210b;
    font-size: 14px;
    display: inline-block;
    padding: 4px 10px;
    background-color: #fff;
    pointer-events: none;
    -moz-transition: color 0.3s, top 0.3s, background-color 0.3s;
    -o-transition: color 0.3s, top 0.3s, background-color 0.3s;
    -webkit-transition: color 0.3s, top 0.3s, background-color 0.3s;
    transition: color 0.3s, top 0.3s, background-color 0.3s;
}
.p-ranking__confirm__item__input {
    word-wrap: break-word;
}
.p-ranking__confirm__item__textarea {
    min-height: 52px;
}



/* キーワード---------------------------------------------------*/
.p-keyword {}
.keyword__item {
    width: 100%;
    max-width: 150px;
    margin: auto;
    position: relative;
}
.keyword__item__bg {
    width: 100%;
}
.keyword__item__key {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    font-family: "linotype-didot", serif;
    font-size: 48px;
    font-weight: 700;
    font-style: normal;
    line-height: 1;
    color: #42210b;
}

/* 一覧ページ */
.keyword__list {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-wrap: wrap;
    max-width: 460px;
    margin: 0 auto 40px;
}
.keyword__list > .keyword__item {
    width: calc(100% / 3);
    margin: 0 auto;
}
.keyword__list > .keyword__item:nth-child(2) {
    margin-top: 50px;
}
.keyword__list > .keyword__item:nth-child(5) {
    margin-top: 30px;
}

input.keyword__input {
    outline: none;
    border: 1px solid #c6c6c6;
    color: #333;
    font-size: 16px;
    background-color: #fff;
    -moz-border-radius: 2px;
    -webkit-border-radius: 2px;
    border-radius: 2px;
    -moz-transition: all 0.3s;
    -o-transition: all 0.3s;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    box-sizing: border-box;
    background-color: #fff;
    border-radius: 8px;
    padding: 8px;
    width: 280px;
    margin: 20px auto 0;
    display: block;
}
input.keyword__input:-webkit-autofill {
    box-shadow: 0 0 0 1000px white inset;
}
input.keyword__input:focus, 
input.keyword__input:hover {
    outline: none;
    border-color: #42210b;
}
input.keyword__input::placeholder {
    font-size: 12px;
}
.keyword__alert {
    text-align: center;
    color: #900;
}


/* ランキング結果  -----------------------------------------*/
.p-ranking__result__body {
    margin-top: 48px;
}
/* ランキング表 */
.ranking__list { padding: 0 12px; }
.ranking__list__unit {
    position: relative;
    padding: 12px 0 12px 62px;
    border-bottom: 1px solid #e5cd9c;
}
.ranking__list__unit + .ranking__list__unit { margin-top: 40px; }
.ranking__list__unit:nth-child(n + 5) { margin-top: 12px; }
/* ランク順位 */
.ranking__list__rank {
    position: absolute;
    width: 50px;
    height: 65px;
    top: 0;
    left: 0;
    font-size: 28px;
    font-family: bodoni-urw, serif;
    font-weight: 500;
    text-align: center;
}
.ranking__list__rank.top3 {
    background-image: url(images/ranking_result_toprank_bg_flag.png);
    background-repeat: no-repeat;
    background-size: contain;
    display: flex;
    justify-content: center;
    align-items: center;
}
/* ランキング　もっと見るボタン */
.ranking__list__rank__more-button {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 200px;
    height: 42px;
    margin: 34px auto 0;
    border: 1px solid #e5cd9c;
    color: #e5cd9c!important;
    background-color: rgb(0, 0, 0, 0.2);
}

/* Modal  */
.comment__modal-open {
    display: inline-block;
    position: absolute;
    bottom: -30px;
    right: 0;
    color: #79012a!important;
    text-decoration: none;
    background-color: #c9b077;
    border-radius: 10px;
    padding: 0px 12px;
    font-size: 12px;
    font-weight: 700;
}
.modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    width: 100%;
    z-index: 100;
}
.modal__overlay {
    position: absolute;
    height: 100vh;
    width: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    z-index: 101;
}
/* Modal Content */
.modal__content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90vw;
    z-index: 102;
}
.modal__content__inner {
    position: relative;
    background: #e7e6d4;
    box-sizing: border-box;
    width: 100%;
    min-height: 100px;
    max-height: 500px;
    padding: 30px 12px;
    overflow-x: hidden;
    overflow-y: auto;
}
  /* Close Button */
.modal__close__button {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 42px;
    background-color: #7a002a;
    color: #fff!important;
    font-weight: 700;
    text-decoration: none;
    z-index: 105;
}

  /* コメント */
.comment__head {
    text-align: center;
    color: #7a002a;
    font-size: 16px;
    font-weight: 700;
    padding: 0 0 12px;
}
.comment__list {
    list-style: none;
}
.comment__list__unit {
    border-bottom: 1px solid #7a002a;
    margin-bottom: 24px;
    padding-bottom: 24px;
}
.comment__name {
    position: relative;
    color: #79012a;
    font-weight: 700;
}
.comment__name::after {
    content: " さん";
}
.comment__content {
    margin-top: 6px;
    color: #333;
    line-height: 1.5;
}
.comment__info {
    font-size: 12px;
    color: #999;
    text-align: right;
    margin-top: 12px;
}