/* 全ページ共通：右下固定「採用」CTA */
.fixed-recruit-cta-wrap{
  position:fixed;
  right:20px;
  bottom:calc(var(--contact-cta-height,70px) + 20px + env(safe-area-inset-bottom));
  z-index:9998;

  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(18px) scale(.92);

  transition:
    opacity .35s ease,
    visibility .35s ease,
    transform .35s ease;
}
.fixed-recruit-cta-wrap.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0) scale(1);
}
.fixed-recruit-cta-wrap.is-visible.is-dismissed{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(10px) scale(.9);
}

.fixed-recruit-cta{
  display:block;
  line-height:0;
  margin:0;
  padding:0;
  border:0;
  background:none;
  cursor:zoom-in;
  -webkit-tap-highlight-color:transparent;
}
.fixed-recruit-cta img{
  display:block;
  width:150px;
  max-width:calc(100vw - 24px);
  height:auto;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.2));
  transition:transform .2s ease;
}
@media(hover:hover) and (pointer:fine){
  .fixed-recruit-cta:hover img{
    transform:scale(1.03);
  }
}
.fixed-recruit-cta:active img{
  transform:scale(.98);
}
.fixed-recruit-cta:focus-visible{
  outline:3px solid #000;
  outline-offset:4px;
}

/* 左上「×」：CTAを非表示にする */
.fixed-recruit-cta-dismiss{
  position:absolute;
  top:-12px;
  left:-12px;
  z-index:2;

  display:grid;
  place-items:center;

  width:34px;
  height:34px;
  padding:0;

  border:2px solid #fff;
  border-radius:50%;
  background:rgba(0,0,0,.82);
  color:#fff;

  font-size:24px;
  font-weight:400;
  line-height:1;

  cursor:pointer;
  box-shadow:0 3px 10px rgba(0,0,0,.28);

  transition:
    transform .2s ease,
    background-color .2s ease;
}
.fixed-recruit-cta-dismiss::before{
  content:"";
  position:absolute;
  inset:-5px;
}
.fixed-recruit-cta-dismiss span{
  display:block;
  transform:translateY(-1px);
}
.fixed-recruit-cta-dismiss:focus-visible{
  outline:3px solid #000;
  outline-offset:3px;
}
@media(hover:hover) and (pointer:fine){
  .fixed-recruit-cta-dismiss:hover{
    transform:scale(1.08);
    background:#000;
  }
}

@media(max-width:1024px){
  .fixed-recruit-cta img{
    width:130px;
  }
}

@media(max-width:767px){
  .fixed-recruit-cta-wrap{
    right:10px;
    bottom:calc(var(--contact-cta-height,64px) + 10px + env(safe-area-inset-bottom));
  }
  .fixed-recruit-cta img{
    width:105px;
  }
}

/* 全画面拡大表示モーダル */
.recruit-cta-modal{
  position:fixed;
  inset:0;
  z-index:10050;
  display:grid;
  place-items:center;
  padding:
    max(20px, env(safe-area-inset-top))
    max(20px, env(safe-area-inset-right))
    max(20px, env(safe-area-inset-bottom))
    max(20px, env(safe-area-inset-left));
  background:rgba(0,0,0,.82);

  opacity:0;
  visibility:hidden;
  pointer-events:none;

  transition:
    opacity .3s ease,
    visibility .3s ease;
}
.recruit-cta-modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.recruit-cta-modal__close{
  display:block;
  width:auto;
  max-width:90vw;
  max-height:90dvh;
  padding:0;
  border:0;
  background:transparent;
  cursor:zoom-out;

  opacity:0;
  transform-origin:var(--recruit-cta-origin-x,100%) var(--recruit-cta-origin-y,100%);
  transform:scale(.72);
  transition:
    opacity .35s ease,
    transform .35s cubic-bezier(.22,1,.36,1);
}
.recruit-cta-modal.is-open .recruit-cta-modal__close{
  opacity:1;
  transform:scale(1);
}
.recruit-cta-modal__close:focus-visible{
  outline:3px solid #fff;
  outline-offset:4px;
}
.recruit-cta-modal__close img{
  display:block;
  width:auto;
  max-width:90vw;
  max-height:90dvh;
  height:auto;
  object-fit:contain;
}

/* 拡大表示中は通常CTAを隠す */
body.is-recruit-modal-open .fixed-recruit-cta-wrap{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
body.is-recruit-modal-open{
  overflow:hidden;
  touch-action:none;
}

@media(prefers-reduced-motion:reduce){
  .fixed-recruit-cta-wrap,
  .fixed-recruit-cta-dismiss,
  .recruit-cta-modal,
  .recruit-cta-modal__close{
    transition:none;
  }
}
