/* ------------------------------------------------------------------------------
	Template Name: Floix
	Author: Designstub
	Author URI: http://www.designstub.com
------------------------------------------------------------------------------*/



/* ------------------------------------------------------------------------------
	 Typography
-------------------------------------------------------------------------------*/
p {
	font-size: 14px;
	line-height: 22.4px;
	color: #6c7279;
}
h1 {
	font-size: 65px;
	color: #2d3033;
}
h2 {
	font-size: 40px;
	color: #2d3033;
}
h3 {
	font-size: 28px;
	color: #2d3033;
	font-weight: 300;
}
h4 {
	font-size: 22px;
	color: #2d3033;
	font-weight: 400;
}
h5 {
	font-size: 14px;
	color: #2d3033;
	text-transform: uppercase;
	font-weight: 700;
}
.btn-custom {
    /* 元のスタイルを維持しながらBootstrap用に最適化 */
    border: 1px solid rgba(0, 0, 0, 0.75);
    margin: 100px auto 0px auto;
    color: #2a2a2a;
    font-size: 24px;
    font-weight: 400;
    letter-spacing: 1px;
    border-radius: 20px;                  /* pxは不要 */
    padding: 1.5% 3%;
    display: block;           /* inline-blockからblockに変更 */
    width: 70%;             /* 幅を100%に設定 */
    text-transform: uppercase;
    text-align: center;

    /* Bootstrapとの競合を防ぐための追加設定 */
    background-color: transparent;      /* 背景を透明に */
    transition: all 0.3s ease;         /* ホバーエフェクト用 */
}

/* ホバー時のスタイル */
.btn-custom:hover {
    background-color: rgba(0, 0, 0, 0.75);
    color: #ffffff;
}

/* Bootstrapのデフォルトスタイルを上書き */
.btn-custom:focus {
    box-shadow: none;                  /* Bootstrapのフォーカス時の青い影を削除 */
}
.btn {
	border: 1px solid rgba(0, 0, 0, 0.75);
	margin-top: 20px;
	color: #2a2a2a;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 1px;
	border-radius: 0px;
	padding: 1.5% 3%;
	display: inline-block;
	text-transform: uppercase;
}
.btn:hover, .btn:focus {
	background-color: #2a2a2a;
	color: #fff;
}
.btn-large {
	padding: 15px 40px;
}
/* ------------------------------------------------------------------------------
	 General Style
-------------------------------------------------------------------------------*/
a {
	color: #e84545;
}
a:hover, a:focus {
	text-decoration: none;
	-moz-transition: background-color, color, 0.3s;
	-o-transition: background-color, color, 0.3s;
	-webkit-transition: background-color, color, 0.3s;
	transition: background-color, color, 0.3s;
}
body {
	font-family: "Open Sans", sans-serif;
	font-weight: 400;
	color: #6c7279;
}
ul, ol {
	margin: 0;
	padding: 0;
}
ul li {
	list-style: none;
}
.section {
	padding: 100px 0;
}
.no-padding {
	padding: 0;
}
.no-gutter [class*=col-] {
	padding-right: 0;
	padding-left: 0;
}
/* ==========================================================================
	$Header
========================================================================== */
#header {
	position: fixed;
	width: 100%;
	z-index: 999;
}
#header .header-content {
	margin: 0 auto;
	max-width: 1170px;
	padding: 40px 0;
	width: 100%;
	-moz-transition: padding 0.3s;
	-o-transition: padding 0.3s;
	-webkit-transition: padding 0.3s;
	transition: padding 0.3s;
}
#header .logo {
	font-size: 27px;
	color: #000;
	letter-spacing: 3px;
	font-weight: 300;
	float: left;
	text-transform: uppercase;
}
#header.fixed {
	background-color: rgba(255, 255, 255, 0.75);
}
#header.fixed .header-content {
	border-bottom: 0;
	padding: 25px 0;
}
#header.fixed .nav-toggle {
	top: 18px;
}
/* ==========================================================================
	$Banner
========================================================================== */
.banner {
	background-image: url(../images/banner.jpg);
	background-position: left top;
	background-repeat: no-repeat;
	-moz-background-size: cover;
	-o-background-size: cover;
	-webkit-background-size: cover;
	background-size: cover;
	min-height: 750px;
}
.banner img {
  margin-top: 10px;
}
.banner-inner-wrapper {
	float: right;
}
.banner-text {
	padding-top: 5%;
}
.banner-text h1 {
	color: #df8ecd;
	font-family: "Open Sans", sans-serif;
	font-size: 50px;
	font-weight: 800;
	margin-bottom: 5%;
  text-shadow: 2px 2px #FFFFFF;
}
.banner-text h2 {
	color: #393939;
	font-family: "Open Sans", sans-serif;
	font-size: 36px;
	font-weight: 400;
	margin-bottom: 5%;
}
.banner-text h3 {
  margin-top: 0px;
  margin-bottom: 0px;
	color: #393939;
	font-family: "Open Sans", sans-serif;
	font-size: 20px;
	font-weight: 400;
}
.banner-text h4 {
  margin-top: 40px;
  margin-bottom: 0px;
	color: #393939;
	font-family: "Open Sans", sans-serif;
	font-size: 20px;
	font-weight: 400;
}
.banner-text p {
	color: #393939;
	font-size: 16px;
	font-weight: 300;
	line-height: 1.5;
	margin-bottom: 20px;
}
.sns-table {
  width: 100%;
  max-width: 330px;
  margin: 20px 0 20px auto;
  border-collapse: collapse;
}
.sns-table td {
  padding: 2px;
  vertical-align: middle;
}
.sns-table .service {
  text-align: left;
}
.sns-table .users {
  text-align: right;
}
.sns-table .icon {
  text-align: center;
}
.sns-table .icon img {
  width: 32px;
  height: 32px;
  object-fit: cover;
}

.card-container {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  padding: 20px;
  justify-content: center;
  min-height: 100%;
  align-items: center;
}

.card {
  width: 300px;
  height: 150px;
  border-radius: 16px;
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  color: white;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: transform 0.2s ease;
  text-align: center;
  font-weight: 500;
}

.card:hover {
  transform: translateY(-5px);
}

.blue {
  background-color: #50c9cd;
  border: 1px solid #43a0a3;
}

.green {
  background-color: #7bd35d;
  border: 1px solid #60a549;
}

.yellow {
  background-color: #ffca3a;
  border: 1px solid #ffbc06;
}

.purple {
  background-color: #c77192;
  border: 1px solid #a55473;
}

.cycle {
  min-height: 400px;
  width: 50%;
	background-image: url(../images/kurukuru.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  background-color: #f5f5f5;
  padding: 20px;
}
.cycle-card-container {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  padding: 20px;
  justify-content: center;
  min-height: 100%;
  align-items: center;
}
.cycle-card {
  width: 200px;
  height: 75px;
  border-radius: 16px;
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  color: white;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: transform 0.2s ease;
  text-align: center;
  font-weight: 500;
  backdrop-filter: blur(5px);
	margin-top: 50px;
}

.cycle-card:hover {
  transform: translateY(-5px);
}
.cycle-blue {
    background-color: rgba(80, 201, 205, 0.7);  /* #50c9cd */
    border: 1px solid rgba(67, 160, 163, 0.7);  /* #43a0a3 */
}

.cycle-green {
    background-color: rgba(123, 211, 93, 0.7);  /* #7bd35d */
    border: 1px solid rgba(96, 165, 73, 0.7);   /* #60a549 */
}

.cycle-yellow {
    background-color: rgba(255, 202, 58, 0.7);  /* #ffca3a */
    border: 1px solid rgba(255, 188, 6, 0.7);   /* #ffbc06 */
}

.cycle-purple {
    background-color: rgba(199, 113, 146, 0.7); /* #c77192 */
    border: 1px solid rgba(165, 84, 115, 0.7);  /* #a55473 */
}

.info-text {

}

.info-text ul li {
  list-style: disc;
  text-indent: -1em;
  padding-left: 1em;
}
/* ==========================================================================
	$Teams
========================================================================== */

.intro-content {
	margin-top: 20px;
}
.intro-content h1 {
	font-size: 55px;
	font-weight: 700;
	letter-spacing: -3px;
}
.intro-content h4 {
	font-size: 15px;
	letter-spacing: 3px;
	font-weight: 700;
	text-transform: uppercase;
}
.intro-content p {
	font-size: 12px;
	letter-spacing: 1px;
	line-height: 19px;
}
.intro-content li {
	line-height: 30px;
	letter-spacing: 1px;
}
/* ------------------------------------------------------------------------------
	 Works
-------------------------------------------------------------------------------*/
.work {
	-moz-box-shadow: 0 0 0 1px #fff;
	-webkit-box-shadow: 0 0 0 1px #fff;
	box-shadow: 0 0 0 1px #fff;
	overflow: hidden;
	position: relative;
}
.work img {
	width: 100%;
	height: 100%;
}
.work .overlay {
	background: rgba(232, 69, 69, 0.9);
	height: 100%;
	left: 0;
	opacity: 0;
	position: absolute;
	top: 0;
	width: 100%;
	-moz-transition: opacity, 0.3s;
	-o-transition: opacity, 0.3s;
	-webkit-transition: opacity, 0.3s;
	transition: opacity, 0.3s;
}
.work .overlay-caption {
	position: absolute;
	text-align: center;
	top: 50%;
	width: 100%;
	-moz-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}
.work h5, .work p, .work img {
	-moz-transition: all, 0.5s;
	-o-transition: all, 0.5s;
	-webkit-transition: all, 0.5s;
	transition: all, 0.5s;
}
.work h5, .work p {
	color: #fff;
	margin: 0;
	opacity: 0;
}
.work span {
	font-size: 45px;
}
.work h5 {
	margin-bottom: 5px;
	-moz-transform: translate3d(0, -200%, 0);
	-ms-transform: translate3d(0, -200%, 0);
	-webkit-transform: translate3d(0, -200%, 0);
	transform: translate3d(0, -200%, 0);
}
.work p {
	-moz-transform: translate3d(0, 200%, 0);
	-ms-transform: translate3d(0, 200%, 0);
	-webkit-transform: translate3d(0, 200%, 0);
	transform: translate3d(0, 200%, 0);
}
.work-box:hover img {
	-moz-transform: scale(1.2);
	-ms-transform: scale(1.2);
	-webkit-transform: scale(1.2);
	transform: scale(1.2);
}
.work-box:hover .overlay {
	opacity: 1;
}
.work-box:hover .overlay h5, .work-box:hover .overlay p {
	opacity: 1;
	-moz-transform: translate3d(0, 0, 0);
	-ms-transform: translate3d(0, 0, 0);
	-webkit-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
}
/* ------------------------------------------------------------------------------
	 Footer
-------------------------------------------------------------------------------*/
.footer {
	width: 94%;
	margin: auto;
	text-align: left;
	padding-top: 5%;
	padding-bottom: 7%;
}
.footer h4 {
	font-size: 14px;
	color: #000;
	letter-spacing: 2px;
	margin: 0 0 15px 0;
	padding: 0px;
}
.footer p {
	font-size: 12px;
	color: #6c7279;
}
.footer a {
	color: #000;
}
.footer a:hover {
	text-decoration: underline;
}
.footer .footer-share {
	margin-top: 0;
}
.footer .footer-share li {
	display: inline-block;
	float: none;
}
.footer .footer-share a {
	border: none;
	font-size: 14px;
	color: #000;
	letter-spacing: 15px;
}
.footer .fa-heart {
	color: #e84545;
	font-size: 12px;
	margin: 0 2px;
}
