@charset "UTF-8";

:root{
  --brand:#000;
  --text:#222;
  --muted:#767676;

  --bg:#fff;
  --bg-soft:#f2f2f2;
  --bg-gray:#ededed;

  --accent:#ff0000;

  --radius:12px;
  --shadow:0 6px 20px rgba(0,0,0,.06);

  --container:1100px;
  --gutter:16px;
  --header-h:64px;

  --ticker-gap:80px;
}

*,
*::before,
*::after{ box-sizing:border-box; }

html{
  scroll-behavior:smooth;
  overflow-x:hidden;
  scroll-padding-top: calc(var(--header-h) + 16px);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body{
  margin:0;
  overflow-x:hidden;
  font-family:"Zen Kaku Gothic Antique", sans-serif;
  font-weight:500;
  color:var(--text);
}

img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }

/* Layout */
.section-inner{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.section{
  padding:120px 0;
  scroll-margin-top: calc(var(--header-h) + 16px);
}

.fade-in{
  opacity:1;
  transform:none;
}
html.js .fade-in{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s ease, transform .7s ease;
  will-change:opacity, transform;
}
html.js .fade-in.is-inview{
  opacity:1;
  transform:translateY(0);
}
@media (prefers-reduced-motion: reduce){
  html.js .fade-in{
    transition:none;
    transform:none;
  }
}

/* Section Head */
.section-head{
  max-width:1000px;
  margin:0 auto 24px;
  text-align:center;
}
.section-titleRow{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px;
  margin:0 auto 30px;
}
.section-label{
  font-family:"Afacad Flux", sans-serif;
  display:inline-block;
  background:#B39B7E;
  color:#fff;
  font-size:1.6rem;
  font-weight:600;
  letter-spacing:.02em;
  padding:2px 12px;
  line-height:1;
}
.section-labelIcon{
  height: 40px;
  width: auto;
  display: block;
}
.section-title{
  font-family:"Noto Serif JP", serif;
  position:relative;
  display:inline-block;
  margin:0;
  font-size:2.2rem;
  font-weight:800;
  letter-spacing:.08em;
  padding-bottom:10px;
  margin:0 0 24px;
}
.section-title::after{
  content:"";
  position:absolute;
  left:-0.6em;
  right:-0.6em;
  bottom:0;
  height:1px;
  background:#000;
}
.section-lead{
  margin-bottom:60px;
  color:#000;
  font-size:.8em;
  font-weight:600;
  line-height:2;
}

/* Header / Navigation */
.site-header{
  position:fixed;
  top:0;
  right:0;
  width:100%;
  z-index:9000;
  background:var(--bg);
  font-weight:900;
}
.site-nav{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  height:var(--header-h);
  padding:0 16px;
  background:var(--bg);
}
.head-logo{
  position:absolute;
  top:0;
  left:12px;
  padding:10px;
}
.head-logo img{
  height:45px;
  width:auto;
}

.nav-list{
  list-style:none;
  margin:0;
  padding:0 0 0 180px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:4px;
  width:100%;
}
.nav-list a,
.nav-list .nav-link{
  display:inline-block;
  padding:10px 18px;
  text-decoration:none;
  font-size:.9rem;
  color:#5a5a5a;
}
.nav-list a:hover,
.nav-list .nav-link:hover{ color:#999; }

.nav-list li:last-child a,
.nav-list li:last-child .nav-link{
  color:#fff;
  background:var(--accent);
  padding:8px 32px;
  height:40px;
  border-radius:999px;
}
.nav-list li:last-child a:hover,
.nav-list li:last-child .nav-link:hover{
  background:rgb(255,113,113);
}

.pc-nav{ display:flex; align-items:center; }
.pc-nav li{ display:flex; align-items:center; }
.pc-nav li + li::before{
  content:"|";
  margin:0 12px;
  color:#999;
}
.pc-nav li:nth-child(7)::before{ content:none; }
.pc-nav li:nth-child(6){ margin-right:20px; }

.hamburger{
  display:none;
  border:0;
  background:transparent;
  cursor:pointer;
  width:44px;
  height:44px;
  position:relative;
  z-index:9600;
}
.hamburger:focus{ outline:0; }
.hamburger-line{
  position:absolute;
  left:10px;
  right:10px;
  height:2px;
  background:#202020;
  transition:transform .25s ease, opacity .2s ease, top .25s ease;
}
.hamburger-line:nth-child(1){ top:14px; }
.hamburger-line:nth-child(2){ top:21px; }
.hamburger-line:nth-child(3){ top:28px; }

.hamburger.is-active .hamburger-line:nth-child(1){
  top:21px;
  transform:rotate(45deg);
}
.hamburger.is-active .hamburger-line:nth-child(2){ opacity:0; }
.hamburger.is-active .hamburger-line:nth-child(3){
  top:21px;
  transform:rotate(-45deg);
}

.drawer{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.35);
  z-index:9500;
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease;
}
.drawer.is-open{
  opacity:1;
  pointer-events:auto;
}
.drawer-panel{
  position:absolute;
  top:0;
  right:0;
  width:min(86vw, 360px);
  height:100%;
  background:#fff;
  transform:translateX(100%);
  transition:transform .25s ease;
  padding:18px 16px;
}
.drawer.is-open .drawer-panel{ transform:translateX(0); }

.drawer-nav{
  list-style:none;
  margin:0;
  padding:8px 0 0;
  display:grid;
  gap:8px;
}
.drawer-nav a{
  display:block;
  padding:12px 8px;
  text-decoration:none;
  color:#5a5a5a;
  font-size:1rem;
}
.drawer-nav a:hover{ color:#999; }
.drawer-nav li:last-child a{
  color:#fff;
  background:var(--accent);
  padding:14px 16px;
}
.drawer-nav li:last-child a:hover{ background:rgb(255,113,113); }

body.is-fixed{ overflow:hidden; }

/* Hero / FV (Vegas) */
.hero{
  width:100%;
  overflow:hidden;
  padding-top:var(--header-h);
}
.hero-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
}
.top-main,
#vegas-pc{
  position:relative;
  width:100%;
  height:calc(100svh - var(--header-h));
  min-height:620px;
  overflow:hidden;
  background:#f3f3f3;
}
.sp-img{
  display:none;
}
#vegas-pc .vegas-container{
  position:absolute !important;
  inset:0;
  z-index:0;
}
.top-main-title{
  left:clamp(16px, 8vw, 10rem);
  bottom:clamp(350px, 62vh, 1000px);
  width:min(560px, 78vw);
  position:absolute;
  z-index:1;
}
.top-main .hero-lead{
  position:absolute;
  left:clamp(16px, 8.5vw, 11rem);
  bottom:clamp(100px, 18vh, 220px);
  max-width:38em;
  z-index:1;
  margin:0;
  font-size:clamp(.95rem, 1.2vw, 1.1rem);
  line-height:1.7;
  letter-spacing:.08em;
}
#vegas-pc .vegas-slide.soft-in .vegas-slide-inner{
  animation:vegasSoftIn 1.2s ease both;
}
@keyframes vegasSoftIn{
  0%{ opacity:0; transform:scale(1.03); }
  100%{ opacity:1; transform:scale(1); }
}


/* 右上透過画像 */
.topFixedSvg{
  position:absolute;
  right:0;
  top:0;
  width:20%;
  height:auto;
  z-index:2;
  display:block;
  pointer-events:none;
  overflow:visible;
}
.topFixedSvg image{
  width:100%;
  height:100%;
}
#titleImg{
  clip-path: inset(0 100% 0 0);
}
#titleSvg.is-animated #titleImg{
  animation: draw 2.5s ease forwards;
}
#titleSvg.is-done #titleImg{
  clip-path: inset(0 0 0 0);
  animation: none;
}
@keyframes draw{
  to{
    clip-path: inset(0 0 0 0);
  }
}


/* Hero bottom ticker (image) */
.heroTickerImg{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:3;
  width:100%;
  padding-bottom:0;
}

.heroTickerImg-viewport{
  overflow:hidden;
  width:100%;
  margin-bottom:0;
}

.heroTickerImg-track{
  display:flex;
  align-items:flex-end;
  gap:0;
  width:max-content;
  animation:heroTickerImg 34s linear infinite;
  will-change:transform;
}

.heroTickerImg-set{
  display:flex;
  align-items:flex-end;
  gap:var(--ticker-gap);
  flex:0 0 auto;
  padding-right:var(--ticker-gap);
}

.heroTickerImg-track img,
.heroTickerImg-set img{
  height:clamp(30px, 2.6vw, 48px);
  width:auto;
  max-width:none;
  display:block;
  flex:0 0 auto;
}

.heroTickerImg-line{
  height:12px;
  background:#b79b7d;
  opacity:.9;
  margin-top:6px;
}

@keyframes heroTickerImg{
  from{ transform:translate3d(0,0,0); }
  to{ transform:translate3d(-50%,0,0); }
}

@media (max-width:768px){
  .heroTickerImg{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
  }
  .heroTickerImg-line{
    margin-top:6px;
    height:10px;
  }
  .heroTickerImg-track{
    animation-duration:20s;
  }
  .heroTickerImg-track img,
  .heroTickerImg-set img{
    height:clamp(32px, 9vw, 52px);
  }
  .section-title{
  position:relative;
  display:inline-block;
  margin:0;
  font-size:1.8rem;
  letter-spacing:.06em;
  padding-bottom:10px;
}
}
@media (prefers-reduced-motion: reduce){
  .heroTickerImg-track{ animation:none; }
}

/* キャリア */
.careerCarousel{
  max-width:1000px;
  margin:0 auto;
}
.careerThumbs{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:18px;
  margin:0 0 34px;
}
.careerThumb{
  position:relative;
  border:0;
  padding:0;
  background:transparent;
  cursor:pointer;
  border-radius:20px;
  overflow:hidden;
  height:120px;
}
.careerThumb img{
  width:100%;
  height:auto;
  object-fit:cover;
  border-radius:18px;
}
.careerThumb-overlay{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#fff;
  font-weight:600;
  font-size:12px;
  letter-spacing:.08em;
  z-index:2;
  pointer-events:none;
  opacity:1;
}
.careerThumb-view{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin-top:6px;
  pointer-events:auto;
}
.careerThumb-arrow{
  display:inline-block;
  transform-origin:center;
}

@keyframes thumbArrowSpin{ to{ transform:rotate(360deg); } }

.careerThumb::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.45);
  opacity:1;
  transition:opacity .25s ease;
  z-index:1;
}
.careerThumb.is-active::after{ opacity:0; }
.careerThumb.is-active .careerThumb-overlay{ opacity:0; }

.careerStageWrap{ position:relative; margin:0 0 26px; }
.careerStage{
  display:block;
  position:relative;
  border-radius:999px;
  overflow:hidden;
  text-decoration:none;
}
.careerStage-img{
  width:100%;
  height:480px;
  object-fit:cover;
  display:block;
}
.careerDots{
  position:absolute;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  display:flex;
  gap:10px;
  z-index:3;
}
.careerDot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:rgba(255,255,255,.55);
}
.careerDot.is-on{ background:rgba(255,255,255,1); }

.careerNav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:46px;
  height:46px;
  border-radius:999px;
  border:0;
  background:rgba(0,0,0,.35);
  color:#fff;
  font-size:24px;
  cursor:pointer;
  z-index:4;

  display:grid;
  place-items:center;
  line-height:1;
  padding:0;
}
.careerNav--prev,
.careerNav--next{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.careerNav--prev{  left:18px; }
.careerNav--next{ right:18px; }
@media (hover:hover) and (pointer:fine){
  .careerNav:hover{ background:rgba(0,0,0,.55); }
}

.careerTextRow{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:32px;
}
.careerText{ flex:1; min-width:0; }
.careerKicker{
  margin:0 0 4px;
  font-size:14px;
  font-weight:700;
  letter-spacing:.12em;
  color:#000;
}
.careerHeadline{
  margin-top:12px;
  font-family:"Noto Serif JP", serif;
  font-size:1.9rem;
  line-height:1.5;
  font-weight:600;
  letter-spacing:.09em;
}

.careerMore{
  background:transparent;
  border:0;
  padding:0;
  cursor:pointer;
  width:130px;
  height:130px;
  flex-shrink:0;
  display:block;
  pointer-events:auto;
}
.careerMore-svg{
  width:100%;
  height:100%;
  display:block;
  overflow:visible;
}
.careerMore-text{
  font-family:"Playfair Display", serif;
  font-size:15px;
  letter-spacing:0;
  fill:#B39B7E;
  font-kerning:none;
  font-feature-settings:"kern" 0, "liga" 0, "clig" 0;
}
.careerMore-dot{ fill:#000; }
.careerMore-arrow{ fill:#fff; }

/* インタビュー */
.interview-grid{
  margin-top:24px;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
}
.interview-card{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:#fff;
  text-decoration:none;
  color:inherit;
  transition:transform .25s ease;
}
@media (hover:hover) and (pointer:fine){
  .interview-card:hover{ transform:translateY(-4px); }
}
@media (max-width:1024px){
  .interview-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:768px){
  .interview-grid{ grid-template-columns:1fr; }
}
.interview-card--profile{ box-shadow:none; }
.profileCard-body{
  padding:18px 18px 22px;
  text-align:left;
}
.profileCard-role{
  color:#B39B7E;
  font-size:.9rem;
  font-weight:700;
  letter-spacing:.06em;
  margin:0 0 2px;
}
.profileCard-name{
  display:flex;
  align-items:baseline;
  gap:18px;
  flex-wrap:wrap;
  margin:0 0 14px;
}
.profileCard-year{
  font-size:1.1rem;
  font-weight:900;
  color:#000;
}
.profileCard-ja{
  font-size:1.6rem;
  font-weight:900;
  letter-spacing:.02em;
  color:#000;
}
.profileCard-rule{
  height:1px;
  border:0;
  background:#d9d9d9;
  margin:12px 0 14px;
}
.profileCard-desc{
  font-family:"Noto Serif JP", serif;
  margin:0;
  font-size:.9rem;
  line-height:1.8;
  letter-spacing:.1rem;
  font-weight:700;
  color:#000;
}


/* インタビューモーダル */
.staffModal--interview .staffModal-content{
  width:100%;
  max-width:none;
  margin:0 auto;
  padding:0;
}

.staffModal--interview .iv-profile,
.staffModal--interview .iv-block,
.staffModal--interview .iv-message{
  max-width:1120px;
  margin-inline:auto;
}

.staffModal--interview .iv-heroCopy,
.staffModal--interview .iv-band,
.staffModal--interview .iv-last{
  max-width:none;
}

.iv{
  background:#fff;
}

.iv-heroCopy{
  padding:18px 18px 0;
  margin-top:-60px;
  position:relative;
  z-index:2;
  max-width:100%;
}

.iv-profile{
  position: relative;
  display: grid;
  gap: 26px;
  padding: 10px 18px 40px;
  align-items: start;
  margin-top:-210px;
  overflow: visible;
  z-index: 3;
}

.iv-profileTitle{
  color:#B39B7E;
  font-size:18px;
  font-weight:800;
  letter-spacing:.16em;
  margin:0;
}

.iv-profileText p{
  line-height:1.9;
  font-size:14px;
  width:100%;
  max-width:550px;
}

#tpl-interview-body-03 .iv-profile{
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  padding: 0 18px 30px;
  align-items: start;
  overflow: visible;
  margin-top: -510px;
  z-index: 3;
}

#tpl-interview-body-03 .iv-profileLeft{
  width: 100%;
}

#tpl-interview-body-03 .iv-profileTitle{
  color: #B39B7E;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: .16em;
  margin: 0 0 12px;
}

#tpl-interview-body-03 .iv-profileText p{
  margin: 0;
  width: 100%;
  max-width: 500px;
  line-height: 1.9;
  font-size: 14px;
}

.iv-band{
  position:relative;
}

.iv-bandImg{
  max-width:100%;
  height:auto;
  object-fit:cover;
  display:block;
  padding:0 30px 0;;
}

.iv-block{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:90px;
  padding:80px 0;
  align-items:start;
}

.iv-block.is-reverse .iv-media{ order:2; }
.iv-block.is-reverse .iv-text{ order:1; }

.iv-media img{
  width:100%;
  height:auto;
  display:block;
}

.iv-text{
  padding-top:8px;
}

.iv-tag{
  display:inline-block;
  background:#b58f6a;
  color:#fff;
  padding:6px 10px;
  font-size:20px;
  letter-spacing:.08em;
  margin:0 0 12px;
}

.iv-p p{
  margin:14px 0 10px;
  line-height:2;
  font-size:15px;
  font-weight:600;
  letter-spacing:.02em;
}

.iv-last{
  position:relative;
  margin-top:8px;
}

.iv-lastImg{
  width:100%;
  height:auto;
  object-fit:cover;
  display:block;
  padding:0 30px 0;
}

.iv-message{
  padding:50px 18px 34px;
}

.iv-message p{
  margin-top:20px;
  line-height:2;
  font-size:15px;
  font-weight:600;
  text-align: center;
}

@media (max-width:900px){
  .iv-profile{
    grid-template-columns:1fr;
    margin-top:-55px;
  }
  .iv-block{
    grid-template-columns:1fr;
  }
  .iv-block.is-reverse .iv-media,
  .iv-block.is-reverse .iv-text{
    order:unset;
  }
  .iv-heroCopy{
    margin-top:-40px;
    margin-bottom:30px;
  }
  #tpl-interview-body-03 .iv-profile{
    display: block;
    padding: 16px 12px 18px;
    margin-top: 0;
  }

  #tpl-interview-body-03 .iv-profileTitle{
    font-size: 16px;
    letter-spacing: .12em;
    margin-bottom: 10px;
  }

  #tpl-interview-body-03 .iv-profileText p{
    max-width: none;
    font-size: 13px;
    line-height: 1.9;
  }
}

/* インタビューモーダル：指定の画像だけフルブリード */
.staffModal--interview .iv-heroCopy,
.staffModal--interview .iv-band,
.staffModal--interview .iv-last{
  margin-left: calc(var(--modal-pad) * -1);
  margin-right: calc(var(--modal-pad) * -1);
  width: calc(100% + (var(--modal-pad) * 2));
}

.staffModal--interview .iv-heroCopy{
  padding: 0 30px 0;
  margin-top: 0;
}

.staffModal--interview .iv-heroCopyImg,
.staffModal--interview .iv-bandImg,
.staffModal--interview .iv-lastImg{
  width: 100%;
  display: block;
}


/* メッセージ */
.interview-grid--half{
  grid-template-columns:repeat(2, 1fr);
  max-width:1000px;
  margin-inline:auto;
  gap:60px;
}
@media (max-width:768px){
  .interview-grid--half{ grid-template-columns:1fr; gap:32px; }
}
#customSlides02 .interview-card{
  background:transparent;
  overflow:visible;
  align-items:stretch;
  transition:none;
}
@media (hover:hover) and (pointer:fine){
  #customSlides02 .interview-card:hover{ transform:none; }
}
#customSlides02 .interview-media{
  margin:0;
  width:100%;
  overflow:hidden;
  border-radius:40px;
}
#customSlides02 .interview-media > img{
  width:100%;
  height:auto;
  display:block;
  object-fit:cover;
}
#customSlides02 .messageCard .messageMedia img{
  transition: opacity .25s ease, filter .25s ease;
}
#customSlides02 .messageCard:hover .messageMedia img{
  opacity: .75;
  filter: brightness(1.08);
}
#customSlides02 .messageCaption{
  padding:16px 0 0;
  text-align:left;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  width:100%;
}
#customSlides02 .messageCaption-left{
  flex:1;
  min-width:0;
}
#customSlides02 .messageCaption-title{
  font-family:"Noto Serif JP", serif;
  display:inline-block;
  background:#B39B7E;
  color:#fff;
  font-size:1.1rem;
  font-weight:700;
  letter-spacing:.10em;
  padding:10px 18px 12px;
  line-height:1;
  margin:0 0 10px;
  transition: background-color .2s ease, color .2s ease;
}

#customSlides02 .interview-card:hover .messageCaption-title{
  background-color:#8b755a;
  color:#fff;
}
#customSlides02 .messageCaption-text{
  font-family:"Noto Serif JP", serif;
  margin:0;
  font-size:0.9rem;
  line-height:1.8;
  font-weight:700;
  color:#000;
}
#customSlides02 .moreBadge{
  position:static;
  width:96px;
  height:96px;
  flex-shrink:0;
  display:inline-grid;
  place-items:center;
  border:0;
  padding:0;
  background:transparent;
  cursor:pointer;
}
#customSlides02 .moreBadge:focus-visible{
  outline:2px solid #B39B7E;
  outline-offset:6px;
  border-radius:999px;
}
#customSlides02 .moreBadge-svg{
  width:100%;
  height:100%;
  display:block;
  transform:none;
  transform-origin:50% 50%;
}
#customSlides02 .moreBadge-text{
  font-family:"Playfair Display", serif;
  font-size:18px;
  letter-spacing:.08em;
  fill:#B39B7E;
}
#customSlides02 .moreBadge-dot{ fill:#000; }
#customSlides02 .moreBadge-arrow{ fill:#fff; }
#customSlides02 .moreBadge-rot{
  transform-origin:50% 50%;
  transform-box:fill-box;
}
@media (hover:hover) and (pointer:fine){
  #customSlides02 .interview-card .interview-media img{
    transition:opacity .25s ease, filter .25s ease;
  }
  #customSlides02 .interview-card:hover .interview-media img{
    opacity:.75;
    filter:brightness(1.08);
  }
  #customSlides02 .moreBadge:hover .moreBadge-rot{
    animation:messageBadgeSpin 8s linear infinite;
  }
}
@keyframes messageBadgeSpin{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(360deg); }
}
@media (max-width:768px){
  #customSlides02 .moreBadge{
    width:104px;
    height:104px;
    margin-top:10px;
  }
  #customSlides02 .messageCaption{
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:16px;
  }
  #customSlides02 .messageCaption-left{
    width:100%;
  }
  #customSlides02 .moreBadge{
    margin-top:10px;
  }
}

.messageGrid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 56px 80px;
  align-items: start;
}

.messageCard--wide{
  grid-column: 1 / -1;
  justify-self: center;
  width: calc((100% - 80px) / 2);
}


@media (max-width: 900px){
  .messageGrid{
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .messageCard--wide{
    grid-column: auto;
    justify-self: stretch;
    width: 100%;
  }
}


/* モーダル設定 */
.modalOverlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.6);
   z-index:10000;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:64px 16px 16px;
  overflow:hidden;
  opacity:0;
  pointer-events:none;
  transition:opacity .3s ease;
}
.modalOverlay.is-open{
  opacity:1;
  pointer-events:auto;
}
.modalBox{
  width:min(1500px, calc(100% - 32px));
  background:#fff;
  border-radius:12px;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
  transform:translateY(20px);
  opacity:0;
  transition:transform .4s cubic-bezier(.2,.8,.2,1), opacity .4s ease;
  height:calc(100svh - 110px);
  overflow:visible;
  display:flex;
  flex-direction:column;
  position:relative;
}
.modalOverlay.is-open .modalBox{
  transform:translateY(0);
  opacity:1;
}
.modalBodyScroll{
  flex:1;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  padding:34px 34px 40px;
  --modal-pad: 34px;
}
.modalClose{
  position:absolute;
  top:-18px;
  right:-18px;
  width:44px;
  height:44px;
  border-radius:999px;
  border:none;
  background:#fff;
  cursor:pointer;
  font-size:28px;
  line-height:44px;
  text-align:center;
  box-shadow:0 6px 20px rgba(0,0,0,.25);
  z-index:30;
}

/* 採用情報モーダルだけ幅を狭く */
.modalOverlay.is-recruit .modalBox{
  width:min(1100px, calc(100% - 32px));
}

@media (max-width:768px){
  .modalOverlay{
    padding:58px 10px 10px;
  }

  .modalBox{
    width:calc(100% - 20px);
    height:calc(100svh - 68px);
    border-radius:10px;
  }

  .modalBodyScroll{
    padding:12px 12px 64px;
    --modal-pad: 12px;
  }

  .modalClose{
    top:8px;
    right:8px;
    width:40px;
    height:40px;
    line-height:40px;
    font-size:24px;
  }

  .modalOverlay.is-recruit .modalBox{
    width:min(720px, calc(100% - 28px));
  }

  .modalOverlay{
    padding:58px 10px 10px;
  }

  .modalBox{
    width:calc(100% - 20px);
    height:calc(100svh - 68px);
    border-radius:10px;
  }

  .modalBodyScroll{
    padding:12px 12px 20px;
    --modal-pad: 12px;
  }

  .modalClose{
    top:8px;
    right:8px;
    width:40px;
    height:40px;
    line-height:40px;
    font-size:24px;
  }

  .staffModal-hero--interview{
    margin-bottom:10px;
  }

  .interviewBadge{
    right:10px;
    bottom:-12px;
    width:92px;
  }

  .staffModal--interview .iv-heroCopy,
  .staffModal--interview .iv-band,
  .staffModal--interview .iv-last{
    margin-left:calc(var(--modal-pad) * -1);
    margin-right:calc(var(--modal-pad) * -1);
    width:calc(100% + (var(--modal-pad) * 2));
  }

  .staffModal--interview .iv-heroCopy{
    padding:0 12px;
    margin-top:0;
  }

  .iv-profile{
    position:relative;
    display:block;
    padding:90px 12px 18px;
  }

  .iv-profileLeft{
    width:100%;
  }

  .iv-profileTitle{
    font-size:16px;
    letter-spacing:.12em;
    margin-bottom:10px;
  }

  .iv-profileText p{
    width:100%;
    max-width:none;
    font-size:13px;
    line-height:1.9;
  }
  .iv-bandImg,
  .iv-lastImg{
    padding:0 12px;
  }

  .iv-block{
    grid-template-columns:1fr;
    gap:18px;
    padding:28px 0;
  }

  .iv-block.is-reverse .iv-media,
  .iv-block.is-reverse .iv-text{
    order:unset;
  }

  .iv-text{
    padding-top:0;
  }

  .iv-tag{
    font-size:14px;
    line-height:1.5;
    padding:6px 10px;
    margin:0 0 8px;
  }

  .iv-p p{
    margin:10px 0 0;
    font-size:14px;
    line-height:1.9;
    letter-spacing:.0em;
  }

  .iv-message{
    padding:24px 12px 16px;
  }

  .iv-message p{
    margin-top:0;
    font-size:14px;
    line-height:1.9;
    text-align:left;
  }
}

/* モーダル画像設定 */
.staffModal-hero img{
  width:100%;
  height:auto;
  display:block;
}
.staffModal-hero--interview{
  position:relative;
}
.interviewBadge{
  position:absolute;
  right:clamp(18px, 4vw, 48px);
  bottom:clamp(-36px, -3.5vw, -18px);
  width:clamp(170px, 18vw, 260px);
  height:auto;
  border-radius:999px;
  z-index:2;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.12));
}
.modalImg{
  width:100%;
  max-height:55vh;
  object-fit:contain;
  border-radius:10px;
  margin:0 0 12px;
}

/* モーダル設定 */
#modalNormal{
  width:100%;
}

/* キャリアモーダル */
#modalCareer{
  width:100%;
}
#modalCareer .staffModal{ width:100%; }

#modalCareer .staffModal-hero{
  width:100%;
  border-radius:12px;
  overflow:hidden;
  background:#f2f2f2;
  touch-action:pan-y;
}
#modalCareer .staffModal-hero img{
  width:100%;
  height:auto;
  object-fit:contain;
  display:block;
}
#modalCareer .staffModal-content{
  width:min(900px, 100%);
  margin:30px auto 10px;
  padding:0 6px 8px;
}

#modalCareer .staffModal--interview .staffModal-content{
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}

#modalCareer .qaBlock{
  padding:14px 0;
  border-bottom:1px solid rgba(0,0,0,.10);
}
#modalCareer .qaBlock:first-child{ padding-top:10px; }
#modalCareer .qaBlock:last-child{ border-bottom:none; }

#modalCareer .qBlock{
  display:flex;
  align-items:flex-start;
  gap:15px;
  margin:0 0 12px;
}
#modalCareer .qIcon{
  font-family:"Franklin Gothic Medium","Arial Narrow",Arial,sans-serif;
  background:#b59a7a;
  color:#fff;
  font-weight:800;
  font-size:18px;
  width:44px;
  height:44px;
  border-radius:999px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
}
#modalCareer .qTitle{
  margin:0;
  font-size:20px;
  font-weight:800;
  line-height:1.4;
  letter-spacing:.06em;
  color:#222;
}
#modalCareer .careerModalText{
  font-size:15px;
  line-height:2;
  font-weight:600;
  color:#111;
  margin-top:30px;
  padding:0 0 10px;
  letter-spacing:.06em;
}
#modalCareer .careerModalText p{ margin:0 0 14px; letter-spacing:.02em; }
#modalCareer .careerModalText p:last-child{ margin-bottom:0; }
#modalCareer .careerModalText .hl,
#modalCareer .staffModal-text .hl{
  color:var(--accent);
  font-weight:800;
}

#modalCareer .modalGrid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:24px;
  align-items:stretch;
  max-width:1500px;
  margin:0 auto;
}
#modalCareer .modalLeft{
  padding:22px 22px 18px;
  border-radius:12px;
}
#modalCareer .modalTitle{
  margin:0 0 14px;
  font-family:"Noto Serif JP", serif;
  font-size:clamp(20px, 2.1vw, 34px);
  line-height:1.35;
  letter-spacing:.08em;
  font-weight:800;
  color:#111;
}
#modalCareer .modalMeta{
  margin:0 0 12px;
  font-size:14px;
  font-weight:700;
  letter-spacing:.08em;
  color:#111;
}
#modalCareer .modalBody{
  background:#fff;
  border-radius:12px;
  padding:18px 18px 20px;
  font-weight:600;
  color:#111;
  line-height:1.9;
  max-width:1500px;
  margin:0 auto;
}
#modalCareer .modalRight{
  border-radius:12px;
  overflow:hidden;
}
#modalCareer .modalRight .modalImg{
  width:100%;
  height:100%;
  max-height:none;
  margin:0;
  object-fit:cover;
  border-radius:0;
}

#modalCareer.is-noimg .modalGrid{ grid-template-columns:1fr; }
#modalCareer.is-noimg .modalRight{ display:none; }

@media (max-width:900px){
  #modalCareer .modalGrid{ grid-template-columns:1fr; }
  #modalCareer .modalRight{ order:-1; }
  #modalCareer .modalLeft{ background:#fff; padding:0; }
  #modalCareer .modalBody{ margin-top:14px; }
}
@media (max-width:768px){
  #modalCareer .careerModalText p{ letter-spacing:-.01em; }
  #modalCareer{ max-height:calc(100svh - 130px); }
  #modalCareer .staffModal-hero img{
    width:100%;
    border-radius:10px;
    overflow:hidden;
  }
  #modalCareer .staffModal-content{
    margin-top:18px;
    padding-bottom:18px;
  }
  #modalCareer .qTitle{ font-size:17px; }
  .interviewBadge{
    right:14px;
    bottom:-22px;
    width:160px;
  }
}


/* ワークライフバランス */
.wlb-bg{
  position: relative;
  padding: 88px 0 60px;
  background: #fff url("../img/work/back.jpg") center center / cover no-repeat;
  overflow: visible;
}

.wlb .section-inner{
  width: min(1040px, calc(100% - 40px));
  margin: 0 auto;
}

.wlb-bg .section-inner{
  position: relative;
}

.wlb-stage{
  position: relative;
  min-height: 760px;
  overflow: visible;
}

.wlb-person{
  position: absolute;
  pointer-events: none;
}

.wlb-person--top-left{
  top: -160px;
  left: -30px;
  width: 270px;
  z-index: 26;
}

.wlb-person--top-right{
  top: -132px;
  right: -30px;
  width: 270px;
  z-index: 26;
}

.wlb-person--center{
  left: 49%;
  bottom: 0;
  transform: translateX(-50%);
  width: 410px;
  z-index: 1;
}

.wlb-person--bottom-left{
  left: -70px;
  bottom: 40px;
  width: 130px;
  z-index: 26;
}

.wlb-person--bottom-right{
  right: -60px;
  bottom: 40px;
  width: 150px;
  z-index: 26;
}

.wlb-grid{
  position: relative;
  z-index: 10;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-areas:
    "a b c"
    "d . e"
    "f g h";
  gap: 34px 28px;
  align-items: start;
}

.card-a{ grid-area: a; }
.card-b{ grid-area: b; }
.card-c{ grid-area: c; }
.card-d{ grid-area: d; }
.card-e{ grid-area: e; }
.card-f{ grid-area: f; }
.card-g{ grid-area: g; }
.card-h{ grid-area: h; }

.wlb-card{
  width: 100%;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 12px 26px rgba(0,0,0,.14);
}

.wlb-card__head{
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1f1a1a;
  color: #fff;
  font-weight: 800;
  font-size: 20px;
  padding: 12px 10px;
  text-align: center;
  letter-spacing: .02em;
  line-height: 1.3;
}

.wlb-card__body{
  padding: 14px 12px 16px;
  text-align: center;
  background: #f7f7f7;
}

.wlb-card__num{
  color: #ff1d25;
  font-weight: 900;
  font-size: clamp(74px, 8vw, 102px);
  line-height: 1;
  margin: 0 0 16px;
  letter-spacing: .03em;
}

.wlb-card__note{
  border-top: 1px solid rgba(0,0,0,.7);
  padding-top: 10px;
  font-size: 16px;
  font-weight: 700;
  color: #111;
  line-height: 1.4;
}

@media (max-width: 768px){
  .wlb-stage{
    min-height: 0;
  }

  .wlb-grid{
    grid-template-columns: repeat(2, 1fr);
    grid-template-areas:
      "a b"
      "c d"
      "e f"
      "g h";
    gap: 16px;
  }

  .wlb-person{
    display: none;
  }

  .wlb-person--top-left,
  .wlb-person--top-right{
    display: block;
  }

  .wlb-person--top-left{
    top: -110px;
    left: -20px;
    width: 175px;
    z-index: 26;
  }

  .wlb-person--top-right{
    top: -90px;
    right:-20px;
    width: 185px;
    z-index: 26;
  }


  #wlb.section{
    padding: 40px 0;
  }

  .wlb .section-inner{
    width: calc(100% - 24px);
  }

  .wlb-bg{
    padding: 50px 0 42px;
  }

  .wlb-card{
    display:flex;
    flex-direction:column;
    height:100%;
  }

  .wlb-card__head{
    min-height: 0;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    padding: 4px 6px;
    line-height: 1.2;
    letter-spacing: 0;
    text-align: center;
  }

  .wlb-card__body{
    flex:1;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:8px 8px 10px;
  }

  .wlb-card__num{
    margin: 0 0 8px;
    font-size: 58px;
  }

  .wlb-card__note{
    min-height:34px;
    align-items:center;
    justify-content:center;
    padding-top:8px;
    font-size:12px;
    line-height:1.3;
  }

  .wlb-grid{
    grid-template-columns: repeat(2, 1fr);
    grid-template-areas:
      "a b"
      "c d"
      "e f"
      "g h";
    gap: 12px;
  }
}


/* 教育 */
.edu-flow{
  display:grid;
  grid-template-columns:1fr 24px 1fr 24px 1fr;
  column-gap:12px;
  row-gap:26px;
  margin-top:28px;
  align-items:start;
  grid-template-areas:
    "c1 a1 c2 a2 c3"
    "row2 row2 row2 row2 row2";
}
.edu-card.is-01{ grid-area:c1; }
.edu-arrow.a-01{ grid-area:a1; }
.edu-card.is-02{ grid-area:c2; }
.edu-arrow.a-02{ grid-area:a2; }
.edu-card.is-03{ grid-area:c3; }

.edu-row2{
  grid-area:row2;
  display:grid;
  grid-template-columns:1fr 24px 1fr;
  column-gap:12px;
  align-items:start;
  width:min(640px, 100%);
  margin-inline:auto;
}
.edu-card.is-04{ grid-column:1; }
.edu-arrow.a-04{ grid-column:2; }
.edu-card.is-05{ grid-column:3; }

.edu-arrow.a-03,
.edu-arrow.a-05{ display:none !important; }

.edu-arrow{
  justify-self:center;
  align-self:start;
  margin-top:80px;
  width:0;
  height:0;
  border-top:14px solid transparent;
  border-bottom:14px solid transparent;
  border-left:16px solid #c40000;
}
.edu-card{ min-width:0; }
.edu-media{
  position:relative;
  border-radius:0 12px 12px 0;
  overflow:hidden;
}
.edu-media img{
  width:100%;
  height:180px;
  object-fit:cover;
  display:block;
}
.edu-no{
  position:absolute;
  left:0;
  top:0;
  background:#111;
  color:#fff;
  font-size:18px;
  font-weight:700;
  padding:2px 6px;
}
.edu-tag{
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  background:rgba(192,170,128,.95);
  color:#fff;
  font-weight:400;
  padding:8px 12px;
  font-size:18px;
}
.edu-text{
  margin-top:10px;
  font-size:12px;
  line-height:1.7;
  font-weight:500;
}

#education .section-divider{
  display:flex;
  align-items:center;
  width:100%;
  margin:80px 0 40px;
}

#education .section-divider::before,
#education .section-divider::after{
  content:"";
  flex:1;
  height:1px;
  background:#999;
}

#education .section-dividerText{
  padding:0 20px;
  font-size:14px;
  font-weight:600;
  letter-spacing:.1em;
  white-space:nowrap;
}

@media (max-width:900px){
  .edu-flow{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    grid-template-areas:none;
    column-gap:18px;
    row-gap:22px;
  }
  .edu-row2{
    grid-area:auto;
    display:contents;
    width:auto;
    margin-inline:0;
  }
  .edu-arrow{ display:none !important; }
  .edu-card,
  .edu-arrow{
    grid-area:auto !important;
    grid-column:auto !important;
    grid-row:auto !important;
  }
  .edu-media img{ height:160px; }
}
@media (max-width:600px){
  .edu-flow{ grid-template-columns:1fr; }
  .edu-media img{ height:180px; }
}
@media (max-width:768px){
  .edu-flow{
    display:flex;
    flex-direction:column;
    gap:16px;
  }
  .edu-row2{ display:contents; }
  .edu-arrow{ display:none !important; }
  .edu-card{ width:100%; }

   .section-divider{
    gap:12px;
    margin-top:18px;
  }
  .section-dividerText{
    font-size:13px;
  }
}

@media (max-width:1024px){
  #education .edu-common{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

@media (max-width:768px){
  #education .edu-common{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:14px;
    margin-top:14px;
  }
}

@media (max-width:520px){
  #education .edu-common{
    grid-template-columns:1fr;
  }
}

/* 採用情報 */
.recruit-tabs{
  font-size:15px;
  display:flex;
  gap:60px;
  margin-top:70px;
}
.recruit-tab{
  flex:1;
  height:56px;
  border:0;
  background:#d9d9d9;
  color:#111;
  font-weight:700;
  letter-spacing:.08em;
  border-radius: 56px;
  cursor:pointer;
}
.recruit-tab.is-active{
  background:#b59673;
  color:#fff;
}

.recruit-tab:hover{
  opacity:.7;
}
.modalOverlay.is-recruit .modalBodyScroll{
  padding-top:80px;
  padding-bottom:80px;
}

.recruit-tab:active{ transform:scale(.99); }
@media (max-width:768px){
  .recruit-tabs{
    flex-direction:column;
    gap:12px;
    margin-top:40px;
  }
  .recruit-tab{
    width:100%;
    min-height:60px;
    padding:0 10px;
    font-size:16px;
    font-weight:700;
    letter-spacing:.08em;
    display:flex;
    align-items:center;
    justify-content:center;
    line-height:1.4;
  }
  .modalOverlay.is-recruit .modalBodyScroll{
    padding-top:20px;
    padding-bottom:20px;
  }
}

.recruitModal{
  max-width:980px;
  margin:0 auto;
}
.recruitModal-title{
  margin:0 0 55px;
  text-align:center;
  font-family:"Noto Serif JP", serif;
  font-size:20px;
  font-weight:700;
  letter-spacing:.18em;
  color:#b59673;
  position:relative;
  padding-bottom:12px;
}
.recruitModal-title::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:170px;
  height:2px;
  background:rgba(202, 167, 128, 0.45);
  border-radius:999px;
}
.recruitModal p{
  margin:0 0 10px;
  line-height:1.9;
  color:#222;
}
.recruitModal p:last-child{ margin-bottom:0; }

/* 募集要項 */
.recruitModal--req .reqTable{
  border-top:1px solid rgba(0,0,0,.14);
}

.recruitModal--req .reqRow{
  display:grid;
  grid-template-columns:200px 1fr;
  border-bottom:1px solid rgba(0,0,0,.14);
}
.recruitModal--req .reqTh{
  padding:16px 18px;
  color:#b59673;
  font-weight:700;
  letter-spacing:.08em;
  font-size:13px;
}
.recruitModal--req .reqTd{
  padding:16px 18px;
  font-size:14px;
  line-height:1.6;
  color:#222;
}
.recruitModal--req .reqTd .reqSub{
  font-weight:800;
  letter-spacing:.06em;
  margin:18px 0 4px;
}
.recruitModal--req .reqTd .reqSub:first-child{ margin-top:0; }
.recruitModal--req .reqTd ul{
  margin:6px 0 8px;
  padding-left:1.2em;
}
.recruitModal--req .reqTd li{ margin:0 0 6px; }
@media (max-width:768px){
  .recruitModal--req .reqRow{ grid-template-columns:1fr; }
  .recruitModal--req .reqTh{ padding:14px 10px 6px; }
  .recruitModal--req .reqTd{ padding:0 10px 14px; }
}

/* 採用フロー */
.recruitModal--flow{
  max-width: 980px;
  margin: 0 auto;
}

.recruitModal--flow .recruitModal-title{
  margin: 0 0 42px;
}

.flowRecruit{
  max-width: 760px;
  margin: 0 auto;
}

.flowRecruit-step{
  width: 100%;
}

.flowRecruit-card{
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid #b59673;
  background: #fff;
  min-height: 146px;
  padding: 0;
}

.flowRecruit-main{
  flex: 1;
  min-width: 0;
  padding: 24px 22px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.flowRecruit-title{
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.flowRecruit-num{
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #b59673;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  flex: 0 0 26px;
}

.flowRecruit-text{
  font-family: "Noto Serif JP", serif;
  color: #b59673;
  font-size: 23px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .04em;
}

.flowRecruit-side{
  width: 190px;
  flex: 0 0 190px;
  padding: 10px;
}

.flowRecruit-side img{
  width: 100%;
  height: 126px;
  object-fit: cover;
}

.flowRecruit-card--entry{
  min-height: 98px;
  align-items: center;
}

.flowRecruit-card--entry .flowRecruit-main{
  padding-top: 20px;
  padding-bottom: 20px;
}

.flowRecruit-arrow{
  width: 0;
  height: 0;
  margin: 16px auto;
  border-left: 16px solid transparent;
  border-right: 16px solid transparent;
  border-top: 18px solid #d71920;
}

.flowRecruit-card--final{
  background: #b59673;
  min-height: 66px;
}

.flowRecruit-card--final .flowRecruit-main{
  padding: 0 22px;
  min-height: 66px;
}

.flowRecruit-card--final .flowRecruit-num{
  background: #fff;
  color: #b59673;
}

.flowRecruit-card--final .flowRecruit-text{
  color: #fff;
}

.flowRecruit-side--img{
  width: 190px;
  height: 126px;
  overflow: hidden;
}

.flowRecruit-side--img img{
  width: 110%;
  height: 110%;
  object-fit: cover;
}

@media (max-width: 768px){
  .recruitModal--flow .recruitModal-title{
    margin-bottom: 24px;
    font-size: 18px;
    letter-spacing: .12em;
  }
  .recruitModal--flow{
    padding-bottom:32px;
  }

  .flowRecruit{
    max-width: 100%;
  }

  .flowRecruit-card{
    gap: 12px;
    min-height: 0;
  }

  .flowRecruit-main{
    padding: 16px 14px;
  }

  .flowRecruit-title{
    align-items: flex-start;
    gap: 10px;
  }

  .flowRecruit-num{
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    font-size: 15px;
    margin-top: 2px;
  }

  .flowRecruit-text{
    font-size: 18px;
    line-height: 1.5;
  }

  .flowRecruit-side{
    width: 120px;
    flex: 0 0 120px;
    padding: 8px 8px 8px 0;
  }

  .flowRecruit-side img{
    height: 94px;
  }

  .flowRecruit-card--entry{
    min-height: 0;
  }
  .flowRecruit-arrow{
    margin: 12px auto;
    border-left: 13px solid transparent;
    border-right: 13px solid transparent;
    border-top: 15px solid #d71920;
  }

  .flowRecruit-card--final{
    min-height: 58px;
  }

  .flowRecruit-card--final .flowRecruit-main{
    min-height: 58px;
    padding: 0 14px;
  }
}

@media (max-width: 520px){
  .flowRecruit-card{
    display: flex;
    flex-direction: column;
  }

  .flowRecruit-main{
    padding: 14px 14px 12px;
  }

  .flowRecruit-side{
    width: 100%;
    flex: none;
    display: block;
    padding: 0 14px 14px;
  }

  .flowRecruit-side img{
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
  }

  .flowRecruit-card--entry{
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  .flowRecruit-card--entry .flowRecruit-main{
    padding: 14px 14px 12px;
  }

  .flowRecruit-card--final{
    display: block;
  }

  .flowRecruit-card--final .flowRecruit-main{
    padding: 0 14px;
  }

  .flowRecruit-side--img{
    padding: 0 14px 14px;
  }

  .flowRecruit-side--img img{
    width: 100%;
    height: auto;
    display: block;
  }
}


/* よくある質問 */
.recruitModal--faq .faqList{
  display:grid;
  gap:22px;
  max-width:860px;
  width:100%;
  margin:0 auto;
}
.recruitModal--faq .faqCard{
  background:#f1eae1;
  border-radius:16px;
  padding:22px 26px;
}
.recruitModal--faq .faqQ{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin:0 0 14px;
}
.recruitModal--faq .faqQIcon{
  width:36px;
  height:36px;
  border-radius:999px;
  background:#b59673;
  color:#fff;
  font-weight:800;
  display:grid;
  place-items:center;
  flex:0 0 auto;
}
.recruitModal--faq .faqQText{
  margin:0;
  font-size:19px;
  font-weight:700;
  letter-spacing:.06em;
  color:#222;
  padding-top:4px;
  display:inline-block;
  border-bottom:1px solid rgba(0,0,0,.35);
  line-height:1.55;
}
.recruitModal--faq .faqA{
  background:#fff;
  border-radius:6px;
  padding:14px 16px;
  display:flex;
  align-items:flex-start;
  gap:14px;
}
.recruitModal--faq .faqAIcon{
  width:36px;
  height:36px;
  border-radius:999px;
  background:#e10000;
  color:#fff;
  font-weight:800;
  display:grid;
  place-items:center;
  flex:0 0 auto;
}
.recruitModal--faq .faqAText{
  margin:1.8px 0 0;
  color:#e10000;
  font-weight:800;
  letter-spacing:.04em;
  line-height:1.9;
  font-size:14px;
}
@media (max-width:768px){
  .recruitModal--faq{
    padding-bottom:20px;
  }
  .recruitModal--faq .faqCard{
    padding:18px 16px;
    border-radius:14px;
  }
  .recruitModal--faq .faqQText{ font-size:15px; }
}

/* エントリー */
.recruit-cta{
  text-align:center;
  padding:0 20px 120px;
}
.recruit-cta-lead{
  color:#c40000;
  font-weight:700;
  font-size:20px;
  margin-bottom:20px;
  letter-spacing:.1em;
}
.recruit-entry-btn{
  display:inline-block;
  background:#c40000;
  color:#fff;
  font-size:26px;
  font-weight:700;
  padding:18px 80px;
  border-radius:50px;
  text-decoration:none;
  letter-spacing:.15em;
  transition:.3s ease;
}
.recruit-entry-btn:hover{
  transform:translateY(-3px);
  box-shadow:0 15px 30px rgba(0,0,0,.15);
}
.recruit-cta-note{
  margin-top:30px;
  font-size:14px;
  color:#c40000;
  line-height:1.8;
  font-weight:700;
}
@media (max-width:768px){
  .recruit-cta{ padding:20px 20px 60px 20px; }
  .recruit-entry-btn{
    display:block;
    width:100%;
    max-width:400px;
    margin:20px auto;
    padding:18px 0;
    font-size:18px;
    font-weight:600;
    text-align:center;
    border-radius:50px;
  }
  .recruit-cta-note{
    font-size:14px;
    line-height:1.8;
  }
}

/* footer */
.site-footer{
  width:100%;
  min-height:350px;
  background-image:url("../img/footer.jpg");
  background-size:cover;
  background-position:80% center;
  background-repeat:no-repeat;
  position:relative;
  display:flex;
  align-items:center;
}
.site-footer::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    90deg,
    rgba(0,0,0,.6) 0%,
    rgba(0,0,0,.4) 40%,
    rgba(0,0,0,0) 70%
  );
}
.footer-inner{
  position:relative;
  z-index:1;
  width:100%;
  padding:80px 0 80px 9%;
  color:#fff;
}
.footer-logo{
  display:flex;
  align-items:center;
  gap:20px;
  margin-bottom:30px;
}
.footer-logo img{ height:50px; }
.footer-recruit{
  font-size:16px;
  font-weight:600;
  letter-spacing:1px;
  background-color:#fff;
  color:#000;
  padding:3px 9px;
}
.footer-buttons{
  display:flex;
  gap:25px;
  margin-bottom:12px;
}
.footer-btn{
  border:1px solid #fff;
  text-align:center;
  padding:6px 10px;
  color:#fff;
  text-decoration:none;
  font-size:15px;
  font-weight:500;
  transition:.3s;
  width:250px;
  border-radius:8px;
}
.footer-btn:hover{
  background:#fff;
  color:#000;
}
.footer-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:800px;
}
.footer-info{
  font-size:14px;
  font-weight:400;
  line-height:1.6;
}
.footer-sns{
  display:flex;
  gap:18px;
}
.footer-sns img{ height:45px; }

@media (max-width:768px){
  /* footer */
.site-footer{
  width:100%;
  min-height:300px;
  background-image:url("../img/footer_sp.png");
  background-size:cover;
  background-position:80% center;
  background-repeat:no-repeat;
  position:relative;
  display:flex;
  align-items:center;
}
  .site-footer{
    min-height:auto;
    align-items:flex-start;
    background-position:center;
  }
  .footer-inner{ padding:56px 16px; }
  .footer-logo{
    flex-direction:column;
    align-items:center;
    gap:12px;
    margin-bottom:24px;
    text-align:center;
  }
  .footer-logo img{ height:46px; }
  .footer-recruit{ font-size:14px; }
  .footer-buttons{
    flex-direction:column;
    gap:12px;
    margin-bottom:18px;
    align-items:center;
  }
  .footer-btn{
    width:100%;
    max-width:320px;
    padding:12px 10px;
    font-size:14px;
  }
  .footer-bottom{
    width:100%;
    flex-direction:column;
    gap:16px;
    align-items:center;
    text-align:center;
    display:flex;
  }
  .footer-info{
    font-size:13px;
    line-height:1.8;
    order:2;
  }
  .footer-sns{
    justify-content:center;
    gap:14px;
    order:1;
  }
  .footer-sns img{ height:34px; }
}

.sp-br{ display:none; }
.pc-br{ display:block; }

img.sp-img{ display:none !important; }
img.pc-img{ display:block !important; }

@media (max-width:768px){
  .sp-br{ display:block; }
  .pc-br{ display:none; }

  img.sp-img{ display:block !important; }
  img.pc-img{ display:none !important; }
}

/* Responsive */
@media (max-width:768px){
  .pc-nav{ display:none; }
  .hamburger{ display:inline-block; margin-left:auto; }
  .drawer{ display:block; }
  .head-logo{ top:-1.2rem; padding:30px 4px; height:80px; }
  .head-logo img{ height:40px; width:auto; }
  .hero{
    padding-top:0;
  }
  .top-main,
  #vegas-pc{
    position:relative;
    width:100%;
    height:100svh;
    min-height:100svh;
  }
  .top-main{
    aspect-ratio:auto;
  }
  .pc-img{
    display:none;
  }

  .sp-img{
    display:block;
  }

  .hero-bg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
  }

  .top-main-title{
    position:absolute;
    left:18px;
    top:70px;
    width:min(55vw, 250px);
    margin:0;
    z-index:3;
  }
  .topFixedSvg{
    right:3%;
    top:11%;
    left:auto;
    width:32%;
  }
  .top-main .hero-lead{
    position:absolute;
    left:22px;
    right:12px;
    bottom:80px;
    max-width:none;
    margin:0;
    font-size:clamp(10px, 2.8vw, 12px);
    line-height:1.9;
    letter-spacing:.02em;
    z-index:3;
  }

  .section{ padding:56px 0; }

  .careerThumbs{
    grid-template-columns:none;
    grid-auto-flow:column;
    grid-auto-columns:45%;
    gap:12px;
    overflow-x:auto;
    padding-bottom:6px;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
  }
  .careerThumb{
    height:92px;
    scroll-snap-align:start;
    border-radius:16px;
  }
  .careerThumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:16px;
  }

  .careerStage:has(img[src$="slide01-1.jpg"]),
  .careerStage:has(img[src$="slide01-2.jpg"]),
  .careerStage:has(img[src$="slide01-3.jpg"]),
  .careerStage:has(img[src$="slide02-1.jpg"]),
  .careerStage:has(img[src$="slide02-2.jpg"]),
  .careerStage:has(img[src$="slide02-3.jpg"]),
  .careerStage:has(img[src$="slide03-1.jpg"]),
  .careerStage:has(img[src$="slide03-2.jpg"]),
  .careerStage:has(img[src$="slide03-3.jpg"]),
  .careerStage:has(img[src$="slide04-1.jpg"]),
  .careerStage:has(img[src$="slide04-2.jpg"]),
  .careerStage:has(img[src$="slide04-3.jpg"]){
    border-radius:80px;
  }

  .careerStageWrap{
    margin:0 0 18px;
  }

  .careerStage{
    border-radius:999px;
  }

  .careerStage-img{
    width:100%;
    height:200px;
    object-fit:cover;
  }

  .careerNav{
    width:38px;
    height:38px;
    font-size:20px;
  }

  .careerNav--prev{
    left:10px;
  }

  .careerNav--next{
    right:10px;
  }

  .careerDots{
    bottom:10px;
    gap:8px;
  }

  .careerDot{
    width:7px;
    height:7px;
  }

  .careerTextRow{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:18px;
  }

  .careerText{
    width:100%;
  }

  .careerKicker{
    margin:0 0 3px;
    font-size:13px;
    letter-spacing:.08em;
    line-height:1.6;
  }

  .careerHeadline{
    margin-top:8px;
    font-size:1.25rem;
    line-height:1.7;
    letter-spacing:.04em;
  }

 .careerMore{
    width:120px;
    height:120px;
    align-self:center;
    margin-top:0;
  }

  .careerMore-text{
    font-size:15px;
  }

  .careerStage-img{ height:240px; }
  .careerTextRow{ gap:18px; }
  .careerHeadline{ font-size:1.25rem; }
}

@media (min-width:992px){
  .drawer{ display:none; }
}



.flowRecruit-step--with-btn .flowRecruit-main{
  justify-content:flex-start;
}

.flowRecruit-step--with-btn .flowRecruit-action{
  margin-top:14px;
}

.flowRecruit-step--with-btn .flowRecruit-entryBtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:170px;
  height:46px;
  border-radius:999px;
  background:#e3171f;
  color:#fff;
  text-decoration:none;
  font-size:14px;
  font-weight:700;
  line-height:1;
  letter-spacing:0;
  padding:0;
  font-family:Arial, Helvetica, sans-serif;
}

@media (max-width:768px){
  .flowRecruit-step--with-btn .flowRecruit-action{
    margin-top:12px;
  }

  .flowRecruit-step--with-btn .flowRecruit-entryBtn{
    width:140px;
    height:40px;
    font-size:13px;
  }
}

@media (max-width:520px){
  .flowRecruit-step--with-btn .flowRecruit-card{
    display:flex;
    flex-direction:column;
  }

  .flowRecruit-step--with-btn .flowRecruit-main{
    padding:14px 14px 12px;
  }

  .flowRecruit-step--with-btn .flowRecruit-action{
    margin-top:10px;
    display:flex;
    justify-content:flex-start;
  }

  .flowRecruit-step--with-btn .flowRecruit-entryBtn{
    width:140px;
    height:40px;
    max-width:none;
    margin:0;
    font-size:13px;
  }
}


.careerMore-rot{
  transform-origin:70px 70px;
  transform-box:view-box;
}

.careerMore:hover .careerMore-rot{
  animation:rotateBadge 18s linear infinite;
}

@keyframes rotateBadge{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(360deg); }
}