/* ============================================================
   site.css — perkeo.jp
   (normalize + grid + style を統合・未使用ルール削除済み)
   ============================================================ */

/* ----------------------------------------------------------
   1. Modern Reset (normalize.css v2 相当の必要部分のみ)
   ---------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

article, aside, details, figcaption, figure,
footer, header, nav, section, summary { display: block; }

html {
	font-size: 100%;
	-webkit-text-size-adjust: 100%;
	text-rendering: optimizelegibility;
}
body { margin: 0; }

a:focus { outline: thin dotted; }
a:active, a:hover { outline: 0; }

h1 { font-size: 2em; }

b, strong { font-weight: bold; }

img {
	max-width: 100%;
	height: auto;
	border: 0;
	vertical-align: middle;
}

svg:not(:root) { overflow: hidden; }
figure { margin: 0; }

table {
	max-width: 100%;
	background-color: transparent;
	border-collapse: collapse;
	border-spacing: 0;
}

/* ----------------------------------------------------------
   2. Grid (Bootstrap 2.2.1 — 使用クラスのみ抽出)
   ---------------------------------------------------------- */
.row {
	margin-left: -20px;
}
.row::before,
.row::after {
	display: table;
	content: "";
	line-height: 0;
}
.row::after { clear: both; }

[class*="span"] {
	float: left;
	min-height: 1px;
	margin-left: 20px;
}

.container {
	width: 100%;
	max-width: 1170px;
	margin-right: auto;
	margin-left: auto;
}
.container::before,
.container::after {
	display: table;
	content: "";
	line-height: 0;
}
.container::after { clear: both; }

.span12 { width: 940px; }
.span8  { width: 620px; }
.span7  { width: 540px; }
.span5  { width: 380px; }
.span4  { width: 300px; }
.span3  { width: 220px; }

/* 768px–979px */
@media (min-width: 768px) and (max-width: 979px) {
	.container { width: 724px; }
	.span12 { width: 724px; }
	.span8  { width: 476px; }
	.span7  { width: 414px; }
	.span5  { width: 290px; }
	.span4  { width: 228px; }
	.span3  { width: 166px; }
}

/* 1200px+ */
@media (min-width: 1200px) {
	.row { margin-left: -30px; }
	[class*="span"] { margin-left: 30px; }
	.container { max-width: 1170px; }
	.span12 { width: 1170px; }
	.span8  { width: 770px; }
	.span7  { width: 670px; }
	.span5  { width: 470px; }
	.span4  { width: 370px; }
	.span3  { width: 270px; }
}

/* 767px以下 — 全スパンをブロック化 */
@media (max-width: 767px) {
	.container { width: 100%; padding-left: 15px; padding-right: 15px; }
	.row { margin-left: 0; }
	[class*="span"] {
		float: none;
		display: block;
		width: 100%;
		margin-left: 0;
	}
}

/* ----------------------------------------------------------
   3. Base Styles
   ---------------------------------------------------------- */
body {
	font-family: "Rounded Mplus 1c", "Helvetica Neue", Helvetica, Arial,
	             "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN",
	             "メイリオ", Meiryo, sans-serif;
	font-size: 14px;
	line-height: 1.5;
	color: #333;
	background-color: #fff;
	-webkit-font-smoothing: antialiased;
}

a {
	text-decoration: none;
	transition: color 0.1s linear, border 0.1s linear, opacity 0.1s linear, background-color 0.1s linear;
}
a:hover, a:focus { text-decoration: none; border: none; }

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 10px;
	font-weight: normal;
	line-height: 1.3;
	color: inherit;
	font-family: "Rounded Mplus 1c", "Helvetica Neue", Helvetica, Arial,
	             "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN",
	             "メイリオ", Meiryo, sans-serif;
	text-transform: uppercase;
}
h1, h2 { line-height: 1.4; letter-spacing: 3px; }
h1 { font-size: 40px; }
h2 { font-size: 32px; }
h3 { font-size: 24px; letter-spacing: 2px; }
h4 { font-size: 18px; letter-spacing: 1px; }
h5 { font-size: 14px; letter-spacing: 1px; }
h6 { font-size: 12px; }

p { color: #666; font-size: 13px; line-height: 1.5; }

/* ----------------------------------------------------------
   4. Color Theme (color-1 のみ)
   ---------------------------------------------------------- */
body.color-1::selection        { background: #3498db; color: #fff; }
body.color-1::-moz-selection   { background: #3498db; color: #fff; }
body.color-1 a {
	color: #3498db;
	border-bottom: 1px solid #3498db;
}
body.color-1 nav#top-nav #fixed-nav li a:hover { color: #3498db; }
body.color-1 nav#top-nav #fixed-nav li.current a { border-bottom: 3px solid #3498db; }
body.color-1 .bg-color  { background: #3498db; }
body.color-1 hr         { border-bottom: 1px solid #3498db; }
body.color-1 span.highlight { color: #3498db; }
body.color-1 #footer {
	font-weight: bold;
	background: #3498db;
	color: #fff;
	text-align: center;
	font-size: 13px;
	padding: 20px 0;
}

/* ----------------------------------------------------------
   5. Header & Navigation
   ---------------------------------------------------------- */
#header {
	top: 0;
	border-bottom: 1px solid #D6D6D6;
	width: 100%;
	background: rgba(255, 255, 255, 0.9);
	position: fixed;
	height: 68px;
	z-index: 1;
}
#header .container {
	height: 100%;
}
#header .row {
	display: flex;
	align-items: center;
	height: 100%;
	margin-left: 0;
}

#nav-button { display: none; }

#logo {
	display: block;
	border: none;
	margin: 0 auto 0 20px;
	flex: 1;
}
#logo a { color: #333; text-decoration: none; border: none; }

nav#top-nav { margin-top: 0; }
nav#top-nav ul {
	font-family: "Rounded Mplus 1c", "Montserrat", sans-serif;
	float: none;
	margin: 0;
	list-style: none;
	padding: 0;
}
nav#top-nav #fixed-nav li {
	display: inline-block;
	margin-left: 20px;
}
nav#top-nav #fixed-nav li:first-child { margin-left: 0; }
nav#top-nav #fixed-nav li a {
	color: #333;
	font-weight: 700;
	text-transform: uppercase;
	font-size: 12px;
	border: none;
	position: relative;
	display: inline-block;
	padding-bottom: 2px;
}
nav#top-nav #fixed-nav li a::after {
	content: attr(data-ja);
	position: absolute;
	left: 50%;
	top: 100%;
	transform: translateX(-50%) translateY(-4px);
	font-size: 10px;
	font-weight: normal;
	text-transform: none;
	color: #3498db;
	white-space: nowrap;
	opacity: 0;
	transition: opacity 0.2s ease, transform 0.2s ease;
	pointer-events: none;
}
nav#top-nav #fixed-nav li a:hover::after {
	opacity: 1;
	transform: translateX(-50%) translateY(2px);
}
nav#top-nav #fixed-nav li a:hover { text-decoration: none; }
nav#top-nav #fixed-nav li.current a { color: #333; padding-bottom: 5px; }

/* ----------------------------------------------------------
   6. Hero Section
   ---------------------------------------------------------- */
.hero {
	border-bottom: 1px solid #e1e1e1;
	display: inline-block;
	width: 100%;
	margin-top: 68px;
	height: 150px;
}
.home .hero {
	margin-top: 0;
	min-height: 100vh;
	height: auto;
	display: flex;
	align-items: center;
}

.slogan {
	height: 100%;
	text-align: center;
	width: 100%;
}
.slogan h1 {
	text-shadow: 2px 2px 2px #333;
	color: #fff;
	font-size: 3.4em;
}
.slogan .lead { color: #fff; font-size: 1.8em; }
.slogan .btn  { margin-top: 20px; display: inline-block; }

.home .hero .slogan {
	display: flex;
	align-items: center;
	width: 100%;
}
.home .hero .vcenter {
	padding-top: 40px;
	padding-bottom: 40px;
	width: 100%;
}

.bg-fixed {
	background-repeat: no-repeat;
	background-attachment: fixed;
	background-position: center center;
	background-size: cover;
}

/* ----------------------------------------------------------
   7. Sections
   ---------------------------------------------------------- */
.section,
.section-alt {
	border-bottom: 1px solid #e1e1e1;
	min-height: 100vh;
	display: flex;
	align-items: center;
	box-sizing: border-box;
	position: relative;
}
.section-alt { background: #fcfcfc; }

/* Section side label */
.section::before,
.section-alt::before {
	content: attr(data-label);
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%) rotate(-90deg);
	transform-origin: center center;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: #ccc;
	white-space: nowrap;
	pointer-events: none;
}

/* Section color overrides */
#services      { background: #ffffff; }
#features      { background: #f0f6fc; }
#technologies  { background: #1e2a3a; }
#technologies,
#technologies h2,
#technologies h3,
#technologies p,
#technologies .i-block h3,
#technologies .i-block i { color: #e0e8f0; }
#technologies .tech-list li { color: #b0c4d8; }
#technologies .tech-list li::before { color: #5dade2; }
#technologies .hr-inner { border-color: #3d5166; }
#technologies .title p  { color: #90aac0; }
#technologies::before   { color: #3d5166; }
#aboutus { background: #ffffff; }
#contact { background: #f0f6fc; }

.content {
	padding-top: 50px;
	padding-bottom: 50px;
}

/* ----------------------------------------------------------
   8. Section Title
   ---------------------------------------------------------- */
.title {
	text-align: center;
	margin-bottom: 40px;
}
.title h2 {
	font-weight: bold;
	font-size: 2.2em;
	margin: 0;
	text-align: center;
}
.title p {
	letter-spacing: 1px;
	line-height: 1.6em;
	font-size: 20px;
	margin: 0;
}

/* ----------------------------------------------------------
   9. Dividers
   ---------------------------------------------------------- */
hr { border: 0; margin: 10px 0; }
hr.grey { border: 0; border-bottom: 1px solid #e5e5e5; margin: 10px 0; }
#contact hr.grey { margin: 17px 0 16px; }

.hr {
	clear: both;
	display: block;
	width: 100%;
	height: 20px;
	line-height: 20px;
	position: relative;
	margin: 10px 0;
	float: left;
}
.hr-small { float: none; }
.hr-inner {
	border-color: #e1e1e1;
	width: 100%;
	position: absolute;
	height: 1px;
	top: 50%;
	margin-top: -1px;
	border-top: 1px solid;
}
.hr-small .hr-inner { width: 32%; margin-left: -16%; }
.hr-center.hr-small .hr-inner { left: 50%; }
.hr-invisible { margin-bottom: 0; }

/* ----------------------------------------------------------
   10. Icon Blocks
   ---------------------------------------------------------- */
.i-block { text-align: center; }
.i-block i { display: inline-block; margin-bottom: 24px; font-size: 6em; color: #a1a1a1; }
.i-block h3 {
	color: #a1a1a1;
	font-weight: bold;
	font-size: 1.8em;
	margin-top: 0;
	margin-bottom: 14px;
}

/* ----------------------------------------------------------
   11. Tech List
   ---------------------------------------------------------- */
.tech-list {
	list-style: none;
	padding: 0;
	margin: 0;
	text-align: left;
	display: inline-block;
}
.tech-list li {
	color: #666;
	font-size: 13px;
	line-height: 2;
	padding-left: 1em;
	position: relative;
}
.tech-list li::before {
	content: "›";
	position: absolute;
	left: 0;
	color: #3498db;
}

/* ----------------------------------------------------------
   12. Company Profile Table
   ---------------------------------------------------------- */
@media (min-width: 768px) {
	table.profile { width: 70%; margin: auto; }
	table.profile th {
		padding: 30px 50px;
		text-align: center;
		border-bottom: 1px solid #aaa;
		white-space: nowrap;
	}
	table.profile td {
		padding: 30px 50px;
		text-align: left;
		border-bottom: 1px dashed #aaa;
	}
	table.profile td div { display: inline-block; }
	.title h2 span::before { content: " | "; }
}
@media (max-width: 767px) {
	table.profile { width: 100%; }
	table.profile th {
		padding: 15px 5px;
		text-align: center;
		border-bottom: 1px solid #aaa;
		white-space: nowrap;
	}
	table.profile td {
		padding: 15px 5px;
		text-align: left;
		border-bottom: 1px dashed #aaa;
	}
	.title h2 span { display: block; font-size: 60%; }
}

/* ----------------------------------------------------------
   13. Footer
   ---------------------------------------------------------- */
#footer {
	font-weight: bold;
	color: #fff;
	text-align: center;
	font-size: 13px;
	padding: 20px 0;
}
#footer a { color: #fff; text-decoration: underline; }

/* ----------------------------------------------------------
   14. Utilities
   ---------------------------------------------------------- */
.text-center { text-align: center; }
.clear { clear: both; }

/* ----------------------------------------------------------
   15. Responsive — Nav (〜1023px でハンバーガーメニュー)
   ---------------------------------------------------------- */
@media (max-width: 1023px) {
	#logo {
		font-size: 26px;
		margin-left: 60px;
	}
	nav#top-nav {
		margin-top: 0;
		display: none;
		background: #fff;
		position: absolute;
		top: 68px;
		z-index: 99999;
		border-right: 1px solid #D6D6D6;
		border-bottom: 1px solid #D6D6D6;
		left: 0;
		width: 100%;
	}
	nav#top-nav ul { float: none; display: block; }
	nav#top-nav #fixed-nav li {
		padding: 10px 20px;
		display: block;
		margin-bottom: 0;
		margin-left: 0;
	}
	#nav-button {
		display: inline-block;
		position: absolute;
		left: 24px;
		font-size: 24px;
		top: 50%;
		margin-top: -12px;
	}
}

/* Responsive — Layout (〜767px) */
@media (max-width: 767px) {
	#logo {
		font-size: 24px;
		text-align: center;
	}
	.section::before,
	.section-alt::before { display: none; }
	.section,
	.section-alt { min-height: auto; padding: 60px 0; }
	.home .hero { min-height: 100vh; }
}
