 @charset "utf-8";
/* CSS Document */

/*-------------------------------
  all
--------------------------------*/
* {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
  max-height: 9999999px; 
}
html {
  scroll-behavior: smooth;
}
body {
  color:#000;
  font-size:18px;
  font-family:"Noto Sans JP", "Yu Gothic", YuGothic, "メイリオ", Meiryo, sans-serif;
  font-weight:400;
  text-align:center;
  background-color:#FFF;
}
.min {
  font-family: "Noto Serif JP", "游明朝", YuMincho, "Yu Mincho", serif;
}
p, li, dt, dd {
  line-height:1.6;
}
img {
  max-width: 100%;
  height:auto;
  display: block;
}
a {
  color:#D81518;
  transition: background-color 0.4s;
}
a img {
  opacity:1;
  transition:opacity 0.4s;
  backface-visibility: hidden;
}
a img:hover  {
  opacity: 0.6;
}
.ov {
  transition:opacity 0.4s;
}
.ov:hover {
  opacity: 0.6;
}
br.spbr {
  display:none;
}
br.pcbr {
}
.clear {
  clear:both;
}
.relative {
  position:relative;
}
.wrap {
  overflow:hidden;
}
.center {
  text-align:center;
}
.left {
  text-align:left;
}
.right {
  text-align:right;
}
.pic img {
  width:100%;
}
a.tel {
  display:inline-block;
  pointer-events:none;
}
@media only screen and (max-width:600px){
html {
  -webkit-text-size-adjust:100%;
}
body {
  font-size: 16px;
  min-width:320px;
}
p, li, dt, dd {
  line-height:1.6;
}
a {
  transition: none;
}
a:hover img  {
  opacity:1;
}
.ov:hover {
  opacity:1;
}
.sp-ib span {
  display:inline-block;
}
br.spbr {
  display:block;
}
br.pcbr {
  display:none;
}
.spleft {
  text-align:left;
}
.spcenter {
  text-align:center;
}
a.tel {
  pointer-events:auto;
}
}
/*-------------------------------
  pagetop
--------------------------------*/
.page-top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 10;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 5px;
  background-color: #D81518;
  color: #fff;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  padding-bottom:4px;

  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
}
.page-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
@media only screen and (max-width:600px){
  .page-top {
    right: 10px;
    bottom: 10px;
    width: 40px;
    height: 40px;
    font-size: 20px;
  }
}
/*-------------------------------
  box
--------------------------------*/
.box {
  width: 100%;
  max-width: 1110px;
  margin:0 auto;
}
.box-space {
  padding-top:70px;
  padding-bottom:70px;
}
@media only screen and (max-width:1110px){
.box {
  width: auto;
  margin:0 15px;
}
}
@media only screen and (max-width:600px){
.box {
  width:auto;
  margin:0 20px;
}
.box-space {
  padding-top:35px;
  padding-bottom:45px;
}
}
/*-------------------------------
  font size
--------------------------------*/
.fs-70 { font-size:70%; }
.fs-80 { font-size:80%; }
.fs-90 { font-size:90%; }
/*-------------------------------
  margin
--------------------------------*/
.mb10 { margin-bottom:10px; }
.mb15 { margin-bottom:15px; }
.mb20 { margin-bottom:20px; }
.mb30 { margin-bottom:30px; }
.mb40 { margin-bottom:40px; }
.mb50 { margin-bottom:50px; }
.mb60 { margin-bottom:60px; }
.mb70 { margin-bottom:70px; }
.mb80 { margin-bottom:80px; }
.mb90 { margin-bottom:90px; }
@media only screen and (max-width:600px){
.mb10 { margin-bottom:5px; }
.mb15 { margin-bottom:10px; }
.mb20 { margin-bottom:10px; }
.mb30 { margin-bottom:15px; }
.mb40 { margin-bottom:20px; }
.mb50 { margin-bottom:25px; }
.mb60 { margin-bottom:30px; }
.mb70 { margin-bottom:35px; }
.mb80 { margin-bottom:40px; }
.mb90 { margin-bottom:45px; }
}
/*-------------------------------
  header
--------------------------------*/
.header {
  height:180px;
  position:relative;
}
.header-box {
  width: 100%;
  max-width: 1110px;
  margin:0 auto;
}
.header-logo {
  font-size:30px;
  font-weight:700;
  float:left;
  height:80px;
  margin:15px 0 0 25px;
  padding:5px 0 0 100px;
  text-align:left;
  background-image: url(../image/logo.png);
  background-repeat: no-repeat;
  background-position: left center;
  background-size:80px 80px;
}
.header-logo span {
  font-size:15px;
  display:block;
}
.header-logo a {
  color:#000;
  text-decoration:none;
  display:inline-block;
}
@media only screen and (max-width:950px){
.header {
  height:110px;
  width:auto;
}
.header-logo {
  font-size:23px;
  padding:12px 0 0 100px;
}
.header-logo span {
  font-size:12px;
}
}
@media only screen and (max-width:700px){
.header {
  height:70px;
  width:auto;
}
.header-logo {
  font-size:15px;
  height:50px;
  margin:10px 0 0 10px;
  padding:5px 0 0 60px;
  background-size:50px 50px;
}
.header-logo span {
	font-size:10px;
}
}
@media only screen and (max-width:600px){
.header-logo span {
  display:none;
}
}

/*-------------------------------
  footer
--------------------------------*/
.footer {
  color:#FFF;
  font-weight:500;
  padding:40px 0 60px;
  background-color:#1C1C1C;
  background-image: url(../image/footer-bg.jpg);
  background-repeat: no-repeat;
  background-position: center center;
}
.footer img {
	margin:auto;
}
.footer-name {
  margin:10px 0 40px;
}
.footer small {
  font-size:14px;
  line-height:1;
}
@media only screen and (max-width:600px){
.footer {
  padding:30px 0 40px;
  background-position: right center;
  background-size:cover;
}
.footer-name {
  font-size:15px;
  margin:10px 0 30px;
}
.footer small {
  font-size:13px;
}
}
/*-------------------------------
  h2
--------------------------------*/
h2.h2-line-s {
  font-size:30px;
  padding-bottom:20px;
  margin-bottom:20px;
  background-image: url(../image/h2-line-s.png);
  background-repeat: no-repeat;
  background-position: left bottom;
}
h2.h2-line-s-c {
  background-position: center bottom;
}
h2.h2-line-l {
  font-size:30px;
  padding-bottom:25px;
  margin-bottom:30px;
  background-image: url(../image/h2-line-l.png);
  background-repeat: no-repeat;
  background-position: center bottom;
}
@media only screen and (max-width:600px){
h2.h2-line-s {
  font-size:20px;
  padding-bottom:15px;
  margin-bottom:15px;
  background-position: center bottom;
  background-size:115px 4px;
  text-align:center;
}
h2.h2-line-l {
  font-size:20px;
  padding-bottom:15px;
  margin-bottom:15px;
  background-size:100% auto;
}
}
/*-------------------------------
  top:hero
--------------------------------*/
.hero {
  height:550px;
  display:flex;
  align-items:center;
  background-image: url(../image/topimg.jpg);
  background-position:center;
  background-size: cover;
}
.hero h1 {
  color:#FFF;
  font-size:45px;
  font-weight:600;
  text-align:left;
  background-image: url(../image/hero-line.png);
  background-repeat: no-repeat;
  background-position: left bottom;
  padding-bottom: 50px;
}
@media only screen and (max-width:600px){
.hero {
  height:300px;
  display:flex;
  align-items:center;
  background-image: url(../image/topimg.jpg);
  background-position:center;
  background-size: cover;
}
.hero h1 {
  font-size:30px;
  background-size:100% auto;
  padding-bottom: 25px;
  margin-left:10px;
}
}
/*-------------------------------
  top:about
--------------------------------*/
.about-bg {
  background-image: url(../image/about-bg.jpg);
  background-repeat: no-repeat;
  background-position: left center;
}
.about {
  display:flex;
  align-items:center;
  flex-direction:row-reverse;
  gap:80px;
}
.about-box {
  flex:1;
}
@media only screen and (max-width:600px){
.about-bg {
  background-image: url(../image/about-bg.jpg);
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size:200px auto;
}
.about { 
  flex-direction: column;
  gap: 30px;
  }
}

/*-------------------------------
  top:taikai
--------------------------------*/
.taikai a {
  text-align:left;
  height:350px;
  padding:35px;
  display:block;
  background-color:#000;
  background-image: url(../image/taikai-bg.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  opacity:1;
  transition:opacity 0.4s;
}
.taikai a:hover {
	opacity: 0.6;
}
.taikai img {
	width:350px;
	margin:0;
}
.taikai img:hover {
	opacity: 1;
}
@media only screen and (max-width:600px){
.taikai a {
  height:auto;
  padding:25px;
  background-position: center center;
  background-size:auto 100%;
}
.taikai img {
	width:100%;
}
}
/*-------------------------------
  top:branch
--------------------------------*/
.branch {
	display:flex;
	gap:70px;
}
.branch-box {
	flex:1;
}
.branch-box-list {
	display:flex;
	gap:15px;
}
.branch-box-list ul {
	margin-left:30px;
	text-align:left;
}
.kyouryoku {
	margin-top:25px;
	padding:15px 25px;
	box-shadow:0 0 5px #CCC;
	border-radius:10px;
}
.kyouryoku-ttl {
	color:#FFF;
	line-height:30px;
	margin-bottom:10px;
	background-color:#000;
	border-radius:15px;
}
@media only screen and (max-width:600px){
.branch {
	flex-direction: column;
	gap:30px;
}
.branch-box-list {
	flex-direction: column;
	gap:0;
}
}
/*-------------------------------
  top:member
--------------------------------*/
.member {
  height:350px;
  padding:25px 0 0;
  background-color:#000;
  background-image: url(../image/member-bg.jpg);
  background-repeat: no-repeat;
  background-position: right center;
}
.member-txt {
	margin-bottom:15px;
}
.member-txt img {
	width:420px;
	margin:0 auto;
}
.member-btn img {
	width:230px;
	margin:0 8px;
	display:inline-block;
}
@media only screen and (max-width:600px){
.member {
  height:auto;
  padding:25px 15px;
  background-size:auto 100%;
}
.member-txt {
	margin-bottom:10px;
}
.member-txt img {
	width:100%;
}
.member-btn img {
	width:200px;
	margin:8px 0;
}
}
/*-------------------------------
  top:profile
--------------------------------*/
.profile-bg {
  background-image: url(../image/profile-bg.jpg);
  background-repeat: no-repeat;
  background-position: right bottom;
}
.profile {
  margin:50px 30px 0;
  display:flex;
  flex-direction:row-reverse;
  align-items:center;
  gap:50px;
}
.profile img {
  width:300px;
  height: auto;
  object-fit: cover;
}
.profile-name {
	font-size:22px;
	font-weight:600;
}
.profile-txt {
	flex:1;
}
.profile-txt ul {
	margin-left:30px;
}
@media only screen and (max-width:600px){
.profile-bg {
  background-position: right top;
  background-size:200px auto;
}
.profile {
  margin:30px 0 0;
  flex-direction: column;
  gap:30px;
}
.profile img {
  width:250px;
}
.profile-name {
	font-size:20px;
}
.profile-txt ul {
	margin-left:20px;
}
}
/*-------------------------------
  top:activity
--------------------------------*/
.activity-bg {
  background-color:#F8F8F8;
}
.activity-txt {
	margin:30px;
}
.activity {
	display:flex;
	gap:10px;
}
.activity-box {
	flex:1;
	font-size:20px;
	font-weight:600;
}
.activity-box img {
	margin-bottom:10px;
}
@media only screen and (max-width:600px){
.activity-txt {
	margin:15px;
}
.activity {
	flex-direction:column;
	gap:20px;
}
.activity-box {
	font-size:18px;
}
.activity-box img {
	margin-bottom:5px;
}
}
/*-------------------------------
  top:sns
--------------------------------*/
.sns {
	display:flex;
	gap:15px;
	padding:100px 0;
}
.sns a {
	flex:1;
	display: flex;
	justify-content: center;
	padding:20px 0;
	border:solid 4px #000;
	box-shadow:4px 4px 8px rgba(0,0,0,.15);
}
.sns img {
	width:300px; 
}
@media only screen and (max-width:600px){
.sns {
	flex-direction:column;
	gap:25px;
	padding:50px 0;
}
.sns a {
	padding:10px 0;
}
.sns img {
	width:200px; 
}
}
/*-------------------------------
  top:shop
--------------------------------*/
.shop a {
  text-align:left;
  height:250px;
  padding:40px;
  display:block;
  background-color:#000;
  background-image: url(../image/shop-bg.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  opacity:1;
  transition:opacity 0.4s;
}
.shop a:hover {
	opacity: 0.6;
}
.shop img {
	width:370px;
	margin:0;
}
.shop img:hover {
	opacity: 1;
}
@media only screen and (max-width:600px){
.shop a {
  height:auto;
  padding:25px 15px;
  background-position: center center;
  background-size:auto 100%;
}
.shop img {
	width:100%;
}
}
/*-------------------------------
  top:contact
--------------------------------*/
.contact {
	display:block;
	padding:40px 0;
	border:solid 4px #000;
	box-shadow:4px 4px 8px rgba(0,0,0,.15);
}
.contact h2 {
	font-size:36px;
}
.contact-tel {
	font-size:36px;
}
.contact-tel a {
	color:#000;
	text-decoration:none;
}
.contact-tel span {
	font-size:28px;
}
@media only screen and (max-width:600px){
.contact {
	padding:25px 0;
}
.contact h2 {
	font-size:26px;
}
.contact-tel {
	font-size:26px;
}
.contact-tel a {
	color:#D81518;
	text-decoration: underline;
}
.contact-tel span {
	font-size:22px;
}
}