@charset "utf-8";

/* Section */
.main_section {padding-block: 140px 180px; position: relative;}
.main_section__subtitle {font-size: 24px; color: var(--main-color); font-weight: 700; font-family: var(--font-sub1); margin-bottom: 0.3em; display: block;}
.main_section__subject {font-size: 70px; font-weight: 600; font-family: var(--font-sub1); line-height: 1.15; margin-bottom: 0.5em;}
.main_section__desc {font-size: 18px; color: var(--gray1);}
@media screen and (max-width: 1399px) {
  .main_section {padding-block: 100px 120px;}
  .main_section__subtitle {font-size: 20px;}
  .main_section__subject {font-size: 38px;}
  .main_section__desc {font-size: 16px;}
}
@media screen and (max-width: 767px) {}



/* Main visual */
.main_visual {position: relative;}
.main_visual .quick_link {position: absolute; z-index: 30;}

.main_visual .carausel__slide {}
.main_visual .carausel__slide .bg {position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; transition: transform 10s; transform: scale(1);}
.main_visual .carausel__slide .bg::before,
.main_visual .carausel__slide .bg::after {position: absolute; bottom: 0; right: 0; z-index: 9; width: 100%; height: 100%; content: ''; display: block; background: linear-gradient(315deg, rgb(0, 0, 14, .8), transparent, transparent, transparent); mix-blend-mode: multiply; pointer-events: none;}
.main_visual .carausel__slide .bg::before {background: linear-gradient(to bottom, rgb(0, 0, 14, .5) -30%, transparent 50%);}
.main_visual .carausel__slide:is(.slide-2, .slide-3) .bg::after {background: linear-gradient(to right, rgb(0, 0, 14, .8), transparent, transparent);}
.main_visual .carausel__slide.swiper-slide-active .bg {transform: scale(1);}
.main_visual .carausel__slide .container--s {height: calc(var(--vh, 1vh) * 100); padding: 150px 0; display: flex; align-items: center;}
.main_visual .carausel__slide .content {}
.main_visual .carausel__slide .content .slogan {font-family: var(--font-sub1); font-size: 75px; font-weight: 600; line-height: 1.15; margin-bottom: 0.4em;}
.main_visual .carausel__slide .content .subtitle {font-size: 27px; font-weight: 600; font-family: var(--font-sub1); margin-bottom: 0.4em; color: var(--black);}
.main_visual .carausel__slide .content .desc {font-size: 18px; font-weight: 500; line-height: 1.67; color: #656565;}
.main_visual .carausel__navigator {position: absolute; bottom: 80px; left: 0; z-index: 10; width: 100%;}
.main_visual .carausel__navigator .container--l {display: flex; justify-content: flex-end;}
.main_visual .carausel__navigator .navigator {display: flex; align-items: center; gap: 20px;}
.main_visual .carausel__navigator .navigator .play-button {display: flex; align-items: center; justify-content: center; position: relative; width: 69px; aspect-ratio: 1 / 1; border-radius: 50%; overflow: hidden;}
.main_visual .carausel__navigator .navigator .play-button .icon::before,
.main_visual .carausel__navigator .navigator .play-button .icon::after {display: block; content: '';}
.main_visual .carausel__navigator .navigator .play-button:not(.paused) .icon {display: flex; justify-content: space-between; gap: 5px;}
.main_visual .carausel__navigator .navigator .play-button:not(.paused) .icon::before,
.main_visual .carausel__navigator .navigator .play-button:not(.paused) .icon::after {width: 5px; height: 19px; background: #fff; border-radius: 2px;}
.main_visual .carausel__navigator .navigator .play-button.paused .icon::before {width: 0; height: 0; border-left: 16px solid #fff; border-block: 9px solid transparent; transform: translate(12.5%);}
.main_visual .carausel__navigator .navigator .play-button img {display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%;}
.main_visual .carausel__navigator .navigator .play-button img.line {opacity: .4;}
.main_visual .carausel__navigator .navigator .play-button img.bar {animation: rotate 5s 0s infinite linear;}
.main_visual .carausel__navigator .navigator .play-button.paused img.bar {animation-play-state: paused;}
.main_visual .carausel__navigator .navigator .controller {display: flex; align-items: center; color: #fff;}
.main_visual .carausel__navigator .navigator .controller .fraction {font-size: 18px; font-family: var(--font-sub1); font-weight: 700; color: rgb(255,255,255,.3); text-align: center; min-width: 74px;}
.main_visual .carausel__navigator .navigator .controller .fraction .swiper-pagination-current {color: #fff;}
.main_visual .carausel__navigator .navigator .controller .control {width: 40px; height: 40px; padding: 0; display: flex; align-items: center; justify-content: center; flex-shrink: 0;}
.main_visual .carausel__navigator .navigator .controller .control img {display: block; opacity: .4;}
.main_visual .carausel__navigator .navigator .controller .control:hover img {opacity: 1;}

@media screen and (max-width: 1399px) {
  .main_visual .carausel__slide .bg {background-position: 78%;}
  .main_visual .carausel__slide:is(.slide-2, .slide-3) .bg::after {background: linear-gradient(to right, rgb(0, 0, 14, .8), transparent);}
  .main_visual .carausel__slide .container--s {align-items: flex-end;}
  .main_visual .carausel__slide .content {width: 60%; padding-bottom: 100px;}
  .main_visual .carausel__slide .content .slogan {font-size: 52px;}
  .main_visual .carausel__slide .content .subtitle {line-height: 1.3; margin-bottom: 0.8em;}
  .main_visual .carausel__navigator .container--l {justify-content: flex-start;}
  .main_visual .carausel::after {background: linear-gradient(-315deg, rgb(0, 0, 14, .8), transparent, transparent, transparent);}
}
@media screen and (max-width: 767px) {
  .main_visual .carausel::after {display: none;}
  .main_visual .carausel__slide .container--s {position: relative; z-index: 1; padding-block: 108px; align-items: flex-end;}
  .main_visual .carausel__slide::after {position: absolute; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; content: ''; display: block; background: linear-gradient(to top, rgb(0, 0, 0, .8), transparent);}
  .main_visual .carausel__slide .bg::after {background: linear-gradient(to right, rgb(0, 0, 14, .8), transparent)!important;}
  .main_visual .carausel__slide .bg::before {display: none;}
  .main_visual .carausel__slide .content {width: 100%; padding-bottom: 0;}
  .main_visual .carausel__slide .content .slogan {font-size: 39px; color: var(--sky-blue)!important;}
  .main_visual .carausel__slide .content .subtitle {font-size: 20px; color: white!important;}
  .main_visual .carausel__slide .content .desc {font-size: 14px; color: white!important;}
  .main_visual .carausel__navigator {bottom: 38px;}
  .main_visual .carausel__navigator .navigator .play-button {display: none;}
  .main_visual .carausel__navigator .navigator .controller .control {display: none;}
  .main_visual .carausel__navigator .navigator .controller .fraction {text-align: left; font-size: 15px;}
  .main_visual .carausel__navigator .navigator .controller .fraction .swiper-pagination-current {font-size: 1.67em;}
}
@media screen and (max-width: 499px) {}



/* Brands */
#main_brands {background: url('../images/main/brand-bg.svg') no-repeat center / cover;}
#main_brands .main_section__desc strong {display: block; font-size: 1.2em; margin-top: 0.5em;}
#main_brands .cards {display: flex; padding-top: 140px; justify-content: center;}
#main_brands .cards .card {position: relative; width: 100%;}
#main_brands .cards .card.medi {--theme: var(--sky-blue);}
#main_brands .cards .card.suit {--theme: var(--cyan);}
#main_brands .cards .card.gear {--theme: var(--orange);}
#main_brands .cards .card.kit {--theme: var(--navy);}
#main_brands .cards .card a {display: block;}
#main_brands .cards .card .inner {position: relative; z-index: 1; width: 100%; background: #fff; border-radius: 20px; border: 1px solid var(--gray4); padding: 40px; overflow: hidden; transition: transform .4s, background .4s, border .4s;}
#main_brands .cards .card .inner .icon {padding-bottom: 22px;}
#main_brands .cards .card .inner .icon svg {display: block; margin: 0 auto; max-width: 100%; height: auto; transition: opacity .4s;}
#main_brands .cards .card .inner .icon svg path {transition: .4s;}
#main_brands .cards .card .inner .title {font-size: 20px;}
#main_brands .cards .card .inner .title span {display: block; line-height: 1.3; margin-bottom: 0.5em; transition: color .4s;}
#main_brands .cards .card .inner .title svg {display: block; margin: 0 auto; transition: opacity .4s;}
#main_brands .cards .card .inner .title .svg_brand__typo {fill: #B2B2B2;}
#main_brands .cards .card .more {position: absolute; bottom: 0; left: 0; display: block; width: 100%; text-align: center; z-index: 0; padding-bottom: 5px; color: var(--theme); font-size: 18px; font-weight: 700; display: flex; align-items: center; gap: 8px; justify-content: center;}
#main_brands .cards .card .more path {stroke: var(--theme); transition: fill .4s, opacity .4s;}
@media (hover: hover) {
  #main_brands .cards .card:hover .inner {background: var(--theme); border-color: var(--theme); transform: translate(0, -43px);}
  #main_brands .cards .card:not(.kit):hover .inner .icon svg .colored path {fill: #fff;}
  #main_brands .cards .card.medi:hover .inner .icon svg path {fill: #8AAFFF;}
  #main_brands .cards .card.suit:hover .inner .icon svg path {fill: #5FEBEB;}
  #main_brands .cards .card.gear:hover .inner .icon svg path {fill: #F1A77C;}
  #main_brands .cards .card.kit:hover .inner .icon svg path {stroke: #B3B3C8;}
  #main_brands .cards .card:hover .inner .title {color: #fff;}
  #main_brands .cards .card:hover .inner .title svg {opacity: .6;}
  #main_brands .cards .card:hover .inner .title .svg_brand__typo {fill: #fff;}
}
@media screen and (max-width: 1399px) {
  #main_brands .cards {padding-top: 90px;}
  #main_brands .cards .card .inner {padding: 30px 20px; border-radius: 15px;}
  #main_brands .cards .card .inner .icon {padding-inline: 15px;}
  #main_brands .cards .card .inner .title {font-size: 18px;}
}
@media screen and (max-width: 767px) {
  #main_brands .cards {padding-top: 50px; display: grid; grid-template-columns: repeat(2, 1fr);}
}
@media screen and (max-width: 499px) {}



/* Format */
@media (hover: hover) {}
@media screen and (max-width: 1399px) {}
@media screen and (max-width: 767px) {}
@media screen and (max-width: 499px) {}