/* 京セラＳＯＣ 採用サイト用 sticky 流体背景 */
:root {
  --soc-fluid-edge-color: #fff;
  --soc-fluid-sticky-top: 0px;
  --soc-fluid-fade-size: clamp(120px, 20vh, 280px);
  --soc-fluid-opacity: 1;
  --soc-fluid-content-min-height: 120vh;
}

.soc-fluid {
  --soc-fluid-sticky-height: calc(100vh - var(--soc-fluid-sticky-top));
  position: relative;
  isolation: isolate;
  background: var(--soc-fluid-edge-color);
}

@supports (height: 100vh) {
  .soc-fluid {
    --soc-fluid-sticky-height: calc(100vh - var(--soc-fluid-sticky-top));
    clip-path: inset(0);
  }
}

.soc-fluid__sticky {
  position: sticky;
  top: var(--soc-fluid-sticky-top);
  z-index: 0;
  width: 100%;
  height: var(--soc-fluid-sticky-height);
  overflow: hidden;
  pointer-events: none;
  contain: paint;
  background: #f4f8fa;
}

.soc-fluid__mount {
  position: absolute;
  inset: 0;
  opacity: var(--soc-fluid-opacity);
  transform: translateZ(0);
  background:
    radial-gradient(circle at 18% 22%, rgba(155, 190, 219, .38), transparent 48%),
    radial-gradient(circle at 82% 70%, rgba(211, 229, 244, .58), transparent 52%),
    linear-gradient(145deg, #fff 0%, #f2f7fa 48%, #d3e5f4 100%);
}

.soc-fluid__mount canvas {
  display: block;
  width: 100%;
  height: 100%;
}

.soc-fluid__visual {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.soc-fluid__content {
  position: relative;
  z-index: 3;
  min-height: var(--soc-fluid-content-min-height);
  margin-top: calc(-1 * var(--soc-fluid-sticky-height));
}

.soc-fluid::before,
.soc-fluid::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  z-index: 2;
  height: var(--soc-fluid-fade-size);
  pointer-events: none;
  opacity: 0;
}

.soc-fluid::before {
  top: 0;
  background: linear-gradient(to bottom, #fff 0%, rgba(255, 255, 255, .9) 22%, rgba(255, 255, 255, .45) 58%, transparent 100%);
}

.soc-fluid::after {
  bottom: 0;
  background: linear-gradient(to bottom, transparent 0%, rgba(255, 255, 255, .45) 42%, rgba(255, 255, 255, .9) 78%, #fff 100%);
}

.soc-fluid.has-fluid-fade-top::before,
.soc-fluid.has-fluid-fade-bottom::after {
  opacity: 1;
}

.soc-fluid--fv {
  --soc-fluid-content-min-height: 200vh;
  --soc-fluid-fade-size: clamp(160px, 24vh, 340px);
}

.soc-fluid--content {
  --soc-fluid-content-min-height: 170vh;
}

.soc-fluid--cta {
  --soc-fluid-content-min-height: 125vh;
  --soc-fluid-fade-size: clamp(120px, 18vh, 240px);
}

.soc-fluid.is-fluid-disabled .soc-fluid__sticky {
  background: var(--soc-fluid-edge-color);
}

.soc-fluid.is-fluid-disabled .soc-fluid__mount {
  display: none;
}

@media (max-width: 767px) {
  :root {
    --soc-fluid-fade-size: clamp(96px, 16vh, 180px);
  }

  .soc-fluid--fv { --soc-fluid-content-min-height: 185vh; }
  .soc-fluid--content { --soc-fluid-content-min-height: 150vh; }
  .soc-fluid--cta { --soc-fluid-content-min-height: 115vh; }
}

@media print {
  .soc-fluid__sticky {
    position: absolute;
    inset: 0;
    height: 100%;
  }

  .soc-fluid__content {
    margin-top: 0;
  }
}
