@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

/*-------------------------
  共通
-------------------------*/
html{
  scroll-behavior: smooth;
}

main > .c-section{
  padding-top: 0;
  padding-bottom: 0;
}

a{
  text-decoration: none;
  transition: 0.3s ease;
}

.fw_b{
  font-weight: bold;
}


body:not(.single) .c-entry__header h1{
  display: none;
}
.page-template-one-column .l-contents__inner{
  margin-top: 0;
}
.page-template-one-column .l-contents__inner:last-child {
  padding-bottom: 0;
}

.icon_default_color{
  color: #2563EB;
}

.c-breadcrumbs,
.p-breadcrumbs-wrapper,
body:not(.single) .c-entry__header{
  display: none;
}

body:not(.blog):not(.single) .l-contents__body .l-contents__inner:first-child{
  padding-top: 0;
  padding-bottom: 0;
}

.wp-block-separator{
  border-top: 1px solid;
}

.l-contents__main .broken_link, .l-contents__main a.broken_link{
  text-decoration: none;
}

.error404 .l-contents__body{
  padding: 60px 0;
}

a:where(:not(.wp-element-button)){
  color: inherit;
}


/* フェードインアニメーション */
@keyframes fade-in-animation {
  from {
    opacity: 0;
    transform: translateY(20px); 
  }
  to {
    opacity: 1;
    transform: translateY(0); 
  }
}

.fade-in {
  animation-name: fade-in-animation;
  animation-duration: 0.5s;
  animation-timing-function: ease-out; 
  animation-fill-mode: forwards; 
  opacity: 0; 
  animation-play-state: paused;
}

.is-visible {
  animation-play-state: running;
}

.fade-in.delay {
  animation-delay: 0.3s;
}

/* Lightbox */
#fancybox-content,
#fancybox-outer{
  border-radius: 20px;
}

.fancybox a{
  transition: 0.3s ease;
}

.fancybox a:hover{
  transform: scale(1.05);
}

/* youtube埋め込み */
.is-provider-youtube iframe{
  border-radius: 10px;
}


/* 文字フォント */
*{
  font-family: "Noto Sans JP", sans-serif !important;
}

h1{
  font-weight: 900;
}

/* h1,h2,h3,h4,h5,h6{
  font-family: "MFW-UDShinGoNTPro-DeBold", "Noto Sans JP", sans-serif;
} */

/* .wp-block-cover__inner-container h1 + p{
  font-family: "MFW-UDReiminPro-Bold","Noto Sans JP";
} */

/* 文字サイズ */
.home .l-contents__body h1 {
  font-size: clamp(30px, 4vw + 1rem, 72px);
  font-weight: 900;
}
.home .l-contents__body .subtitle {
  font-size: clamp(16px, 0.5vw + 0.85rem, 22px);
  font-weight: 400;
  /* font-family: "MFW-UDReiminPro-Bold","Noto Sans JP"; */
}

body:not(.home) h1 {
  font-size: clamp(28px, 4vw + 1rem, 64px);
  font-weight: 900;
}

body:not(.blog):not(.post-template-default):not(.archive) .l-contents .l-contents__body h2{
  font-size: clamp(20px, 2vw + 1rem, 36px);
  font-weight: 900;
}

body:not(.blog) h3{
  font-size: clamp(20px, 0.6vw + 1rem, 28px);
  font-weight: 800;
  line-height: 1.25;
}

.has-sm-xl-font-size{
  font-size: clamp(16px, 0.5vw + 1rem, 20px) !important;
}


/* 表示・非表示 */
.pc_only {
  display: block;
}

@media (max-width: 768px) {
  .pc_only {
    display: none;
  }
}

.sp_only {
  display: none;
}

@media (max-width: 768px) {
  .sp_only {
    display: block;
  }
}

/* 整列 */
.ta_c{	
text-align: center !important;	
}
.align_items_base {
  align-items: baseline !important;
}
@media (max-width: 768px){
  .sp_ta_l{
    text-align: left !important;
  }
  .sp_ta_l_btn a{
    text-align: left !important;
  }
}

/* 余白 */
.mb_10{
  margin-bottom: 10px !important;
}

.mb_20{
  margin-bottom: 20px !important;
}

.mb_30{
  margin-bottom: 30px !important;
}

.mb_0{
  margin-bottom: 0 !important;
}

.mt_0{
  margin-top: 0 !important;
}

.mt_10{
  margin-top: 10px !important;
}

.gap_0{
  gap: 0 !important;
}
.gap_10{
  gap: 10px !important;
}

@media (max-width: 768px){
  .sp_gap_0{
    gap: 0px !important;
  }
   .sp_gap_10{
    gap: 10px !important;
  }
}

@media (max-width: 768px){
  .sp-w100{
    width: 100% !important;
  }
}

/* 行間 */
.line_height_small{
  line-height: 1.2 !important;
}

/* z-index調整 */
.z-index_adjustment_front{
  z-index: 10;
}
.z-index_adjustment_back{
  z-index: -10;
}

.c-white{
  color: #fff !important;
}

/* reCAPTCHA v3 badge */
.grecaptcha-badge {
  visibility: hidden;
}
.u-recaptcha-policy{
  text-align: center;
  font-size: 12px;
}
.u-recaptcha-policy a{
  color: #2563EB;
}


/*-------------------------
  共通パーツ
-------------------------*/
/* カード型デザインA */
.card_item_typeA {
  background-color: #ffffff;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  padding: 24px;
}
.card_item_typeA h3.wp-block-heading{
  margin-bottom: 16px;
  padding: 64px 16px;
}
.card_item_typeA p{
  margin-top: 8px;
}

/* カード型デザインB */
.card_item_typeB {
  background-color: #ffffff; 
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); 
  transition: box-shadow 0.3s, transform 0.3s;
  overflow: hidden;
  height: 100%;
}
.card_item_typeB:hover {
  transform: translateY(-5px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.card_item_typeB_image_area {
  min-height: 180px;
}
.card_item_typeB_image_area .wp-block-image>a{
  display: block;
}
.card_item_typeB_image_area figure{
  height: 250px;
}
.card_item_typeB_image_area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.card_item_typeB_text {
  padding: 10px 20px 20px;
  border-top: 1px solid #ffffff;
  margin-top: 0;
}
.card_item_typeB_text h3, 
.card_item_typeB_text p:first-child {
  font-size: 1em;
  font-weight: bold;
  margin-top: 0;
  margin-bottom: 5px;
}
.card_item_typeB_grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr); 
  gap: 20px; 
}
@media (max-width: 1200px) {
  .card_item_typeB_grid {
    grid-template-columns: repeat(3, 1fr) !important; 
  }
}
@media (max-width: 960px) {
  .card_item_typeB_grid {
    grid-template-columns: repeat(2, 1fr) !important; 
  }
}
@media (max-width: 600px) {
  .card_item_typeB_grid {
    grid-template-columns: 1fr !important;
  }
}


/* 引用ブロック */
.wp-singular .wp-block-quote:where(:not(.is-style-plain)){
  background-image: none;
}

blockquote.wp-block-quote {
  border: none;
  padding: 20px 25px 20px 20px;
  box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
  margin: 20px auto;
  position: relative;
}

blockquote.wp-block-quote::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 8px;
  background-color: #F59E0B;
  background-image: none;
  height: auto;
}

blockquote.wp-block-quote::after {
  content: "“";
  color: #F59E0B;
  font-size: 4.5em;
  line-height: 0;
  position: absolute;
  top: 15px;
  left: 20px;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
}

blockquote.wp-block-quote p {
  margin: 0;
  padding-left: 20px;
  line-height: 1.6;
}


/* 立体的囲み1 */
.three-dimensional{
  position: relative;
}

.three-dimensional::before {
  content: "";
  position: absolute;
  background-color: #9CA3AF;
  width: 100%;
  height: 100%;
  top: 0px;
  left: -8px;
  z-index: -1;
  border-radius: 10px;
}

.three-dimensional.bg_blue::before {
  background-color: #2563EB;
}

/* 立体的囲み2(カードの上) */
.card_accent_color > .wp-block-group {
	position: relative;
	background-color: #2563EB !important;
	border-radius: 8px !important;
	padding-top: 24px !important;
	overflow: hidden; 
}

.card_accent_color > .wp-block-group::after {
	content: "";
	position: absolute;
	top: 5px;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #ffffff !important;
	border-top-left-radius: 5px;
	border-top-right-radius: 5px;
	z-index: 0; 
}

.card_accent_color > .wp-block-group > * {
	position: relative;
	z-index: 1;
}


/* ボタン */
.btn_typeA a{
  transition: 0.3s ease;
  border:2px solid #fff;
  border-radius: 5px;
  color: #fff;
}
.btn_typeA a:hover{
  background-color: #fff;
  color: #2563EB;
}


/*  タイトル */
.title_typeA {
  font-family: "Noto Sans JP", sans-serif;
  position: relative;
  padding-left: 20px;
  font-weight: normal;
  color: #374151;
}
.title_typeA::before {
  content: "";
  width: 5px;
  height: 100%;
  position: absolute; 
  top: 0; 
  left: 0; 
}
.title_typeA.blue-line::before {
  background-color: #2563EB;
}
.title_typeA.green-line::before {
  background-color: #22C55E;
}
.title_typeA.yellow-line::before {
  background-color: #eab308;
}
.title_typeA.red-line::before {
  background-color: #ec4899;
}

/* パンくず */
.breadcrumbs span{
  color: #6b7280;
  font-size: 12px;
  margin-right: 8px;
  margin-left: 8px;
}

.breadcrumbs span:first-of-type{
  margin-left: 0;
}

.breadcrumbs span a:hover span{
  color: #2563EB;
}

.breadcrumbs span a{
  transition: 0.3s ease;
}

.breadcrumbs span a span{
  margin-right: 0;
}

.breadcrumbs span.current-item{
  font-weight: bold;
  color: #374151;
}


/* アイコン */
.blue_circle_icon {
  background-color: #DBEAFE;
  max-width: 100%;
  border-radius: 50%;
  width: 50px;
  height: 50px;
  position: relative;
}

.blue_circle_icon::before {
  font-family: 'Font Awesome 5 Free' !important;
  font-weight: 900; 
  color: #2563EB; 
  font-size: 24px; 
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.blue_circle_icon.info-icon::before{
  content: '\f05a'; 
}

.link-icon::after{
  font-family: 'Font Awesome 5 Free' !important;
  content: '\f08e'; 
  font-weight: 900; 
  color: #2563EB; 
  font-size: 14px; 
  margin-left: 5px;
}


/*-------------------------
  ヘッダー
-------------------------*/
.l-header__content .c-row .c-row__col:first-of-type{
  width: 25%;
}

.p-global-nav .c-navbar .c-navbar__item>a{
  padding: 0 14px;
}
@media (max-width: 1240px){
  .p-global-nav .c-navbar .c-navbar__item>a {
    padding: 0px 8px;
    font-size: 13px;
  }
}
@media (max-width: 1135px){
  .p-global-nav .c-navbar .c-navbar__item>a {
    padding: 0px 8px;
    font-size: 12px;
  }
}

.p-global-nav .c-navbar .menu_contact_btn.c-navbar__item>a{
  background-color: #2563EB;
  padding: 10px 14px;
  border-radius: 5px;
  color: #fff;
  transition: 0.3s ease;
}

.p-global-nav .c-navbar .menu_contact_btn.c-navbar__item>a:hover{
  background-color: #1F2937;
}

.p-drop-nav .p-global-nav .c-navbar__item.menu-item>a {
  padding-bottom: 0; 
  padding-top: 0;
}

.p-drop-nav .p-global-nav .c-navbar__item.menu-item{
  padding: 16px 0;
}

.p-drop-nav .p-global-nav .c-navbar__item.menu-item.menu_tour-info_main{
  padding-right: 10px;
}

.p-drop-nav .p-global-nav .c-navbar__item.menu_contact_btn>a{
  padding-top: 10px;
  padding-bottom: 10px;
}

.l-1row-header .c-container {
  padding-top: 5px;
  padding-bottom: 5px;
}

.menu_tour-info_main{
  padding-right: 15px;
  cursor: pointer;
}

.p-global-nav .c-navbar__item.menu_tour-info_main >a{
  flex-direction: row;
}

/* ↓ドロップダウンメニュー表示のアイコン */
/* .menu_tour-info_main >a:after {
  content: "\f078";
  font-family: "Font Awesome 5 Free", "Font Awesome 4.7";
  font-weight: 900;
  margin-left: 5px;
  font-size: 12px;
} */
@media (max-width: 1024px){
  .p-global-nav .c-navbar__item.menu_tour-info_main >a{
    pointer-events: auto;
  }
  .menu_tour-info_main >a:after {
   display: none;
  }
}

.c-site-branding__title .custom-logo {
  width: 250px !important;
}
@media (min-width: 64em) {
  .c-site-branding__title .custom-logo {
    width: 300px !important;
  }
}


/*-------------------------
  フッター
-------------------------*/
.l-footer{
  background-color: #1F2937;
  color: #fff;
}

.l-footer .c-copyright {
  background-color: #1F2937;
  color: #6b7280;
}

.l-footer .c-copyright .c-container{
  border-top: 0.5px solid rgba(107, 114, 128, 0.5);
  padding-top: 40px;
  padding-bottom: 40px;
}

.l-footer .c-widget>h2.c-widget__title{
  color: #fff;
  justify-content: flex-start;
}

.l-footer .c-widget>h2:before,
.l-footer .c-widget>h2:after {
  content: none;
}

.l-footer  .widget_text  h2{
  margin-bottom: 10px;
}

.l-footer .footer_menu a,
.l-footer .textwidget{
  display: block;
  text-decoration: none;
  color: #9CA3AF;
}

.l-footer .footer_menu a{
  transition: 0.3s ease;
  margin-bottom: 3px;
}

.footer_sns{
  display: flex;
  justify-content: start;
  gap: 20px;
}

.footer_sns a{
  color: #9CA3AF;
  font-size: 24px;
  transition: 0.3s ease;
}

.l-footer .footer_menu a:hover,
.footer_sns a:hover{
  color: #fff;
}

.footer_above-contents_gap_fill{
  transform: translateY(1px);
}

.footer_youtube_column {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
  width: 100%;
  margin: 0 auto;
}

.footer_youtube {
  width: 100%;
  aspect-ratio: 16 / 9;
}

.footer_youtube iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.footer_line_btn:hover{
  opacity: 0.8;
}

.footer_line_btn img{
  width: 130px;
}

@media (max-width: 1024px) {
  .footer_youtube_column {
    grid-template-columns: repeat(2, 1fr);
  }
}

.l-footer-widget-area .c-container .c-row .l-footer-widget-area__item:last-of-type{
  --_item-width:100%  !important;
}

@media (max-width: 768px){
  .footer_snapWidget,
  .footer_facebook,
  .footer_youtube_column{
    display: none;
  }
  .l-footer-widget-area .c-container .c-row .l-footer-widget-area__item{
    margin-bottom: 0;
    padding: 0;
  }
  .l-footer-widget-area .c-container .c-row .l-footer-widget-area__item .widget_text{
    font-size: 13px;
  }
}

@media (max-width: 360px){
  .l-footer-widget-area .c-container .c-row .l-footer-widget-area__item .widget_text{
    font-size: 12px;
  }
}


/*-------------------------
  トップページ
-------------------------*/
.top_movie.wp-block-cover {
	position: relative;
	display: flex !important;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.top_movie .wp-block-cover__video-background {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}

.top_movie .wp-block-cover__background {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	opacity: 0.4;
}

.top_movie .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
	color: #ffffff;
	width: 100%;
	text-align: center;
}

.top_news_item{
  border: 2px solid #E5E7EB;
  border-radius: 10px;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  /* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); */
}

.top_news ul li a{
  font-weight: 400;
}

.top_news a:hover{
  opacity: 0.8;
}

.top_news_item ul li{
  margin-top: 0;
}

.top_news_item ul li>.wp-block-group{
  padding: 16px;
  border-bottom: 1px solid #E5E7EB;
}

.top_news_item ul li:first-of-type>.wp-block-group{
  padding-top: 24px;
}

.top_news_item ul li:last-of-type>.wp-block-group{
  border-bottom: none;
  padding-bottom: 24px;
}

@media (max-width: 768px){
  .top_news_item ul li .wp-block-group{
    display: block;
  }
  .top_news_item ul li h3{
    margin-top: 5px;
  }
}

.top_movie.wp-block-cover{
  min-height: 80vh;
}
@media (max-width: 768px){
  .top_movie.wp-block-cover{
    min-height: 60vh;
  }
}

.top_print-sample_grid{
	grid-template-columns: repeat(5, minmax(0, 1fr));
}


.top_reason .wp-block-columns {
  display: flex;
  align-items: stretch;
}

.top_reason .wp-block-column.card_item_typeA {
  display: flex;
  flex-direction: column;
}

.top_reason .card_item_typeA > p:last-of-type {
  margin-top: auto;
}

.top_reason .card_item_typeA a{
  transition: 0.3s ease;
} 

.top_reason .card_item_typeA a:hover{
  color: #1e40af;
} 

.top_ceo_blog_item.columns-3 {
  display: grid;
  align-items: stretch; 
}

.top_ceo_blog_item.columns-3 > .wp-block-post {
  height: 100%; 
}

.top_ceo_blog_item.columns-3 > .wp-block-post > .wp-block-group.card_item_typeB {
  height: 100%;
}

.top_ceo_blog_item.columns-3 .card_item_typeB_text {
  flex-grow: 1;
}


/*-------------------------
  下層共通
-------------------------*/
.cta{
  transform: translateY(2px);
}

/*-------------------------
  プリントサンプル集
-------------------------*/
.works li.c-entry {
	list-style: none !important;
}

.card_item_typeB_grid.works-grid{
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.card_item_typeB_grid.works-grid .card_item_typeB_text h3{
  font-size: 18px
}

.card_item_typeB_grid.works-grid .card_item_typeB_text .smb-custom-field{
  font-size: 14px;
}

.works-filter_btn p,
.sample-none{
  text-align: center;
  color: #6B7280;
  margin-bottom: 20px;
  font-weight: bold;
}

.works-filter_btn button{
  border-radius: 30px;
  padding: 2px 24px;
  border: none;
  color: #374151;
  background-color: #E5E7EB;
  font-weight: bold;
  transition: 0.3s ease;
}

.works-filter_btn button:hover{
  cursor: pointer;
  opacity: 0.8;
}

.works-filter_btn .filter-group{
  display: flex;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
}

[data-method].is-active,
[data-item].is-active {
  background-color: #4F46E5;
  color: #fff;
}

@media (max-width: 768px){
  .works-filter_btn .filter-group{
    display: block;
  }
  .works-filter_btn button{
    width: 100%;
    margin-bottom: 20px;
    padding: 8px 24px;
  }
  .works-filter_btn button:last-of-type{
    margin-bottom: 0;
  }
}

/*-------------------------
  プリントサンプルアーカイブページ
-------------------------*/
.post-type-archive-print-sample .p-archive{
  padding-bottom: 20px;
}

.post-type-archive-print-sample .p-archive .c-entries{
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

.post-type-archive-print-sample .p-archive .c-entries .c-entry-summary__figure img{
  height: 100%;
}

@media (max-width: 1200px) {
  .post-type-archive-print-sample .p-archive .c-entries {
    grid-template-columns: repeat(3, 1fr) !important; 
  }
}
@media (max-width: 960px) {
  .post-type-archive-print-sample .p-archive .c-entries {
    grid-template-columns: repeat(2, 1fr) !important; 
  }
}
@media (max-width: 600px) {
  .post-type-archive-print-sample .p-archive .c-entries {
    grid-template-columns: 1fr !important;
  }
}

/*-------------------------
  プリントサンプル集詳細ページ
-------------------------*/
.print-sample-template-default .c-entry__header,
.print-sample-template-default .c-entry__title,
.print-sample-template-default .l-contents__sidebar{
  display: none !important;
}

.single-print-sample .l-contents__body .l-contents__inner{
  padding-top: 20px;
}

.print-sample-template-default .wp-block-video video{
  border-radius: 10px
}

.print-sample-navigation {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.print-sample-navigation .nav-link {
  text-decoration: none;
  padding: 10px 15px;
  color: #2563EB;
  font-weight: 500;
  transition: 0.3s ease;
}

.print-sample-navigation .nav-link:hover {
  opacity: 0.8;
}

.print-sample-navigation .archive-link {
  font-weight: bold;
  color: #2563EB;
}

.print-sample-navigation .nav-spacer {
  flex-grow: 1;
  max-width: fit-content;
  min-width: 150px;
  visibility: hidden;
}

.work-detail_contact_btn span::before{
  content: "\f0e0";
  font-family: "Font Awesome 5 Free" !important;
  font-weight: 900;
  margin-right: 10px;
}

.work-detail_thumbnail_grid{
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px; 
}

@media (max-width: 768px) {
  .work-detail_thumbnail_grid {
    grid-template-columns: repeat(2, 1fr);
  }
}




/*-------------------------
  職人紹介
-------------------------*/
.card_item_typeB_grid.craftsmen_grid .card_item_typeB:hover{
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.card_item_typeB_grid.craftsmen_grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.card_item_typeB_grid.craftsmen_grid .card_item_typeB_image_area figure {
  height: 300px;
}

.card_item_typeB_grid.craftsmen_grid .card_item_typeB_image_area figure img{
  object-position: top;
}

.card_item_typeB_grid.craftsmen_grid .card_item_typeB_text {
  padding: 15px 25px 25px;
}

.craftsmen_btn a:hover {
  background-color: #1f2937;
  color: #fff;
}


/*-------------------------
  個別製作実績
-------------------------*/
.work-detail_specification>.wp-block-columns {
  border-bottom: 1px solid #cacaca;
  padding-bottom: 10px;
}

/*-------------------------
  工場見学のご案内
-------------------------*/
.tour-info_experience_column svg{
  text-align: center;
  display: block;
  font-size: 50px;
}

.tour-info_experience_column .wp-block-column{
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* .tour-info_list {
  padding:  40px 60px; 
  background-color: #ffffff;
  border-radius: 10px; 
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  max-width: 960px;
}
.tour-info_list::before {
  content: "";
  position: absolute;
  background-color: #2563EB;
  width: 100%;
  height: 100%;
  top: 0px;
  left: -8px;
  z-index: -1;
  border-radius: 10px;
} */

.tour-info_item{
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.tour-info_item .wp-block-column:last-of-type{
  padding: 42px;
}

.tour-info_item_img-sec{
  aspect-ratio: 4/3;
}

.tour-info_item figure,
.tour-info_item figure img {
  height: 100%;
}

.tour-info_item img{
  object-fit: cover;
}

.tour-info_item:nth-of-type(odd) img,
.tour-info_item:nth-of-type(odd) iframe{
  border-radius: 0 15px 15px 0;
}

.tour-info_item:nth-of-type(even) img,
.tour-info_item:nth-of-type(even) iframe{
  border-radius: 15px 0px 0 15px;
}

.tour-info_list .wp-block-button.is-style-outline .wp-block-button__link:hover{
  background-color: #EEF2FF;
  filter: brightness(100%);
}


.tour-info_item_img-sec > div {
  flex-grow: 1;
  position: relative;
  width: 100%;
  height: 100%;
  margin-top: 0;
}

.tour-info_item_img-sec iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
}


@media (max-width: 768px) {
  .tour-info_item:nth-of-type(odd) img,
  .tour-info_item:nth-of-type(even) img,
  .tour-info_item:nth-of-type(odd) iframe,
  .tour-info_item:nth-of-type(even) iframe{
    border-radius: 15px 15px 0 0;
  }
  .tour-info_item .wp-block-column:last-of-type{
    padding: 24px;
  }
}

.tour-info_remote-tour_item{
  position: relative;
}

.tour-info_remote-tour_item{
  padding: 80px;
  padding-top: 90px;
}

.tour-info_remote-tour_item .tour-info_remote-tour_item_icon{
  position: absolute;
  font-size: 130px;
  line-height: 1;
  color: #fff;
  opacity: 0.1;
}

.tour-info_remote-tour_item_icon.icon_01{
  top: -40px;
  left: -50px;
}

.tour-info_remote-tour_item_icon.icon_02{
  bottom: 40px;
  right: 20px;
}

@media (max-width: 768px){
  .tour-info_remote-tour_item{
    padding: 24px;
    padding-top: 48px;
    padding-bottom: 48px;
  }
}

#tour-info_main-office,	
#tour-info_misato,	
#tour-info_matsudo{	
scroll-margin-top: 90px;	
}

/* 20260119レイアウト変更 */
.tour-info_contents{
  padding-bottom: 100px;
  border-bottom: 1px solid #e5e7eb;;
}

.tour-info_contents:last-of-type{
  border-bottom: none;
  padding-bottom: 80px;
}

.tour-info_contents img{
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); 
}

.tour-info_contents h4::before {
  font-family: "Font Awesome 5 Free" !important; 
  content: "\f03d";
  font-weight: 900;
  margin-right: 8px;
}

.tour-info_contents.tokyo h4::before {
  color: #4f46e5; 
}

.tour-info_contents.misato h4::before {
  color: #16a34a; 
}

.tour-info_contents.matsudo h4::before {
  color: #ea580c;
}

.tour-info_subtitle{
  display: inline-block;
  border-radius: 30px;
  font-weight: 900;
}

.tour-info_contents_video {
  display: grid;
  gap: 15px;
  grid-template-columns: repeat(5, 1fr);
}

@media (max-width: 1024px) {
  .tour-info_contents_video {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  .tour-info_contents{
    padding-bottom: 50px;
  }
  .tour-info_contents:last-of-type{
    border-bottom: none;
    padding-bottom: 40px;
  }
  .tour-info_contents_video {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
  }
  .tour-info_contents_video > .wp-block-group{
    width: 100%;  
  }
}

.tour-info_contents_video iframe {
  width: 100% ;
  height: auto;
  aspect-ratio: 4 / 3;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); 
  border-radius: 8px;
}

.video-thumbnail-container {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  aspect-ratio: 4 / 3;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.video-thumbnail-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}


.play-button {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60px;
  height: 60px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}

.play-button svg {
  color: #4F46E5;
  font-size: 20px;
  margin-left: 4px;
}

.tour-info_video_card:hover .play-button {
  transform: translate(-50%, -50%) scale(1.1);
  background: #fff;
}

.tour-info_contents_video > .wp-block-group {
  transition: transform 0.3s ease, filter 0.3s ease; 
  cursor: pointer;
}

.tour-info_contents_video > .wp-block-group:hover {
  transform: translateY(-8px);
}

.tour-info_contents_video > .wp-block-group:hover p strong {
  transition: color 0.3s ease;
}

.tour-info_contents.tokyo .tour-info_contents_video > .wp-block-group:hover p strong{
  color: #4f46e5;
}

.tour-info_contents.misato .tour-info_contents_video > .wp-block-group:hover p strong {
  color: #16a34a;
}

.tour-info_contents.matsudo .tour-info_contents_video > .wp-block-group:hover p strong {
  color: #ea580c;
}

.tour-info_contents_video > .wp-block-group:hover {
  filter: drop-shadow(0 10px 15px rgba(0,0,0,0.1));
}

.video-modal-title {
  background: #1e293b;
  color: #ffffff;
  padding: 12px 20px;
  font-size: 15px;
  font-weight: 600;
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
  text-align: left;
  display: none;
}

.video-modal-close {
  position: absolute;
  top: -35px;
  right: 0;
  color: #fff;
  font-size: 28px;
  font-family: sans-serif;
  line-height: 1;
  cursor: pointer;
  transition: opacity 0.2s;
}

.video-modal-close:hover {
  opacity: 0.7;
}

.video-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: none;
  z-index: 99999;
  align-items: center;
  justify-content: center;
}

.video-modal.is-active {
  display: flex;
}

.video-modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.85);
  cursor: pointer;
}

.video-modal-content {
  position: relative;
  width: 90%;
  max-width: 900px;
  z-index: 10;
}

.video-modal-iframe-wrapper {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  background: #000;
  border-radius: 10px;
}

.video-modal-iframe-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 10px;
}

@media (max-width: 768px) {
  .video-modal-title {
    display: block;
    font-size: 13px;
    padding: 10px 15px;
  }
  .video-modal-iframe-wrapper iframe,
  .video-modal-iframe-wrapper {
    border-radius: 10px 10px 0 0;
  }

}


/*-------------------------
  リモート工場見学
-------------------------*/
.remote-tour iframe{
  aspect-ratio: 4/3;
}

.remote-tour .tour-by-base .card_item_typeB_grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
}

.remote-tour .tour-by-base .card_item_typeB:hover{
  transform: translateY(0px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.remote-tour .tour-by-technology {
  display: grid;
}




/*-------------------------
  会社概要
-------------------------*/
.about_table table{
  border: 2px solid #E5E7EB;
  border-radius: 10px;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
}

.wp-block-table.about_table tbody tr:nth-child(even) {
  background-color: #F9FAFB !important;
}

.wp-block-table.about_table td, .wp-block-table th {
  border:none;
  border-bottom: 1px solid #E5E7EB;
}

.wp-block-table.about_table table tbody tr:last-of-type td{
  border-bottom: none;
}

.wp-block-table.about_table table td, .wp-block-table.about_table table th {
  padding: 20px;
}

.about_base{
  padding-top: 60px;
  padding-bottom: 80px;
}
@media (max-width: 768px){
  .about_base{
    padding-top: 40px;
    padding-bottom: 60px;
    padding-left: 0;
    padding-right: 0;
  }
}


/*-------------------------
  採用情報
-------------------------*/
.recruit_accordion .smb-accordion__item__title__label{
  font-size:20px;
}

.recruit_accordion .smb-accordion__item{
  background-color: transparent;
  border:1px solid #E5E7EB;
  border-radius: 10px;
  overflow: hidden;
  padding: 12px;
}

.recruit_accordion .smb-accordion__item__body{
  border-top: 1px solid #E5E7EB;
  margin: 0 20px 20px 20px;
}

.recruit_flow_number{
  width: 60px;
  height: 60px;
  text-align: center;
  border-radius: 50%;
  background-color: #2563EB;
  color: #fff;
  font-weight: bold;
  position: relative;
}

.recruit_flow_number p{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin: 0;
}

.recruit_charm_subtitle{
	display: table;
	margin: 0 auto;
	border-bottom: 2px solid #bfd3ff;
	padding: 0px 10px 5px 10px;
}
@media (max-width: 768px){
	.recruit_charm_subtitle{
		margin-bottom: 30px;
	}
}


/*-------------------------
  サステナビリティ
-------------------------*/
.sustainability_item a:hover{
  opacity: 0.8;
}

.page-template-default #primary .sustainability_contents_title{
    font-size: clamp(24px, 2vw + 1rem, 48px);
}


/*-------------------------
  お知らせ一覧(アーカイブページと詳細ページ共通項目あり)
-------------------------*/
.blog .wp-block-cover {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: relative;
	overflow: hidden;
}

.blog .wp-block-cover__image-background,
.blog .wp-block-cover__video-background {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}

.blog .wp-block-cover__background {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	opacity: 0.4;
}


.blog .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
	width: 100%;
	text-align: center;
	margin-left: 0;
	margin-right: 0;
	color: #fff;
}

.blog .c-page-header{
  display: none;
}

.blog .c-section.widget_block{
  padding: 0;
}

.blog .l-posts-page-widget-area--top{
  margin-bottom: 0;
}

.blog .c-entry-summary__meta{
  display: none;
}

.blog .news_category_btn{
  justify-content: center;
}

.blog .c-entries,
.archive .c-entries{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 20px; 
  list-style: none;
  padding: 0;
  width: 100%;
  --entries--item-width: 100%;
  --entries--gap: 0px;
}
@media (max-width: 1024px) {
  .blog .c-entries,
  .archive .c-entries {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 768px) {
  .blog .c-entries,
  .archive .c-entries {
    grid-template-columns: 1fr;
    gap: 15px;
  }
}

.blog .c-entries__item,
.archive .c-entries__item {
  position: relative; 
  z-index: 1;
  background-color: #FFFFFF;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.06);
  transition: transform 0.3s ease-out, box-shadow 0.3s ease-out;
}

.blog .c-entries__item .c-entry-summary__body,
.archive .c-entries__item .c-entry-summary__body{
  padding: 24px;
  padding-top: 0;
}

.blog .c-entries__item > a,
.archive .c-entries__item > a {
  display: block; 
  text-decoration: none;
  color: inherit;
}

.blog .c-entries__item:hover,
.archive .c-entries__item:hover {
  transform: translateY(-5px); 
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.2), 0 4px 6px -4px rgba(0, 0, 0, 0.1); 
  z-index: 10; 
}
.blog .c-entry-summary__figure,
.archive .c-entry-summary__figure {
  overflow: hidden;
  height: 200px;
  position: relative
}

.blog .c-entry-summary__figure img,
.c-entries__item .c-entry-summary__body,
.archive .c-entry-summary__figure img {
  width: 100%; 
  height: auto;
  display: block;
  object-fit: cover;
}

.blog .c-entry-summary__figure .c-entry-summary__term,
.single .c-entry-summary__figure .c-entry-summary__term,
.archive .c-entry-summary__figure .c-entry-summary__term {
  position: absolute;
  top: 15px;
  left: 15px;
  z-index: 5;
  display: table;
  padding: 8px 16px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: bold;
  line-height: 1;
  background-color: #6B727F;
  color: #FFFFFF;
}

.blog .c-entry-summary__figure .c-entry-summary__term--category-slug-exhibition-info,
.single .c-meta__item.c-meta__item--categories .c-meta__term--category-slug-exhibition-info a,
.single .c-entry-summary__figure .c-entry-summary__term--category-slug-exhibition-info,
.archive .c-entry-summary__figure .c-entry-summary__term--category-slug-exhibition-info {
  background-color: #EC4899;
}

.blog .c-entry-summary__figure .c-entry-summary__term--category-slug-print-example,
.single .c-meta__item.c-meta__item--categories .c-meta__term--category-slug-print-example a,
.single .c-entry-summary__figure .c-entry-summary__term--category-slug-print-example,
.archive .c-entry-summary__figure .c-entry-summary__term--category-slug-print-example {
  background-color: #10B981;
}

.blog .c-entry-summary__figure .c-entry-summary__term--category-slug-new-item,
.single .c-meta__item.c-meta__item--categories .c-meta__term--category-slug-new-item a,
.single .c-entry-summary__figure .c-entry-summary__term--category-slug-new-item,
.archive .c-entry-summary__figure .c-entry-summary__term--category-slug-new-item {
  background-color: #3B82F6;
}

.blog .c-entry-summary__figure .c-entry-summary__term--category-slug-corporate-activities,
.single .c-meta__item.c-meta__item--categories .c-meta__term--category-slug-corporate-activities a,
.single .c-entry-summary__figure .c-entry-summary__term--category-slug-corporate-activities,
.archive .c-entry-summary__figure .c-entry-summary__term--category-slug-corporate-activities {
  background-color: #EAB308;
}

.blog .c-entry-summary__figure .c-entry-summary__term--category-slug-news,
.single .c-meta__item.c-meta__item--categories .c-meta__term--category-slug-news a,
.single .c-entry-summary__figure .c-entry-summary__term--category-slug-news,
.archive .c-entry-summary__figure .c-entry-summary__term--category-slug-news {
  background-color: #2563EB;
}

.blog .c-entry-summary__figure .c-entry-summary__term--category-slug-ceo-blog,
.single .c-meta__item.c-meta__item--categories .c-meta__term--category-slug-ceo-blog a,
.single .c-entry-summary__figure .c-entry-summary__term--category-slug-ceo-blog,
.archive .c-entry-summary__figure .c-entry-summary__term--category-slug-ceo-blog{
  background-color: #778bb1;
}

.blog .news_category_btn{
  gap: 20px;
  display: flex;
  justify-content: center;
  max-width: 1140px;
  padding: 0 5%;
  flex-wrap: wrap;
}

.blog .news_category_btn .news_category_link{
  border-radius: 30px;
  padding: 4px 24px;
  border: none;
  color: #374151;
  background-color: #E5E7EB;
  font-weight: bold;
  transition: 0.3s ease;
}

.blog .news_category_btn .news_category_link:hover{
  cursor: pointer;
  opacity: 0.8;
}

.blog .news_category_btn .news_category_link.is-active {
  background-color: #4F46E5;
  color: #fff;
}

@media (max-width: 768px){
  .blog .news_category_btn{
    display: block;
  }
  .blog .news_category_btn .news_category_link{
    display: block;
    width: 100%;
    margin-bottom: 20px;
    text-align: center;
  }
  .blog .news_category_btn .wp-block-button:last-of-type{
    margin-bottom: 0;
  }
}


/*-------------------------
  お知らせ詳細ページ
-------------------------*/
.single.post-template-default .l-contents__main{
  max-width: 960px;
  margin: 0 auto;
}

.single.post-template-default h2{
  font-size: clamp(18px, 2vw + 1rem, 22px);
}

.single .l-contents__inner:last-child{
  padding-bottom: 80px;
}

.single .c-entry__title{
  font-size: clamp(24px, 3vw + 1rem, 40px);
  font-weight: 800;
}

.single .wp-block-image img{
  width: 100%;
}

.single .c-meta__item.c-meta__item--author,
.single .c-meta__item .svg-inline--fa.fa-folder,
.single .c-meta__item .svg-inline--fa.fa-clock,
.single .c-meta__item i,
.single .c-meta__item svg,
.c-meta__item.c-meta__item--modified,
.single .p-related-posts .c-entry-summary__meta{
  display: none !important;
}

.single .c-meta__item.c-meta__item--categories a{
  color: #fff;
  padding: 2px 20px 4px 20px;
  border-radius: 20px;
  font-weight: bold;
  text-decoration: none;
  background-color: #6B727F;
}

.single .c-entry__header {
  display: flex;
  flex-direction: column;
}

.single .c-entry__header .c-entry__title {
    order: 2;
}

.single .c-entry__header .c-entry__meta {
  order: 1;
  margin-bottom: 15px;
}

.single .c-entry__header .c-entry__meta .c-meta{
  gap: 10px;
}

.single .c-meta time{
  font-size: 18px;
  color: #6B7280;
}

.single .c-entry-summary__content{
  display: none;
}

.single .c-entries--panel .c-entries__item>a {
  border-radius: 10px;
}

.single .c-entries--panel .c-entry-summary__body {
  padding: 0 16px;
}

.single .c-entry-summary__figure>img{
  border-radius: 10px 10px 0 0;
}

.c-entry-tags a{
	border: none;
	border-radius: 30px;
	font-weight: bold;
	padding: 8px 16px;
}


@media (min-width: 1024px) {
  .single .c-entries {
    --entries--item-width: 25%;
  }
}
@media (max-width: 1024px) {
  .single .c-entries {
    --entries--item-width: 50%;
  }
}
@media (max-width: 768px) {
  .single .c-entries {
    --entries--item-width: 100%;
  }
}

.single .p-related-posts .c-entry-summary__body{
  padding: 16px;
}

.single .p-related-posts .c-entry-summary__figure{
  margin-bottom: 0;
}

.single .c-entry__body a{
	color: #2563EB;
	transition: 0.3s ease;
}

.single .c-entry__body a:hover{
	opacity: 0.8;
}

/* ショートコード復活 */
.wc-compat-row {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 20px;
  width: 100%;
  align-items: flex-start;
}

.wc-compat-row > br,
.wc-compat-row > p {
    display: none !important;
}

.wc-compat-column {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
}

@media (min-width: 768px) {
  .wc-compat-column.size-one-half { 
    width: calc(50% - 10px) !important; 
    flex: 0 0 auto;
  }
  .wc-compat-column.size-one-third { 
    width: calc(33.333% - 13.34px) !important; 
    flex: 0 0 auto;
  }
}

.wc-compat-button-wrap {
  text-align: center; margin: 20px 0;
}
.wc-compat-btn {
  display: inline-block;
  padding: 12px 24px;
  color:#fff !important;
  text-decoration: none !important;
  border-radius: 4px;
  font-weight: bold;
}
.btn-primary {
  background-color: #337ab7;
}
.btn-danger {
  background-color: #d9534f;
}
.wc-compat-button {
  background-color: #2563EB !important;
}
.wc-compat-button:hover {
  opacity: 0.8;
}
.wc-compat-divider {
  border: 0; border-top: 1px solid #eee; margin: 30px 0;
}



/*-------------------------
  お知らせアーカイブページ
-------------------------*/
.archive .c-page-header{
  padding-top: 0;
}

.archive .c-page-header h1{
  font-size: clamp(18px, 3vw + 1rem, 32px);
  font-weight: 800;
}

.archive  .c-entry-summary__title{
  font-size: 16px;
  font-weight: 700;
}

.archive .c-entry-summary__meta{
  display: none;
}

.archive .l-contents{
  padding-top: 60px;
  padding-bottom: 60px;
}


/*-------------------------
  お問い合わせ
-------------------------*/
div.wpcf7 {
  max-width: 800px;
  margin: 30px auto;
  padding: 30px;
  background-color: #ffffff;
  border-radius: 10px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
  color: #333;
}
@media (max-width: 600px) {
  div.wpcf7 {
    max-width: 100%;
    margin: 0px;
    margin-top: 30px;
    padding: 0px;
    border-radius: 0px;
    box-shadow: none;
  }
}

.wpcf7 .wpcf7-form .form{
  margin-top: 0;
}

p.contact-title{
  line-height: 1.4;
  color: #555;
}

p.section-title {
  font-size: 20px;
  font-weight: 700;
  color: #333;
  padding: 5px 0;
  margin-bottom: 24px;
  border-bottom: 1px solid #e5e7eb;
}

p.section-title span {
  background-color: #1f2937;
  color: #fff;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  display: inline-block;
  text-align: center;
  font-size: 16px;
  margin-right: 10px;
}

.wpcf7-form label {
  display: block;
  margin-bottom: 8px;
  font-weight: bold;
  line-height: 1.4;
  color: #555;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form select,
.wpcf7-form textarea {
  width: 100%;
  padding: 10px 12px;
  margin-top: 5px;
  border: 1px solid #d1d5db;
  border-radius: 10px;
  box-sizing: border-box;
  transition: border-color 0.3s;
}

.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
  border-color: #427ee0;
  outline: none;
  background-color: #fff;
}

.wpcf7-form textarea {
  height: 200px;
}

.wpcf7-form-control-wrap {
  position: relative;
  margin-top: 5px;
  display: block;
}

.form-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
}

.col-half {
  width: 48%;
}

.form-row .col-half input,
.form-row .col-half select {
  margin-bottom: 0; 
}

@media (max-width: 600px) {
  .form-row {
    flex-direction: column;
  }
  .col-half {
    width: 100%;
  }
}

p.cf7-note {
  margin-top: -26px;
  margin-bottom: 25px;
}
p.cf7-note small {
  font-size: 0.8em;
  color: #999;
  display: block;
  line-height: 1.4;
}

.required-badge,
.optional {
  display: inline-block;
  color: #fff;
  font-size: 0.7em;
  padding: 2px 10px;
  margin-left: 5px;
  border-radius: 30px;
  font-weight: bold;
  vertical-align: middle;
}

.required-badge{
  background-color: #EF4444;
}

.optional{
  background-color: #9CA3AF;
}

.checkbox-group {
  margin-top: 10px;
  margin-bottom: 20px;
}

.checkbox-group .wpcf7-form-control{
  display: flex;
  flex-wrap: wrap;
}

.checkbox-group .wpcf7-list-item {
  display: block;
  margin-right: 20px;
  margin-left: 0;
  margin-bottom: 5px;
  font-size: 16px;
}

.checkbox-group .wpcf7-list-item label{
  font-weight: normal;
}

.checkbox-group input[type="checkbox"] {
    margin-right: 8px;
}

.privacy-section {
  text-align: center;
  margin-top: 25px;
  margin-bottom: 20px;
}

.privacy-section .wpcf7-list-item-label {
  font-size: 0.9em;
  color: #555;
}

.wpcf7 .customer-info{
  margin-bottom: 20px;
}

.wpcf7 .wpcf7-submit {
  display: block;
  width: 100%;
  max-width: 400px;
  margin: 0 auto;
  padding: 15px 30px;
  background-color: #2563EB;
  color: #ffffff;
  border: none;
  border-radius: 35px;
  font-size: 1.05em;
  font-weight: bold;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.wpcf7 .wpcf7-submit:hover {
  background-color: #3164b3;
}

.wpcf7-form ::-webkit-input-placeholder,
.wpcf7-form :-moz-placeholder,
.wpcf7-form ::-moz-placeholder,
.wpcf7-form :-ms-input-placeholder,
.wpcf7-form ::-ms-input-placeholder  {
  color: #9CA3B2;
  opacity: 1;
}

/* アップロードエリア */
.codedropz-upload-wrapper {
  padding: 0;
  margin: 0;
}

.codedropz-upload-handler {
  border: 2px dashed #ccc;
  padding: 10px;
  border-radius: 8px;
  text-align: center;
}

.codedropz-upload-inner h3 {
  font-size: 1.1em !important;
  font-weight: normal;
  color: #333;
  margin-top: 0;
  margin-bottom: 5px;
}

.codedropz-upload-inner > span {
  display: block;
  margin: 5px 0 10px;
  color: #6c757d;
  font-size: 0.9em;
}

.codedropz-btn-wrap {
  display: inline-block;
  margin-bottom: 0;
}

.cd-upload-btn {
  color: #007bff;
  text-decoration: none;
  font-weight: bold;
  transition: 0.3s ease;
}

.cd-upload-btn:hover{
  opacity: 0.8;
}

.dnd-upload-counter {
  display: none;
}

.codedropz-upload-inner::before {
  content: "\f03e";
  font-family: "Font Awesome 5 Free" !important;
  font-weight: 900;
  font-size: 48px;
  color: #ccc;
  display: block;
  margin-bottom: 10px;
  line-height: 1.2;
}

.codedropz-upload-wrapper .upload-hint-text {
  color: #6c757d;
  font-size: 14px;
  margin-top: 5px;
}

/*　ご職業(ラジオボタン全体をボタン風に) */
.job-select-group{
  margin-bottom: 30px;
}

.job-button-select {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px 10px; 
  margin-top: 10px;
}

@media (max-width: 768px) {
  .job-button-select {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .job-button-select {
    grid-template-columns: 1fr;
    gap: 8px 8px;
  }
}

.job-button-select input[type="radio"] {
  position: absolute;
  left: -9999px;
  z-index: -1; 
}

.job-button-select .wpcf7-list-item-label {
  display: inline-block;
  padding: 10px 20px;
  border: 1px solid #ccc;
  border-radius: 4px; 
  cursor: pointer;
  background-color: #FCFCFD;
  transition: all 0.2s ease;
  font-weight: normal;
  width: 100%;
  text-align: center;
  font-weight: bold;
}

.job-button-select .wpcf7-list-item-label:hover{
  border: 1px solid #2563EB;
}

.job-button-select .wpcf7-list-item{
  margin-left: 0;
}

.job-button-select label{
  margin-bottom: 0;
}

.job-button-select input[type="radio"]:checked ~ .wpcf7-list-item-label {
  background-color: #e6f0ff; 
  border-color: #007bff; 
  color: #007bff;
  font-weight: bold;
}

.job-button-select .wpcf7-list-item {
  display: inline-block;
  list-style: none;
}

.other-job-field {
  display: none;
  margin-top: -10px;
  margin-bottom: 30px;
}


/* お問い合わせ種類 */
.custom-tile-grid > p .wpcf7-form-control{
  display: grid;
  grid-template-columns: repeat(2, 1fr); 
  gap: 15px;
  margin-top: 10px;
  margin-bottom: 30px;
}

@media (max-width: 600px) {
  .custom-tile-grid > p .wpcf7-form-control {
    grid-template-columns: 1fr;
  }
}

.custom-tile-grid .wpcf7-list-item label {
  display: block;
  width: 100%;
  border: 1px solid #ddd;
  border-radius: 8px;
  background-color: #FDFDFE;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
  margin-bottom: 0;
}

.custom-tile-grid .wpcf7-list-item{
  margin-left: 0;
}

.custom-tile-grid .wpcf7-list-item label:hover {
  border: 1px solid #2563EB;
}

.custom-tile-grid .wpcf7-list-item input[type="checkbox"] {
  position: absolute;
  left: -9999px;
  z-index: -1;
}

.custom-tile-grid .wpcf7-list-item-label {
  display: flex;
  align-items: center;
  padding: 20px;
  box-sizing: border-box;
  background-color: transparent; 
  box-shadow: none;
  border-radius: 8px; 
}

.custom-tile-grid .wpcf7-list-item input[type="checkbox"]:checked ~ .wpcf7-list-item-label {
  background-color: #e6f0ff;
  box-shadow: 0 0 0 1px #2563EB;
  border-radius: 8px;
}

.custom-tile-grid .wpcf7-list-item input[type="checkbox"] ~ .wpcf7-list-item-label::after {
  content: "✔";
  position: absolute;
  top: 10px;
  right: 10px;
  width: 20px;
  height: 20px;
  background-color: #007bff;
  color: #fff;
  border-radius: 50%;
  text-align: center;
  line-height: 20px;
  font-size: 12px;
  font-weight: bold;
  z-index: 10;
  opacity: 0;
  transform: scale(0.5);
  visibility: hidden;
  transition: opacity 0.3s ease-out, transform 0.3s ease-out, visibility 0.3s;
}

.custom-tile-grid .wpcf7-list-item input[type="checkbox"]:checked ~ .wpcf7-list-item-label::after {
  opacity: 1;
  transform: scale(1);
  visibility: visible;
}

.tile-text-group {
  display: flex;
  flex-direction: column;
  margin-left: 15px;
  text-align: left;
}

.tile-title {
  font-size: 16px;
  font-weight: bold;
  color: #333;
}

.tile-subtitle {
  font-size: 12px;
  color: #6c757d;
  font-weight: normal;
}

.tile-icon {
  width: 40px;
  height: 40px;
  background-color: #DBEAFE;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "Font Awesome 5 Free" !important;
  font-weight: 900;
  font-size: 18px;
  color: #007bff;
}

.icon-calendar::before { content: "\f073"; }
.icon-calculator::before { content: "\f1ec"; }
.icon-flask::before { content: "\f0c3"; }
.icon-factory::before { content: "\f275"; }
.icon-comment-dots::before { content: "\f4ad"; }

.privacy-section a{
  color: #2563EB;
}

.privacy-section a:hover {
  text-decoration: underline;
}

.contact .contact_intro .c-container{
  padding: 0;
}

/* プリントサンプル集から飛んだ場合のラベル表示 */
#display-tech-name {
  display: none;
  background-color: #f3f4f6;
  color: #374151;
  padding: 10px 20px 10px 40px;
  border-radius: 5px;
  border-left: 4px solid #2563EB;
  font-weight: bold;
  margin-bottom: 20px;
  font-size: 0.95em;
  position: relative;
}
#display-tech-name::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-65%) rotate(45deg);
  width: 7px;
  height: 14px;
  border-right: 3px solid #2563EB;
  border-bottom: 3px solid #2563EB;
}

.wpcf7 form.sent .wpcf7-response-output {
	border: none;
	color: #2563EB;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
	border: none;
	color: #FD384A;
}



/*-------------------------
  工場見学のご予約
-------------------------*/
.required{
  color: #EF4444;
}

.tour-booking div.wpcf7{
  max-width: 1040px;
}

.tour-booking_form.contact-form-wrapper {
  display: flex;
  gap: 40px;
  flex-wrap: wrap;
}

.tour-booking_form h3{
  margin-bottom: 30px;
}

.calendar-section,
.info-section {
  flex: 1;
  min-width: 300px;
}

.tour-booking_form .wpcf7-radio .wpcf7-list-item.first{
  margin-left: 0;
}


.tour-booking_form_custom-line{
  display: block;
  background-color: #e5e7eb;
  margin: 20px 0;
  width: 100%;
  height: 1px;
}

.calendar-section .wpcf7-form-control-wrap{
  margin-bottom: 30px;
}

.tour-booking_form .flatpickr-calendar,
.tour-booking_form .flatpickr-innerContainer,
.tour-booking_form .flatpickr-rContainer,
.tour-booking_form .flatpickr-days {
  width: 100%;
  max-width: none;
  min-width: 0;
}

.tour-booking_form .flatpickr-calendar .dayContainer {
  width: 100%;
  min-width: 100%;
  max-width: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  transform: none; 
  position: static;
}

.tour-booking_form .flatpickr-day {
  width: calc(100% / 7);
  max-width: none;
  flex-basis: calc(100% / 7);
  flex-grow: 0;
  margin: 0;
  height: 45px;
  line-height: 45px;
  border: none;
  position: relative;
  background: transparent;
  z-index: 1;
  transition: color 0.3s ease;
  font-weight: bold;
}

.tour-booking_form .flatpickr-day.selected::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #2563EB;
  z-index: -1;
  transition: color 0.3s ease;
}

.tour-booking_form .flatpickr-day.selected {
  color: #fff;
  background: transparent;
  border-color: transparent;
}

.tour-booking_form .flatpickr-day:hover{
  color: #fff;
}

.tour-booking_form .flatpickr-day:hover::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #2563EB;
  color: #fff;
  z-index: -1;
}

.tour-booking_form .flatpickr-day.flatpickr-disabled:hover::after{
  content: none;
}

.tour-booking_form .flatpickr-day.nextMonthDay:hover,
.tour-booking_form .flatpickr-day.today:hover{
  background: transparent !important;
}

.tour-booking_form .flatpickr-day:hover {
  background: transparent;
}

.hidden-time {
  display: none
}

.time-buttons label input[type="radio"],
.no-input {
  display: none !important; 
}

.time-buttons label {
  display: block; 
  padding: 10px 15px;
  border: 1px solid #ccc;
  border-radius: 4px; 
  cursor: pointer;
  background-color: #f9f9f9; 
  transition: all 0.2s;
  text-align: center;
  font-size: 14px;
  font-weight: normal; 
}

.time-buttons label.is-selected {
  background-color: #2563EB;
  color: #fff;
  border-color: #2563EB;
  font-weight: bold; 
}

.time-buttons label:not(.is-selected):hover {
  border-color: #2563EB;
}

.tour-booking_form .flatpickr-prev-month,
.tour-booking_form .flatpickr-next-month {
  transition: all 0.3s ease-out; 
}

.tour-booking_form .flatpickr-prev-month:hover,
.tour-booking_form .flatpickr-next-month:hover {
  background-color: #f0f0f0;
  opacity: 0.8;
}

.tour-booking_form .flatpickr-day {
  transition: background-color 0.3s ease-out, border-color 0.2s ease-out;
}

.tour-booking_form .flatpickr-day.selected,
.tour-booking_form .flatpickr-day.selected:hover {
  background-color: #2563EB !important;
  border-color: #2563EB !important;
}

.tour-booking_form .flatpickr-day.today {
  border-color: #2563EB;
  transition: border-color 0.3s ease-in-out; 
}

.tour-booking_form .flatpickr-current-month input.cur-year{
  font-size: 16px !important;
  font-weight: 600 !important;
}

.tour-booking_form .wpcf7-form-control-wrap select,
.tour-booking_form .wpcf7-form-control-wrap .wpcf7-select {
  font-size: 16px !important; 
  font-weight: bold !important; 
  padding: 8px 10px; 
  height: auto; 
}

.tour-booking_form .wpcf7-form-control-wrap select option {
  font-size: 16px !important; 
  font-weight: bold !important; 
}

.tour-booking_form .flatpickr-months .flatpickr-current-month {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  margin: 0px;
  align-items: center;
}

.tour-booking_form .flatpickr-months{
  margin: 10px 0px;
}

.tour-booking_form .flatpickr-weekdaycontainer {
  display: flex;
  width: 100%;
  padding: 0;
}

.tour-booking_form .flatpickr-weekday {
  width: calc(100% / 7);
  flex-basis: calc(100% / 7);
  flex-grow: 0;
  text-align: center;
}

.tour-booking_form .flatpickr-day.selected {
  z-index: 2;
}

.tour-booking .c-entry__content .wp-block-group.alignfull.is-layout-constrained{
  background-color: inherit !important;
}


.hidden-time {
  display: none
}

.time-buttons label input[type="radio"],
.no-input {
  display: none !important; 
}

.time-buttons label {
  display: block; 
  padding: 10px 15px;
  border: 1px solid #ccc;
  border-radius: 4px; 
  cursor: pointer;
  background-color: #f9f9f9; 
  transition: all 0.2s;
  text-align: center;
  font-size: 14px;
  font-weight: normal; 
}

.time-buttons label.is-selected {
  background-color: #2563EB;
  color: #fff;
  border-color: #2563EB;
  font-weight: bold; 
}

.time-buttons label:not(.is-selected):hover {
  border-color: #2563EB;
}

.flatpickr-prev-month,
.flatpickr-next-month {
  transition: all 0.3s ease-out; 
}

.flatpickr-prev-month:hover,
.flatpickr-next-month:hover {
  background-color: #f0f0f0;
  opacity: 0.8;
}

.flatpickr-day {
  transition: background-color 0.3s ease-out, border-color 0.2s ease-out;
}

.flatpickr-day.selected,
.flatpickr-day.selected:hover {
  background-color: #2563EB !important;
  border-color: #2563EB !important;
}

.flatpickr-day.today {
  border-color: #2563EB;
  transition: border-color 0.3s ease-in-out; 
}

.flatpickr-current-month input.cur-year{
  font-size: 16px !important;
  font-weight: 600 !important;
}

.flatpickr-months .flatpickr-current-month {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  margin: 0px;
  align-items: center;
}

.flatpickr-months{
  margin: 10px 0px;
}