@charset "utf-8";
/**
 * ウェブフォント
 */
@font-face {
  font-family: 'FontAwesome';
  src: url('./fonts/fontawesome-webfont.eot?v=4.1.0');
  src: url('./fonts/fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'), url('./fonts/fontawesome-webfont.woff?v=4.1.0') format('woff'), url('./fonts/fontawesome-webfont.ttf?v=4.1.0') format('truetype'), url('./fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}
.fa {
  display: inline-block;
  font-family: FontAwesome;
  font-style: normal;
  font-weight: normal;
  line-height: 1;
}
/* クローズボタン */
.fa-remove:before,
.fa-close:before,
.fa-times:before {
  content: "\f00d";
}
/* ナビコン */
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
  content: "\f0c9";
}
.fa-list-ul:before {
  content: "\f0ca";
}

/* コピーライト */
.fa-copyright:before {
  content: "\f1f9";
}
/**
 * BaseStyle
 */
html, body, header, main, footer, div, h1, h2, h3, h4, h5, a, img  {
	margin: 0;
	padding: 0;
}
html {
	font-family: 'Yu Gothic', '游ゴシック', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'Meiryo', 'メイリオ', Helvetica, Arial, sans-serif;
	font-size: 12px;
	color: #CCCCCC;
	line-height: 1.4;
	letter-spacing: .1em;
}
body {
	margin: 0;
}
article {
	margin: 0;
	padding: 0;
}
dl, ul {
	list-style: none;
}
h2, p, img {
	position: relative;
	z-index: 2;
	color: #CCCCCC;
}
p {
	margin: 0;
	padding: 0;
	line-height: 1.6;
	color: #CCCCCC;
}

a {
	color: #BA514C;
	text-decoration: none;
}
a:hover {
	color: #B77A4B;
}
a:visited {
	color: #9268AD;
}
a:active {
	color: #2E3E44;
}
img {
	width: 100%;
}
pre {
	padding: 1em;
	word-wrap: break-word;
}

#wrapper {	/* 全体*/
	position: relative;
	width: 100%;
	margin: 0 auto;
	text-align: center;
	overflow: hidden;
	height: 100%;
}

/*
 * HeaderStyle
 */
#site-header {
	position: relative;
	background-size: cover;
	color: #FFF;
}
#logo {
	position: absolute;
}
#site-title, #site-copy {
	text-shadow: 0 0 2px #000;
}
#site-copy {
}

#global-nav {
	width: 100%;
	position: fixed;
	border-top: solid 3px rgba(223, 33, 44, 1);
	right: 0;
	bottom: -57px;
	padding: 0;
	display: none;
	z-index: 2;
}
#global-nav ul {
	margin: 0;
	padding: 0;
	letter-spacing: -.4em;
	text-align: right;
}
#global-nav ul li {
	letter-spacing: normal;
	padding: 6px 12px 2px 12px;
	display: inline-block;
	vertical-align: bottom;
	background: rgba(223, 33, 44, 1);
}
#global-nav ul li:hover {
	background: rgba(223, 33, 44, .5);
}
#global-nav ul li a {
	color: #FFF;
}

#triangle-list {
	position: fixed;
	margin: 0;
	padding: 0;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 180px 200px 0 0;
	border-color: rgba(223, 33, 44, 1) transparent transparent transparent;
	display: none;
	z-index: 2;
	text-align: left;
}
#triangle-list li {
	position: absolute;
	min-width: 8em;
}
#triangle-list li a {
	font-size: 14px;
	color: #FFF;
}

/* スマホ版 固定ナビ */
.global-nav {
	position: fixed;
	padding: 5px 10px;
	color: #CCCCCC;
	top: .5em;
	left: 1em;
	z-index: 1;
	text-align: left !important;
}
.global-nav:hover {
	cursor: pointer;
}
.global-nav i {
	position: absolute;
	top: 0;
	left: 0;
	color: #CCCCCC;
	padding: 10px;
	background: rgba(161, 39, 46, .3);
}
ul#sp-nav-list {
	position: absolute;
	top: 0;
	left: 0;
	padding: 0;
	margin: 0;
	display: none;
	width: 140px;
}
ul#sp-nav-list li {
	padding: 8px 15px;
	background: rgba(161, 39, 46, .8);
	border-bottom: solid 1px rgba(239, 189, 191, .6);
}
ul#sp-nav-list li:last-child {
	border-bottom: none;
}
ul#sp-nav-list li a {
	color: #989898;
	display: block;
}
.sp-nav-btn {
}
#nav-close-btn {
	min-height: 18px;
	display: block;
}
#nav-close-btn:hover {
	cursor: pointer;
}
#nav-close-btn i {
	background: none;
}

/*
 * ArticleStyle
 */
#main-page {
	background: #F4F4F4;
}
.content-frame {
	position: relative;
	width; 100%;
	margin: 0 auto;
	padding: 0 1em;
	border-bottom: solid 1px #C9C8C7;
}
.content-frame:nth-child(odd) {
	background: #FFF;
	background: -webkit-gradient(linear, left top, left bottom, from(#FFFFFF), to(#F4F4F4));
	background-image: -webkit-linear-gradient(top, #FFFFFF, #F4F4F4);
	background: linear-gradient(to right, #FFFFFF, #F4F4F4);
}
.content-frame:nth-child(even) {
	background-image: url(http://siteonefinder.com/images/top-w.jpg);
	background-size: cover;
}
.article-header {
	position: relative;
	z-index: 1;
	margin-bottom: 2em;
}
.m-contents {
	position: relative;
	z-index: 1;
}
/* 2カラム */
.line-up-list {
	width: 100%;
	margin: 0 auto;
	padding: 0;
}
.line-up-list li {
	margin-bottom: 2em;
}
.line-up-list li img {
	width: 90%;
	text-align: center;
	vertical-align: bottom;
}
/* 左右コントラカラム */
.contra-space {
	width: 100%;
	margin: 3em auto;
	padding: 15px;
	background: rgba(252, 254, 248, .8);
	color: #666666;
	box-sizing: border-box;
}
.contra-title {
	border-bottom: dashed 1px #666666;
}
.contra-space .contra-image img {
	vertical-align: top;
}
/* 左右カラム */
.qa-list {
	width: 95%;
	margin: 0 auto;
	padding: 0;
	text-align: left;
	color: #666666;
}
.qa-title {
	font-size: 16px;
}
.qa-list p {
	font-size: 14px;
}
.qa-list li {
	width: 75%;
	padding: 15px 8px;
	background: #fff;
	border: solid 1px #CCCCCC;
}
.qa-list li:nth-child(odd){
	margin-bottom: 15px;
}
.qa-list li:nth-child(even){
	margin-left: 15%;
	margin-bottom: 4em;
}
.qa-title {
	border-bottom: dashed 1px #CCCCCC;
}
.qa-body {
	text-indent: 1em;
	padding: 10px 4px;
	color:#000000 !important;
}
/*
 * FooterStyle
 */
#page-footer {
	position: relative;
	padding: 15px;
	z-index: 2;
}
#page-footer a {
	color: #BA514C;
}
#page-footer a:hover {
	color: #B77A4B;
}
#ref-list dl {
	margin-top: 0;
	color: #BA514C;
	text-align: center;
}
#ref-list dl dt {
	margin-bottom: 1em;
}
#ref-list dl dd {
	display: inline-block;
}
#copyright {
	text-align: center;
}

/*
 * CommonStyle
 */
.skelton-btn {
	position: relative;
	margin: 2em auto;
	padding: 6px 12px;
	border: solid 2px #BA514C;
	color: #BA514C;
	border-radius: 5px;
	background: none;
	z-index: 2;
}
.skelton-btn:hover {
	cursor: pointer;
	color: #B77A4B;
	border: solid 2px #B77A4B;
}
.content-pict {
	max-width: 600px;
}
#loading-image {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 4;
	width: 100%;
	height: 100%;
	background: #000;
	color: #FFF;
	font-size: 12px;
}
#loading-image p#load-message {
	margin-top: 300px;
	text-align: center;
}
/*
 * MediaQuery
 */
@media screen and (min-width: 680px) {
	html {
		font-size: 16px;
	}
	#site-copy {
		font-weight: bold;
	}
	#down-btn {
		font-size: 24px;
	}
	#global-nav {
		bottom: 0;
		border-top: none;
		border-bottom: solid 3px rgba(223, 33, 44, 1);
		display: block;
	}
	.global-nav {
		display: none;
	}
	#triangle-list {
		display: block;
		border-width: 200px 320px 0 0;
	}
	#triangle-list li:first-child {
		left: 130px;
		top: -190px;
	}
	#triangle-list li:nth-child(2) {
		left: 100px;
		top: -165px;
	}
	#triangle-list li:nth-child(3) {
		left: 70px;
		top: -140px;
	}
	#triangle-list li:nth-child(4) {
		left: 40px;
		top: -120px;
	}
	#triangle-list li:nth-child(5) {
		left: 10px;
		top: -95px;
	}
	#triangle-list li:nth-child(6) {
		left: 10px;
		top: -70px;
	}
	.content-frame {
		padding: 0 20%;
	}
	.line-up-list li {
		width: 48%;
		display: inline-block;
	}
	#page-footer {
		font-size: 14px;

	}
	.qa-list li {
		width: 80%;
	}
	.catchcopy {
	}
	.contra-space:after {
		content: "";
		clear: both;
		display: block;
	}
	.contra-space p.contra-copy {
		text-align: left;
		text-indent: 1em;
	}
	.contra-space:nth-child(odd) .contra-image img {
		float: left;
	}
	.contra-space:nth-child(odd) p.contra-copy {
	}
	.contra-space:nth-child(even) .contra-image img {
		float: right;
	}
	.contra-space:nth-child(even) p.contra-copy {
	}
	.contra-space .contra-image img {
		max-width: 400px;
		height: auto;
	}
}
/* ===== ベース ===== */
html, body {
  margin: 0;
  padding: 0;
}
body {
  -webkit-text-size-adjust: 100%;
  line-height: 1.7;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  color: #222;
}
img, video {
  max-width: 100%;
  height: auto;
}
a { text-decoration: none; color: inherit; }
#wrapper { max-width: 1200px; margin: 0 auto; padding: 0 16px; }

/* ===== ヘッダー／ロゴ ===== */
#site-header { position: relative; padding: 32px 0 16px; }
#logo { text-align: center; }
#site-title { margin: .2em 0; font-size: clamp(22px, 3.6vw, 40px); }
#site-copy { margin: .4em 0 1em; font-size: clamp(14px, 2.2vw, 18px); }
.skelton-btn a { display: inline-block; padding: 10px 16px; border: 1px solid #333; border-radius: 6px; }

/* ===== トップの三角ナビをフレックス化 ===== */
#triangle-list {
  display: flex; gap: 8px; flex-wrap: wrap; justify-content: center;
  list-style: none; padding: 8px 0 0; margin: 0;
}
#triangle-list li { position: static !important; width: auto !important; }
#triangle-list a { display:inline-block; padding:8px 12px; border:1px solid #ddd; border-radius: 999px; }

/* ===== グローバルナビ（PC表示） ===== */
#global-nav { margin-top: 8px; }
#global-nav ul {
  display: flex; gap: 16px; list-style: none; padding: 0; margin: 0;
  justify-content: center; flex-wrap: wrap;
}
#global-nav a { padding: 10px 12px; }

/* ===== セクション ===== */
.content-frame { margin: 40px 0; }
.article-header h2 { font-size: clamp(20px, 3vw, 28px); margin: 0 0 .4em; }
.m-contents { margin-top: 16px; }

/* ===== 2カラム → モバイルで1カラム ===== */
.line-up-list {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px;
  list-style: none; padding: 0; margin: 0;
}
.line-up-list h3 { margin: .4em 0; font-size: clamp(16px, 2.6vw, 20px); }

/* ===== 料金表（テーブルの横スクロール対応） ===== */
.plans, .m-contents .contra-space { width: 100%; }
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-wrap table { min-width: 640px; }

/* 既存の料金部分をそのまま使う場合の見た目微調整 */
#price-information table { width: 100%; border-collapse: collapse; }
#price-information th, #price-information td {
  text-align: left; padding: 8px; border-bottom: 1px solid #eee; white-space: nowrap;
}

/* ===== 問い合わせフォーム ===== */
#firm-information input, 
#firm-information textarea {
  width: 100%; box-sizing: border-box; font-size: 16px; padding: 10px;
}
#firm-information table { width: 100%; border-collapse: collapse; }
#firm-information td { padding: 6px 0; }

/* ===== フッター ===== */
#page-footer { text-align: center; padding: 24px 0 40px; color:#666; }

/* ===== スマホ用ハンバーガー（既存の .global-nav を活かす） ===== */
.global-nav { position: fixed; right: 16px; bottom: 16px; z-index: 9999; }
.sp-nav-btn { font-size: 24px; padding: 10px; border:1px solid #333; border-radius: 999px; background:#fff; }
#sp-nav-list {
  position: fixed; right: 16px; bottom: 60px; background:#fff; border:1px solid #ddd; border-radius: 8px;
  list-style: none; padding: 8px; margin: 0; display: none; min-width: 200px;
}
#sp-nav-list li { padding: 6px 8px; }
#nav-close-btn { text-align: right; }

/* ===== ブレークポイント ===== */

/* 〜1024px：少し詰める */
@media (max-width: 1024px) {
  #global-nav ul { gap: 12px; }
  .line-up-list { gap: 16px; }
}

/* 〜768px：1カラム化、PCナビは非表示、スマホナビON */
@media (max-width: 768px) {
  #global-nav { display: none; }         /* PCナビを隠す */
  .line-up-list { grid-template-columns: 1fr; }
  #triangle-list { gap: 6px; }
  .content-pict { width: 100%; height: auto; }
  .article-header p { margin: .2em 0 0; }
  #wrapper { padding: 0 12px; }
  .table-wrap table { min-width: 520px; }
}

/* 〜480px：余白をさらに最適化、フォント縮小し過ぎ防止はclampに任せる */
@media (max-width: 480px) {
  .skelton-btn a { padding: 10px 14px; }
  #triangle-list a { padding:8px 10px; }
  .content-frame { margin: 28px 0; }
  #wrapper { padding: 0 10px; }
}
/* ===== Responsive Fix Patch ===== */

/* 画像のはみ出し防止 */
img { max-width: 100%; height: auto; }

/* wrapper の左右余白（スマホで詰める） */
#wrapper { max-width: 1200px; margin: 0 auto; padding: 0 16px; box-sizing: border-box; }
@media (max-width: 480px) { #wrapper { padding: 0 10px; } }

/* triangle-list をスマホで折り返し */
#triangle-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  list-style: none;
  padding: 8px 0 0;
  margin: 0;
}
#triangle-list li {
  position: static !important;
  left: auto !important;
  width: auto !important;
}
#triangle-list a {
  display: inline-block;
  padding: 8px 12px;
  border: 1px solid #ddd;
  border-radius: 999px;
  white-space: nowrap;
}

/* PCナビ（#global-nav）を整列、スマホでは非表示 */
#global-nav ul{
  display:flex; flex-wrap:wrap; gap:16px; justify-content:center;
  list-style:none; padding:0; margin:0;
}
@media (max-width: 768px){
  #global-nav { display:none; }
}

/* 2カラム（メリット）をモバイルで1カラムに */
.line-up-list{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  list-style:none; padding:0; margin:0;
}
@media (max-width: 768px){
  .line-up-list{ grid-template-columns: 1fr; }
}

/* フォーム：tableでも崩れないように入力を100%に */
#firm-information input,
#firm-information textarea{
  width: 100% !important;
  max-width: 520px;
  box-sizing: border-box;
  font-size: 16px !important; /* iOSズーム防止 */
  padding: 10px;
}
#firm-information table{ width:100%; border-collapse: collapse; }
#firm-information td{ padding: 6px 0; vertical-align: top; }

/* テーブルラッパー（横スクロール用） */
.table-wrap{ overflow-x:auto; -webkit-overflow-scrolling: touch; }
.table-wrap table{ min-width: 520px; }

/* Q&Aの改行が詰まる場合の余白 */
.qa-body{ margin: 0.6em 0 1.2em; line-height: 1.8; }

/* 文字サイズを端末に合わせる */
#site-title { font-size: clamp(22px, 3.6vw, 40px); }
#site-copy { font-size: clamp(14px, 2.2vw, 18px); }
.article-header h2{ font-size: clamp(20px, 3vw, 28px); }
