@charset "utf-8";
/* カラー */
:root {
    --color-bg-base: #5BD8D4;
    --color-bg-gold:#D0A900;
    --color-bg-be:#F6F5F1;
    --color-bg-light-base:#E6F8F7;
    --color-bg-light: #fff;
    --color-bg-mid:#ddf2f1;
    --color-bg-key:#FF7396;
    --color-bg-light-key:#FFE9EF;
    --color-bg-deep-base:#2a4450;
    --color-bg-dark: #000;
    --color-bg-button: #5BD8D4;
    --color-bg-button-hover: #387c7a;
    --color-bg-icon: #fff;
    --color-icon-base: #5BD8D4;
    --color-icon-gold:#D0A900;
    --color-icon-light: #fff;
    --color-icon-key: #FF7396;
    --color-font-light: #fff;
    --color-font-dark: #000;
    --color-font-key: #FD8E8E;
    --color-font-light-key:#FFE9EF;
    --color-font-base: #4fc6c3;
    --color-font-gold:#D0A900;
    --color-font-deep-base:#2a4450;
    --color-font-deep-key:#b66060;
}

html{
    scroll-behavior: smooth;
    box-sizing: border-box;
    background-color: var(--color-bg-light);
    font-family: dnp-shuei-mgothic-std, sans-serif;
    
}

body{
    overflow-x: hidden;
    scroll-behavior:smooth;
    box-sizing: border-box;
    background-color: var(--color-bg-light);
}

#header {
    width: 100%;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    background-color: transparent;
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

#header.scrolled {
    background-color: #ffffff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.header_container {
    width: 100%;
    max-width: 1200px; /* 必要に応じて調整 */
    margin: 0 auto; /* 中央揃え */
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo_wrapper {
    display: flex;
    align-items: center;
}
/* スマホ用のロゴ非表示 */
@media (max-width: 1024px) {
  .logo_wrapper {
    display: none;
  }
}

.logo_wrapper img {
    width: 33px;
    margin-right: 10px;
}

.company_name {
    font-size: 18px;
    font-weight: bold;
    color: var(--color-bg-deep-base);
}

.header_nav ul {
    display: flex;
    gap: 10px;
    flex-wrap: nowrap; /* 収まりきらない場合でも折り返さない */
    justify-content: flex-end;
}

.header_nav a {
    text-decoration: none;
    font-size: 14px; /* 文字サイズを少し小さく調整 */
    font-weight: bold;
    padding: 8px 16px; /* 余白を調整 */
    background-color: var(--color-bg-gold);
    color: var(--color-font-light);
    border-radius: 5px;
    transition: 0.3s;
    white-space: nowrap; /* テキストの折り返しを防ぐ */
}

@media only screen and (max-width: 600px) {
    .header_nav ul {
        align-items: flex-end;
    }
}

.header_nav a:hover {
    background-color: var(--color-hover-bg-key);
    color: var(--color-font-deep-base);
}

#sidebar {
    z-index:100;
    width: 130px; /* サイドバーの幅 */
    height: 100vh; /* 画面全体の高さ */
    position: fixed; /* 固定表示 */
    top: 0;
    left: 0;
    padding: 100px 20px 20px 0px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

#sidebar ul {
    display: flex;
    flex-direction: column;
    width: 100%;
}

#sidebar li {
    margin: 12px 0;
}

#sidebar li a {
    color:var(--color-font-deep-base);
    text-decoration: none;
    font-size: 16px;
}

/*コンテナ*/
.container800{
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
}

.container{
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}

/* ハンバーガーメニュー */
.hamburger {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 25px;
  height: 20px;
  cursor: pointer;
  z-index: 2000;
}

.hamburger span {
  height: 3px;
  background: var(--color-font-deep-base);
  border-radius: 2px;
  transition: 0.3s;
}


.hamburger.open span:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}

.hamburger.open span:nth-child(2) {
  opacity: 0;
}

.hamburger.open span:nth-child(3) {
  transform: rotate(-45deg) translate(5px, -5px);
}


/* ヘッダー・サイドメニューをモバイル用に隠す */
@media (max-width: 1024px) {
  .hamburger {
    display: flex;
    position: absolute;
    top: 25px;
    right: 20px;
  }

  #sidebar {
    display: none;
  }

  .header_nav.active,
  #sidebar.active {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 80px; /* headerの高さと揃える */
    right: 0;
    background: white;
    width: 70%;
    padding: 20px;
    z-index: 1500;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(6px);
    background-image: url('../img/32019889_m.jpg');
    background-size: cover;
    background-position: center;
    transition: all 0.3s ease;
  }

  /* サイドバーのロゴ配置 */
.sidebar_header {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 30px 0 30px;
}

.sidebar_header img {
  width: 220px;
  height: auto;
}

  .header_nav ul{
    gap: 15px;
  }

  #sidebar {
    top: 130px; /* メニューがかぶらないよう調整 */
    left: auto;
    
  }
}

/* ──────────────── */
/* モバイル用サイドバー調整 */
/* ──────────────── */
@media (max-width: 1024px) {
  /* 1) サイドバーの幅を80% に */
  #sidebar.active {
    width: 80%;
    /* 背景のぼかしを強めに */
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(8px);
  }

  /* 2) メニューアイテム間の余白を広く */
  #sidebar .inner_wrapper ul li {
    margin: 20px 0;
  }

  /* 3) メニューリンクのフォントサイズ＆色を調整 */
  #sidebar .inner_wrapper ul li a {
    font-size: 18px;
    color: var(--color-font-deep-base);
    padding: 8px 0;
  }
}

/* ──────────────── */
/* ハンバーガーアイコンの色を変える */
/* ──────────────── */
.hamburger span {
  background: var(--color-bg-deep-base);
}

.hamburger.open span {
  background: var(--color-bg-deep-base);
}

/* ──────────────── */
/* オーバーレイ挙動の改善 */
/* ──────────────── */
#sidebar.active::before {
  pointer-events: auto;
  opacity: 0.5; /* 半透明 */
}

/*モバイルインフォ*/
.info_flex_mobile{
    display: none;
    z-index:9999;
}
@media only screen and (max-width:750px){
    .info_flex_mobile{
        display: flex;
        position:fixed;
        width: 100%;
        max-width: 100%;
        bottom: 0; 
	}
}

.info_tel{
    font-weight: bold;

}
@media only screen and (max-width:750px){
    .info_tel{
        width: 100%;
        text-align: center;
        background-color: var(--color-bg-dark);
        padding:10px 0px;
	}
}

.info_mail{
    background-color:var(--color-bg-key);
    font-weight: bold;

}
.info_mail a{
    color:#fff;
    padding-left:10px;
    text-align: center;
}

@media only screen and (max-width:750px){
    .info_mail{
        width: 100%;
        text-align: center;
        padding:10px 0px;
	}
}

@media only screen and (max-width:750px){
    .info_mail a,.info_tel a{
        color:#fff;
        padding-left:0px;
        font-size:15px;
	}
}

/*ボタンリスト*/
.btn{
    padding:10px;
}


/*線*/
/*縦線　右*/
.sen_right{
    border-right:solid gray 1px;
}
@media (max-width: 650px) {
    .sen_right{
        border-right: 0;
    }
}

/*マーカー*/
.marker-be {
    background: linear-gradient(transparent 60%, #eee3db 0%);
    }

    .marker-pink {
    background: linear-gradient(transparent 60%, #ffdaed 0%);
    }

/*font*/
.font_yu{
    font-family :
	YuGothic,    /* Mac用 */
	'Yu Gothic', /* Windows用 */
	sans-serif;
}

.font_min{
    font-family :
	YuMincho,    /* Mac用 */
	'Yu Mincho', /* Windows用 */
	serif;
}

.font_fu{
    font-family: "futura-pt", sans-serif;
    font-weight: 500;
    font-style: normal;
}

.font_syuei{
    font-family: dnp-shuei-mgothic-std, sans-serif;
}

.font_hy{
    font-family: "hypatia-sans-pro", sans-serif;
}

/*PC非表示*/
.pc{
    display: none;
}
@media only screen and (max-width:650px){
	.pc{
    display: block;
	}
}

/*モバイル非表示logo*/
.mobile{
    
}

@media only screen and (max-width:750px){
	.mobile{
    display: none;
	}
}
@media only screen and (max-width:1000px){
	.mobile2{
    display: none;
	}
}
@media only screen and (max-width:600px){
	.mobile3{
    display: none;
	}
}

/*PCでクリックオフ＆モバイルでクリックオン*/
@media screen and (min-width: 960px) {
    .on_mobile{
        /*クリックを無効にしたい時*/
        pointer-events: none;
        }
    }
@media only screen and (max-width:480px){
	.on_mobile{
    /*クリックを有効にしたい時*/
	pointer-events: auto;
    /*クリックを無効にしたい時
	pointer-events: none;*/
	}
}


/*----------------------------
scroll_up ｜下から上へ出現
----------------------------*/
.scroll_up {
    transition: 0.8s ease-in-out;
    transform: translateY(70px);
    opacity: 0;
}
.scroll_up.on {
    transform: translateY(0);
    opacity: 1.0;
}
  
/*----------------------------
scroll_left ｜左から出現
----------------------------*/
.scroll_left {
    -webkit-transition: 0.8s ease-in-out;
    -moz-transition: 0.8s ease-in-out;
    -o-transition: 0.8s ease-in-out;
    transition: 0.8s ease-in-out;
    transform: translateX(-30px);
    opacity: 0;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
}
.scroll_left.on {
    opacity: 1.0;
    filter: alpha(opacity=100);
    -moz-opacity: 1.0;
    transform: translateX(0);
}

/*----------------------------
scroll_right ｜右から出現
----------------------------*/
.scroll_right {
    -webkit-transition: 0.8s ease-in-out;
    -moz-transition: 0.8s ease-in-out;
    -o-transition: 0.8s ease-in-out;
    transition: 0.8s ease-in-out;
    transform: translateX(30px);
    opacity: 0;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
}
.scroll_right.on {
    opacity: 1.0;
    filter: alpha(opacity=100);
    -moz-opacity: 1.0;
    transform: translateX(0);
}

/*タイミング*/
.timing02 {transition-delay: .2s;}
.timing03 {transition-delay: .4s;}
.timing04 {transition-delay: .6s;}
.timing05 {transition-delay: .8s;}
.timing06 {transition-delay: .10s;}
.timing07 {transition-delay: .12s;}

/*パンくずリスト*/
.cp_breadcrumb *, .cp_breadcrumb *:after, .cp_breadcrumb *:before {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}
.cp_breadcrumb {
	overflow: hidden;
	width: 100%;
	margin: 1em auto;
	padding-left: 20px;
	list-style: none;
    z-index: 1; /* パンくずリストのz-indexを低く設定 */
}
.cp_breadcrumb li {
	display: inline-block;
	margin: 0 1em 0.5em 0;
}
.cp_breadcrumb a {
	position: relative;
	z-index: 1;
	padding: 0.7em 1em 0.7em 2em;
	text-decoration: none;
	color: #ffffff;
	border-radius: 0.4em 0 0 0.4em;
	background: #71bbdc;
	display: inline-block;
	height: 40px;
	line-height: 1em;
	-webkit-transition:all 0.3s;
	transition: all 0.3s;
}
.cp_breadcrumb a:hover {
	background: #FFAB91;
}
.cp_breadcrumb a::after{
	background: #71bbdc;
	content: "";
	height: 2em;
	position: absolute;
	right: -1em;
	top: calc(50% - 1em);
	width: 2em;
	z-index: -1;
	transform: rotate(45deg);
	border-radius: .4em;
	-webkit-transition:all 0.3s;
	transition: all 0.3s;
}
.cp_breadcrumb a:hover::after {
	background: #FFAB91;
}
.cp_breadcrumb li:last-child a {
	cursor: default;
	pointer-events: none;
	color: black;
	background: transparent !important;
	font-weight: bold;
}
.cp_breadcrumb li:last-child a:hover {
	background: none;
}
.cp_breadcrumb li:last-child a::before,
.cp_breadcrumb li:last-child a::after {
	content: normal;
}


 /*各ページ共通項目*/

.main{

}

.wrapper {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}

.section_title{
    padding: 40px 0

}

.section_title2{
    margin: 0 auto;
    text-align: center;
    padding: 40px 0
}

.en_title {
    font-size: 40px;
    font-weight: bold;
    letter-spacing: 0.1em;
    margin-bottom: 10px;
    color:var(--color-font-deep-base);
    font-family: "futura-pt", sans-serif;
}

.circle {
    width: 10px; /* サイズ変更 */
    height: 10px; /* サイズ変更 */
    border-radius: 50%;
    background: var(--color-icon-key);
    display: block; /* 変更 */
    margin: 10px auto; /* 中央揃えにする */
}

.jp_title {
    margin-bottom: 20px;
}

/*お問い合わせセクション*/
.contact-section {
  background-color: #fff;
  padding: 80px 20px;
  text-align: center;
}

.contact-header .contact-desc {
  font-size: 14px;
  color: #666;
  margin-bottom: 5px;
}

.contact-tel {
  font-size: 28px;
  font-weight: bold;
  margin: 10px 0 40px;
  color: var(--color-font-deep-base);
}

.contact-boxes {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
  max-width: 1000px;
  margin: 0 auto;
  align-items: stretch; /* ← 追加 */
}

.contact-box {
  background-color: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  padding: 30px 20px 0 20px;
  flex: 1;
  min-width: 280px;
  max-width: 460px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  pointer-events: none; /* aタグ内で子要素のクリックに干渉させないため */
  height: 100%; /* ← 高さ揃える */
}

.contact-box .title {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 12px;
  color: var(--color-font-deep-base);
}

.contact-box .desc {
  font-size: 14px;
  margin-bottom: 20px;
  line-height: 1.6;
}

.contact-box img {
  width: 120px;
  height: auto;
}

.contact-box.line {
  background-color: #e4f8ec;
}

.contact-box.form {
  background-color: #eaf3f2;
}

.contact-link {
  text-decoration: none;
  color: inherit;
  display: flex; /* ← ブロックからflexに */
  flex: 1;
  min-width: 280px;
  max-width: 460px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  margin-bottom:40px;
}

.contact-link:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
}


/* フッター */

.footer {
  background: #fff;
  text-align: center;
  padding: 60px 20px;
}

.footer-brand img {
  width: 100%;
  max-width: 365px;
  margin-bottom: 10px;
}

.footer-brand h3 {
  font-size: 18px;
  font-weight: bold;
  margin: 10px 0 5px;
}

.footer-brand p {
  font-size: 14px;
  color: #333;
  line-height: 1.6;
}

.footer-sns {
  margin: 20px 0;
}

.footer-sns a img {
  width: 32px;
  margin: 0 8px;
  transition: opacity 0.3s;
}

.footer-sns a:hover img {
  opacity: 0.7;
}

.footer-nav {
  margin-top: 20px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.footer-nav a {
  font-size: 13px;
  color: #333;
  text-decoration: none;
}

.footer-nav a:hover {
  text-decoration: underline;
}

.copyright {
  font-size: 12px;
  margin-top: 30px;
  color: #666;
}
