/*
 * 【はじめに】
 * 最終的には可能な限り、コメントは削除してください。
 * ここに記載しているコメントもほぼ不要です(auPay start / ecd は必要)
 * 変数の使い方
 * $ec_dir ･･･ それぞれ各ECの絶対パス(現状)
 * $ec_id ･･･ それぞれ各ECのID(CSVで設定している分)
 *
 * 例：background-image: url($ec_dir + '/img/bn_main_background_sp.jpg');
 *
 * SCSSについて
 * 例：if制御
 *  @if $shop == 1 {
 * 		#pc_header.ac img {
 *			width: initial;
 *		}
 *	}
 *
 * 今分かっている問題
 * 1.rgb()について
 *   rgba()を利用してください。うまく変換されません
 */
/* auPayについては、figureタグ等利用できないタグがあり、変換して利用する事になる
 * その変換されたタグ用にCSSを設定する必要があるので、下記コメントタグを利用し、
 * 開始・終了で閉じる事
 * また、if制御を利用して切り替えると楽
 * @if $shop == 5 {
 *	.studless .recommend > h3 > img {
 *		width: 100%;
 *	}
 * } @else {
 *	.studless .recommend > div img {
 *		width: 100%;
 *	}
 * }
 */
@charset "utf-8";
.federal img {
  max-width: 100%;
  height: auto; }

.federal header nav .menu_btn {
  width: 50px;
  height: 50px;
  background-color: #009844;
  border: 3px solid #ea0a2a;
  display: flex;
  justify-content: center;
  align-items: center;
  float: right;
  margin: 10px; }

.federal header nav .menu_btn.is-fixed {
  position: fixed;
  top: 10px;
  right: 10px;
  z-index: 100;
  margin: 0;
  animation: slidedown 0.5s; }

@keyframes slidedown {
  from {
    transform: translateY(-20px);
    opacity: 0; }

  to {
    transform: translateY(0);
    opacity: 1; } }

.federal header nav .menu_btn div, .federal header nav .menu_btn div::before, .federal header nav .menu_btn div::after {
  content: "";
  width: 25px;
  height: 1px;
  background-color: #fff;
  position: relative;
  transition: 0.5s; }

.federal header nav .menu_btn div::before {
  position: absolute;
  bottom: 10px; }

.federal header nav .menu_btn div::after {
  position: absolute;
  top: 10px; }

.federal header nav .menu_btn div.open {
  transform: rotate(45deg); }

.federal header nav .menu_btn div.open::before {
  transform: rotate(90deg);
  bottom: 0px; }

.federal header nav .menu_btn div.open::after {
  transform: rotate(-90deg);
  top: 0px; }

.federal header nav {
  position: relative; }

.federal header nav ul.top_menu {
  width: 220px;
  background-color: #009844;
  border: 3px solid #ea0a2a;
  padding: 10px;
  display: none; }

.federal header nav ul.top_menu.open {
  display: block;
  position: absolute;
  top: 63px;
  z-index: 100;
  right: 10px;
  animation: slidein 0.5s; }

.federal header nav ul.top_menu.open.is-fixed {
  position: fixed; }

@keyframes slidein {
  from {
    transform: translateX(20px);
    opacity: 0; }

  to {
    transform: translateX(0);
    opacity: 1; } }

.federal header nav ul.top_menu li {
  padding: 10px;
  /*.federal header nav ul.top_menu li:nth-of-type(4){//セールかキャンペーン用
  background-color: #ea0a2a;
  width: 100%;
  text-indent: 10px;
  position: relative;
  left: -10px;
}*/ }

.federal header nav ul.top_menu li.menu_title {
  background-color: #fff;
  margin-bottom: 10px; }

.federal header nav ul.top_menu br {
  display: none; }

.federal header nav ul.top_menu li span {
  margin-left: 1em; }

.federal .in_menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: 80px 0 50px;
  position: relative;
  clear: both; }

.federal .in_menu li {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  text-align: center;
  margin-left: 5px;
  margin-right: 5px;
  position: relative; }

.federal .in_menu li::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: #009844;
  transform: skew(-10deg);
  z-index: -10; }

.federal .in_menu li:first-of-type::after, .federal .in_menu li:last-of-type::after {
  content: "";
  width: calc((100vw - 360px) / 2);
  height: 5px;
  background-color: #ea0a2a;
  transform: skew(-10deg); }

.federal .in_menu li:first-of-type::after {
  position: absolute;
  top: 50%;
  left: calc((100vw - 340px) / -2); }

.federal .in_menu li:last-of-type::after {
  position: absolute;
  top: 50%;
  right: calc((100vw - 340px) / -2); }

.federal .in_menu li a, .federal header nav ul.top_menu li a {
  font-size: 20px;
  font-weight: bold;
  font-style: italic;
  color: #fff;
  line-height: 1;
  letter-spacing: 0.1em;
  width: 160px;
  padding: 15px 0 15px 5px; }

.federal .in_menu li a span, .federal header nav ul.top_menu li a span {
  font-size: 0.6em;
  font-weight: normal;
  font-style: normal; }

.federal header .top_img .banner {
  width: 100%;
  display: flex;
  margin: 30px 0; }

.federal .pattern .picture img {
  display: block;
  height: 70vw;
  margin: 0 auto 30px;
  padding-top: 50px; }

.federal .pattern .choice_btn {
  display: flex;
  justify-content: center; }

.federal .pattern .choice_btn li {
  width: 25vw;
  height: 25vw;
  border: 1px solid #009844;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 5px 30px; }

.federal .pattern .choice_btn li:first-of-type, .federal .pattern .choice_btn li:last-of-type {
  width: 5vw;
  height: 25vw;
  border: none; }

.federal .pattern .choice_btn li img {
  width: auto;
  height: 95%; }

.federal .pattern .choice_btn li img.prev, .federal .pattern .choice_btn li img.next {
  height: auto; }

.federal .pattern .choice_btn li img.next {
  transform: rotate(180deg); }

.federal .pattern .pattern_name {
  width: 80%;
  margin: 0 auto 30px;
  padding-top: 20px;
  padding-bottom: 5px;
  border-bottom: 7px solid #ea0a2a;
  text-align: center; }

.federal .pattern .pattern_name img {
  height: 10vw; }

.federal .pattern .pattern_name small p {
  color: #009844;
  font-weight: bold;
  margin-bottom: 5px; }

.federal .pattern .pattern_name + p {
  margin: 0 10px 30px;
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.05em;
  font-weight: bold;
  text-align: justify; }

.federal section h3 {
  font-size: 28px;
  color: #fff;
  font-style: italic;
  letter-spacing: 0.1em;
  padding: 10px;
  margin-bottom: 50px;
  text-align: center;
  background-color: #ea0a2a;
  position: relative; }

.federal section#size h3 {
  background-color: #009844; }

.federal section h3::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -70px;
  border: 70px solid transparent;
  border-top: 15px solid #ea0a2a; }

.federal section#size h3::after {
  border-top: 15px solid #009844; }

.federal .features {
  background-color: #009844;
  position: relative; }

.federal .features dl {
  margin-bottom: 100px;
  padding-bottom: 40px; }

.federal .features dl dt {
  color: #fff;
  background-color: #ea0a2a;
  font-size: 28px;
  text-align: center;
  font-weight: bold;
  font-style: italic;
  margin: 0 10px; }

.federal .features dl dd {
  background-color: #fff;
  margin: 0 10px 30px;
  padding: 1.2em 0.5em;
  font-size: 14px;
  letter-spacing: 0.1em;
  line-height: 1.8;
  text-align: justify; }

.federal #size .link_sale {
  margin-bottom: 5px;
  margin-right: 13%; }

.federal #size h4 {
  padding: 5vw 0 3vw;
  text-align: center;
  font-size: 4vw;
  color: #ea0a2a;
  background-color: #fff;
  font-weight: bold; }

.federal #size > div {
  width: 95%;
  max-width: 1024px;
  margin: 0 auto;
  overflow-x: auto; }

.federal #size table {
  font-weight: bold;
  text-align: center;
  font-size: 3vw;
  margin: 0 auto 20px;
  border-collapse: collapse;
  position: relative; }

.federal #size table.pro {
  font-size: 3.6vw;
  width: 146vw; }

.federal #size table thead {
  position: absolute; }

.federal #size table tbody {
  border-top: 15vw solid #009844; }

.federal #size table.pro tbody {
  border-top: 17vw solid #009844; }

.federal #size table thead tr {
  transition: 0.3s; }

.federal #size table thead tr th {
  background-color: #009844;
  color: #fff;
  padding: 0.3em 0.5em;
  border-right: 1px solid #fff;
  border-top: 2vw solid #009844;
  border-bottom: 2vw solid #009844; }

.federal #size table thead tr th:first-of-type {
  border-left: 1px solid #009844; }

.federal #size table thead tr th:nth-of-type(-n+2), .federal #size table tbody tr td:nth-of-type(-n+2) {
  width: 4em; }

.federal #size table thead tr th.size, .federal #size table tbody tr td.size {
  width: 8em; }

.federal #size table thead tr th:last-of-type {
  border-right: 1px solid #009844; }

.federal #size table tbody tr td {
  border: 1px solid #009844;
  padding: 0.5em; }

.federal #size table tbody tr td.theader {
  background-color: #eaffea;
  width: 4em; }

.federal #size table tbody tr td.size a {
  color: #001bb4;
  text-decoration: underline; }

.federal #size table tbody tr td.size .com_sn {
  color: #001bb4;
  position: relative;
  font-weight: bold; }

.federal #size table tbody tr td.size .com_sn::before {
  position: absolute;
  content: 'Coming';
  font-size: 3vw;
  top: 50%;
  right: -13vw;
  transform: translate(0, -100%) rotate(5deg);
  color: #ea0a2a;
  background-color: #fff;
  font-weight: normal; }

.federal #size table tbody tr td.size .com_sn::after {
  position: absolute;
  content: 'soon';
  font-size: 3vw;
  bottom: 50%;
  right: -11vw;
  transform: translate(0, 100%) rotate(5deg);
  color: #ea0a2a;
  background-color: #fff;
  font-weight: normal; }

.federal #size table thead tr th.treadwear, .federal #size table tbody tr td.treadwear {
  width: 4em; }

.federal #size table.pro thead tr th.treadwear, .federal #size table.pro tbody tr td.treadwear {
  min-width: 6em; }

.federal #size table.pro thead tr th.trac, .federal #size table.pro tbody tr td.trac {
  min-width: 5em; }

.federal #size table.pro thead tr th.temp, .federal #size table.pro tbody tr td.temp {
  min-width: 7em; }

.federal #size table thead tr th.loadindex, .federal #size table tbody tr td.loadindex {
  width: 10em; }

.federal #size table thead tr th.price, .federal #size table tbody tr td.price {
  width: 5em; }

.federal #size table tbody tr td.price a {
  color: #ea0a2a;
  text-decoration: underline; }

.federal #size table tbody tr td .com_sn {
  color: #ea0a2a;
  font-weight: normal;
  line-height: 1.2; }

.federal #size table thead tr.is-fixed {
  position: fixed;
  top: 0;
  animation: slideIn 0.3s; }

@keyframes slideIn {
  0% {
    opacity: 0;
    transform: translateY(-20px); }

  100% {
    opacity: 1;
    transform: translateY(0px); } }

.federal #size table thead tr.is-fixed th {
  padding: 0.3em 0.5em; }

.federal #size table thead tr.is-fixed.out-fixed {
  opacity: 0;
  top: -20px; }

.federal #size h4.is-fixed {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 10;
  animation: slideIn 0.3s; }

.federal #size table.is-fixed {
  margin-top: 20vw; }

.federal #size table:nth-of-type(2) thead tr.is-fixed {
  position: fixed;
  top: 14vw;
  animation: slideIn 0.3s; }

.federal #size > a {
  font-size: 3vw;
  color: #000;
  display: flex;
  justify-content: center;
  padding: 0.2em 0.5em;
  background: #fff;
  /*線*/
  border: solid 3px #ea0a2a;
  /*角の丸み*/
  border-radius: 10px;
  width: 50%;
  margin-left: auto;
  margin-bottom: 50px;
  margin-right: 50px; }

.federal #size p.notfound {
  text-align: center; }

.federal footer .partner {
  text-align: center;
  max-width: 300px;
  margin: 0 auto 50px; }

.federal footer .partner span {
  display: block;
  margin: 20px 0; }

.federal footer nav {
  background-color: #009844;
  padding: 20px 0; }

.federal footer nav ul {
  display: flex;
  flex-wrap: wrap;
  font-size: 14px;
  justify-content: center; }

.federal footer nav ul li {
  margin-left: 10px;
  margin-right: 10px;
  line-height: 1.8; }

.federal footer nav ul li a {
  color: #fff; }

.federal footer small {
  display: block;
  color: #fff;
  text-align: center;
  background-color: #009844;
  padding-bottom: 20px; }

.federal #pagetop {
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 66px;
  height: 66px; }

@media screen and (min-width: 520px) {
  .federal #size > a {
    width: 15em;
    font-size: 15px;
    margin-right: calc(50% - 240px); } }

@media screen and (min-width: 768px) {
  .federal .in_menu li:first-of-type::after, .federal .in_menu li:last-of-type::after {
    content: "";
    width: calc((100vw - 400px) / 2); }

  .federal .in_menu li:first-of-type::after {
    left: calc((100vw - 380px) / -2); }

  .federal .in_menu li:last-of-type::after {
    right: calc((100vw - 380px) / -2); }

  .federal .in_menu li a {
    font-size: 26px;
    width: 180px;
    padding: 20px 0 20px 5px; }

  .federal .pattern {
    display: flex;
    flex-wrap: wrap;
    position: relative; }

  .federal .pattern > div {
    width: 37.5%;
    margin: 0 0 30px 2.5%; }

  .federal .pattern .picture {
    display: flex;
    justify-content: center; }

  .federal .pattern .picture img {
    height: 36vw;
    margin: 0 0 30px 0; }

  .federal .pattern div ul.choice_btn li {
    width: 10vw;
    height: 8.8vw; }

  .federal .pattern div ul.choice_btn li:first-of-type, .federal .pattern div ul.choice_btn li:last-of-type {
    width: 2vw;
    height: 10vw; }

  .federal .pattern div + div {
    width: 55%;
    margin: 0px 2.5%;
    padding-top: 50px; }

  .federal .pattern .pattern_name {
    width: 100%;
    margin: 0 0 40px;
    text-align: left; }

  .federal .pattern .pattern_name img {
    height: 5vw; }

  .federal .pattern .pattern_name + p {
    margin: 0 10px 6vw; }

  .federal .features dl {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-content: center; }

  .federal .features dl dt {
    background: linear-gradient(100deg, #ea0a2a 0% 69%, #fff 70% 100%);
    font-size: 40px;
    text-align: left;
    text-indent: 2vw;
    line-height: 100px;
    width: 10%;
    height: 100px;
    margin: 0 0 30px 3%;
    box-sizing: border-box; }

  .federal .features dl dd {
    width: 80%;
    height: 100px;
    margin: 0 3% 30px 0;
    letter-spacing: 0.05em;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    border: none; }

  .federal #size .link_sale {
    margin-right: 15.5%; }

  .federal #size h4 {
    font-size: 2.5vw; }

  .federal #size table thead tr th {
    border-top: 1.5vw solid #009844;
    border-bottom: 1.5vw solid #009844; }

  .federal #size table.pro thead tr th {
    border-top: 10px solid #009844;
    border-bottom: 10px solid #009844; }

  .federal #size thead tr th br {
    display: none; }

  .federal #size table tbody {
    border-top: 7vw solid #009844; }

  .federal #size table.pro tbody {
    border-top: 80px solid #009844; }

  .federal #size table thead tr th:nth-of-type(-n+2), .federal #size table tbody tr td:nth-of-type(-n+2) {
    width: 6em; }

  .federal #size table.pro thead tr th:nth-of-type(-n+2), .federal #size table.pro tbody tr td:nth-of-type(-n+2) {
    min-width: 4em; }

  .federal #size table thead tr th.size, .federal #size table tbody tr td.size {
    width: 10em; }

  .federal #size table.pro thead tr th.size, .federal #size table.pro tbody tr td.size {
    width: 9999px; }

  .federal #size table tbody tr td.size .com_sn::before {
    font-size: 12px;
    right: -10vw; }

  .federal #size table tbody tr td.size .com_sn::after {
    font-size: 12px;
    right: -9vw; }

  .federal #size table thead tr th.treadwear, .federal #size table tbody tr td.treadwear, .federal #size table thead tr th.price, .federal #size table tbody tr td.price {
    width: 8em; }

  .federal #size table.pro thead tr th.price, .federal #size table.pro tbody tr td.price {
    min-width: 5em; }

  .federal #size table {
    font-size: 2vw; }

  .federal #size table.pro {
    font-size: 16px;
    width: 100%;
    max-width: 860px; }

  .federal #size table.is-fixed {
    margin-top: 15vw; }

  .federal #size table:nth-of-type(2) thead tr.is-fixed {
    top: 11.5vw; }

  .federal #size > a {
    width: 15em;
    font-size: 15px;
    margin-right: calc(50% - 300px); }

  .federal footer .partner {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    max-width: 100%; }

  .federal footer .partner img {
    max-width: 300px; }

  .federal footer .partner span {
    margin: 0 20px; } }

@media screen and (min-width: 960px) {
  .federal header nav .menu_btn, .federal header .in_menu, .federal header nav ul.top_menu li.menu_title {
    display: none; }

  .federal header nav ul.top_menu {
    width: 100%;
    background-color: #fff;
    border: none;
    padding: 0;
    position: relative;
    top: 50px;
    right: 0;
    z-index: 0;
    display: flex;
    justify-content: center;
    margin-bottom: 100px; }

  .federal header nav ul.top_menu.open {
    right: 0px; }

  .federal header nav ul.top_menu li {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
    margin-left: 5px;
    margin-right: 5px;
    position: relative;
    padding: 0; }

  .federal header nav ul.top_menu li:nth-of-type(4) {
    background-color: transparent;
    width: auto;
    left: 0;
    text-indent: 0; }

  .federal header nav ul.top_menu br {
    display: block; }

  .federal header nav ul.top_menu li span {
    margin-left: 0em; }

  .federal header nav ul.top_menu li::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: #009844;
    transform: skew(-10deg);
    z-index: -10;
    /*.federal header nav ul.top_menu li:nth-of-type(4)::before{//セールかキャンペーン用
    background-color: #ea0a2a;
  }*/ }

  .federal header nav ul.top_menu li:nth-of-type(2)::after, .federal header nav ul.top_menu li:last-of-type::after {
    content: "";
    height: 5px;
    background-color: #ea0a2a;
    transform: skew(-10deg);
    width: calc((100vw - 730px) / 2); }

  .federal header nav ul.top_menu li:nth-of-type(2)::after {
    position: absolute;
    top: 50%;
    left: calc((100vw - 700px) / -2); }

  .federal header nav ul.top_menu li:last-of-type::after {
    position: absolute;
    top: 50%;
    right: calc((100vw - 700px) / -2); }

  .federal header nav ul.top_menu li a {
    font-size: 22px;
    width: 160px;
    padding: 20px 0 20px 5px; }

  .federal .pattern div ul.choice_btn li:first-of-type, .federal .pattern div ul.choice_btn li:last-of-type {
    width: 20px;
    height: 95px; }

  .federal .pattern {
    width: 960px;
    margin-left: auto;
    margin-right: auto; }

  .federal .pattern .picture img {
    height: 360px; }

  .federal .pattern .pattern_name img {
    height: 50px; }

  .federal .pattern div ul.choice_btn li {
    width: 91px;
    height: 91px; }

  .federal .pattern div ul.choice_btn li:first-of-type, .federal .pattern div ul.choice_btn li:last-of-type {
    width: 16px;
    height: 95px; }

  .federal .pattern .pattern_name + p {
    margin: 0 10px 60px;
    font-size: 18px; }

  .federal .features dl {
    width: 960px;
    margin: 0 auto 100px; }

  .federal .features dl dt {
    text-indent: 0.6em; }

  .federal #pagetop:hover, .federal .pattern div ul.choice_btn li:hover {
    cursor: pointer;
    opacity: 0.7; }

  .federal #size table tbody tr td.size .com_sn::before {
    right: -100px; }

  .federal #size table tbody tr td.size .com_sn::after {
    right: -90px; }

  .federal #size table.pro thead tr th.price, .federal #size table.pro tbody tr td.price {
    min-width: 8em; } }

@media screen and (min-width: 1024px) {
  .federal header .top_img {
    background-color: #009844; }
    .federal header .top_img .banner {
      width: 1024px;
      margin: 0 auto 30px; }
    .federal header nav ul.top_menu li:nth-of-type(2)::after, .federal header nav ul.top_menu li:last-of-type::after {
      width: 147.5px; }
    .federal header nav ul.top_menu li:nth-of-type(2)::after {
      left: -161.5px; }
    .federal header nav ul.top_menu li:last-of-type::after {
      right: -161.5px; }
    .federal #size .link_sale {
      margin-right: calc(50% - 345px); }
    .federal #size h4 {
      padding: 50px 0 30px;
      font-size: 25px; }
    .federal #size table {
      font-size: 20px; }
    .federal #size table tbody {
      border-top: 70px solid #009844; }
    .federal #size table thead tr th {
      border-top: 15px solid #009844;
      border-bottom: 15px solid #009844; }
    .federal #size table.is-fixed {
      margin-top: 150px; }
    .federal #size table:nth-of-type(2) thead tr.is-fixed {
      top: 115px; }
    .federal #size > a {
      margin-right: calc(50% - 290px); }
    .federal .in_menu li:first-of-type::after, .federal .in_menu li:last-of-type::after {
      width: 260px; }
    .federal .in_menu li:first-of-type::after {
      left: -270px; }
    .federal .in_menu li:last-of-type::after {
      right: -270px; }
    .federal footer .in_menu li a::before, .federal footer .in_menu li a::after {
      width: 260px; }
    .federal footer .in_menu li a::before {
      left: -270px; }
    .federal footer .in_menu li a::after {
      right: -270px; } }

.federal .foot_bn {
  display: block;
  width: 95%;
  max-width: 960px;
  margin: 30px auto 50px; }

.federal #impression {
  margin-top: 100px; }

.federal #impression h3 {
  background-color: #009844; }

.federal #impression h3::after {
  border-top: 15px solid #009844; }

.federal #impression h4 {
  text-align: center;
  font-size: 18px;
  width: 70%;
  max-width: 400px;
  margin: 0 auto; }

.federal #impression .movie {
  width: 95%;
  max-width: 860px;
  margin: 0 auto 50px; }

.federal .movie > div {
  width: 100%;
  position: relative;
  padding-top: 56.25%;
  margin-bottom: 10px; }

.federal .movie > div > iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

@media screen and (min-width: 768px) {
  .federal #impression h4 {
    max-width: 100%;
    margin-bottom: 20px; }

  .federal #impression h4 img {
    width: 45%;
    max-width: 286px;
    margin-left: 2.5%;
    vertical-align: bottom; }

  .federal #impression .movie {
    margin: 0 auto 100px; } }
