@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box;
	margin: 0;
	padding: 0;
}

body {
  font-size: 16px;
  margin: 0;
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: .1em;
  line-height: 1.7; }

.container { max-width: 80%; margin: 0 auto; padding: 0 20px; }
.bg-gray { background-color: #f9f9f9; }

ul {
    padding: 0; }

a {
    text-decoration: none;
    display: block;
    color: #333; 
	transition: .3s;
}
a:hover{
	opacity: 0.7;
}

li {
  list-style: none; }

.inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 80px 0; }

img {
  width: 100%;
  height: auto; }
.wrap{display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap;}

/* --- ヘッダー --- */
header { height: 80px; display: flex; align-items: center; position: fixed; width: 100%; background: rgba(255,255,255,1); z-index: 999; box-shadow: 0 2px 10px rgba(0,0,0,0.05); }
.header-inner { width: 90%; margin: 0 auto; display: flex; justify-content: space-between; align-items: center;}
.logo {width: 100px;}
.pc-nav { display: flex; align-items: center; }
.pc-nav ul { display: flex; list-style: none; margin-right: 50px; }
.pc-nav ul li { margin-left: 50px; font-size: 14px; font-weight: bold; }
.btn-top { background: linear-gradient(90deg, #495677, #6EC9F0); color: #fff; padding: 10px 30px; text-decoration: none; transition: 0.3s; position: relative;}
.btn-top::after{
	position: absolute;
	content: "";
	width: 0;
	height: 0;
	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
	border-left: 8px solid #fff;
	right: 8px;
	top: 50%;
	transform: translateY(-50%) translateX(-50%); 
}
.btn-top:hover { opacity: 0.8; }

/* --- メインビジュアル --- */
main{
	padding-top: 80px;
}
.hero {width: 100%;}
.hero-img { width: 100%; height: auto; display: block; }

/* --- セクションタイトル --- */
.section-title { text-align: center; margin-bottom: 40px; font-size: 24px; line-height: 1.4;}
.section-title span { display: block; color: #4C829E; font-size: 14px; letter-spacing: 0.2em; font-family: "Cabin", sans-serif;}

/* --- お知らせ --- */
.news { padding: 80px 20px; }
.news-list { max-width: 900px; margin: 0 auto;}
.news-item { padding: 20px 40px; border-bottom: 1px dotted #707070; display: flex; font-size: 15px; align-items: center;}
.news-item a{
	width: 100%;
}
.news-item .date { width: 15%; font-size: 14px;}

/* --- 製品紹介レイアウト --- */
.product-feature .section-title{
	text-align: left;
	 margin-bottom: 30px;
}
.product-feature { padding: 100px 0; }
.product-feature .container{
	display: flex;
	justify-content: space-between;
}
.flex-reverse { flex-direction: row-reverse; }
.product-img { width: 50%; display: flex;}
.product-img img { width: 100%; box-shadow: 0 5px 20px rgba(0,0,0,0.1); vertical-align: bottom; height: 100%; object-fit: cover;}
.product-text { width: 50%; background: #fff; padding: 70px 50px;}
.product-text h3{margin-bottom: 20px;}
.product-text p{
	font-size: 14px;
	line-height: 2;
}
.btn-detail { display: inline-block; background: linear-gradient(90deg, #495677, #6EC9F0); color: #fff; padding: 12px 50px; text-decoration: none; border-radius: 2px; transition: 0.3s; font-size: 14px; position: relative;}
.btn-detail::after{
	position: absolute;
	content: "";
	width: 0;
	height: 0;
	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
	border-left: 8px solid #fff;
	right: 8px;
	top: 50%;
	transform: translateY(-50%) translateX(-50%); 
}

.product-feature .btn-detail{
	margin-top: 45px;
}
#necklace{
	padding-bottom: 0;
}
#icaros{
	position: relative;
}
#icaros::after{
	position: absolute;
	content: "";
	background: #D9E8EF;
	width: 100%;
	height: 40vh;
	bottom: 0;
	left: 0
}

/* --- カードグリッド --- */
.product-feature .container.product-grid{max-width: 1100px;position: relative;z-index: 100;}
.product-grid {display: flex; justify-content: space-between; align-items: center; margin-top: -50px;}
.card { background: #fff; padding: 30px;box-shadow: 0 10px 40px rgba(0,0,0,0.05); width: 32%;}
.card img { width: 100%; margin-bottom: 20px; box-shadow: 0 10px 40px rgba(0,0,0,0.05);}
.card h4 { font-size: 16px; color: #4C829E; font-family: "Cabin", sans-serif; text-align: center;}

/* --- 会社概要（背景固定） --- */
.company-bg .section-title, .company-bg .section-title span{color: #fff;}
.company-bg { background: url("../img/city-bg.jpg")center/cover no-repeat; padding: 120px 0; }
.company-card { background: #fff; max-width: 900px !important; padding: 0;}
.company-table { width: 100%; border-collapse: collapse; }
.company-table th, .company-table td { padding: 25px 20px; border-bottom: 1px solid #eee; text-align: left; }
.company-table th { width: 30%; white-space: nowrap; background: #F4F4F4; font-weight: normal;}

/* --- お問い合わせエリア --- */
.contact-area { background: #f0f2f5; padding: 100px 0; }
.contact-container { display: flex; gap: 20px; }
.contact-item { flex: 1; background: #fff; padding: 40px 20px; text-align: center; box-shadow: 0 5px 15px rgba(0,0,0,0.05); border-radius: 5px;}
.contact-item .icon {display: block; margin: 0 auto; width: 20%;}
.contact-item p{font-weight: bold; color: #5C5C5C;}
.contact-area .btn-detail{margin-top: 15px; font-size: 14px;}
.contact-item a.en{
	font-family: "Cabin", sans-serif;
	font-size: 30px;
	font-weight: bold;
	color: #4C6082;
	margin-top: 15px;
	line-height: 1;
}
.contact-item a.en span{
	font-size: 16px;
}
.contact-item small{
	font-size: 12px;
}

/* --- フッター --- */
footer { text-align: center; padding: 60px 0 0; background: #fff; border-top: 1px solid #eee; }
.footer-logo{
	width: 120px;
	margin: auto;
}
.footer-links { display: flex; justify-content: center; list-style: none; margin: 50px 0 0; gap: 30px; font-size: 13px; font-weight: 600;}
.copyright { font-size: 12px; color: #fff; background: linear-gradient(90deg, #495677, #6EC9F0); padding: 20px 0; margin-top: 40px;}
.footer_info{font-size: 14px; text-align: center;}


/* --- サブページ共通 --- */
.sub_kv{
	background: url("../img/necklace.jpg")no-repeat center;
	background-size: cover;
	height: 300px;
	position: relative;
}
.sub_kv.cta_bg{
	background: url("../img/contact_bg.jpg")no-repeat center;
	background-size: cover;
}
.sub_kv.icaros_bg{
	background: url("../img/icaros_bg.jpg")no-repeat;
	background-position: 50% 60%;
	background-size: cover;
}
.sub_kv::after{
	background: rgba(0,0,0,0.55);
	position: absolute;
	content: "";
	width: 100%;
	height: 300px;
	top: 0;
	left: 0;
}
.sub_kv h1{
	position: absolute;
	font-size: 28px;
	left: 50%;
	top: 50%;
	transform: translateY(-50%) translateX(-50%);
	color: #fff;
	z-index: 100;
}

/* --- ネックレスページ --- */
.necklace_head{
	background: #f5f5f5;
}
.necklace_head .container{
	padding: 100px 0;
}
.head_title{
    font-size: 30px;
    font-weight: 600;
    margin-bottom: 30px;
	text-align: center;
}

.lead {
  max-width: 800px;
  margin: 0 auto 60px;
	text-align: center;
}

.content-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  text-align: left;
}
.box{
	background: #ffffff;
    padding: 40px 30px;
    border-radius: 6px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
    transition: all 0.3s ease;
}
.box h3 {
  font-size: 18px;
  margin-bottom: 15px;
  padding-bottom: 8px;
  border-bottom: 1px solid #ccc;
	text-align: center;
}

.box ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.box li {
  margin-bottom: 10px;
  padding-left: 15px;
  position: relative;
  font-size: 15px;
  line-height: 1.6;
}

.box li::before {
  content: "";
  width: 6px;
  height: 6px;
  background: #111;
  border-radius: 50%;
  position: absolute;
  left: 0;
  top: 8px;
}
.flow{
	margin-top: 80px;
}
.flow .section-title{
	width: 50%;
    margin: 0 auto 40px;
    color: #fff;
    background: #4C829E;
    padding: 10px 0;
    border-radius: 20px;
	position: relative;
}
.flow .section-title::after{
	content: "";
    position: absolute;
    bottom: -30px;
    left: 50%;
    border: 15px solid transparent;
	border-top: 16px solid #4C829E;
	transform: translate(-50%, 0);
}
.flow .section-title span{
	color: #fff;
}

/* ---特徴--- */
.feature{
	padding: 100px 0;
}
.feature .container {
    display: flex;
    justify-content: space-between;
}
.feature .product-img img{
	box-shadow: none;
}
.gallery{
	background: #f5f5f5;
	padding: 100px 0;
}
.gallery ul{
	display: flex;
	flex-wrap: wrap;
}
.gallery ul li{
	width: 31%;
	margin: 0 1% 30px;
	text-align: center;
}
.feature{
	padding: 60px 0;
}
.feature .container{
	flex-wrap: wrap;
}
.contact_form{
	padding: 100px 0;
}
.contact_form .small{
	font-size: 12px;
	padding-top: 10px;
}

/*------イカロスページ-----------*/
.icaros-products .container .section-title{
	text-align: left;
}
.icaros-products .img_area{
	width: 50%;
}
.icaros-products .text_area{
	width: 46%;
}
.icaros-products .text_area h3{
	font-size: 22px;
	margin-bottom: 20px;
}
.icaros-products .text_area p{
	padding-bottom: 20px;
}
.icaros-products .text_area .btn-detail{
	margin-top: 30px;
	font-size: 16px;
	padding: 16px 50px;
}
.icaros-products .container{
	padding: 100px 0;
}
.icaros-cloud{
	background: #f5f5f5;
}

/* 選択されているサムネイルのスタイル */
.slider-thumb .slick-current img {
  border: 2px solid #ff0000;
  opacity: 1;
}

.slider-thumb img {
  opacity: 0.5;
  transition: opacity 0.3s;
  cursor: pointer;
}
.slick-prev:before, .slick-next:before{
	display: none;
}

.single_content .container{
	max-width: 900px;
}

/* 動画全体のレイアウト */
.video {
  width: 100%;
  max-width: 900px; /* 動画が広がりすぎないように最大幅を設定 */
  margin: 0 auto;
  padding: 0 0 100px;
}

/* 動画の外枠（レスポンシブの肝） */
.video-container {
  width: 100%;
  aspect-ratio: 16 / 9; /* 16:9の比率を維持 */
}

/* iframeを枠いっぱいに広げる */
.video-container iframe {
  width: 100%;
  height: 100%;
}

/* タイトルの装飾（例） */
.section-title {
  text-align: center;
  margin-bottom: 20px;
  font-size: 1.5rem;
}
.price-line {
  display: flex;
  justify-content: space-between;
  align-items: baseline; 
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  padding: 15px 0;
  border-bottom: 2px solid #333;
  font-family: "Cabin", sans-serif;
}

/* 商品名のスタイル */
.product-label {
  font-size: 1.1rem;
  font-weight: bold;
  color: #333;
}

/* 価格部分のスタイル */
.price-amount {
  font-size: 1.8rem; /* 金額を強調 */
  font-weight: 800;
  color: #000;
}

/* 「¥」記号を少し小さく */
.price-amount small {
  font-size: 1.2rem;
  margin-right: 2px;
}

/* 「（税抜）」のスタイル */
.tax-suffix {
  font-size: 0.9rem;
  font-weight: normal;
  color: #666;
  margin-left: 8px;
}

/* スマホ表示の調整：幅が狭い場合は縦に並べる */
@media (max-width: 480px) {
  .price-line {
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
  }
}

.single_main .inner{
	padding-top: 150px;
}
.single_main .inner .content h2{
	padding: 0.4em 0.5em;/*文字の上下 左右の余白*/
    color: #494949;/*文字色*/
    background: #f4f4f4;/*背景色*/
    border-left: solid 5px #495677;/*左線*/
    border-bottom: solid 3px #d7d7d7;/*下線*/
}
.single_main .inner .content h3, .single_main .inner .content h4, .single_main .inner .content h5{
	padding: 0.4em 0.5em;
	border-left: solid 5px #495677;
}
.single_main h1{
	padding-bottom: 15px;
	border-bottom: 1px solid #707070;
	margin-bottom: 30px;
}
.cta_main{
	padding: 100px;
	text-align: center;
}
.cta_main .btn-detail{
	margin-top: 40px;
}

/* --- レスポンシブ (スマホ対応) --- */
@media screen and (max-width: 768px) {
    .pc-nav { display: none; } /* 本来はハンバーガーメニューにする */
    
    .product-feature { padding: 60px 0; }
    
    .company-card { padding: 30px 20px; }
    .company-table th, .company-table td { display: block; width: 100%; padding: 15px; font-size: 14px;}
    .company-table th { border-bottom: none; }

    .contact-container { flex-direction: column; }
	footer{margin: 0 15px;}
}
@media (max-width: 768px) {
	.pc_only{
		display: none!important;
	}
	
  header {
    height: 70px; }

  header .header-inner {
    height: 70px; }
	
	.logo{width: 80px;}
	.logo img{vertical-align: bottom;}

  #nav-toggle {
    position: fixed;
    top: 15px;
    right: 15px;
    height: 40px;
	  width: 40px;
    cursor: pointer;
    background: linear-gradient(90deg, #495677, #6EC9F0);
    padding: 10px; }
    #nav-toggle > div {
      position: relative;
      width: 30px; }
    #nav-toggle span {
      width: 85%;
      height: 3px;
      left: -3px;
      display: block;
      background: #fff;
      position: absolute;
      transition: transform .4s ease-in-out, top .3s ease; }
      #nav-toggle span:nth-child(1) {
        top: 3px; }
      #nav-toggle span:nth-child(2) {
        top: 10px; }
      #nav-toggle span:nth-child(3) {
        top: 17px; }

  .open #nav-toggle span {
    background: #fff; }
    .open #nav-toggle span:nth-child(1) {
      top: 10px;
      transform: rotate(45deg); }
    .open #nav-toggle span:nth-child(2) {
      top: 10px;
      width: 0;
      left: 50%; }
    .open #nav-toggle span:nth-child(3) {
      top: 10px;
      width: 26px;
      transform: rotate(-45deg); }

  #nav-toggle {
    z-index: 1000; }

  #gloval-nav {
    background: #fff;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
	  padding: 80px 30px 0;
    z-index: 990;
    display: flex;
    visibility: hidden;
    font-size: 18px;
    opacity: 0;
    transition: opacity .4s ease, visibility .4s ease; }
	
	#gloval-nav nav{
		width: 100%;
	}

  #gloval-nav a {
    display: block;
    text-decoration: none;
	  font-weight: bold;
	  font-size: 18px;
    transition: color .4s ease; }
  #gloval-nav ul {
    list-style: none;
    padding: 0; }
  #gloval-nav .gloval_btn {
    margin: 15px 0;
    background: #e73838;
    width: 100%; }
    #gloval-nav .gloval_btn a {
      padding: 5px 15px;
      color: #fff; }
      #gloval-nav .gloval_btn a p {
        margin: 0;
        color: #fff; }

  /* open */
  .open {
    overflow: hidden; }
    .open #gloval-nav {
      visibility: visible;
      opacity: 1; }
    .open #gloval-nav ul {
      padding: 0; }
    .open #gloval-nav li {
		position: relative;
		padding: 25px 15px;
        border-bottom: 1px solid #eee;
      opacity: 1;
      transform: translateX(0);
      transition: transform 1s ease, opacity .9s ease; }
	.open #gloval-nav li::after{
		position: absolute;
		content: "";
		width: 0;
		height: 0;
		border-top: 6px solid transparent;
		border-bottom: 6px solid transparent;
		border-left: 8px solid #333;
		right: 8px;
		top: 50%;
		transform: translateY(-50%) translateX(-50%); 
	}
	
	
/*-----------トップページ---------------------------*/
	main{
		padding-top: 70px;
	}
	.container{
		max-width: 100%;
		margin: 0 15px;
		padding: 0;
	}
	.news{
		padding: 60px 0;
	}
	.news-item{
		padding: 20px;
	}
	.section-title{
		margin-bottom: 30px;
	}
	.product-img, .product-text{
		width: 100%;
	}
	.product-text{
		padding: 40px 20px;
	}
	.product-text h3{
		font-size: 18px;
	}
	.product-img{
		height: 350px;
	}
	.product-img img{
		object-fit: cover;
		height: 350px;
	}
	.btn-detail{
		width: 100%;
		text-align: center;
		padding: 15px 0;
	}
	.copyright{
		margin: 40px -15px 0;
		font-size: 10px;
		padding: 15px 0
	}
	.footer-links{
		gap: 18px;
		flex-wrap: wrap;
	}
	.footer_info{
		line-height: 2;
	}
	.contact-area, .company-bg{
		padding: 60px 0;
	}
	.product-feature .container{
		flex-wrap: wrap;
		justify-content: space-around;
	}
	.card{
		width: 48%;
		padding: 10px 10px 20px;
	}
	.card img{
		margin-bottom: 10px;
	}
	.card h4{
		line-height: 1;
	}
	#icaros .container .product-text{
		padding-bottom: 60px;
	}
	.product-feature .container.product-grid{
		width: 100%;
        margin: -30px 0 0;
	}
	.product-feature .container.product-grid .card:nth-child(3){
		margin-top: 15px;
	}
	#icaros::after{
		height: 48vh;
	}
	.content-grid {
		grid-template-columns: 1fr;
		gap: 30px;
	  }

	  .magnetic-oem {
		padding: 70px 20px;
	  }

	  .section-title {
		font-size: 24px;
	  }
	
	.sub_kv, .sub_kv::after{
		height: 200px;
	}
	.sub_kv h1{
		width: 100%;
		text-align: center;
		font-size: 24px;
	}
	.necklace_head .container{
		padding: 60px 0;
	}
	.head_title{
		font-size: 24px;
	}
	.lead{
		text-align: left;
	}
	.gallery ul li{
		width: 48%;
	}
	.mobile-scroll {width: 100%; overflow-x: scroll;}
	.mobile-scroll img{
		height: 600px;
		width: auto;
	}
	.feature .product-text{
		padding: 40px 0 0;
	}
	.gallery{
		padding: 60px 0;
	}
	.gallery ul li p{
		font-size: 14px;
	}
	.contact_form{
		padding: 60px 0;
	}
	.icaros-products .text_area, .icaros-products .img_area{width: 100%;}
	.icaros-products .container{padding: 60px 0;}
	.video{
		max-width: 100%;
		width: auto;
		margin: 0 15px;
	}
	.single_main .inner{
		margin: 0 15px;
	}
	.flow .section-title{
		width: 100%;
		font-size: 20px;
	}
	.gallery ul li p{
		font-size: 14px;
	}
	.cta_main{
		padding: 60px 0;
	}
}
@media (min-width: 769px) {
  .sp_only{
	  display: none!important;
	}
	
  header .header_inner #logo {
    margin-left: 2em; }

  #sp_navi {
    display: none; }
}
@media (min-width: 1400px) {
	.container{
		max-width: 70%;
	}
}

/*----------------------------コンタクトフォーム-----------------------------*/
/* デザインカスタマイズ */
div.wpcf7 { 
	padding:0px; }
div.wpcf7 p { 
	padding: 0; 
	margin:0; 
	font-size: 16px;
	line-height: 100%;
	 }
div.wpcf7 p.form_ttl{
	padding-top:40px; 
}
div.wpcf7 input.wpcf7-text, .wpcf7 textarea { 
	border:1px solid #707070; 
	padding:16px; font-size:14px; 
	line-height: 100%; color: #999; 
	margin-top: 15px; width: 100%; 
	border-radius: 0;
	background: #f5f5f5;
	font-weight: normal;}
input[type=text]:focus{
	border-radius: 0;
}
div.wpcf7 textarea { width:100%; height:200px; }
.wpcf7-acceptance{text-align: center; padding-top: 50px;}
.wpcf7 input[type="submit"] {
  cursor:pointer; margin: 0 auto; display:block;  border-radius: 100px!important;
	background: linear-gradient(90deg, #495677, #6EC9F0);
    position: relative;
    display: flex;
	justify-content: center;
    align-items: center;
	width: 350px;
    padding: 20px;
    color: #fff;
    font-size: 18px;
    letter-spacing: .1rem;
    font-weight: 500;
}
.form_main p.grey{
	padding-top: 5px;
	color: #999;
	font-size: 14px;
}
.submit{position: relative;}
.submit::after{
	position: absolute;
	content: "";
    width: 30px;
    height: 10px;
	z-index: 1;
	left: 58%;
	top: 60%;
	border-bottom: 2px solid #000;
   border-right: 2px solid #000;
    transform: skew(45deg);
}
.wpcf7 input.wpcf7-submit:active { box-shadow:none; bottom:-2px; position:relative; }
.wpcf7 input:focus, .wpcf7 textarea:focus { border:1px solid #009de1; }
.wpcf7-captchac { border:1px solid #ccc; }
.wpcf7-form-control.wpcf7-radio .wpcf7-list-item{
	margin-top: 10px; 
	margin-left: 0; 
	font-weight: 400;
font-size: 14px;
line-height: 170%;
	display: block;}
.wpcf7-form-control.wpcf7-radio .wpcf7-list-item:nth-child(1){
	margin-top: 16px;
}
.wpcf7-date, .wpcf7-select{
	margin-top: 10px;
	font-weight: normal;
	width: 100%;
	color: #999;
	font-size: 14px;
	line-height: 100%;
	padding: 10px 15px;
}
.menu-338{
	margin-left: 10px;
}
.menu-338, .date-944{
	display: inline-block;
	width: 35%;
}
 
 
/* エラー個所をわかりやすく表示 */
.wpcf7 .wpcf7-not-valid { background: #ffb6c1; }
.wpcf7 span.wpcf7-not-valid-tip {font-size: 80%;}
.wpcf7 .wpcf7-response-output {margin: 10px 0 0; padding: 8px 35px 8px 14px; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
    -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; }
.wpcf7 .wpcf7-validation-errors {color: #B94A48; background-color: #F2DEDE; border: 1px solid #EED3D7;}
.wpcf7 .wpcf7-mail-sent-ok {color: #3A87AD; background-color: #D9EDF7; border: 1px solid #BCE8F1;}
 
/* 必須赤色表示 */
.wpcf7 .required { 
	background: #E84747;
	color: #fff;
	padding: 3px 10px;
	border-radius: 20px;
	margin-left: 10px;
	font-size: 12px;
}
.wpcf7 .normal{
	font-weight: normal;
	font-size: 14px;
}

input :not(*):placeholder-shown, div.wpcf7 input.wpcf7-text, .wpcf7 textarea{
	color: #333;
}
input[type="text"]:focus, input[type="email"]:focus, textarea{
	outline: none;
	outline-color: #333;
}
.form_main{
	margin-top: 50px;
}
.form_main .center{
	text-align: center;
	margin: 30px 0;
}
.form_main a{
	display: inline-block;
}

@media (min-width: 768px){
	.wpcf7-form-control.wpcf7-radio .wpcf7-list-item{
		display: inline-block;
		margin-left: 20px;
	}
}

@media (max-width: 767px){
	div.wpcf7 input.wpcf7-submit{
		width: 100%;
	}
}

/*# sourceMappingURL=style.css.map */
