@charset "UTF-8";

:root {
  --color-main: #00215e;
  --color-accent-01: #2f5699;
  --color-accent-02: #3fb8db;
  --color-accent-03: #ff8800;
  --color-accent-04: #76c317;
  --color-01: #f5f5f5;
  --color-02: #cccccc;
  --color-03: #000000;
  --color-04: #333;
  --white: #fff;
  --grad-01: linear-gradient(90deg, #3a3a3a 0%, #171717 100%);
  --grad-02: linear-gradient(270deg, #3a3a3a 0%, #171717 100%);
}

/* ==================================
リセット・調整
===================================== */
/*---------- 左ヘッダーレイアウト時に横スクロールの発生をさせない ----------*/
@media (min-width: 992px) {
  body {
    display: block;
    overflow-x: hidden;
  }
}
/*---------- ページトップボタン ----------*/
.share_top-link .top-link .btn:hover a::before {
  border-color: var(--color-main);
}
/* アウトラインボタンを白背景にするとき */
.--bg-white {
  background-color: #fff;
}
.--bg-wh-opavity {
  background-color: rgba(255, 255, 255, 0.8);
}
/* アウトラインボタンをホバーしたときに枠線を白にするとき */
/* .--hover-border:hover {
  border-color: #fff;
} */
.--hover-border:hover {
  border-color: currentColor;
}

/*---------- アクセシビリティ ----------*/
/* アイコンを読み上げないようにする */
i,
[class^="material-icons"] {
  speak: none;
}

/* ==================================
  ファンデーション
===================================== */
/*---------- スムーズスクロール ----------*/
html {
  scroll-behavior: smooth;
}
@media (max-width: 991px) {
  html {
    scroll-padding-top: 3.5rem;
  }
}

/* ==================================
タイポ
===================================== */
/*---------- フォントサイズ ----------*/
.ff-oswald {
  font-family: "Oswald", sans-serif;
}

/*---------- フォントサイズ ----------*/
.fs-1 {
  font-size: calc(1.375rem + 1.5vw) !important;
}
.fs-2 {
  font-size: calc(1.325rem + 0.9vw) !important;
}
.fs-3 {
  font-size: calc(1.3rem + 0.6vw) !important;
}
.fs-4 {
  font-size: calc(1.275rem + 0.3vw) !important;
}
.fs-5 {
  font-size: 1.25rem !important;
}
.fs-6 {
  font-size: 1rem !important;
}
.fs-7 {
  font-size: 0.875rem !important;
}
.fs-8 {
  font-size: 0.75rem !important;
}
.fs-9 {
  font-size: 0.625rem !important;
}
.fs-10 {
  font-size: 0.5rem !important;
}
.fs-20-40 {
  font-size: clamp(1.25rem, calc(0.6818181818181818rem + 2.4242424242424243vw), 2.5rem);
}
.fs-100-150 {
  font-size: clamp(6.25rem, calc(4.829545454545455rem + 6.0606060606060606vw), 9.375rem);
}

/*---------- font-weight ----------*/
.fw-500 {
  font-weight: 500;
}

/* ==================================
ユーティリティー
===================================== */
/*---------- フォントサイズ ----------*/
.fs-1 {
  font-size: calc(1.375rem + 1.5vw) !important;
}
.fs-2 {
  font-size: calc(1.325rem + 0.9vw) !important;
}
.fs-3 {
  font-size: calc(1.3rem + 0.6vw) !important;
}
.fs-4 {
  font-size: calc(1.275rem + 0.3vw) !important;
}
.fs-5 {
  font-size: 1.25rem !important;
}
.fs-6 {
  font-size: 1rem !important;
}
.fs-7 {
  font-size: 0.875rem !important;
}
.fs-8 {
  font-size: 0.75rem !important;
}
.fs-9 {
  font-size: 0.625rem !important;
}
.fs-10 {
  font-size: 0.5rem !important;
}
.fs-20-40 {
  font-size: clamp(1.25rem, calc(0.6818181818181818rem + 2.4242424242424243vw), 2.5rem);
}
.fs-100-150 {
  font-size: clamp(6.25rem, calc(4.829545454545455rem + 6.0606060606060606vw), 9.375rem);
}
.fs-100-180 {
  font-size: clamp(6.25rem, calc(3.977272727272727rem + 9.696969696969697vw), 11.25rem);
}

/*---------- 画像の比率 ----------*/
.u-aspect img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.u-aspect.--contain img {
  object-fit: contain;
}
.u-aspect.--16x9 img {
  aspect-ratio: 16 / 9;
}
.u-aspect.--4x3 img {
  aspect-ratio: 4 / 3;
}
.u-aspect.--21x9 img {
  aspect-ratio: 21 / 9;
}
.u-aspect.--1x1 img {
  aspect-ratio: 1 / 1;
}
.u-aspect.--7x8 img {
  aspect-ratio: 7 / 8;
}
.u-aspect.--2x1 img {
  aspect-ratio: 2 / 1;
}

/*---------- 角丸 ----------*/
.u-rounded-_5 {
  border-radius: 0.5rem !important;
  overflow: hidden;
}
.u-rounded-_75 {
  border-radius: 0.75rem !important;
  overflow: hidden;
}
.u-rounded-1 {
  border-radius: 1rem !important;
  overflow: hidden;
}
.u-rounded-1_5 {
  border-radius: 1.5rem !important;
  overflow: hidden;
}
.u-rounded-1_25 {
  border-radius: 1.25rem !important;
  overflow: hidden;
}
.u-rounded-2 {
  border-radius: 2rem !important;
  overflow: hidden;
}
.u-rounded-3 {
  border-radius: 3rem !important;
  overflow: hidden;
}
.u-rounded.--r-0 {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  overflow: hidden;
}
.u-rounded.--l-0 {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  overflow: hidden;
}

/*---------- ホバーアクション ----------*/
.u-hover {
  transition: all 0.3s ease-in-out;
  color: inherit;
}
.u-hover:hover {
  text-decoration: none;
}
.u-hover.--opacity:hover {
  opacity: 0.8;
}
.u-hover.--up:hover {
  transform: translateY(-0.125rem);
}
.u-hover.--scale-up img {
  transition: all 0.3s ease-in-out;
}
.u-hover.--scale-up:hover img {
  transform: scale(1.1);
}
.u-hover.--shadow-main {
  box-shadow: 0.125rem 0.125rem 0.25rem var(--color-main);
}
.u-hover.--shadow-main:hover {
  box-shadow: 0.25rem 0.25rem 0.25rem var(--color-main);
  transform: translate(-0.125rem, -0.125rem);
}

/*---------- はみ出させる ----------*/
.u-over {
  margin-inline: calc(50% - 50vw);
}
/* 右に */
.u-r-over {
  margin-right: calc(50% - 50vw);
}
/* 左に */
.u-l-over {
  margin-left: calc(50% - 50vw);
}

/*---------- 中央ぞろえ ----------*/
.u-v-center {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.u-center {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

/*---------- スワイパー ----------*/
/* 滑らかに */
.u-swiper-liner .swiper-wrapper {
  transition-timing-function: linear;
}

/* ========================================
パーツ
======================================== */
/*---------- アイコン ----------*/
.c-icon {
  display: grid !important;
  grid-template-columns: repeat(2, auto);
  column-gap: 0.5rem;
  justify-content: center;
  align-items: center;
}
.c-icon.--r {
  grid-template-columns: 1fr auto;
}
.c-icon.--l {
  grid-template-columns: auto 1fr;
}
@media (min-width: 992px) {
  .c-icon {
    column-gap: 1rem;
  }
}

/*---------- 背景のベース ----------*/
.p-bg {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  position: relative;
  z-index: 1;
}
.p-bg::before,
.p-bg::after {
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
/* 黒透過 */
.p-bg.--shadow-bl::before {
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.3);
}
.p-bg.--shadow-bl.--strong::before {
  background-color: rgba(0, 0, 0, 0.7);
}
/* 白透過 */
.p-bg.--shadow-wh::before {
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.3);
}
.p-bg.--shadow-wh.--strong::before {
  background-color: rgba(255, 255, 255, 0.7);
}
/* メイン色透過 */
.p-bg.--shadow-main::before {
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: var(--color-main);
  opacity: 0.6;
}
.p-bg.--shadow-main.--strong::before {
  opacity: 0.8;
}

/* ==================================
下層MV
===================================== */
.tmpl_01_page-hero {
  background-image: none;
  background-color: var(--color-main);
}
.tmpl_01_page-hero .container {
  display: flex;
  justify-content: flex-start;
}
.tmpl_01_page-hero_text {
  background-color: var(--white);
  color: var(--color-main);
  padding: 2rem;
  border: 0.5rem double var(--color-main);
  min-width: 18rem;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  font-size: clamp(20px, calc(18.181818181818183px + 0.48484848484848486vw), 24px);
  font-weight: 700;
  line-height: 1.2;

  margin-bottom: 0;
}
.c-h-under-mv-en {
  font-size: clamp(1rem, calc(0.9431818181818182rem + 0.24242424242424243vw), 1.125rem);
  margin-top: 1rem;
}

/* ==================================
下層パーツ
===================================== */
/*---------- アイコン ----------*/
/* 白抜きの円 */
.c-circle-arrow {
  flex-shrink: 0;
  width: 2.5em;
  height: 2.5em;
  display: flex;
  justify-content: center;
  align-items: center;
  color: var(--color-main);
  border: 1px solid var(--color-main);
  border-radius: 50%;
  background-color: var(--white);
  transition: all 0.15s ease-in-out;
}
a:hover .c-circle-arrow {
  color: var(--white);
  background-color: var(--color-main);
}

/*---------- 製品一覧（中間）ページ ----------*/
.p-nav-img-text {
  display: grid;
}
.p-nav-img-text * {
  grid-area: 1 / 1 / 2 / 2;
}
.l-nav-text {
  z-index: 2;
}
.l-nav-img {
  z-index: 1;
}

/* ==================================
  TOP
===================================== */
/*---------- MV ----------*/
.tmpl_01_kv .swiper-pagination-bullet {
  background-color: var(--color-02);
}
.tmpl_01_kv .swiper-pagination-bullet-active {
  background-color: var(--color-accent-02);
}

/* .p-top-mv .tmpl_01_kv_slide {
  min-height: auto;
} */

#dcms_layoutPageBlock .p-top-mv.--pc {
  display: none;
}
#dcms_layoutPageBlock .p-top-mv .--discription {
  display: none;
  speak: none;
}
@media screen and (min-width: 992px) {
  #dcms_layoutPageBlock .p-top-mv.--sp {
    display: none;
  }
  #dcms_layoutPageBlock .p-top-mv.--pc {
    display: block;
  }
}
#tinymce .p-top-mv img {
  width: 100% !important;
  max-height: unset !important;
}

/*---------- 事例紹介 ----------*/
.ml-nx {
  margin-left: -1rem;
}
@media (min-width: 1200px) {
  .ml-nx {
    margin-left: -2.7vw;
  }
}
@media (min-width: 1920px) {
  .ml-nx {
    margin-left: -14.7vw;
  }
}
.mr-nx {
  margin-right: -1rem;
}
@media (min-width: 1200px) {
  .mr-nx {
    margin-right: -2.7vw;
  }
}
@media (min-width: 1920px) {
  .mr-nx {
    margin-right: -14.7vw;
  }
}

/*---------- お役立ちコラム ----------*/
.p-top-column .swiper-pagination-bullet {
  width: 12px !important;
  height: 12px !important;
  margin: 0 0 0 10px !important;
  background-color: var(--color-02);
  opacity: 1;
}
.p-top-column .swiper-pagination-bullet-active {
  background-color: var(--color-accent-02);
}
.p-top-column .swiper-button-prev,
.p-top-column .swiper-button-next {
  width: 2.5em;
  height: 2.5em;
  border: 1px solid var(--color-accent-01);
  background-color: var(--white);
  transition: all 0.3s ease-in-out;
}
.p-top-column .swiper-button-prev::after,
.p-top-column .swiper-button-next::after {
  color: var(--color-accent-01);
}
.p-top-column .swiper-button-prev:hover,
.p-top-column .swiper-button-next:hover {
  background-color: var(--color-accent-01);
}
.p-top-column .swiper-button-prev:hover::after,
.p-top-column .swiper-button-next:hover::after {
  color: var(--white);
}

/* ==================================
  全体レイアウト
===================================== */
@media (min-width: 992px) {
  #wrapper,
  .form_area_wrap {
    display: grid;
    /* grid-template-columns: 15rem calc(100vw - 15rem); */
    grid-template-columns: 20rem calc(100vw - 20rem);
    grid-template-rows: auto auto auto;
    /* grid-auto-columns: 1fr; */
    /* grid-auto-rows: auto; */
    /* gap: 0px 1em; */
    /* grid-auto-flow: row; */
    grid-template-areas:
      "header locator"
      "header main"
      "header footer";
    width: 100vw;
  }

  .p-header {
    grid-area: header;
  }
  #locator {
    grid-area: locator;
  }
  #dcms_layoutPageBlockPasteArea {
    grid-area: main;
  }
  .p-footer {
    grid-area: footer;
  }
}

/* ==================================
  ヘッダー
===================================== */
.p-header nav {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1030;
}
@media (min-width: 992px) {
  .p-header nav {
    position: sticky;
    top: 0;
    z-index: 1020;
  }
  .p-header .bs_header-01 .navbar-brand img {
    height: 5rem;
  }
  .p-header .navbar-nav {
    width: 19rem;
  }
}

/*---------- SP時開閉ボタン ----------*/
.c-btn-accordion {
  top: 0;
  right: 0;
  height: 2.5em;
  width: 2.5em;
  background-color: transparent;
  border: none;
}
.c-accordion-icon {
  display: block;
  width: 100%;
  height: 100%;
}
.c-accordion-icon::before,
.c-accordion-icon::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: 50%;
  transform: translate(50%, -50%);
  background-color: var(--color-accent-01);
  transition: all 0.3s ease-in-out;
}
.c-accordion-icon::before {
  width: 1em;
  height: 2px;
}
.c-accordion-icon::after {
  width: 2px;
  height: 1em;
}
.c-accordion-icon.is-active::after {
  opacity: 0;
}

.c-megamenu {
  display: none;
  width: 100%;
}
.c-megamenu-4th {
  display: none;
}
.c-megamenu-3rd {
  flex-grow: 1;
}
@media (min-width: 992px) {
  .c-has-megamenu:hover > .c-megamenu {
    display: block;
    position: absolute;
    top: 0;
    left: 19rem;
    right: 0;
    height: 80svh;
    overflow-y: auto;
    width: calc(100vw - 20rem);
    /* background-color: var(--color-accent-01); */
    background-image: linear-gradient(90deg, transparent 1rem, var(--color-accent-01) 1rem);
    color: var(--white);
  }
  .c-has-megamenu-4th:first-child > .c-megamenu-4th {
    display: flex;
  }
  .c-has-megamenu-4th > .c-megamenu-4th {
    display: none;
  }
  .c-has-megamenu-4th:hover > .c-megamenu-4th {
    display: flex;
  }
  li:has(.c-has-megamenu-4th:not(:first-child):hover) .c-has-megamenu-4th:first-child > .c-megamenu-4th {
    display: none;
  }
  .c-megamenu-3rd {
    display: block;
    flex-grow: 0;
    width: 40%;
  }
  .p-header .nav-link .c-megamenu-3rd {
    color: var(--white);
  }
  .p-header .nav-link .c-megamenu-3rd:hover {
    color: var(--color-accent-03);
  }
  .c-megamenu-4th {
    width: 60%;
    position: absolute;
    top: 0;
    right: 0;
  }
  .c-has-megamenu-4th {
    display: contents !important;
  }
  .p-header .nav-link .c-has-megamenu-4th a {
    color: var(--white);
    text-decoration: none;
  }
  .p-header .nav-link .c-has-megamenu-4th:first-child > a {
    color: var(--color-accent-03);
    /* text-decoration: underline; */
  }
  .p-header .nav-link .c-has-megamenu-4th:has(~ .c-has-megamenu-4th:hover) a {
    color: var(--white);
  }
  .p-header .nav-link .c-has-megamenu-4th a:hover {
    color: var(--color-accent-03);
  }
  .p-header .nav-link .c-has-megamenu-4th a:hover {
    color: var(--color-accent-03);
  }

  .c-has-megamenu a {
    padding-block: 0.75rem;
  }

  body:has(.c-has-megamenu:hover) {
    overflow: hidden;
  }
  body:has(.c-has-megamenu:hover) .bs_header-spacer {
    position: fixed;
    inset: 0;
    left: 20rem;
    height: 100%;
    background-color: var(--color-03);
    opacity: 0.5;
    z-index: 1000;
  }
}
@media (min-width: 1200px) {
  .c-megamenu-3rd {
    width: 20%;
  }
  .c-megamenu-4th {
    width: 80%;
  }
}

.p-header .nav-link:first-child {
  border-top: 1px solid var(--color-02);
}
.p-header .nav-link {
  padding-inline: 1rem;
  border-bottom: 1px solid var(--color-02);
  min-height: 3rem;
}
.p-header .nav-link a {
  color: var(--color-03);
}
.p-header .nav-link a:hover {
  color: var(--color-accent-01);
}

.p-header #navbar-01 {
  max-height: 90svh;
  overflow-y: auto;
}

/* ==================================
  フッター
===================================== */
/*---------- メニュー ----------*/
.l-footer-link {
  display: grid;
  grid-auto-flow: row;
  grid-template-columns: repeat(2, auto);
  grid-auto-columns: auto;
}
@media (min-width: 768px) {
  .l-footer-link {
    grid-template-columns: repeat(4, auto);
  }
}

/*---------- フッター ----------*/
.l-footer-link .c-footer-list ul {
  list-style-type: "-";
  color: var(--color-01);
}
.l-footer-link .c-footer-list ul a {
  padding-inline: 0.5rem;
  padding-block: 0.25rem;
  color: var(--color-01);
}
.l-footer-link .c-footer-list a {
  color: var(--white);
}
.l-footer-link .c-footer-list a:hover {
  /* text-decoration: none; */
  color: var(--color-02);
}
.l-footer-link .c-footer-list ul a:hover {
  /* text-decoration: none; */
  /* color: var(--white); */
}

/* ==================================
  下層オリ（シーレックスの強み）
===================================== */
/*---------- 見出し ----------*/
.c-h-strengths-en {
  font-size: clamp(3.125rem, calc(2.272727272727273rem + 3.6363636363636362vw), 5rem);
}
.c-h-strengths-jp {
  font-size: clamp(1rem, calc(0.8863636363636364rem + 0.48484848484848486vw), 1.25rem);
  display: flex;
  align-items: center;
  column-gap: 1em;
}
.c-h-strengths-jp::before {
  content: "";
  display: inline-block;
  width: min(15%, 5em);
  height: 1px;
  background-color: currentColor;
}
.c-h-strengths-jp.--no-line::before {
  content: unset;
}

/*---------- MV 円形テキスト ----------*/
@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.c-ap-img {
  -webkit-animation: rotate 50s linear infinite;
  animation: rotate 50s linear infinite;
  bottom: 0;
  right: -15%;
  z-index: 10;
  max-width: 30rem;
  speak: none;
  pointer-events: none;
}

/*---------- ループテキスト ----------*/
.p-loop-text {
  width: 100vw;
  overflow: hidden;
}
.p-loop-text .p-loop-box {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-loop-text .c-loop-item {
  padding: 0;
  padding-right: min(15%, 5rem);
  margin: 0;
}
.p-loop-text .c-loop-item::before {
  content: unset;
}
.p-loop-text .c-loop-text {
  display: inline-block;
  white-space: nowrap;
  min-width: 100vw;
  margin-bottom: 0;
}
@media (min-width: 992px) {
  .p-loop-text {
    width: calc(100vw - 20rem);
  }
  .p-loop-text .c-loop-text {
    min-width: calc(100vw - 20rem);
  }
}

@keyframes loop {
  0% {
    transform: translateX(100%);
  }
  to {
    transform: translateX(-100%);
  }
}
@keyframes loop2 {
  0% {
    transform: translateX(0);
  }
  to {
    transform: translateX(-200%);
  }
}
.p-loop-text .c-loop-item:first-child {
  -webkit-animation: loop 50s -25s linear infinite;
  animation: loop 50s -25s linear infinite;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: transform;
}
.p-loop-text .c-loop-item + .c-loop-item {
  -webkit-animation: loop2 50s linear infinite;
  animation: loop2 50s linear infinite;
}
