@charset "UTF-8";

/* ==========================================================================
   NEXUS-Arc 統合CSS
   ブレークポイント: 1350px (PC: 1351px以上 / SP: 1350px以下)
   ========================================================================== */

/* --------------------------------------------------
   1. フォント読み込み
-------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@100;300;400;500;700;900&display=swap');

/* --------------------------------------------------
   2. CSS変数定義
-------------------------------------------------- */
:root {
  --font-main: "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  --color-text:       #333333;
  --color-navy:       #191970;
  --color-dark-navy:  rgb(5, 5, 52);
  --color-primary:    #2589d0;
  --color-border:     #e0e0e0;
  --color-bg-light:   #f2f2f2;
}

/* ==========================================================================
   PC・共通スタイル（デフォルト）
   ========================================================================== */

/* --------------------------------------------------
   3. ベース
-------------------------------------------------- */
html {
  overflow-x: hidden;
  max-width: 100%;
}

body {
  height: 100%;
  min-height: 100%;
  width: min(100%, 100vw);
  font-size: 1.0em;
  font-weight: 500;
  line-height: 1.6em;
  font-family: var(--font-main);
  letter-spacing: 0.05em;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

.container {
  position: absolute;
  top: 0;
  left: 0;
  width: calc(100vw - 17px);
  height: auto;
  padding: 0;
  margin: 0 auto;
}

/* --------------------------------------------------
   4. ヘッダー
-------------------------------------------------- */
.header {
  position: fixed;
  top: 0;
  left: 0;
  height: 100px;
  width: max(100%, 100vw);
  background-color: rgba(255, 255, 255, 0.8);
  z-index: 100;
}

.logospace {
  position: relative;
  top: 10px;
  left: 10px;
  width: min(20%, 20vw);
  height: auto;
}

.logospace img {
  width: 200px;
  height: auto;
}

/* --------------------------------------------------
   5. PCナビゲーション (.cp_navi06)
-------------------------------------------------- */
.cp_navi06 {
  color: #171616;
  display: block;
  overflow: hidden;
  margin: 0 auto;
  position: fixed;
  top: 50px;
  right: 10px;
  width: auto;
  max-width: 98vw;
  line-height: 0;
  height: auto;
  z-index: 200;
  font-size: 0.8em;
}

.cp_navi06 ul {
  display: flex;
  margin: 0;
  padding: 0;
}

.cp_navi06 ul li {
  list-style-type: none;
  transition: background-color 0.3s;
}

.cp_navi06 ul li a {
  color: #4d4b4b;
  display: block;
  line-height: 56px;
  padding: 0 10px;
  text-decoration: none;
}

.cp_navi06 ul li a.caret {
  display: flex;
  align-items: center;
}

.cp_navi06 ul li a.caret::after {
  content: '';
  background: #aaaaaa;
  width: 10px;
  height: 5px;
  margin-left: 5px;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  transition: background 0.1s linear;
}

.cp_navi06 ul li:hover {
  background-color: rgb(37, 2, 120);
}

.cp_navi06 ul li:hover a {
  color: #ffffff;
}

.cp_navi06 ul li:hover a.caret::after {
  background: #ffffff;
}

/* ドロップダウン */
.cp_navi06 ul li ul {
  background-color: rgb(37, 2, 120);
  border-radius: 0 0 4px 4px;
  box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.055);
  display: none;
  margin: 0;
  opacity: 0;
  position: fixed;
  width: auto;
  max-width: 350px;
  visibility: hidden;
  transition: opacity 0.3s;
}

.cp_navi06 ul li:hover ul {
  display: block;
  opacity: 1;
  visibility: visible;
}

.cp_navi06 ul li ul li {
  border-radius: 0 0 4px 4px;
}

.cp_navi06 ul li ul li a {
  color: #ffffff;
}

.cp_navi06 ul li ul li:hover a {
  background-color: rgba(255, 255, 255, 0.1);
}

/* --------------------------------------------------
   6. ヒーロー動画
-------------------------------------------------- */
.pvvideo {
  position: relative;
}

.video-box {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100vh;
}

.video {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  transform: translate(-50%, -50%);
}

.overlay::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  content: "";
  background: rgba(0, 0, 0, 0.2);
}

.text-box {
  position: absolute;
  top: 90vh;
  left: 50%;
  width: 100%;
  transform: translate(-50%, -50%);
}

h1 {
  font-size: 2.0em;
  font-weight: bold;
  line-height: 2.0em;
  padding: 0 50px;
  text-align: center;
  color: #fff;
}

h1 span {
  font-size: 0.6em;
  font-weight: 400;
  line-height: 1.0em;
}

/* --------------------------------------------------
   7. セクションタイトル（共通）
   .top_title / .top_title_w / .top_title_50 を統合
-------------------------------------------------- */
.top_title,
.top_title_w,
.top_title_50 {
  text-align: left;
  margin: 0 auto;
}

.top_title    { padding: 100px 0 20px 0; }
.top_title_w  { padding:  50px 0 20px 0; }
.top_title_50 { padding:  50px 0 20px 0; }

.top_title h2,
.top_title_w h2,
.top_title_50 h2 {
  text-align: center;
  margin: 0 auto;
  font-size: 2.0em;
  font-weight: 800;
  line-height: 1.2em;
  border-bottom: solid 3px #cce4ff;
  position: relative;
  width: auto;
  max-width: 960px;
}

/* 色分け */
.top_title h2,
.top_title_50 h2 {
  color: var(--color-navy);
}

.top_title_w h2 {
  color: #fff;
}

.top_title h2 .cap,
.top_title_w h2 .cap,
.top_title_50 h2 .cap {
  font-size: 0.6em;
  font-weight: 300;
}

.top_title h2::after,
.top_title_w h2::after,
.top_title_50 h2::after {
  position: absolute;
  content: " ";
  display: block;
  border-bottom: solid 3px #5472cd;
  bottom: -3px;
  width: 20%;
}

/* ページタイトルバー（固定ページ用） */
.h1_title01 {
  font-weight: bold;
  padding: 0.5em 1em;
  background-color: #4c9ac0;
  color: #fff;
  overflow: hidden;
  position: relative;
}

.h1_title01::after {
  content: '';
  background-color: #fff;
  opacity: 0.3;
  transform: rotate(-65deg);
  position: absolute;
  bottom: -250px;
  right: -250px;
  width: 300px;
  height: 500px;
}

/* --------------------------------------------------
   8. 新着情報
-------------------------------------------------- */
.newtopic {
  width: min(960px, 100vw);
  margin: 0 auto;
  height: auto;
}

.news {
  width: min(960px, 100vw);
  margin: 0 auto;
  font-weight: 600;
  text-align: left;
  padding: 0 0 50px 0;
}

/* タブUI */
.tab-3 {
  display: flex;
  flex-wrap: wrap;
  max-width: 960px;
  font-size: 0.8em;
}

.tab-3 > label {
  flex: 1 1;
  order: -1;
  min-width: 100px;
  padding: 0.7em 1em 0.5em;
  background-color: var(--color-bg-light);
  color: #404040;
  font-weight: 600;
  font-size: 0.9em;
  text-align: center;
  cursor: pointer;
}

.tab-3 > label:hover {
  opacity: 0.8;
}

.tab-3 input {
  display: none;
}

.tab-3 > div {
  display: none;
  width: 100%;
  padding: 1.5em 1em;
  background-color: #fff;
}

.tab-3 label:has(:checked) {
  border-bottom: 4px solid var(--color-primary);
  color: var(--color-primary);
}

.tab-3 label:has(:checked) + div {
  display: block;
}

/* ニュース行 */
.news_whole {
  display: flex;
  border-bottom: 1.5px solid var(--color-border);
  font-weight: 300;
  align-items: center;
}

.news_ymd {
  width: 15%;
  border: none;
  margin: 12px 4px;
  text-align: left;
  font-weight: 500;
}

.news_cat {
  width: 20%;
  border: none;
  margin: 12px 4px;
  color: #fff;
  text-align: left;
}

.news_cat .squ {
  background-color: var(--color-navy);
  border-radius: 3px;
  font-size: 0.9em;
  padding: 6px 12px;
}

.news_cat span {
  color: #fff;
  font-weight: 400;
  text-decoration: none;
  background-color: var(--color-dark-navy);
  border-radius: 4px;
  padding: 4px 12px;
}

.news_title {
  width: 65%;
  border: none;
  margin: 12px 4px;
  text-align: left;
}

.news_title a {
  font-weight: 600;
  font-size: 1.2em;
  color: var(--color-text);
  text-decoration: none;
}

.news_b {
  margin: 20px auto 0;
}

.news_b a {
  text-decoration: none;
}

.post-categories li a {
  color: #fff;
  font-weight: 400;
  text-decoration: none;
  background-color: var(--color-dark-navy);
  border-radius: 4px;
  padding: 4px 12px;
}

/* ボタン */
.button-51 {
  display: flex;
  justify-content: center;
  position: relative;
  min-width: 500px;
  margin: 0 auto;
  padding: 0.9em 2em;
  border: none;
  border-bottom: 2px solid #e6edf3;
  background-color: #e0e0e0;
  color: var(--color-text);
  font-weight: 600;
  font-size: 1em;
  cursor: pointer;
}

.button-51::after {
  position: absolute;
  bottom: -3px;
  left: 0;
  transform: scaleX(0);
  transform-origin: center left;
  width: 100%;
  height: 2px;
  background-color: var(--color-primary);
  content: '';
  transition: transform 0.3s ease;
}

.button-51:hover::after {
  transform: scaleX(1);
}

/* --------------------------------------------------
   9. コンテンツ背景・スマートスライダー
-------------------------------------------------- */
.contents {
  width: 100vw;
  margin: 0 auto;
  background-color: var(--color-dark-navy);
  padding: 0 0 50px 0;
}

.smartslider {
  width: 100vw;
  margin: 0 auto;
  background-color: var(--color-dark-navy);
  padding: 0;
}

/* --------------------------------------------------
   10. コンテンツメニュー (.c_menu)
-------------------------------------------------- */
.c_menu {
  width: min(960px, 100%);
  border: none;
  margin: 0 auto;
}

.c_menu h3 {
  font-size: 1.8em;
  font-weight: 600;
  line-height: 1.8em;
}

.c_menu span {
  font-size: 1.2em;
  line-height: 1.8em;
}

.c_menu img {
  width: 100%;
  height: auto;
  margin-top: 50px;
}

.c_menu ul {
  display: flex;
  gap: 2%;
  margin: 0 auto;
}

.c_menu ul li {
  width: 33%;
  position: relative;
}

.c_menu ul li img {
  width: 100%;
  height: auto;
}

.c_menu ul li p {
  text-align: center;
  font-size: 1.4em;
  font-weight: 500;
  margin-top: 12px;
  position: absolute;
  color: var(--color-navy);
  bottom: 12px;
  left: 0;
  right: 0;
}

/* --------------------------------------------------
   11. タイルメニュー
-------------------------------------------------- */
.tile-menu .tile-container {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 10px;
  max-width: 960px;
  margin: 50px auto 0;
  padding: 10px;
  box-sizing: border-box;
}

/* 768px以上：3列 */
@media (min-width: 768px) {
  .tile-menu .tile-container {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

/* 960px以上：4列 */
@media (min-width: 960px) {
  .tile-menu .tile-container {
    grid-template-columns: repeat(4, 1fr) !important;
    padding: 10px 0;
  }
}

/* タイル1枚 */
.tile-item2 {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  aspect-ratio: 1 / 1;
  width: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  background-color: #f4f4f4;
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 8px;
  box-sizing: border-box;
  text-decoration: none;
  color: var(--color-text);
  transition: background-color 0.3s, transform 0.2s;
}

.tile-item2:hover {
  background-color: #e0e0e0;
  transform: translateY(-3px);
}

.tile-icon2 {
  margin-bottom: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tile-icon2 img {
  max-width: 50px;
  height: auto;
  display: block;
}

.tile-text2 {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  font-weight: 500;
  font-size: clamp(0.75rem, 2.5vw, 0.95rem) !important;
  line-height: 1.2 !important;
  word-break: break-all;
  overflow-wrap: break-word;
}

/* テキスト装飾リセット */
.tile-menu .tile-container a.tile-item2,
.tile-menu .tile-container a.tile-item2 span,
.tile-menu .tile-container a.tile-item2 .tile-text2 {
  text-decoration: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
  color: #333 !important;
}

.tile-menu .tile-container a.tile-item2:hover,
.tile-menu .tile-container a.tile-item2:hover span,
.tile-menu .tile-container a.tile-item2:hover .tile-text2 {
  text-decoration: none !important;
  color: #000 !important;
}

.tile-menu .tile-container a.tile-item2:visited .tile-text2 {
  color: #333 !important;
}

/* コードスニペット用タイル（.tile-item） */
.tile-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  background-color: #f4f4f4;
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 8px;
  box-sizing: border-box;
  text-decoration: none;
  color: #333;
  transition: background-color 0.3s, transform 0.2s;
}

.tile-item:hover {
  background-color: #e0e0e0;
  transform: translateY(-3px);
}

.tile-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 5px;
}

.tile-icon img {
  max-width: 50px;
  height: auto;
  display: block;
}

.tile-text {
  display: block;
  width: 100%;
  text-align: center;
  font-weight: 500;
  font-size: clamp(0.75rem, 2.5vw, 0.95rem);
  line-height: 1.2;
  word-break: break-all;
  overflow-wrap: break-word;
  color: #333;
}

.tile-menu .tile-container a.tile-item,
.tile-menu .tile-container a.tile-item span,
.tile-menu .tile-container a.tile-item .tile-text {
  text-decoration: none;
  color: #333;
}

.tile-menu .tile-container a.tile-item:hover .tile-text {
  color: #000;
}

/* --------------------------------------------------
   12. ABOUT US
-------------------------------------------------- */
.aboutus {
  width: 100vw;
  margin: 0 auto;
}

.aboutus45550 {
  display: flex;
}

.aboutus45 {
  width: 45%;
  border: none;
  padding-top: 50px;
}

.aboutus45 span {
  font-size: 1.2em;
}

.aboutus5 {
  width: 5%;
  border: none;
}

.aboutus50 {
  width: 50%;
  border: none;
}

/* --------------------------------------------------
   13. 他社リンク
-------------------------------------------------- */
.links {
  width: 100vw;
  margin: 0 auto;
}

.link_tasha {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
}

.link_tasha img {
  width: auto;
  max-height: 50px;
}

/* --------------------------------------------------
   14. デジタルカタログ
-------------------------------------------------- */
.card-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin: 0 auto;
}

.card-list a {
  text-decoration: none;
}

.card-list a span {
  text-decoration: none;
  color: #666;
}

.card {
  background: #f5f5f5;
  padding: 20px;
  border-radius: 8px;
  text-align: center;
  font-weight: 600;
  margin-top: 20px;
}

.card img {
  width: 100%;
}

.card02 {
  background: #f5f5f5;
  padding: 20px;
  border-radius: 8px;
  text-align: left;
  font-weight: 400;
  margin-top: 50px;
}

.card02 img {
  width: 100%;
}

.card02 span {
  font-weight: 600;
  color: #4682b4;
}

@media (max-width: 960px) {
  .card-list {
    grid-template-columns: 1fr;
    margin: 0 10px;
  }
}

/* --------------------------------------------------
   15. フッター
-------------------------------------------------- */
.hr_design {
  width: min(100%, 100vw);
  margin: 100px 0 30px 0;
  border: 0;
  height: 1px;
  background-image: linear-gradient(
    to right,
    rgba(0, 0, 0, 0),
    rgba(0, 0, 0, 0.75),
    rgba(0, 0, 0, 0)
  );
}

.c_tab {
  width: 960px;
  margin: 0 auto;
  text-align: center;
}

.c_tab00 {
  display: flex;
  justify-content: center;
}

.c_tab01 {
  width: 40%;
}

.c_tab01 img {
  width: min(250px, 15vw);
  height: auto;
}

.c_tab02 {
  width: 60%;
  text-align: left;
}

footer {
  margin: 50px auto 0;
  text-align: center;
  width: min(100vw, 100%);
}

.foot02 {
  background-color: var(--color-dark-navy);
}

.foot_logo {
  display: block;
}

.footer_right {
  margin: 0 auto;
  font-size: 0.7em;
  color: #fff;
  padding: 5px;
}

.foot_cat {
  width: min(960px, 100%);
  display: flex;
  border: none;
  margin: 50px auto;
}

.foot_cat .category {
  width: 23%;
  margin: 0 1%;
  text-align: left;
}

.foot_cat .category ul {
  display: block;
  margin: 10px 0 24px 0;
}

.foot_cat .category ul li {
  font-size: 0.8em;
  line-height: 1.6em;
}

.cat_title {
  font-size: 1.0em;
  color: var(--color-navy);
  font-weight: 700;
}

.category ul li a {
  color: var(--color-text);
  font-weight: 500;
  text-decoration: none;
}

.second {
  margin: 0 0 0 10px;
}

.second ol {
  margin: unset;
  display: block;
  list-style-type: square;
  font-size: unset;
}

.second ol li {
  list-style: none;
  padding-left: 10px;
  margin: 0;
}

.second_cat {
  font-size: 1.0em;
}

/* --------------------------------------------------
   16. PC時：SP専用要素を非表示
-------------------------------------------------- */
.sp_menu_shade { display: none; }
.sp_menu       { display: none; }
.sp_toiawase   { display: none; }

/* --------------------------------------------------
   17. ぱんくずリスト
-------------------------------------------------- */
.pan_area {
  margin: 100px auto 0;
  width: min(100%, 100vw);
  line-height: 2.0em;
  padding: 2px 0;
  background-color: var(--color-dark-navy);
  position: sticky;
  display: flex;
  align-items: center;
  z-index: 10;
}

.pan {
  width: min(960px, 100vw);
  margin: 0 auto;
  font-size: 0.8em;
  color: #fff;
}

.breadcrumbs .home,
.breadcrumbs .post,
.breadcrumbs span,
.breadcrumbs a {
  color: #fff;
  text-decoration: none;
}

/* --------------------------------------------------
   18. 固定ページ
-------------------------------------------------- */
.main_zone01 {
  padding: 0;
  width: min(100%, 100vw);
}

.main_title01 {
  width: min(960px, 100vw);
  margin: 50px auto 0;
}

.main_day {
  width: min(960px, 100vw);
  margin: 20px auto;
}

.main_title02 {
  width: min(960px, 100vw);
  margin: 50px auto 0;
}

.main_title02 h2 {
  text-align: center;
  margin: 50px auto 0;
  color: var(--color-navy);
  font-size: 2.0em;
  font-weight: 800;
  line-height: 1.2em;
  border-bottom: solid 3px #cce4ff;
  position: relative;
  width: auto;
  max-width: 960px;
}

.main_title02 h2 .cap {
  font-size: 0.6em;
  font-weight: 300;
}

.main_title02 h2::after {
  position: absolute;
  content: " ";
  display: block;
  border-bottom: solid 3px #5472cd;
  bottom: -3px;
  width: 20%;
}

.main_title02 h3 {
  margin: 1.4em 0 0.8em;
  font-size: 1.6em;
  line-height: 2.0em;
}

.main_title02 h4 {
  display: inline-block;
  border: 1px solid #666;
  padding: 6px 20px;
  font-size: 1.2em;
  font-weight: 500;
}

.main_title02 h5 {
  margin: 1.4em 0 0;
  font-size: 1.6em;
  line-height: 2.0em;
}

.main_title02 p {
  margin: 20px 0;
  font-size: 1.1em;
  line-height: 1.8em;
}

.main_title02 ol {
  margin: 20px 0 20px 30px;
  font-size: 1.2em;
  line-height: 2.0em;
  list-style-type: decimal;
}

.main_title03 {
  width: min(100%, 100vw);
  margin: 0 auto;
  height: 50px;
  background-color: aqua;
  z-index: -10;
}

.main_title04 {
  width: min(960px, 100vw);
  margin: 50px auto 0;
}

/* --------------------------------------------------
   19. WPブロック
-------------------------------------------------- */
.wp-block-table {
  margin: 30px 0 0;
  width: min(100%, 960px);
  height: 100%;
}

.wp-block-table td {
  padding: 4px;
  border: 1px solid #666;
  font-size: 1.2em;
  line-height: 2.0em;
}

.wp-block-flexible-table-block-table {
  margin-top: 40px;
}

.wp-block-image img {
  margin-top: 0;
}

.wp-block-buttons {
  margin-top: 20px;
}

.wp-block-media-text__media img {
  border: 1px solid #666;
  margin-top: 0;
}

.wp-block-media-text__content h5 {
  margin: 0;
  font-size: 1.4em;
  line-height: 1.8em;
}

.wp-block-media-text__content h6 {
  margin: 1.2em 0 0;
  font-size: 1.4em;
  line-height: 1.8em;
}

.wp-block-media-text__content p {
  margin: 0;
  font-size: 1.0em;
  line-height: 1.6em;
}

.wp-block-video video {
  margin-top: 30px;
}

.wp-block-media-text p {
  line-height: 1.8em;
  margin: 0;
}

.wp-block-media-text h3 {
  margin-top: 0;
}

.wp-block-list {
  margin-top: 0;
}

.wp-block-list li {
  font-size: 1.0em;
  line-height: 2.0em;
  list-style-type: square;
  margin-left: 20px;
}

.gmap {
  border: 0;
  width: 960px;
  height: 500px;
}

/* --------------------------------------------------
   20. 会社沿革タイムライン
-------------------------------------------------- */
.timeline {
  margin-top: 50px;
  list-style: none;
  width: min(960px, 100vw);
}

.timeline > li {
  margin: 0;
  position: relative;
  display: flex;
  align-items: baseline;
  padding: 16px 0;
}

/* 縦棒（li全体の高さで引く） */
.timeline > li::after {
  content: "";
  position: absolute;
  left: 111px;
  top: 0;
  bottom: 0;
  width: 3px;
  background-color: #e5e5d1;
}

/* 最初のliは●の中央から下のみ */
.timeline > li:first-child::after {
  top: 50%;
}

/* 最後のliは上から●の中央まで */
.timeline > li:last-child::after {
  bottom: 50%;
}

.timeline-date {
  width: 110px;
  flex-shrink: 0;
}

.timeline-content {
  flex: 1;
  padding-left: 30px;
}

.timeline-content::before {
  content: "";
  width: 12px;
  height: 12px;
  background: #6fc173;
  position: absolute;
  left: 106px;
  top: 50%;
  transform: translateY(-50%);
  border-radius: 100%;
  z-index: 1;
}

.timeline-content h3 {
  font-size: 1.2em;
  font-weight: 400;
  margin-top: 0;
}

.timeline h3 {
  margin-top: 0;
}

/* --------------------------------------------------
   21. ステップリスト
-------------------------------------------------- */
.steps {
  list-style: none;
  counter-reset: my-counter;
}

.steps > li {
  margin: 2em 0 0 4.5em;
  position: relative;
  display: block;
}

.steps > li::before {
  content: counter(my-counter);
  counter-increment: my-counter;
  color: #fff;
  text-align: center;
  width: 1em;
  height: 1em;
  margin: 0 0 0 -4.5em;
  padding: 1em;
  background: #333;
  border-radius: 50%;
  position: absolute;
  display: block;
  float: left;
}

.steps > li > h4 {
  margin: 0;
  font-size: 1.6em;
  border: none;
}

.steps > li > p {
  margin: 10px 0;
  font-size: 1.0em;
  color: #666;
}

/* --------------------------------------------------
   22. 学会スケジュール
-------------------------------------------------- */
.conference-schedule {
  margin-top: 50px;
}

.conference-schedule .news_whole {
  font-size: 0.8em;
}

/* --------------------------------------------------
   23. サイト内検索
-------------------------------------------------- */
/* PC: 検索窓を直接表示 */
.searchbox {
  position: fixed;
  z-index: 99999;
  right: 270px;
  top: 12px;
}

/* PC: SP用モーダル検索は非表示 */
.searchbox_sp {
  display: none;
}

#searchform {
  position: relative;
}

#s-box {
  height: 30px;
  padding: 0 10px;
  position: absolute;
  left: 0;
  top: 0;
  border-radius: 2px;
  border: solid 3px #eaeaea;
  outline: 0;
  width: 233px;
  opacity: 0.8;
}

#s-btn-area {
  height: 40px;
  position: absolute;
  left: 250px;
  background: none;
  color: #666;
  border: none;
  font-size: 1.2em;
  outline: 0;
}

#s-btn {
  background-color: black;
  width: 50px;
  height: 30px;
  position: relative;
  right: 50px;
  bottom: 2px;
  border-radius: 3px;
  font-size: 16px;
  color: #fff;
  line-height: 31px;
}

/* --------------------------------------------------
   24. ニュースティッカー
-------------------------------------------------- */
.newsticker {
  position: fixed;
  z-index: 99999;
  right: 370px;
  top: 12px;
}
.newsticker_sp { display: none; }

/* --------------------------------------------------
   25. モーダル（画像拡大）
-------------------------------------------------- */
.modal {
  display: none;
  position: fixed;
  z-index: 100000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
}

.modal-content {
  margin: auto;
  display: block;
  max-width: 90%;
  max-height: 90%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.close {
  position: absolute;
  top: 20px;
  right: 35px;
  color: #fff;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
}

.modal-container {
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100vw;
  height: 100vh;
  text-align: center;
}

/* --------------------------------------------------
   26. 医療従事者確認ゲート
-------------------------------------------------- */
#medical-gate {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  z-index: 99999999;
  align-items: center;
  justify-content: center;
}

.modalw {
  background: #fff;
  padding: 30px;
  width: min(500px, 90vw);
  text-align: center;
  border-radius: 8px;
  font-size: 1.0em;
}

.modalw h3 {
  font-size: 1.4em;
  line-height: 2.2em;
}

.modalw p {
  font-size: 0.9em;
  line-height: 1.6em;
}

#gate-yes {
  display: block;
  width: 80%;
  margin: 16px auto 8px;
  padding: 12px 30px;
  cursor: pointer;
  background: #0073aa;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-size: 1.0em;
}

#gate-no {
  display: block;
  width: 80%;
  margin: 0 auto 8px;
  padding: 12px 30px;
  cursor: pointer;
  background: #ccc;
  border: none;
  border-radius: 4px;
  font-size: 1.0em;
}

/* --------------------------------------------------
   27. 会員システム
-------------------------------------------------- */
#display_member_custom_bar {
  width: min(960px, 100%);
  font-size: 0.8em;
  line-height: 1.4em;
  margin: 0 auto;
  padding: 0 10px;
}

.user-toolbar {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  gap: 10px;
}

.toolbar01 { width: 100%; }
.toolbar02 { margin-right: 20px; }
.toolbar03 { margin-right: 1px; }

/* --------------------------------------------------
   27. お問い合わせフォーム
-------------------------------------------------- */
table.c_estimate {
  width: min(100%, 100vw);
  margin: 0 auto;
  border: 3px solid #e5e5e5;
}

table.c_estimate tr {
  border-top: 1px solid #e5e5e5;
}

.single .entry-content table.c_estimate,
.page   .entry-content table.c_estimate {
  display: table;
}

.c_estimate input,
.c_estimate textarea {
  border: 1px solid #d8d8d8;
}

.c_estimate ::placeholder {
  color: #797979;
}

@media screen and (min-width: 960px) {
  .c_estimate th {
    width: 30%;
    background-color: #ebedf5;
    text-align: left;
    padding-left: 10px;
    vertical-align: middle;
  }
}

@media screen and (max-width: 960px) {

  /* 新着情報: 960px以下でフル幅・折り返しレイアウト */
  .newtopic {
    width: 100%;
    height: auto;
    padding: 0;
  }

  .news {
    width: min(100%, 100vw);
    padding: 0 0 50px 0;
  }

  .tab-3 {
    width: min(100%, 100vw);
  }

  .news_whole {
    flex-wrap: wrap;
  }

  .news_ymd {
    width: 30%;
    margin: 12px 4px 4px;
  }

  .news_cat {
    width: 60%;
    margin: 12px 4px 4px;
  }

  .news_title {
    width: 100%;
    margin: 2px 4px 6px;
  }

  /* ABOUT US */
  .aboutus45550 {
    display: block;
    margin: 0 10px;
  }

  .aboutus45 {
    width: 100%;
    padding-top: 50px;
  }

  .aboutus45 span {
    font-size: 1.0em;
  }

  .aboutus5 {
    display: none;
  }

  .aboutus50 {
    width: 100%;
    border: none;
  }

  /* 他社リンク */
  .links {
    width: min(100%, 100vw);
    max-width: 100vw;
  }

  .link_tasha {
    display: block;
    justify-content: space-evenly;
    align-items: center;
    margin: 0 auto;
  }

  .link_tasha img {
    max-height: 30px;
  }

  /* フッター */
  .c_tab {
    width: 100vw;
    text-align: center;
  }

  .c_tab00 {
    display: block;
    margin: 0 10px;
  }

  .c_tab01 {
    width: 100%;
  }

  .c_tab01 img {
    width: min(250px, 50vw);
    height: auto;
  }

  .c_tab02 {
    width: 100%;
    text-align: left;
    font-size: 0.8em;
  }

  /* 固定ページ */
  .main_title02 {
    width: min(100%, 100vw);
  }

  table.c_estimate { width: 95%; }

  .c_estimate tr,
  .c_estimate td,
  .c_estimate th {
    display: block;
    width: 95%;
    line-height: 2.5em;
  }

  .c_estimate th {
    background-color: #ebedf5;
    width: 100%;
    text-align: left;
    padding-left: 10px;
  }
}

.wpcf7 input.wpcf7-submit {
  background-color: #f79034;
  border: 0;
  color: #fff;
  font-size: 1.2em;
  font-weight: bold;
  margin: 0 auto;
  padding: 4px 20px;
}

.submit_btn {
  text-align: center;
  margin-top: 20px;
}

.wpcf7-form-control-wrap .wpcf7-text {
  font-size: 1.0em;
  line-height: 2.0em;
  margin-left: 20px;
}

.wpcf7-form-control-wrap .wpcf7-textarea {
  font-size: 1.0em;
  line-height: 2.0em;
  margin-left: 20px;
  width: 90%;
}

.caution {
  margin: 4px 0 10px 20px;
  font-size: 0.8em;
  line-height: 1.4em;
  color: #ff4500;
}

.reqreq {
  font-size: 0.8em;
  padding: 5px;
  background: #f79034;
  color: #fff;
  border-radius: 3px;
  margin-right: 1em;
}

.unreq {
  font-size: 0.8em;
  padding: 5px;
  background: #bdbdbd;
  color: #fff;
  border-radius: 3px;
  margin-right: 1em;
}

.product-selection .wpcf7-list-item {
  display: block;
  margin-bottom: 25px;
}

.product-selection .wpcf7-list-item-label {
  display: flex !important;
  flex-direction: row;
  align-items: center;
  cursor: pointer;
  gap: 20px;
}

.product-selection input[type="checkbox"] {
  margin-right: 15px;
  flex-shrink: 0;
}

.product-selection img {
  width: 200px;
  height: auto;
  border: 1px solid #eee;
  display: inline-block;
  vertical-align: middle;
}

/* --------------------------------------------------
   28. その他
-------------------------------------------------- */
.brstyle {
  display: table;
  white-space: normal;
}

.products_item02 {
  margin-left: 0;
}

.products_whole {
  margin: 0 0 50px 0;
  width: 100%;
}

.products_pict_name {
  width: 100%;
  display: flex;
}

.products_pict {
  width: 50px;
  height: 50px;
}

.products_name {
  width: calc(100% - 50px);
  height: 50px;
  background-color: #87cefa;
  font-size: clamp(0.7em, 1.2em, 1.4em);
  padding-left: 10px;
  display: flex;
  justify-content: left;
  align-items: center;
}

.products_imgzone {
  width: 100%;
  display: flex;
  background-color: #d8e4ed;
}

.products_img {
  margin: 10px;
}

.products_infozone {
  width: 100%;
  height: auto;
  display: flex;
  background-color: #d8e4ed;
}

.products_info {
  margin: 0;
  padding: 0 10px;
  width: 100%;
  text-align: left;
  font-size: 0.8em;
  line-height: 1.2em;
}

.products_explanationzone {
  width: 100%;
  display: flex;
  background-color: #d8e4ed;
  line-height: 1.6em;
}

.products_explanation {
  margin: 10px;
  padding: 10px;
  border-radius: 6px;
  background-color: #fff;
  width: 100%;
  font-size: 0.8em;
  line-height: 1.8em;
}

.products_markzone {
  width: 100%;
  display: flex;
  background-color: #d8e4ed;
  line-height: 1.6em;
}

.products_mark {
  margin: 0 10px;
  padding: 10px;
  width: 100%;
  text-align: center;
}

.products_item01 {
  font-size: 0.8em;
  color: #fff;
  background-color: #6495ed;
  border-radius: 4px;
  padding: 4px 12px;
  margin-right: 6px;
  white-space: nowrap;
}

.products_item03 {
  background: #6c5ce7;
  color: white;
  border: none;
  padding: 6px 24px;
  font-size: 0.8em;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 500;
  box-shadow: 0 10px 30px rgba(108, 92, 231, 0.4);
  transition: all 0.3s ease;
}

/* --------------------------------------------------
   29. 電極・出力値ページ（カスタムHTMLブロック）
-------------------------------------------------- */
.electrode_all {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  margin-top: 50px;
}

.electrode_table {
  width: 94%;
  padding: 12px;
  border: 1px solid #ccc;
  display: block;
}

.electrode_table_01 { width: 100%; }
.electrode_table_01 h3 { margin-top: 0; }

.electrode_table_02 { width: 100%; text-align: center; }
.electrode_table_02 img { width: 90%; height: auto; }

.electrode_table_03 { width: 100%; font-size: 0.8em; }
.electrode_table_04 { width: 100%; }
.electrode_table_05 { width: 100%; font-size: 0.8em; }

.range_whole {
  width: 100%;
  display: flex;
}

.range_mode_space {
  width: 30%;
  justify-content: center;
  align-items: center;
}

.range_mode {
  width: 90%;
  height: 90%;
  background-color: #ffff00;
  border-radius: 20px;
  font-size: 1.2em;
  display: flex;
  justify-content: center;
  align-content: center;
  align-items: center;
  text-align: center;
}

.range_mode2 {
  width: 90%;
  height: 90%;
  background-color: #0000cd;
  border-radius: 20px;
  color: #fff;
  font-size: 1.2em;
  display: flex;
  justify-content: center;
  align-content: center;
  align-items: center;
  text-align: center;
}

.range_mode3 {
  width: 90%;
  height: 90%;
  background-color: #CC66FF;
  border-radius: 20px;
  color: #fff;
  font-size: 1.2em;
  display: flex;
  justify-content: center;
  align-content: center;
  align-items: center;
  text-align: center;
}

.range_range_space { width: 70%; }

.range_range_bar {
  width: 100%;
  display: block;
}

.range_range_bar01 {
  display: flex;
  width: 100%;
}

.range_range_bar01 input { width: 100%; }

.range_range_bar02 {
  display: flex;
  width: 100%;
}

.range_value_left  { width: 30%; text-align: left; }
.range_value_center { width: 40%; text-align: center; }
.range_value_right { width: 30%; text-align: right; }

.range_value_left span,
.range_value_center span,
.range_value_right span {
  color: #4169e1;
  font-size: 0.8em;
}

/* --------------------------------------------------
   30. 添付文書ページ（カスタムHTMLブロック）
-------------------------------------------------- */
.insert_whole {
  max-width: 100%;
  background-color: #F0F8FF;
  padding: 20px;
  margin: 20px 0;
  box-sizing: border-box;
}

.insert_1 {
  width: 100%;
  margin-bottom: 10px;
  font-size: 0.9rem;
}

.insert_1 span {
  color: #1E90FF;
  font-weight: bold;
}

.insert_2 {
  display: flex;
  background-color: #1E90FF;
  color: #fff;
}

.insert_3 {
  display: flex;
  background-color: #fff;
}

.insert_2 > div, .insert_3 > div {
  border: 1px solid #ccc;
  padding: 12px 10px;
  box-sizing: border-box;
}

.insert_2_1, .insert_3_1 { width: 15%; text-align: center; }
.insert_2_2 { width: 35%; text-align: center; }
.insert_3_2 { width: 35%; }
.insert_2_3 { width: 50%; text-align: center; }
.insert_3_3 { width: 50%; }

.insert_3_3 span {
  color: #1E90FF;
  margin-right: 12px;
  font-weight: bold;
}

/* SP用（640px以下） */
@media screen and (max-width: 640px) {
  .insert_2 {
    display: none;
  }

  .insert_3 {
    display: block;
    border: 1px solid #666;
    border-radius: 8px;
    overflow: hidden;
  }

  .insert_3_1, .insert_3_2, .insert_3_3 {
    width: 100% !important;
    text-align: left;
    border: none;
  }

  .insert_3_1::before { content: "リンク："; font-weight: bold; width: 80px; flex-shrink: 0; }
  .insert_3_2::before { content: "販売名："; font-weight: bold; width: 80px; flex-shrink: 0; }

  .insert_3_3 {
    display: block !important;
    border-bottom: none;
    padding: 12px 15px;
    line-height: 1.4;
  }

  .insert_3_3::before {
    content: "商品：";
    display: block;
    font-weight: bold;
    font-size: 0.9rem;
  }

  .insert_3_3 span {
    display: inline-block;
    margin-top: 4px;
    color: #1E90FF;
    font-weight: bold;
  }

  .insert_3_3 span::before {
    content: "\A";
    white-space: pre;
  }

  .insert_3_3 span:first-of-type {
    margin-top: 0;
  }
}

/* --------------------------------------------------
   29. アニメーション（animation.cssより統合）
-------------------------------------------------- */
.animate {
  opacity: 0;
}

.animate.show {
  opacity: 1;
  transform: none;
  transition: all 0.8s ease-out;
}

.fade-in        { transform: translateY(30px); }
.slide-in-left  { transform: translateX(-50px); }
.slide-in-right { transform: translateX(50px); }
.zoom-in        { transform: scale(0.8); }

/* --------------------------------------------------
   30. ハンバーガーメニュー
   ※ .sp_menu_shade が display:none の PC では非表示
   ※ SP で .sp_menu_shade が表示されたとき機能する
-------------------------------------------------- */
.menu-wrapper {
  position: relative;
}

#menu-toggle {
  display: none;
}

.menu-icon {
  width: 40px;
  height: 30px;
  position: fixed;
  top: 10px;
  right: 15px;
  cursor: pointer;
  display: inline-block;
  z-index: 500;
}

.menu-icon span {
  display: block;
  height: 4px;
  margin: 6px 0;
  background: #333;
  border-radius: 2px;
  transition: 0.4s;
}

/* X形変形 */
#menu-toggle:checked + .menu-icon span:nth-child(1) {
  transform: translateY(10px) rotate(45deg);
}

#menu-toggle:checked + .menu-icon span:nth-child(2) {
  opacity: 0;
}

#menu-toggle:checked + .menu-icon span:nth-child(3) {
  transform: translateY(-10px) rotate(-45deg);
}

/* オーバーレイ背景 */
.overlay_menu {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s;
  z-index: 1;
}

#menu-toggle:checked ~ .overlay_menu {
  opacity: 1;
  pointer-events: auto;
}

/* メニュー本体（右からスライド） */
.menu_over {
  position: fixed;
  top: 0;
  right: -350px;
  width: 350px;
  height: 100%;
  background: #fff;
  box-shadow: 2px 0 8px rgba(0, 0, 0, 0.2);
  transition: right 0.4s ease;
  z-index: 450;
  overflow-y: scroll;
}

#menu-toggle:checked ~ .menu_over {
  right: 0;
}

.menu_over ul {
  list-style: none;
  padding: 0 20px;
}

.menu_over li {
  margin: 20px 0;
}

.menu_over a {
  text-decoration: none;
  color: var(--color-text);
  font-size: 1.0rem;
  transition: color 0.3s;
}

.menu_over a:hover {
  color: #007bff;
}

.menu_over .sp_list_ul {
  padding-left: 0;
}

.menu_over_logo {
  width: 300px;
  margin: 0 auto;
  text-align: center;
}

/* ==========================================================================
   スマートフォン・タブレット対応 (max-width: 1350px)
   ========================================================================== */

@media screen and (max-width: 1350px) {

  /* ベース */
  body {
    font-weight: 500;
    width: min(100%, 100vw);
  }

  .container {
    width: min(100%, 100vw);
    max-width: 100vw;
  }

  /* ヘッダー */
  .header {
    height: 50px;
    width: min(100%, 100vw);
    max-width: 100vw;
  }

  .logospace {
    width: auto;
  }

  .logospace img {
    width: 136px;
    height: auto;
  }

  /* パンくずリスト：SPヘッダー高さ(50px)に合わせる */
  .pan_area {
    margin-top: 50px;
  }

  /* ニュースティッカー非表示 */
  .newsticker { display: none; }

  /* PCナビ非表示 */
  .menu {
    display: none;
  }

  /* 検索ボックス切り替え */
  .searchbox {
    display: none;
  }

  .searchbox_sp {
    display: flex;
    position: fixed;
    z-index: 99999;
    right: 70px;
    top: 10px;
  }

  /* SP検索モーダル内のフォーム：絶対配置を解除してインライン表示を維持 */
  #s-box {
    position: relative;
    height: 30px;
  }

  /* ヒーロー動画 */
  .pvvideo {
    position: relative;
    top: 50px;
  }

  .video-box {
    width: 100vw;
    height: auto;
  }

  .video {
    position: relative;
    top: 100px;
    left: 50%;
    max-width: 100vw;
    min-height: 100%;
  }

  .overlay::after {
    top: 108px;
    width: 100vw;
    height: auto;
  }

  .text-box {
    top: 180px;
    transform: translate(-50%, -50%);
  }

  h1 {
    font-size: 1.0em;
    line-height: 2.4em;
    padding: 0 10px;
  }

  h1 span {
    font-size: 0.6em;
    font-weight: 400;
    line-height: 0.6em;
  }

  /* セクションタイトル */
  .top_title    { padding: 100px 15px 20px; }
  .top_title_w  { padding:  50px 15px 20px; }
  .top_title_50 { padding:  10px 15px 20px; }

  .top_title h2,
  .top_title_w h2,
  .top_title_50 h2 {
    font-size: 1.2em;
    max-width: 100%;
  }

  /* 新着情報 */
  .newtopic {
    margin-top: 50px;
  }

  .news {
    font-weight: 400;
    text-align: left;
    margin: 0 auto;
  }

  .tab-3 {
    font-size: 0.7em;
  }

  .button-51 {
    min-width: 250px;
  }

  /* フッター */
  footer {
    margin: 50px auto 0;
    width: min(100vw, 100%);
  }

  .foot_cat {
    display: none;
  }

  /* SP専用エリアを表示 */
  .sp_menu_shade { display: flex; }

  .sp_menu {
    display: flex;
    width: 100vw;
    margin: 50px auto 0;
  }

  .sp_toiawase { display: flex; }

  /* SPメニューリスト */
  .sp_2 {
    text-align: left;
    width: 90%;
    display: inline-block;
    border: none;
    margin: 0 auto;
  }

  .sp_list {
    font-size: 1.0em;
    font-weight: bold;
    line-height: 2.0em;
    list-style-type: none;
  }

  .sp_list li {
    color: var(--color-text);
    font-weight: 600;
  }

  .sp_list li a {
    color: var(--color-text);
  }

  .sp_list_ul {
    font-size: 1.0em;
    font-weight: normal;
    line-height: 2.0em;
    list-style-type: none;
  }

  .sp_list_ul li {
    color: var(--color-text);
    margin-left: 16px;
    list-style-type: none;
  }

  .sp_list_ul li a {
    color: var(--color-text);
    margin-left: 16px;
  }

  /* SP固定問い合わせバー */
  .sp_survey {
    position: fixed;
    width: 100%;
    height: 70px;
    bottom: 0;
    z-index: 0;
    background-color: var(--color-dark-navy);
    border: none;
  }

  .survey00 {
    width: 100vw;
    height: 50px;
    display: flex;
    justify-content: space-around;
    align-items: center;
  }

  .survey01 {
    color: #fff;
    font-size: 0.7em;
    font-weight: 500;
    margin: 0;
  }

  .survey02 {
    border: none;
    margin: 0;
  }

  .survey02 img {
    width: 150px;
    height: auto;
  }

  .shameihenkou {
    position: fixed;
    width: 100%;
    height: 24px;
    bottom: 70px;
    font-size: 0.65em;
    font-weight: 600;
    z-index: 1;
    color: #fff;
    background-color: var(--color-primary);
    border: none;
    padding: 0 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    letter-spacing: 0.04em;
  }

  /* ぱんくず */
  .pan {
    padding: 0 10px;
  }

  /* 固定ページ */
  .main_zone01 {
    padding: 0 10px;
    width: min(100% - 20px, 100vw - 20px);
  }

  .main_title01 {
    width: 100%;
  }

  .main_title02 {
    margin: 50px auto 0;
  }

  .main_title02 h2 {
    font-size: 1.2em;
    line-height: 1.2em;
  }

  .main_title02 h3 {
    font-size: 1.2em;
    line-height: 1.2em;
  }

  .main_title02 p {
    font-size: 1.0em;
    line-height: 2.0em;
  }

  .main_title02 ol {
    margin: 20px 0 20px 30px;
    font-size: 1.0em;
    line-height: 2.0em;
  }

  .main_title03 {
    background-color: #fff;
  }

  .main_title04 {
    width: 100%;
  }

  .gmap {
    border: 0;
    width: min(100%, 100vw);
    height: auto;
  }

  /* 会員システム */
  #display_member_custom_bar {
    width: 100%;
    padding: 10px 14px;
    box-sizing: border-box;
    font-size: 0.75em;
    line-height: 1.4em;
    background: rgba(37, 137, 208, 0.07);
    border-left: 3px solid var(--color-primary);
  }

  .user-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 14px;
    width: 100%;
  }

  .toolbar01 {
    width: 100%;
    font-size: 1.1em;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 5px;
  }

  .toolbar02 { margin-right: 0; }
  .toolbar03 { margin-right: 0; }

  /* タイムライン */
  .timeline {
    width: min(960px, 100vw);
  }

  .timeline > li {
    display: block;
    margin-bottom: 30px;
    padding: 0;
  }

  .timeline > li::after {
    display: none;
  }

  .timeline-date {
    width: auto;
    margin: 0 0 4px;
  }

  .timeline-content {
    width: 100%;
    border: none;
    padding-left: 0;
  }

  .timeline-content::before {
    display: none;
  }

  /* 商品情報 */
  .brstyle {
    display: table;
    white-space: normal;
  }

  .products_item02 {
    margin-left: 0;
  }

} /* end @media (max-width: 1350px) */

/* ==================================================
   タブレット用オーバーライド (1000px〜1350px)
   PCナビをコンパクト化して表示 / ハンバーガー非表示
================================================== */
@media screen and (min-width: 1150px) and (max-width: 1350px) {

  /* ヘッダー: PCと同じ（top: 0 のまま） */
  .header {
    height: 100px;
  }

  /* ロゴ: 少し縮小 */
  .logospace img {
    width: 160px;
  }

  /* パンくず: PCヘッダー高さ(100px)に合わせる */
  .pan_area {
    margin-top: 100px;
  }

  /* ヒーロー動画: ヘッダー(100px)の下に配置・横幅いっぱい・高さは16:9比率 */
  .pvvideo {
    margin-top: 100px;
    top: 0;
  }

  .video-box {
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
  }

  /* video要素: 絶対配置でボックスを全面カバー */
  .video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    min-width: unset;
    min-height: unset;
    max-width: none;
    transform: none;
    object-fit: cover;
  }

  /* overlay: video-box 全面に */
  .overlay::after {
    top: 0;
    width: 100%;
    height: 100%;
  }

  /* H1テキスト: 動画内の下寄りに */
  .text-box {
    top: 70%;
  }

  /* 新着情報: SPの margin-top:50px をリセット */
  .newtopic {
    margin-top: 0;
  }

  /* PCナビを表示に戻す */
  .menu {
    display: block;
  }

  /* ナビ: フォント・余白を詰める */
  .cp_navi06 {
    font-size: 0.68em;
    top: 52px;
  }

  .cp_navi06 ul li a {
    padding: 0 5px;
    line-height: 48px;
  }

  /* 検索: フォームは幅を食うのでアイコン式に切り替え */
  .searchbox {
    display: none;
  }

  .searchbox_sp {
    display: flex;
    position: fixed;
    z-index: 99999;
    right: 10px;
    top: 10px;
  }

  /* ハンバーガー・SP専用UI: 非表示 */
  .sp_menu_shade {
    display: none;
  }

  .sp_menu {
    display: none;
  }

  .sp_toiawase {
    display: none;
  }

  .sp_survey {
    display: none;
  }

  /* 社名変更バー（SP用）: タブレットでは非表示 */
  .shameihenkou {
    display: none;
  }

  /* ニュースティッカー: 虫眼鏡アイコンの左隣に表示 */
  .newsticker {
    display: block;
    right: 60px;   /* 虫眼鏡アイコン(40px) + 余白(10px) の左 */
  }


} /* end @media (min-width: 1150px) and (max-width: 1350px) */
