@charset "UTF-8";

:root {
  --main-width: 1200px;
  --content-offset: 365px;
}

body {
  overflow-x: hidden;
}
@media (min-width: 901px) {
h1 a {
    width: 200px;
    display: none;  }
header.fix h1 a{display: block}    
}  

/*---------------------------------------------
  ファーストビュー
---------------------------------------------*/
.kv {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100vh;
    height: 100svh;
    min-height: 750px;
    margin: 0 auto;
    padding-top: 75px;
    padding-bottom: 0;
    overflow: hidden;
    background: #fff;
}
.kv__photo {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.kv__photo picture,
.kv__photo img {
  display: block;
  width: 100%;
  height: 100%;
}
.kv__photo img {
  object-fit: cover;
  object-position: center bottom;
}

.kv__mask,
.kv__mask__img {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%
}
.kv__mask__img {
    height: 8vw;
    background-image: url(../img/index/img-kv-musk.svg);
    background-position: left top;
    background-size: 100%;
    background-repeat: no-repeat
}

.kv__inner {
    position: relative;
    z-index: 8;
    max-width: 1980px;
    height: 100%;
    min-height: 0;
    margin: 0 auto;
    padding: 0 2.5rem;
}
.kv h2{
  font-family: var(--font-mincho);
  font-size: clamp(30px, 4.5vw, 52px);
  font-weight: var(--font-bold);
  line-height: 1.2;
  letter-spacing: -0.1rem;
}
.kv__copy h1,
.kv__copy h2,
.kv__copy .kv__brand,
.kv__copy p {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .7s ease, transform .7s ease;
}

.kv__copy h1,
.kv__copy h2 {transition-delay: .12s;}
.kv__copy .kv__brand {transition-delay: .4s;}
.kv__copy p {transition-delay: .95s;}
.is-kv-copy-ready .kv__copy h1,
.is-kv-copy-ready .kv__copy h2,
.is-kv-copy-ready .kv__copy .kv__brand,
.is-kv-copy-ready .kv__copy p {
  opacity: 1;
  transform: translateY(0);
}
.kv__brand {
    width: min(320px, 45vw);
    margin-top: 2.5vw;
    margin-bottom: 0.4rem;
}
.kv p {
    line-height: 1.8;
    text-align: left;
    width: fit-content;
}
.kv__pc {
  position: absolute;
  z-index: 10;
  right: 1rem;
  bottom: 10px;
  width: min(500px, 40vw);
  opacity: 0;
  transform: translateY(42px);
  transition: opacity .75s ease, transform .75s ease;
}
.is-kv-pc-ready .kv__pc {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 900px) {
h1 a {display: none;  }
header.fix h1 a{display: block}       
.kv__mask__img {height: 20vw;}
.kv__inner {
    height: 100%;
    min-height: 0;
}
.kv__pc {width: 50%}    
}
@media (max-width: 768px) {
.kv__inner{
    padding-left: 20px;
    padding-right: 20px;
}     
.kv p{
    font-size: var(--font-size-s);
    font-weight: var(--font-bold);
}  
.kv__brand {margin-top: 10vw;}    
}
@media (max-width: 600px) { 
.kv{
    height: 95vh;
    height: 95svh;}    
.kv__brand {width: 230px;}  
.kv__pc {bottom: 5%;}  
    
}

/* -----------------------------------
   カラム
 * ----------------------------------- */
.section {
    position: relative;
    padding-top: max(10vw, 80px);
    padding-bottom: max(10vw, 80px);
}

.section__inner {
  position: relative;
  z-index: 2;
  width: min(var(--main-width), calc(100% - 96px));
  margin: 0 auto;
}
.inner-grid{
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 100px;
    align-items: start;
}
@media (max-width: 960px) {
.section__inner {width: min(850px, calc(100% - 40px));}    
.inner-grid{
    grid-template-columns: 1fr;
    gap:50px;}    
}

/* -----------------------------------
   見出し
 * ----------------------------------- */
.section-heading h2{
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    margin-bottom: 1.5rem;
}
.section-heading h2:not(#package h2){margin-top: 7rem}
.section-heading__jp {
    color: var(--blue-dark);
    font-size: clamp(28px, 5vw, 36px);
    font-weight: var(--font-bold);
    line-height: 1;
}
.section-heading__en {
    color: rgba(207, 237, 242, .62);
    font-family: var(--font-num);
    font-size: clamp(86px, 15vw, 180px);
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0;
    position: absolute;
    z-index: -1;
    margin-left: -0.5rem;
}
@media (max-width: 560px) {
.section-heading h2:not(#package h2){margin-top: 4rem}    
}

/* -----------------------------------
   パッケージ
 * ----------------------------------- */
.package {
    position: relative;
    z-index: 2;
    overflow: hidden;
    background: #fff;
    margin-top: -1px;
    padding-top: 6rem;
}

.package__inner {
  display: grid;
  grid-template-columns: 330px minmax(0, 1fr);
  gap: 58px;
  align-items: start;
}
.package__heading {padding-top: 40px;}
.package__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(220px, 1fr));
    gap: 20px;
    overflow-x: auto;
    margin-top: 3rem;
}
.package-card {
    position: relative;
    display: block;
    overflow: hidden;
    color: #fff !important;
    aspect-ratio: 10 / 13;
}
.package-card img {
  transition: transform .35s ease;
}
.package-card::after {
  background: linear-gradient(180deg, rgba(0, 23, 56, 0) 45%, rgba(0, 23, 56, .68) 100%);
}
.package-card a{display: block}
.package-card a .card-text{
    position: absolute;
    z-index: 2;
    left: 0;
    bottom: 0;
    width: 100%;
    padding: 1.3rem;
}
.package-card a .card-text >*{
    text-align: left;
    color: #ffffff;
}
.package-card a .card-text h2{
    font-size: var(--font-size-xl);
    font-weight: var(--font-bold);
    line-height: 1.2;
    margin-top: 0.8rem;
    padding-right: 50px;
}
.package-card a .card-text p{
    font-size: var(--font-size-s);
    line-height: var(--line-height-s);
}
.package-card i,
.link-card i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-num);
  font-size: var(--font-size-xl);
  font-style: normal;
  font-weight: 800;
  line-height: 1;
}

.package-card i {
    position: absolute;
    z-index: 2;
    right: 0.8rem;
    bottom: 0.8rem;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    color: var(--blue-dark);
    background: var(--gold);
}

.package-card i[aria-hidden="true"] {
  transform-origin: center;
  transition: transform .3s ease;
}

.package-card:hover i[aria-hidden="true"] {transform: scale(1.08);}
.package-card:hover img {transform: scale(1.05);}

.package-card::after {pointer-events: none;}

@media (max-width: 900px) {
.package{padding-top: 0 !important}   
.package .section__inner{padding-top: 1rem}
.package__inner {grid-template-columns: 1fr;}
.package__list {
    grid-template-columns: minmax(0, 1fr);
    overflow-x: visible;
    max-width: 500px;
    margin-inline:auto;
  }
}
@media (max-width: 560px) .package-card a .card-text p
.package-card{aspect-ratio: 10 / 11;}    
}

/* -----------------------------------
   業務内容
 * ----------------------------------- */
.business::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: calc(50% - 800px);
  top: 20px;
  width: 410px;
  height: 410px;
  border-radius: 50%;
  background: url("../img/common/bg-dot.svg") center / 24px 24px repeat;
  opacity: .58;
}

.business__pc {
  position: absolute;
  z-index: 1;
  left: calc(50% - 650px);
  top: 20px;
  width: 380px;
  max-width: none;
}

.business__pc {
  opacity: 0;
  transform: translateX(-48px);
  transition: opacity .75s ease, transform .75s ease;
}

.business__pc.is-visible {
  opacity: 1;
  transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
  .business__pc {
    transform: none;
    transition: none;
  }
}

.business__inner {
  padding-left: var(--content-offset);
}

.link-card-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 46px;
  width: min(840px, 100%);
  margin-top: 58px;
}

.link-card {
    position: relative;
    border-radius: 8px;
    color: #fff !important;
    background: var(--blue-dark);
    text-align: left;
    padding: 1.25rem;
}
.link-card p {
    font-size: var(--font-size-s);
    line-height: var(--line-height-s);
}
.link-card h2 {
    margin-top: 0.8rem;
    font-size: var(--font-size-xl);
    font-weight: var(--font-bold);
    line-height: 1.2;
}
.link-card i {
    position: absolute;
    right: 0.8rem;
    bottom: 0.8rem;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    color: var(--blue-dark);
    background: var(--gold);
}

.link-card i[aria-hidden="true"] {
  transform-origin: center;
  transition: transform .3s ease;
}

.link-card:hover i[aria-hidden="true"] {
  transform: scale(1.08);
}
@media (min-width: 950px) and (max-width: 1100px) {
#business .link-card-list {
    grid-template-columns: 1fr;
    gap: 22px;
  }   
}
@media (max-width: 960px) {
  .business::before {
    left: -44px;
    top: 72px;
    width: min(410px, 88vw);
    height: min(410px, 88vw);
  }
  .business__pc {
    position: relative;
    display: block;
    left: auto;
    top: auto;
    width: min(500px, 80vw);
    margin: 0 auto -44px -20%;
  }
}
@media (max-width: 900px) {
  .business__inner {padding-left: 0;}
}
@media (max-width: 768px) {
  .link-card-list {
    grid-template-columns: 1fr;
    gap: 22px;
  }    
}


/* -----------------------------------
   　採用情報
 * ----------------------------------- */
.recruit {
  overflow: hidden;
  isolation: isolate;
  background: #fff;
}

.recruit::before {
  content: "";
  position: absolute;
  z-index: 1;
  left: 50%;
  top: 30px;
  width: 3000px;
  max-width: 3000px;
  height: 820px;
  background-image: url("../img/common/bg-dot.svg");
  background-position: center;
  background-size: 26px 26px;
  background-repeat: repeat;
  -webkit-mask-image: linear-gradient(to bottom, #000 54%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 54%, transparent 100%);
  opacity: .7;
  mix-blend-mode: multiply;
  transform: translateX(-50%);
  -webkit-clip-path: path("M0,820h3000V10c-307.98,137.04-540,180.1-540,180.1,0,0-225.59,59.96-481.1,19.97-256.06-40.07-330.03-161.91-660.1-198.47-518.79-57.47-778.79,117.34-778.79,117.34,0,0-332.27,201.66-540,222.95v468.11Z");
  clip-path: path("M0,820h3000V10c-307.98,137.04-540,180.1-540,180.1,0,0-225.59,59.96-481.1,19.97-256.06-40.07-330.03-161.91-660.1-198.47-518.79-57.47-778.79,117.34-778.79,117.34,0,0-332.27,201.66-540,222.95v468.11Z");
}
.recruit::after {
  content: "";
  position: absolute;
  z-index: 0;
  left: 50%;
  top: 0;
  width: 3000px;
  max-width: 3000px;
  height: 820px;
  background: linear-gradient(180deg, var(--blue-light) 0%, var(--blue-light) 50%, rgba(228, 241, 244, .55) 76%, rgba(228, 241, 244, 0) 100%);
  transform: translateX(-50%);
  -webkit-clip-path: path("M0,820h3000V10c-307.98,137.04-540,180.1-540,180.1,0,0-225.59,59.96-481.1,19.97-256.06-40.07-330.03-161.91-660.1-198.47-518.79-57.47-778.79,117.34-778.79,117.34,0,0-332.27,201.66-540,222.95v468.11Z");
  clip-path: path("M0,820h3000V10c-307.98,137.04-540,180.1-540,180.1,0,0-225.59,59.96-481.1,19.97-256.06-40.07-330.03-161.91-660.1-198.47-518.79-57.47-778.79,117.34-778.79,117.34,0,0-332.27,201.66-540,222.95v468.11Z");
}

.recruit__inner {
  position: relative;
  z-index: 2;
  padding-top: 100px;
}
#recruit-head{max-width: calc(100% - 350px);}
.inner-grid#section__inner__recruit{grid-template-columns: 377px minmax(0, 1fr);}

#recruit-img{
    position: absolute;
    top: -30%;
    right: 0;
    max-width: 350px;
    width: 100%;
}
#recruit__image{
    position: relative;
    width: 100%;
    overflow: hidden;
}
#recruit__image.fadeup__image{background: transparent !important}
@media (min-width: 901px) {
#recruit .link-card-list {grid-template-columns: repeat(auto-fit, minmax(0, 397px));}
}
.recruit .section-heading__en {color: rgba(255, 255, 255, .8);}

@media (max-width: 900px) {
.recruit .section-heading {padding-top: 2rem}
#recruit-head{max-width: calc(100% - 200px);}    
.inner-grid#section__inner__recruit{grid-template-columns: 100% minmax(0, 1fr);}       
#recruit-img{
    top: auto;
    bottom: 139px;
    max-width: 190px;
}     
}
@media (max-width: 560px) {
#recruit-head{max-width:100%;}         
#recruit-img{
    top: -12%;
    bottom: auto;
    max-width: 120px;
}     
}




