@charset "utf-8";
/*
Theme Name: GENESIS child
Theme URI:https://tcd-theme.com/tcd103/
Description:WordPressテーマ「GENESIS」の子テーマ
Template:genesis_tcd103
Author:TCD
Author URI:https://tcd-theme.com/
Version:1.0
*/

/*
  ここから下にCSSを追記してください。
*/

/* 本文文字色 */
body {
  color: #14141e;
}

/* ヘッダーページタイトル */
#header {
  position: relative;
}

#header_page_title {
  position: absolute;
  top: 0;
  right: 0;
  font-size: 12px;
  line-height: 1.4;
  padding: 6px 16px;
  color: inherit;
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 40%;
}
/* ヘッダー高さ（スマホ以外は115px・親テーマの80px基準を上書き） */
#header {
  height: 115px;
}

/* ヘッダー高さに合わせてキービジュアルの高さを補正 */
#header_slider_wrap {
  height: calc(100vh - 115px);
}

@media screen and (max-width: 1100px) {
  #header_slider_wrap.layout_type3 {
    height: 110vh;
  }
}

@media screen and (max-width: 800px) {
  #header_slider_wrap.layout_type3 {
    height: 95vh;
  }
}

#header_slider_content .desc_area {
  margin-top: 8px;
}

/* 背景が透明の時 親テーマstyle.cssより*/
body.header_type2 #global_menu > ul > li > a { color:#14141e; }

/* header_type2 時の検索ボタンアイコンを黒に固定（親テーマは白のため白背景で消える） */
body.header_type2 #header_search .search_button::before { color: #14141e; }
body.header_type2 #header_search .search_button:hover::before { color: #999 !important; }

/* ドロワーメニュー開閉ボタン 親テーマresponsive.cssより*/
@media screen and (max-width:1100px) {
  #drawer_menu_button { top:1.2rem; }
	body.header_type2 #drawer_menu_button span { background:#14141e; }
}

/* ナビゲーションをヘッダー下部に配置 */
#global_menu {
  top: auto;
  bottom: 0;
}

/* 検索ボタンをナビと同じ行（ヘッダー下部）に配置 */
#header_search {
  top: auto;
  bottom: 0;
}

/* グローバルメニュー上部サイトタイトル */
#global_menu_top_bar {
  position: absolute;
  top: 0;
  right: 80px;
  display: flex;
  justify-content: flex-end;
  padding: 25px 20px 10px;
  z-index: 10;
}

@media (max-width: 767px) {
  #global_menu_top_bar {
    display: none;
  }
}

#global_menu_site_title {
  font-size: 14px;
  line-height: 1.4;
  color: #005375;
  white-space: nowrap;
}

/* コピーライト フォントサイズ */
#copyright {
  font-size: 12px;
}

/* TOPページ キャッチフレーズ センター揃え */
#header_slider_content .content {
  align-items: center;
  text-align: center;
}


/* キービジュアル オーバーレイバナー */
#header_slider_wrap {
  position: relative;
}

/* 両バナーを右下に縦並びで配置 */
.kv_overlay_banners {
  position: absolute;
  bottom: -30px;
  right: 30px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  pointer-events: none;
  z-index: 5;
}

.kv_overlay_banner {
  pointer-events: auto;
}

.kv_overlay_link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 24px;
  background: rgba(255, 255, 255, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.75);
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.05em;
  transition: background 0.25s ease, border-color 0.25s ease;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.kv_overlay_link:hover {
  background: #fff;
  border-color: #fff;
  color: #14141e;
}

.kv_overlay_arrow {
  font-size: 16px;
  flex-shrink: 0;
}

@media screen and (max-width: 1100px) {
  .kv_overlay_banners {
    bottom: 20px;
    right: 20px;
  }
  .kv_overlay_link {
    font-size: 13px;
    padding: 12px 18px;
  }
}

@media screen and (max-width: 800px) {
  .kv_overlay_banners {
    bottom: 60px;
    right: 14px;
  }
  .kv_overlay_link {
    font-size: 11px;
    padding: 10px 14px;
    gap: 6px;
  }
}

/* TOP */
.post_content .tcdce-body > *:last-child {
    margin-bottom: 0 !important;
	  padding-bottom: 0 !important;
}
	
#top_free_1 {
	padding-bottom: 0;
}

#header_slider_wrap.layout_type3 {
  height: 70vh;
}
#header_slider_wrap.layout_type3 #header_slider {
  height: 70vh;
}
.kv_overlay_banners {
  bottom: -10vh;
}
@media screen and (max-width: 800px) {
  #header_slider_wrap.layout_type3 {
    height: 80vh;
  }
  #header_slider_wrap.layout_type3 #header_slider {
    height: 80vh;
  }
  .kv_overlay_banners {
    bottom: 0;
  }
}

/* ページヘッダー　キービジュアルバナー サイズ調整 */
#page_header .image {
  margin: 0 0 50px 0;
  aspect-ratio: 1950 / 600;
}
#page_header .image img {
  height: 50vh;
}
 #page_header .overlay {
  height: 50vh;
}
@media screen and (max-width: 800px) {
  #page_header .image {
    margin: 0 0 20px 0;
  }
  #page_header .image img {
    height: 50vh;
  }
  #page_header .overlay {
    height: 50vh;
  }
}

/* ページヘッダー説明文エリア 下マージン調整 */
#page_header .desc {
  line-height: 2.0;
}
#page_header .desc_area {
  margin-bottom: 40px;
}
@media screen and (max-width: 800px) {
  #page_header .desc_area {
    margin-bottom: 0;
  }
}

/* パンくず非表示時のコンテナ上部パディング調整 */
body.hide_breadcrumb #container {
  padding-top: 100px;
}
@media screen and (max-width: 800px) {
  body.hide_breadcrumb #container {
    padding-top: 30px;
  }
}

/* NEWS */
#cb_content_2 {
  margin-top: 60px;
}

@media screen and (max-width: 1100px) {
  .cb_free_space {padding: 100px 0;}
}
@media screen and (max-width: 800px) {
  .cb_free_space {padding: 60px 0;}
}

/* フリースペース内デザインバナー：二重padding打ち消し */
.cb_free_space .cb_design_content {
  padding: 0;
}
.cb_free_space .cb_design_content .cb_design_header,
.cb_free_space .cb_design_content .item_list {
  max-width: inherit;
  padding-left: 0;
  padding-right: 0;
}

/* フリースペース内デザインバナー：画像+ボタンペア2列レイアウト */
.cb_free_space .cb_banner_list {
  display: flex;
  gap: 6px;
}
.cb_free_space .cb_banner_item {
  flex: 1;
}
.cb_free_space .cb_banner_item .shutter_image {
  margin: 0 !important;
}
.cb_free_space .cb_banner_item .item {
  width: 100%;
  aspect-ratio: 620 / 450;
}
.cb_free_space .cb_banner_item .design_arrow_button {
  margin: 20px 0 0;
}

/* スマホ：1列縦積み・バナー間に60px余白 */
@media screen and (max-width: 800px) {
  .cb_free_space .cb_banner_list {
    display: block;
  }
  .cb_free_space .cb_banner_item + .cb_banner_item {
    margin-top: 60px;
  }
}

/* フリースペース内デザインバナー：アニメーション無効化（常時表示） */
.cb_free_space .shutter_image .item:before {
  display: none;
}
.cb_free_space .design_header .large_headline span,
.cb_free_space .design_header .sub_title span {
  transform: translate3d(0, 0, 0);
  opacity: 1;
}
.cb_free_space .design_header .desc {
  opacity: 1;
}

/* お知らせエリア・アーカイブ・詳細：表示切り替えボタン */
#archive_news .news_view_toggle,
#recent_news .news_view_toggle {
  display: flex;
  justify-content: flex-end;
  gap: 4px;
  margin-bottom: 16px;
}

.cb_news_list .news_view_toggle {
  display: flex;
  justify-content: flex-end;
  gap: 4px;
  margin-bottom: 16px;
  padding-left: 60px;
  padding-right: 60px;
  box-sizing: border-box;
}

@media screen and (max-width: 1100px) {
  .cb_news_list .news_view_toggle {
    padding-left: 40px;
    padding-right: 40px;
  }
}

@media screen and (max-width: 800px) {
  .cb_news_list .news_view_toggle {
    padding-left: 20px;
    padding-right: 20px;
  }
}

.cb_news_list .news_view_btn,
#archive_news .news_view_btn,
#recent_news .news_view_btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border: 1px solid #ccc;
  background: #fff;
  color: #999;
  font-size: 12px;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  line-height: 1;
}

.cb_news_list .news_view_btn.active,
#archive_news .news_view_btn.active,
#recent_news .news_view_btn.active {
  border-color: currentColor;
  color: inherit;
  background: #f5f5f5;
}

.cb_news_list .news_view_btn:hover,
#archive_news .news_view_btn:hover,
#recent_news .news_view_btn:hover {
  color: inherit;
}

/* お知らせエリア：シンプルリスト表示（Dexerials スタイル） */
.cb_news_list .news_view_list {
  overflow: hidden;
  padding-left: 60px;
  padding-right: 60px;
  box-sizing: border-box;
}

@media screen and (max-width: 1100px) {
  .cb_news_list .news_view_list {
    padding-left: 40px;
    padding-right: 40px;
  }
}

@media screen and (max-width: 800px) {
  .cb_news_list .news_view_list {
    padding-left: 20px;
    padding-right: 20px;
  }
}

/* リスト（フロントページ・アーカイブ・詳細共通） */
.cb_news_list .news_simple_list,
#archive_news .news_simple_list,
#recent_news .news_simple_list {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 1行：[サムネイル] | [本文エリア] */
.cb_news_list .news_simple_item,
#archive_news .news_simple_item,
#recent_news .news_simple_item {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 16px;
  border-bottom: 1px solid #e0e0e0;
  box-sizing: border-box;
  background: #fff;
}

.cb_news_list .news_simple_item:first-child,
#archive_news .news_simple_item:first-child,
#recent_news .news_simple_item:first-child {
  border-top: 1px solid #e0e0e0;
}

/* サムネイル */
.cb_news_list .news_list_thumb,
#archive_news .news_list_thumb,
#recent_news .news_list_thumb {
  display: block;
  flex-shrink: 0;
  width: 150px;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #f0f0f0;
}

.cb_news_list .news_list_thumb img,
#archive_news .news_list_thumb img,
#recent_news .news_list_thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.cb_news_list .news_list_thumb:hover img,
#archive_news .news_list_thumb:hover img,
#recent_news .news_list_thumb:hover img {
  transform: scale(1.05);
}

/* 本文エリア（右側） */
.cb_news_list .news_list_body,
#archive_news .news_list_body,
#recent_news .news_list_body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* 1行目：ラベル + 日付 */
.cb_news_list .news_list_meta,
#archive_news .news_list_meta,
#recent_news .news_list_meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.cb_news_list .news_list_meta .date,
#archive_news .news_list_meta .date,
#recent_news .news_list_meta .date {
  font-size: 16px;
  color: #999;
  white-space: nowrap;
  font-family: 'Arial', sans-serif;
}

.cb_news_list .news_list_meta .date::before,
#archive_news .news_list_meta .date::before,
#recent_news .news_list_meta .date::before {
  font-family: 'design_plus';
  content: '\e903';
  font-size: 17px;
  margin: 0 5px 0 0;
  position: relative;
  top: 1px;
}

.cb_news_list .news_list_meta .news_cat_label,
#archive_news .news_list_meta .news_cat_label,
#recent_news .news_list_meta .news_cat_label {
  display: inline-block;
  background: #fff;
  border: 1px solid var(--tcd-main-color, #005375);
  padding: 0 20px;
  font-size: 14px;
  min-width: 100px;
  height: 35px;
  line-height: 35px;
  border-radius: 35px;
  text-align: center;
  white-space: nowrap;
  text-decoration: none;
  color: var(--tcd-main-color, #005375);
  transition: color 0.25s ease, border-color 0.25s ease;
}

.cb_news_list .news_list_meta .news_cat_label:hover,
#archive_news .news_list_meta .news_cat_label:hover,
#recent_news .news_list_meta .news_cat_label:hover {
  color: var(--tcd-hover-color, #003d59);
}

@media screen and (max-width: 1100px) {
  .cb_news_list .news_list_meta .date,
  #archive_news .news_list_meta .date,
  #recent_news .news_list_meta .date {
    font-size: 14px;
  }
  .cb_news_list .news_list_meta .date::before,
  #archive_news .news_list_meta .date::before,
  #recent_news .news_list_meta .date::before {
    font-size: 16px;
    top: 1.5px;
  }
  .cb_news_list .news_list_meta .news_cat_label,
  #archive_news .news_list_meta .news_cat_label,
  #recent_news .news_list_meta .news_cat_label {
    padding: 0 15px;
    font-size: 12px;
    min-width: 90px;
    height: 30px;
    line-height: 30px;
    border-radius: 30px;
  }
}

/* 2行目：タイトル */
.cb_news_list .news_simple_item .title,
#archive_news .news_simple_item .title,
#recent_news .news_simple_item .title {
  font-size: 18px;
  font-weight: normal;
  margin: 0;
  line-height: 1.5;
}

.cb_news_list .news_simple_item .title a,
#archive_news .news_simple_item .title a,
#recent_news .news_simple_item .title a {
  text-decoration: none;
  color: inherit;
  overflow-wrap: break-word;
  line-height: 1.5;
}

.cb_news_list .news_simple_item .title a:hover,
#archive_news .news_simple_item .title a:hover,
#recent_news .news_simple_item .title a:hover {
  text-decoration: underline;
}

/* SP */
@media screen and (max-width: 800px) {
  .cb_news_list .news_list_thumb,
  #archive_news .news_list_thumb,
  #recent_news .news_list_thumb {
    width: 108px;
  }

  .cb_news_list .news_simple_item,
  #archive_news .news_simple_item,
  #recent_news .news_simple_item {
    gap: 12px;
    padding: 16px;
  }
}

/* 過去アーカイブリンク */
.past_archive_link_wrap {
  text-align: center;
  margin-top: 40px;
  padding-top: 10px;
}

.past_archive_link {
  display: inline-block;
  padding: 12px 32px;
  border: 1px solid #005375;
  color: #005375;
  font-size: 14px;
  text-decoration: none;
  transition: background-color 0.2s, color 0.2s;
}

.past_archive_link:hover {
  background-color: #005375;
  color: #fff;
}

/* ============================================================
   黒系カラー統一 (#14141e)
   親テーマ (style.css / responsive.css) オーバーライド
   ============================================================ */

/* デザイン矢印ボタン */
.design_arrow_button a { color: #14141e; }

/* 丸矢印ボタン */
.arrow_button { background: #14141e; }

/* ニュースカテゴリーボタン アクティブ */
.news_category_button li.current a { background: #14141e; border-color: #14141e; }

/* 検索結果ページ 検索ボタンアイコン */
#no_search_result .search_button label:before { color: #14141e; }

/* ページナビゲーション */
.page_navi a,
.page_navi .current,
.page_navi .dots { color: #14141e; }

/* URLコピーボタン */
.single_copy_title_url_btn { color: #14141e; }

/* ページ分割ナビゲーション */
#post_pagination a,
#post_pagination p { color: #14141e; }
#post_pagination p { background: #14141e; }

/* 前後記事 矢印アイコン */
#next_prev_post .title:after { color: #14141e; }

/* グローバルメニュー */
#global_menu > ul > li > a { color: #14141e; }
#global_menu ul ul a { color: #14141e; }
#global_menu ul ul li.menu-item-has-children > a:before { color: #14141e; }

/* ヘッダー検索ボタンアイコン */
#header_search .search_button:before { color: #14141e; }

/* header_type2 スクロール固定時 */
body.header_type2.active_header #global_menu > ul > li > a,
body.header_type2.header_fixed #global_menu > ul > li > a { color: #14141e; }
body.header_type2.active_header #header_search .search_button:before,
body.header_type2.header_fixed #header_search .search_button:before { color: #14141e; }

/* パンくずリスト */
#bread_crumb li:after { color: #14141e; }
#bread_crumb li a { color: #14141e; }
#bread_crumb li.home a:before { color: #14141e; }

/* メガメニュー */
.megamenu_b .post_list .arrow_link { color: #14141e; }
.swiper-nav-button .arrow_button_small:before,
.swiper-nav-button .arrow_button_small:after { color: #14141e; }
body.megamenu_dark_color #global_menu ul ul { background: #14141e; }
body.megamenu_dark_color .megamenu_a { background: #14141e; }
body.megamenu_dark_color .megamenu_b { background: #14141e; }
body.megamenu_dark_color .megamenu_b.use_carousel .header:before { background-color: #14141e; }
body.megamenu_dark_color .megamenu_b.use_carousel .header:after { background-color: #14141e; }
body.megamenu_dark_color .megamenu_b.use_carousel .swiper-nav-button { background: #14141e; }

/* トップへ戻るボタン */
#return_top a { color: #14141e !important; }
#return_top a .arrow:before,
#return_top a .arrow:after { color: #14141e; }

/* SNSボタン */
.sns_button_list.color_type1 li a:before { color: #14141e; }
.sns_button_list li.note a:before { background-color: #14141e; }

/* ウィジェット 見出し */
.widget_headline { background: #14141e; }

/* 人気記事ウィジェット ランク番号 */
.popular_post_widget .rank { color: #14141e; }

/* サイドバー検索フォームアイコン */
#searchform .submit_button:before { color: #14141e; }

/* タグクラウド ホバー */
.widget_tag_cloud .tagcloud a:hover { background: #14141e; }

/* カテゴリーウィジェット */
.widget_categories li a { color: #14141e; }

/* カレンダーウィジェット リンク */
#wp-calendar tbody a { color: #14141e; }

/* 404ページ（背景画像なし） */
#page_404_header.no_bg_image .content { color: #14141e; }

/* コメントタブ */
#comment_tab li a,
#comment_tab li p { color: #14141e; }
#comment_tab li.active a { background: #14141e; }

/* コメント返信キャンセル ホバー */
#cancel_comment_reply a:hover { background: #14141e; }

/* コメントテキストエリア */
#comment_textarea textarea { color: #14141e; }

/* コメント送信ボタン */
#submit_comment { background: #14141e; }
#submit_comment:hover { background: #14141e; }

/* パスワード保護フォーム */
.c-pw__btn--submit { background: #14141e; }
.c-pw__btn--submit:hover { background: #14141e; }

/* Contact Form 7 送信ボタン */
.wpcf7 .wpcf7-submit,
.wpcf7 .wpcf7-previous { background-color: #14141e; }

/* ドロワーメニューボタン（ハンバーガー） */
#drawer_menu_button span { background: #14141e; }
body.header_type2.header_fixed #drawer_menu_button span { background: #14141e; }

/* モバイルメニュー サブメニュー */
#mobile_menu li ul { background: #14141e; }

/* フッターナビ フォントサイズ調整 */
#footer_nav li { font-size: 14px; }
@media screen and (max-width: 1100px) {
  #footer_nav li { font-size: 12px; }
}


/* テーマカスタマイズ */
/*フッターロゴ非表示*/
#footer_inner{
  display:none !important;
}

/* PCでは改行しない */
.sp-br {
display: none;
}

/* スマホだけ改行する */
@media screen and (max-width: 800px) {
.sp-br {
  display: block;
}
}


/*=========================
   スマホ時だけKV画像差し替え*/

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

  #header_slider .item1 .bg_image img {
    content: url("http://www.dexerials-photonics.jp/wp-content/uploads/2026/07/kv_sp_h1600.png");
    width: 100%;
    height: 70vh;
    object-fit: cover;
        margin-top:0;
  }
}

/*PCスライダーのうえにマージン追加*/
#header_slider {
  height: 50%;
  width: 100%;
  position: relative;
  overflow: hidden;
margin-top:115px;
}

/*別ページリンクアイコン*/
/* 見出し全体 */
.led-title{
  display:inline-flex;
  align-items:center;
  gap:0.15em;
  line-height:1;
}

/* アイコン */
.led-title a{
  display:inline-flex;
  align-items:center;
  gap:0.2em;
  line-height:1;
  text-decoration:none;
}

/* アイコン画像 */
.led-title .icon{
  display:inline-block;
  flex:0 0 auto;
  width:0.9em;
  height:0.6em;
  background-image:url("https://www.dexerials.jp/asset/images/common/icon_blank.svg");
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
  transform:translateY(0.15em);
}




/* =========================
   Top Message
========================= */

.dxps-top-message {
  padding: 50px 0;
  background: #fff;
}

.dxps-top-message__inner{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  gap:60px;
}

.dxps-top-message__text {
  flex: 0 1 1100px;
  max-width: 1100px;
}

.dxps-top-message__image{
  flex:0 0 260px;
  align-self:flex-start;
  margin-top:0;
  padding-top:0;
  text-align:center;
}

.dxps-top-message__image img{
  width:100%;
  max-width:260px;
  height:auto;
  display:block;
}

.dxps-president{
  margin-top:48px;
  text-align:center;
  line-height:0;
}

.dxps-president__title{
  margin:0;
  font-size:16px;
  font-weight:400;
}

.dxps-president__name{
  font-size:22px;
  font-weight:700;
}

.dxps-top-message__inner{
  display:flex;
  align-items:flex-start !important;
  justify-content:flex-start;
  gap:60px;
}

.dxps-top-message__image{
  flex:0 0 260px;
  align-self:flex-start !important;
  margin-top:0 !important;
  padding-top:0 !important;
  transform:none !important;
  position:relative;
  top:0 !important;
}

.dxps-top-message__image img{
  display:block;
  margin-top:10px !important;
}

@media screen and (max-width: 800px){
  .dxps-top-message__inner{
    display:block;
  }

  .dxps-top-message__text{
    max-width:100%;
  }

  .dxps-top-message__image{
    width:100%;
    text-align:center;
    margin-top:60px !important;
    margin-left:auto;
    margin-right:auto;
  }
  .dxps-top-message__image img{
    margin:0 auto;
  }

  .dxps-president{
    text-align:center;
  }
}


.dxps-top-message .dxps-top-message__body p.lead-text {
  margin: 0 0 1.5em !important;
  line-height: 2;
}

.dxps-top-message .dxps-top-message__body p.lead-text:last-child {
  margin-bottom: 0 !important;
}


/* 日本語ラベル */
.dxps-top-message__label-ja {
  margin: 0 0 110px;
  font-size: clamp(1.9rem, 2.3vw, 2.6rem);
  line-height: 1.3;
  font-weight: 700;
  color: #14141e;
  letter-spacing: 0.02em;
}

/* 英語見出し：News & Updatesを参考に大きめ */
.dxps-top-message__label-en{
  width:100%;
  text-align:left !important;
  margin:0;
  display:block;
}

.dxps-top-message h2.dxps-top-message__label-en {
  color: #005b8f;
}

/* キャッチコピー */
.dxps-top-message__catch {
  margin: 0 0 48px;
  font-size: clamp(1.8rem, 2.2vw, 3rem);
  line-height: 1.45;
  font-weight: 700;
  color: #14141e;
  letter-spacing: 0.02em;
}

/* 本文 */
.dxps-top-message__body p {
  margin: 0;
  font-size: clamp(1rem, 1.2vw, 1.15rem);
  line-height: 2.2;
  color: #14141e;
  letter-spacing: 0.01em;
}

/* 画像位置を少し下げて添付に寄せる */
.dxps-top-message__image {
  padding-top: 240px;
}

/* タブレット */
@media (max-width: 1100px) {
  .dxps-top-message {
    padding: 72px 0 80px;
  }

  .dxps-top-message__inner {
    gap: 48px;
  }

  .dxps-top-message__label-ja {
    margin-bottom: 72px;
  }

  .dxps-top-message__label-en {
    margin-bottom: 36px;
  }

  .dxps-top-message__catch {
    margin-bottom: 32px;
  }

  .dxps-top-message__image {
    padding-top: 180px;
  }
}

/* スマホ */
@media (max-width: 800px) {
  .dxps-top-message {
    /*padding: 56px 0 64px;*/
    padding: 36px 0 64px;
  }

  .dxps-top-message__inner {
    flex-direction: column;
    gap: 32px;
    padding: 0 20px;
  }

  .dxps-top-message__text,
  .dxps-top-message__image {
    width: 100%;
    max-width: 100%;
    flex: none;
  }

  .dxps-top-message__label-ja {
    margin: 0 0 40px;
    font-size: 1.9rem;
  }

  .dxps-top-message__label-en {
    margin: 0 0 24px;
    font-size: 2.5rem;
    line-height: 1.12;
  }

  .dxps-top-message__catch {
    margin: 0 0 24px;
    font-size: 1.7rem;
    line-height: 1.5;
  }

  .dxps-top-message__body p {
    font-size: 14px;
    line-height: 2;
  }

  .dxps-top-message__image {
    padding-top: 0;
  }
}



/*会社概要*/
/* =========================
   DXPS Corporate Profile
========================= */

.dxps-profile {
  padding-top: 72px;
  padding-bottom: 72px;
}

/* タイトル */
.dxps-profile__header {
  margin-bottom: 56px;
}

.dxps-profile__header h2 {
  display: flex;
  align-items: baseline;
  gap: 20px;
  margin: 0;
  line-height: 1.1;
}

.dxps-section.dxps-profile .dxps-profile__item h3 {
  font-size: 28px;
}




/* 各項目 */
.dxps-profile__list {
  display: flex;
  flex-direction: column;
  gap: 60px;
}

.dxps-profile__item {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.dxps-profile__item-company h3 {
  margin: 0 0 20px 0 !important;
  padding: 0 0 10px 0 !important;
  font-size: 28px !important;
  line-height: 1.4;
  font-weight: 700;
border-bottom:1px solid #aaa;
color: #005375;
     /* 左インデントを解除 */
  margin-left: 0 !important;
  padding-left: 0 !important;
  text-indent: 0 !important;
}

.dxps-profile__item-company h3::before,
.dxps-profile__item-company h3::after {
  content: none !important;
  display: none !important;
}

.dxps-profile__item h3 {
  margin: 0 0 !important;
  padding: 0 0 5px 0 !important;
  font-size: 28px !important;
  line-height: 1.4;
  font-weight: 700;
border-bottom:1px solid #aaa;
color: #005375;
     /* 左インデントを解除 */
  margin-left: 0 !important;
  padding-left: 0 !important;
  text-indent: 0 !important;
}

.dxps-profile__item h3::before {
  display: none;
}

.dxps-profile__content p{
  font-size: 16px !important;
  line-height: 1.9;
}

.dxps-profile__content p:last-child {
  margin-bottom: 0;
}
.dxps-section.dxps-profile .dxps-profile__item .dxps-profile__content p {
  font-size: 16px !important;
      line-height: 2.2;
}

/* 役員・所在地の表現 */
.dxps-profile__table {
  margin: 0;
}

.dxps-profile__table > div {
  display: grid;
  align-items: start;
  column-gap: 28px;
  margin-bottom: 8px;
}

.dxps-profile__table > div:last-child {
  margin-bottom: 0;
}

.dxps-profile__table dt,
.dxps-profile__table dd {
  margin: 0;
  font-size: 16px;
  line-height: 2.2;
  color: #14141e;
}

.dxps-profile__table dt {
  white-space: nowrap;
}

/* 役員 */
.dxps-profile__table--officers > div {
  grid-template-columns: 190px 1fr;
}

/* 所在地 */
.dxps-profile__table--address > div {
  grid-template-columns: 135px 1fr;
}

/* PCで少し余白を広くして画像見本の雰囲気に寄せる */
@media (min-width: 801px) {
  .dxps-profile__content {
    max-width: 920px;
  }


}


/*電話番号　左揃え*/
.dxps-profile__table--address > div{
  display:grid;
  grid-template-columns: 220px 1fr;
  column-gap:60px;
  align-items:start;
  padding:18px 0;
}

.dxps-profile__table--address dt,
.dxps-profile__table--address dd{
  margin:0;
}

.dxps-profile__table--address dd{
  display:grid;
  grid-template-columns: 1fr 260px;
  column-gap:40px;
  align-items:center;
}

.dxps-profile__table--address .address{
  white-space:nowrap;
}

.dxps-profile__table--address .tel{
  white-space:nowrap;
  text-align:left;
}

.dxps-profile__table--address dt {
display: flex !important;
align-items: center !important;
width: 100% !important;
gap: 12px;
}

/* PLANT・MKアイコンを右端へ */
.dxps-profile__table--address dt > img {
display: block !important;
flex-shrink: 0;
width: auto;
height: auto;
margin-left: auto !important;
}


/* =========================
   SP対応
========================= */
@media screen and (max-width: 800px) {

  .dxps-profile__content,
  .dxps-profile__content p {
    font-size: 14px !important;
    line-height: 1.5;
  }
    
    .dxps-profile__item-company .dxps-profile__content,
.dxps-profile__item-company .dxps-profile__content p {
  font-size: 14px !important;
}

  .dxps-profile__table dt,
  .dxps-profile__table dd {
    font-size: 15px !important;
    line-height: 1.5;
  }

  .dxps-profile__table--address > div {
    grid-template-columns: 1fr;
    row-gap: 8px;
    padding: 0;
  }

  .dxps-profile__table--address dd {
    grid-template-columns: 1fr;
    row-gap: 2px;
  }

  .dxps-profile__table--address .tel {
    margin: -20px 0 10px;
    font-size: 14px !important;
  }

  .dxps-profile__table--address .map {
    margin: -70px 0 20px;
            font-size: 14px !important;
  }

  .dxps-profile__table--address .address {
    margin-top:5px;
    white-space: normal;
    line-height: 1.2;
    word-break: break-word;
            font-size: 14px !important;
  }
    
      .dxps-profile__table--officers > div,
  .dxps-profile__table--address > div {
    grid-template-columns: 1fr;
    row-gap: 2px;
  }

  .dxps-profile__item h3 {
    font-size: 20px !important;
  }

  
      .dxps-profile__item-company h3 {
    font-size: 20px !important;
  }
    
    
  .dxps-profile__table dt {
    font-weight: 700;
  }
}

/* =========================
   地図のPDFアイコン、MK、PLANTアイコン
========================= */
.dxp-profile__table--address .map a img,
.dxps-profile__table--address .map a img {
  width: 14px !important;
  height: auto !important;
  display: inline-block !important;
  vertical-align: baseline !important;
  transform: translateY(2px) !important;
}


.dxps-profile__table--address > div > dt {
  display: grid;
  grid-template-columns: auto 100px;
  align-items: center;
  column-gap: 12px;
}

.dxps-profile__table--address > div > dt img {
  max-height: 18px !important;
  width: auto !important;
  justify-self: end;
}


/* =========================
   沿革：線と○を確実に表示
========================= */
/* DXPC側：文字ブルー */
.history-row.dxpc .history-text,
.history-row.dxpc .history-text .year,
.history-row.dxpc .history-text span:last-child {
  color: var(--blue) !important;
}

/* 京セミ側：文字グレー */
.history-row.kyosemi .history-text,
.history-row.kyosemi .history-text .year,
.history-row.kyosemi .history-text span:last-child {
  color: #555 !important;
}

.enkakuspace{
margin-top:30px;
  margin-bottom:50px;

}  

/* 最終行（統合後）はブルー */
.history-row.history-last .history-text,
.history-row.history-last .history-text .year,
.history-row.history-last .history-text span:last-child {
  color: var(--blue) !important;
}


.history-timeline {
  --blue: #00628a;
  --gray: #bfc4c8;
  --line-w: 26px;
  --col-w: 26px;

  position: relative;
  display: grid;
  gap: 10px;
}

/* 青線・グレー線 */
.history-timeline::before,
.history-timeline::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  width: var(--line-w) !important;
  z-index: 0 !important;
}

.history-timeline::before {
  left: calc(var(--col-w) / 2) !important;
  transform: translateX(-50%) !important;
  background: var(--blue) !important;
}

.history-timeline::after {
  left: calc(var(--col-w) + var(--col-w) / 2) !important;
  transform: translateX(-50%) !important;
  background: var(--gray) !important;
}

/* 行 */
.history-row {
  display: grid !important;
  grid-template-columns: 26px 26px 50px 110px minmax(0, 1fr) !important;
  column-gap: 0 !important;
  position: relative !important;
  align-items: start !important;
}

/* ○ */
.dot-col {
  position: relative !important;
  min-height: 32px !important;
  z-index: 2 !important;
}

.dot-col span {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: 0.35em !important;
  left: 50% !important;
  transform: translateX(-50%) !important;

  width: 18px !important;
  height: 18px !important;

  border-radius: 50% !important;
  background: #fff !important;
  box-sizing: border-box !important;
  z-index: 5 !important;
}

.dot-dxpc span {
  border: 3px solid var(--blue) !important;
}

.dot-kyosemi span {
  border: 3px solid var(--gray) !important;
}

/* 年号・本文 */
.history-text {
  display: contents !important;
}

.history-text .year {
  grid-column: 4 !important;
  white-space: nowrap !important;
}

.history-text span:last-child {
  grid-column: 5 !important;
}



/* 最終行の下に余白 */
.history-row.history-last {
  position: relative;
  padding-bottom: 0px;
}

/* 通常の縦線は最終行の少し下で止める */
.history-timeline::before,
.history-timeline::after {
  bottom: 0px !important;
}

/* 最下部：ベース */
.history-row.history-last {
  position: relative;
  padding-bottom: 0;
}

/* 下端45度カット：青 */
.history-timeline::before {
  clip-path: polygon(
    0 0,
    100% 0,
    100% 100%,
    0 calc(100% - var(--line-w))
  );
}

/* グレー線：下に行くほどブルーへ */
.history-timeline::after {
  background: linear-gradient(
    to bottom,
    #bfc5ca 0%,
    #b6c0c7 30%,
    #91aebb 55%,
    #4f879f 78%,
    #00628a 100%
  ) !important;

  clip-path: polygon(
    0 0,
    100% 0,
    100% calc(100% - var(--line-w)),
    0 100%
  ) !important;
}

.history-timeline {
  --line-w: 26px;
  --col-w: 26px;
}

/* 最終行（統合後）は明るいブルー */
.history-row.history-last .history-text,
.history-row.history-last .history-text .year,
.history-row.history-last .history-text span:last-child {
color: #00a8e8 !important;
}

/*おしらせ*/
/* ※1 ※2 の注釈部分を小さく */
.news-note{
    padding-bottom:20px;
  margin-top:40px;
  font-size:0.8em;
  line-height:1.8;
  width:100%;
}

.news-note .note-item{
  display:flex;
  align-items:flex-start;
  gap:0.5em;
  width:100%;
  margin:0 0 0.8em;
}

.news-note .note-num{
  flex:0 0 2.5em;
  white-space:nowrap;
  line-height:1.8;
}

.news-note .note-text{
  flex:1;
  min-width:0;
  width:100%;
  display:block;
  writing-mode:horizontal-tb !important;
  text-orientation:mixed !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word;
  line-height:1.8;
}

/*お知らせ別ページアイコン*/
.detail-link{
  display:inline-flex;
  align-items:baseline;
  gap:0.35em;
  color:#005b86;
  text-decoration:none;
  line-height:1;
}

.detail-link__icon{
  width:0.9em;
  height:0.9em;
  background-image:url("https://www.dexerials.jp/asset/images/common/icon_blank.svg");
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
  flex:0 0 auto;

  position:relative;
  top:0.05em;
}


.detail-link__iconpdf{
  width:0.9em;
  height:0.9em;
  background-image:url("https://www.dexerials.jp/asset/images/common/icon_pdf.svg");
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
  flex:0 0 auto;

  position:relative;
  top:0.05em;
}	



/*技術情報*/

:root {
  --color-main: #005375;
  --color-sub: #0b4f75;
  --color-text: #444;
  --color-heading: #222;
  --color-line: #d9e3ea;
  --color-bg: #f7f9fb;
  --color-white: #ffffff;
}

.dxps-section {
  max-width: 1000px;
  margin: 0 auto;
  padding: 80px 24px;
  color: var(--color-text);
  background: var(--color-white);
}

/* メインタイトル */
.dxps-section h2 {
  margin: 0 0 32px;
  font-size: 32px;
  line-height: 1.3;
  font-weight: 700;
  color: var(--color-heading);
  letter-spacing: 0.02em;
}

/* セクションタイトル */
.dxps-section h3 {
  margin: 80px 0 24px;
  font-size: 28px;
  font-weight: 700;
  color: var(--color-main);
  line-height: 1.4;
  position: relative;
  padding-left: 18px;
}

.dxps-section h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 6px;
  height: 1.2em;
  background: var(--color-main);
  border-radius: 3px;
}

/* 各価値の見出し */
.dxps-section h4 {
  margin: 80px 0 30px;
    padding:0 0 5px 0;
  font-size: 28px;
  font-weight: 700;
  color: var(--color-main);
  line-height: 1.5;

  border-bottom: 1px solid #bdbdbd !important;
}


/* 小見出し */
.dxps-section h5 {
  margin: 0 0 10px;
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--color-sub);
  line-height: 1.7;
  background: var(--color-bg);
  padding: 14px 18px;
  border-left: 4px solid var(--color-main);
  border-radius: 6px;
}

/* 本文 */
.dxps-section p {
  margin: 0 0 24px;
    color:#14141e;
  font-size: 16px !important;
      line-height: 2.2;
}

/* 改行が多い文章でも見やすく */
.dxps-section p + p {
  margin-top: 8px;
}

/* 強調したい語句がある場合用 */
.dxps-section strong {
  font-weight: 700;
  color: var(--color-heading);
}

/* スマホ対応 */
@media (max-width: 800px) {
  .dxps-section {
    padding: 56px 20px;
  }

  .dxps-section h2 {
    font-size:24px;
    margin-bottom: 24px;
  }

  .dxps-section h3 {
    margin-top: 56px;
    margin-bottom: 20px;
    padding-left: 14px;
  }

  .dxps-section h4 {
    margin-top: 40px;
          font-size:20px;
    padding-bottom: 8px;
          border-bottom: 1px solid #bdbdbd !important;
  }

  .dxps-section h5 {
    font-size: 1rem;
    padding: 12px 14px;
  }

  .dxps-section p {
    font-size: 14px !important;
    line-height: 2.2;
  }
}


.dxps-value-intro {
  display: flex;
  align-items: flex-start; /* ← ここを変更（天面揃え） */
  justify-content: space-between;
  gap: 40px;
  margin: 60px 0 40px;
}

/* 見出しの上余白リセット（ズレ防止） */
.dxps-value-intro__text h3 {
  margin: 0 0 16px; /* ← 上マージンを0に */
  font-size: clamp(1.8rem, 2.5vw, 2.4rem);
  font-weight: 700;
  color: #005b8f;
  line-height: 1.4;
  position: relative;
  padding-left: 18px;
}

/* 念のため画像側も上余白をなくす */
.dxps-value-intro__image {
  flex: 0 0 320px;
  max-width: 320px;
  margin-top: 0;
}

.dxps-value-intro__image img {
  display: block;
  width: 100%;
  height: auto;
}

.dxps-value-intro__text {
  flex: 1 1 60%;
}

.dxps-value-intro__text h3 {
  margin: 0 0 16px;
  font-size: clamp(1.8rem, 2.5vw, 2.4rem);
  font-weight: 700;
  color: #005b8f;
  line-height: 1.4;
  position: relative;
  padding-left: 18px;
}

.dxps-value-intro__text h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 6px;
  height: 1.2em;
  background: #005b8f;
  border-radius: 3px;
}

.dxps-value-intro__text p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.9;
  color: #444;
}

.dxps-value-intro__image {
  flex: 0 0 320px;
  max-width: 320px;
}

.dxps-value-intro__image img {
  display: block;
  width: 100%;
  height: auto;
}

/* スマホ */
@media (max-width: 800px) {
  .dxps-value-intro {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    margin: 40px 0 32px;
  }

  .dxps-value-intro__text,
  .dxps-value-intro__image {
    width: 100%;
    max-width: 100%;
    flex: none;
  }

  .dxps-value-intro__image img {
    width: 100%;
    max-width: 420px;
    height: auto;
  }
}

/* バナー*/

.dxps-tech-banner {
  margin-top: 60px;
  text-align: center;
}

.dxps-tech-banner a {
  display: inline-block;
  text-decoration: none;
}

.dxps-tech-banner > a > img {
  display: block;
  width: 600px;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}

.dxps-tech-banner p {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 6px;
  margin-bottom: 0;
}

.dxps-tech-banner p img {
  width: 16px;
  height: 16px;
  display: inline-block;
  margin: 0;
  flex-shrink: 0;
}



/*採用情報*/

.recruit-message {
  background: #fff;
  padding: 70px 20px 20px;
}

.recruit-message p{
    font-size:16px;
}

.recruit-process {
  background: #fff;
  padding: 70px 20px 0;
}

.recruit-process__title {
  display: block !important;
  width: 100% !important;
  color: #005375 !important;
  font-size: 28px !important;
  text-align: left !important;
  margin: 0 0 30px !important;
  padding-bottom: 7px !important;
  border-bottom: 1px solid #bdbdbd !important;
}

.recruit-process__title::after {
  display: none !important;
}


/* SP */
@media screen and (max-width: 800px) {
  .recruit-process {
    padding: 42px 12px 0;
  }
  

.recruit-process__title {
    font-size: 20px !important;
    padding-bottom: 14px;
    margin-bottom: 30px;
  }
  
  .recruit-message p {
    font-size: 14px;
    line-height: 2;
  }

}


/*採用ENTRY*/

/* =========================================
   ENTRY
========================================= */

.entry-section {
  width: 100%;
  height: 360px !important; /* PCでボタン下の余白を確保 */
  margin: 0 !important;
  padding: 72px 30px 48px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;

  background: #005375;
  border-radius: 16px;
  color: #fff;
}

.entry-section,
.entry-section * {
  box-sizing: border-box !important;
}

.entry-inner {
  width: 100%;
  max-width: 900px;
  margin: -35px auto;
  text-align: center;
  padding:0 0 40px 0px;
}

.entry-title {
  margin: 0;
  color: #fff;
  font-size: 42px!important;;
  font-weight: 700;
  line-height: 1.2;
}

.entry-lead {
  margin: 30px 0 40px;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.7;
}

.entry-buttons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 40px;
  margin: 0;
  padding: 0;
}

.entry-button,
.entry-button:link,
.entry-button:visited {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;

  width: 260px;
  height: 56px;
  margin: 0;
  padding: 0 58px 0 24px;

  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #005b78;

  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none !important;
}

.entry-button span:first-child {
  display: block;
  width: 100%;
  text-align: center;
  white-space: nowrap;
  text-decoration: none !important;
}

.entry-arrow {
  position: absolute;
  top: 50%;
  right: 12px;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 36px;
  height: 36px;
  border-radius: 50%;

  background: #00627f;
  color: #fff;
  transform: translateY(-50%);
}

.entry-arrow::before {
  content: "→";
  display: block;
  font-size: 22px;
  line-height: 1;
  transform: translateY(2px);
}


.entry-section .entry-inner .entry-note {
  display: block;
  width: 100%;
  margin: 35px auto 32px !important;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}



/* =========================================
   SP
========================================= */

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

  .entry-section {
    height: 416px !important; /* 下のボタン＋下余白まで確保 */
    padding: 55px 20px 48px !important;
    border-radius: 16px;
  }

  .entry-title {
    font-size: 36px!important;;
  }

  .entry-lead {
    margin: 24px 0 30px;
    font-size: 13px;
    line-height: 1.8;
  }

  .entry-buttons {
    flex-direction: column;
    gap: 2px;
  }

  .entry-button,
  .entry-button:link,
  .entry-button:visited {
    width: min(300px, calc(100vw - 40px));
    height: 56px;
    padding: 0 58px 0 24px;
  }

  
    .entry-section .entry-inner .entry-note {
  display: block;
  width: 100%;
  margin: 22px auto 32px !important;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.7;
  text-align: left;
}
  
.entry-note br {
display: none;
}

}


/*主な製品*/
/* =========================================
   製品情報ページ 導入セクション
========================================= */

.photonics-intro {
  width: 100%;
  padding: 80px 20px 20px;
  background: #fff;
  box-sizing: border-box;
}

.photonics-intro-inner {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
}


/* =========================================
   共通見出し
========================================= */

.photonics-main-title,
.photonics-section-title {
  margin: 0 0 30px !important;
  padding: 0 0 5px 0 !important;
  font-size: 28px !important;
  color: #005375 !important;
  line-height: 1.5;
  border-bottom: 1px solid #bdbdbd !important;
  text-align: left !important;
}

.photonics-section-subtitle {
  margin: 0 0 30px 0 !important;
  font-size: 20px !important;
  color: #005375 !important;
  line-height: 1.7;
  background: #f7f9fb !important;
  padding: 14px 18px !important;
  border-left: 4px solid #005375  !important;
  border-radius: 6px !important;
    text-align:left !important;
}

.photonics-section-middle{
  margin: 0 0 30px;
  padding: 0 0 10px 0 !important;
  font-size: 18px !important;
    font-weight:strong !important;
  color: #005375 !important;
  line-height: 1.5;
  border-bottom: 1px dotted #bdbdbd !important;
  text-align: left !important;
}


.photonics-underlined-title {
  display: inline-block;
  margin: 0 0 28px;
  padding: 0 0 3px;
  border-bottom: 2px solid #14141e;
  color: #14141e;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.photonics-sub-title {
  margin: 0 0 10px;
  color: #14141e;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.03em;
}


/* =========================================
   本文
========================================= */

.photonics-lead-text,
.photonics-product-text,
.photonics-body-text {
  color: #444;
  font-size: 16px;
  font-weight: normal;
  line-height: 1.8;
  letter-spacing: 0.01em;
}

.photonics-lead-text p,
.photonics-product-text p,
.photonics-body-text p {
  margin: 0 0 14px;
}

.photonics-lead-text p:last-child,
.photonics-product-text p:last-child,
.photonics-body-text p:last-child {
  margin-bottom: 0;
}


/* =========================================
   導入文
========================================= */

.photonics-lead {
  margin-bottom: 20px;
}


/* =========================================
   高速フォトダイオード
========================================= */

.photonics-product {
  margin-bottom: 70px;
}

.photonics-product-layout {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 44px;
  align-items: start;
}

.photonics-product-image {
  width: 100%;
  aspect-ratio: 1 / 0.8;
  border: 1px solid #bdbdbd;
  background: #fff;
  box-sizing: border-box;
  overflow: hidden;
}

.photonics-product-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}


/* =========================================
   AI社会を支える見えないインフラ
========================================= */

.photonics-infrastructure {
  padding: 0 20px;
}

.photonics-image-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  width: 100%;
  max-width: 720px;
  margin: 34px auto 24px;
}

.photonics-scene-image {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #eee;
}

.photonics-scene-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.photonics-message {
  margin: 0 0 18px;
  color: #444;
  font-size: 16px;
  font-weight: normal;
  line-height: 1.8;
}


/* =========================================
   タブレット
========================================= */

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

  .photonics-intro {
    padding-top: 60px;
  }

  .photonics-product-layout {
    grid-template-columns: 280px 1fr;
    gap: 30px;
  }

  .photonics-main-title,
  .photonics-section-title,
  .photonics-underlined-title {
    font-size: 25px;
  }

  .photonics-sub-title {
    font-size: 20px;
  }
}


/* =========================================
   スマートフォン
========================================= */

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

  .photonics-intro {
    padding: 50px 15px 10px;
  }

    .photonics-main-title {
  margin: 0 0 30px !important;
  padding: 0 0 5px 0 !important;
  font-size: 20px !important;
  color: #005375 !important;
  line-height: 1.5;
  border-bottom: 1px solid #bdbdbd !important;
  text-align: left !important;
}
  
    .photonics-section-title {
  margin: 0 0 30px !important;
  padding: 0 0 15px 0 !important;
  font-size: 20px !important;
  color: #005375 !important;
  line-height: 1.5;
  border-bottom: 1px solid #bdbdbd !important;
  text-align: left !important;
}
    .photonics-section-subtitle {
  margin: 0 0 10px;
  font-size: 16px !important;
  color: #005375 !important;
  line-height: 1.7;
  background: #f7f9fb !important;
  padding: 14px 18px !important;
  border-left: 4px solid #005375  !important;
  border-radius: 6px !important;
    text-align:left !important;
}

.photonics-section-middle{
  margin: 0 0 30px;
  padding: 0 0 10px 0 !important;
  font-size: 16px !important;
    font-weight:strong !important;
  color: #005375 !important;
  line-height: 1.5;
  border-bottom: 1px dotted #bdbdbd !important;
  text-align: left !important;
}


.photonics-underlined-title {
  display: inline-block;
  margin: 0 0 28px;
  padding: 0 0 3px;
  border-bottom: 2px solid #14141e;
  color: #14141e;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

    
  .photonics-lead,
  .photonics-product {
    margin-bottom: 50px;
  }

  .photonics-main-title,
  .photonics-section-title,
  .photonics-underlined-title {
    margin-bottom: 18px;
    font-size: 22px;
    line-height: 1.5;
  }

  .photonics-sub-title {
    margin-bottom: 10px;
    font-size: 18px;
  }

  .photonics-lead-text,
  .photonics-product-text,
  .photonics-body-text,
  .photonics-message {
    font-size: 14px;
    line-height: 1.95;
    color:#000;
  }

  .photonics-product-layout {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .photonics-product-image {
    width: 100%;
    max-width: 420px;
    margin: 0 auto;
  }

  .photonics-infrastructure {
    padding: 0;
  }

  .photonics-image-row {
    grid-template-columns: 1fr;
    gap: 14px;
    max-width: 100%;
    margin: 26px auto 20px;
  }


section.product-category > h2.product-category-title {
display: block !important;
width: 100% !important;
margin: 50px 0 30px !important;
padding: 0 0 5px !important;
font-size: 20px !important;
font-weight: 700 !important;
line-height: 1.5 !important;
color: #005375 !important;
border: 0 !important;
border-bottom: 1px solid #bdbdbd !important;
text-align: left !important;
background: none !important;
}
}

/* =========================================
   カード一覧
========================================= */

.product-card-list,
.product-card-list-sub {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 28px;
  width: 100%;
  margin: 0;
  padding: 0;
}


/* =========================================
   正方形の商品カード
========================================= */

.products-grid-section .product-card {
  display: block;
  width: 100%;
  min-width: 0;
  aspect-ratio: 1 / 1;
  margin: 0;
  padding: 0;
  border: 1px solid #d8dce2;
  border-radius: 3px;
  background: #fff;
  box-shadow: none;
  box-sizing: border-box;
  overflow: hidden;
}

/* テーマ側の疑似要素を無効化 */
.products-grid-section .product-card::before,
.products-grid-section .product-card::after {
  display: none !important;
  content: none !important;
}


/* =========================================
   カード内リンク
========================================= */

.products-grid-section .product-card-link {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 20px;
  border: 0 !important;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: inherit;
  text-decoration: none;
  box-sizing: border-box;
}


/* =========================================
   商品画像
========================================= */

.products-grid-section .product-card-image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 72%;
  min-height: 0;
  margin: 0;
}

.products-grid-section .product-card-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}


/* =========================================
   商品名
========================================= */

.products-grid-section .product-card-title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 28%;
  margin: 0;
  color: #005375;
  font-size: 16px;
  font-weight: normal;
  line-height: 1.5;
  letter-spacing: 0.02em;
  text-align: center;
  overflow-wrap: anywhere;
}


/* =========================================
   タブレット
========================================= */

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

  .product-card-list,
  .product-card-list-sub {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 22px;
  }
}


/* =========================================
   スマートフォン
========================================= */

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

  .product-card-list,
  .product-card-list-sub {
    grid-template-columns: 1fr 1fr;
    gap: 14px;
  }

    .product-category-title {
  margin: 0 0 30px !important;
  padding: 0 0 5px 0 !important;
  font-size: 28px !important;
  color: #005375 !important;
  line-height: 1.5;
  border-bottom: 1px solid #bdbdbd !important;
  text-align: left !important;
}
    
    
  .products-grid-section .product-card-link {
    padding: 12px;
  }

  .products-grid-section .product-card-image {
    height: 70%;
  }

  .products-grid-section .product-card-title {
    height: 30%;
    font-size: 14px;
    font-weight: normal;
  }
}

