@charset "UTF-8";

/*

Theme Name: FEST2024
Theme URI: https://festinc.jp/
Description: FEST web site
Version: 1.0
Author: naeiro graphica

DATE: 20240515

*/

/* ==============================

1:Common Style
2:CONTENTS Style

0:Responsive

============================== */

/*==========================================================
1:Common Style
==========================================================*/
* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; word-wrap : break-word; overflow-wrap : break-word;}
html { -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
body { -webkit-text-size-adjust: 100%; background-color: #111; color:#fff;}
header, footer, nav, section, article, figure, aside, main { display: block; }

html, body, div, section, span, applet, object, iframe,
header,footer,nav,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
background : transparent; border: 0; margin: 0; padding: 0;}
/* fonts*/
html {font-family: 'Noto Sans Japanese','ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro',Osaka,sans-serif; }
body,input,textarea{ font-size: 16px; line-height: 1.5; color: #333;
font-family: 'Noto Sans Japanese','ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro',Osaka,sans-serif; }
h1,h2,h3,h4,h5,h6 { font-size: 1.1em; line-height: 1.5; font-weight: normal;font-family: 'Noto Sans Japanese','ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro',Osaka,sans-serif;}
p { font-size: 1em; line-height: 1.7; }
strong { font-weight: bold; }
big { font-size: 1.2em; }
ins { background: #ffc; text-decoration: none; }
ul,ol{ list-style:none;}
table { font-size: 100%; padding: 0;border-collapse: collapse;border-spacing: 0;}
th { font-weight: normal; }
th, td { padding: 0; text-align: left; }
table ul, table ol, table dl, table table, table p { margin-top: 0; }
blockquote { border-left: #eee solid 5px; margin: 0.5em 0 0.5em 1em; padding: 0 1em; }
blockquote cite,
blockquote em,
blockquote i { font-style: normal; }
pre { font-size: 1em; line-height: 1; max-width: 100%; overflow: auto; padding:1em; 
background: #f7f7f7; color: #555; margin-bottom: 18px; }
abbr, acronym { border-bottom: 1px dotted #666; cursor: help; }
sup, sub { font-size: 75%; height: 0; line-height: 1; position: relative; vertical-align: baseline; }
sup { bottom: 1ex; }
sub { top: .5ex; }
embed, iframe, object { max-width: 100%; }
/*FORM*/
button, input, select, textarea { 
box-sizing: border-box; max-width: 100%; font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; }
button, input[type="button"], input[type="reset"], input[type="submit"] { 
background: #333; color:#fff; font-size: 1em; line-height: 1; padding: 1em 3em; border-radius: 3px;
-webkit-appearance: none;	-moz-appearance: none;appearance: none; cursor: pointer; display: block; border-style: none;
-webkit-transition: All 0.5s ease;-moz-transition: All 0.5s ease;-o-transition: All 0.5s ease;-ms-transition: All 0.5s ease;transition: All 0.5s ease;}
button:hover, input[type="button"]:hover, input[type="reset"]:hover, input[type="submit"]:hover { background: #999; }
button:focus, input[type="button"]:focus, input[type="reset"]:focus, input[type="submit"]:focus, button:active, input[type="button"]:active, input[type="reset"]:active, input[type="submit"]:active { 
border-color: #aaa #bbb #bbb #bbb; box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.5), inset 0 2px 5px rgba(0, 0, 0, 0.15); }
input[type="checkbox"], input[type="radio"] { padding: 5px; border:1px solid #aaa; }
input[type="search"] { -webkit-appearance: textfield; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; }
input[type="search"]::-webkit-search-decoration { -webkit-appearance: none;}
button::-moz-focus-inner, input::-moz-focus-inner { border: 0;padding: 0; }
input[type="text"]:focus, input[type="email"]:focus,input[type="tel"]:focus, input[type="url"]:focus, input[type="password"]:focus, input[type="search"]:focus, textarea:focus { color: #111; }
input[type="text"], input[type="email"],input[type="tel"], input[type="url"], input[type="password"], input[type="search"] ,textarea{
overflow: auto; border: none; padding: 0.5em; border-radius: 3px;
color: #333;  background: #efefef; }
select{ height: 2em;  position: relative; z-index: 1;padding: 0 20px 0 10px; margin: 0.8em auto;border: 1px solid #ccc; }
select::-ms-expand { display: none;}

/* IMAGE*/
img { max-width : 100%; border: none; height: auto; vertical-align: text-bottom; }
a img {border: none;}
table img { vertical-align: bottom; }cite,em,i { font-style: normal; }
/*LINK*/
a{ color:#fff; text-decoration:none; outline:none;}
a:hover img,
a:hover{opacity:0.8; color:#333; text-decoration:none; }
a,a img,.FaqList dt{
-webkit-transition: All 0.3s ease;-moz-transition: All 0.3s ease;-o-transition: All 0.3s ease;-ms-transition: All 0.5s ease;transition: All 0.3s ease;}
/*LINE*/
hr { border: 0; height: 0; clear: both; border-top: 1px solid rgba(0, 0, 0, 0.1); border-bottom: 1px solid rgba(255, 255, 255, 0.4); }

*::selection {background: #ebe9ae;}
p::-moz-selection {background: #fff;}

/* .wp-caption*/
.wp-caption { border: none; text-align: left; background-color: transparent; margin-top: 20px; border-radius: 0; max-width: 100%; }
.wp-caption-text { margin-top: 5px; font-size: 90%; line-height: 1.4; text-align: left; }
.gallery-caption { }
/* Alignment*/
.alignleft { display: inline; float: left; margin-right: 1.5em; }
.alignright { display: inline; float: right; margin-left: 1.5em; }
.aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto; }
/*.error etc*/
.error, .require, .attention { color: #b70000; }


/*for SP ==========================================*/
@media screen and (max-width:768px) {
input,textarea{ font-size:16px; } /*フォーカスOFF*/

/**/}

/*==========================================================
2:CONTENTS Style
==========================================================*/

/*TEST*/
#container{ min-height: 1000px; }

#container { width: 100%; padding: 100px 0 0 0; overflow: hidden;background-color: rgba(0,0,0,0.9);}
.contents { width: 100%; padding: 0 50px;
	position: relative; overflow: hidden; height:auto; }


/*  COLUMN */
.primary{ width:75%; float: left; padding: 0 0 50px 0;}
.secondry{ width:24%; float: right; padding: 0 0 50px 0;}
.archive .secondry,.category .secondry,
.page .secondry{ width:100%; float: none;}
.archive .secondry ,
.category .secondry ,
.page .secondry { width:100%;}

.secondry .SNS{ overflow:hidden; margin:0 0 10px 0;}
.secondry .LINK{ overflow:hidden; margin:0 0 20px 0;}
.secondry .SNS li { display:inline-block; font-size:40px; padding:5px;}

/*TITLE*/
h1 { color: #fff; font-size: 1.6em; line-height: 1.2; letter-spacing:0.05em; text-shadow: 1px 1px 1px #aaa;}
h2 { color: #fff; font-size: 1.3em; line-height: 1.5; 
padding: 0.5em 0; margin: 1em 0 ; letter-spacing: 0.1em;}
h2 em{ padding: 0 0 0 2em; font-size: 0.7em; color: #ccc;}
h3,h4,h5,h6{ color: #fff; font-size: 1.2em; margin: 1em 0 ;}

/**/
p.notes { color: #ccc; font-size: 0.9em; }
span.notes { color: #ccc; font-size: 0.9em; display: block; padding: 0; text-indent: -1em; margin-left:1em; }
.memo{ font-size: 0.9em;}

/*line*/
.line { position: relative; margin:3em  0 1.7em; line-height: 1;}
h1.line { margin: 1.5em 0 1.7em; text-align: center; padding: 0}
h2.line { text-align: center; padding: 0}
.line span { display: inline-block;background: #fff; padding:0 1em 0 0;}
h1.line span,
h2.line span { display: inline-block; text-align: center; padding:0 1em ;}
.line::before { display: block; background: #c8c8c8; content: ''; position: absolute; top: .5em; right: 0;width: 100%;height: 1px;z-index: -1;}
h1.line::before { }
h2.line::before { }
/*slash*/
.slash { text-align: center; margin: 50px auto 40px; }
.slash span{ position: relative; display: inline-block; padding: 0 54px; margin: 0 auto 20px;line-height: 1.3;}
.slash span:before, .slash span:after{ content: '';position: absolute; top: 50%;display: inline-block; width: 50px;height: 2px;background-color:rgba(255, 255, 255,0.5) ;}
.slash span:before { left:0; -moz-transform: rotate(60deg);-webkit-transform: rotate(60deg);-ms-transform: rotate(60deg);transform: rotate(60deg);}
.slash span:after { right: 0; -moz-transform: rotate(-60deg);-webkit-transform: rotate(-60deg);-ms-transform: rotate(-60deg);transform: rotate(-60deg);}



.front h2{ background:url("https://festinc.jp/wp-content/uploads/2024/06/line01.png") repeat-x left bottom; 
padding: 10px 0 30px 0;}


.front h2 span:before{ width:180px; height: 1em; vertical-align:middle; content: ""; margin:0 30px 0 0;
background:url("https://festinc.jp/wp-content/uploads/2024/06/parts01.png") no-repeat left center;
display: inline-block;  background-size: contain;}
.front h2 span:after{ width:180px; height: 1em; vertical-align:middle; content: ""; margin:0 0 0 30px;
background:url("https://festinc.jp/wp-content/uploads/2024/06/parts01.png") no-repeat left center;
display: inline-block;  background-size: contain;}

/*for SP ==========================================*/
@media screen and (max-width:768px) {

body{ min-width:100%; width: 100%; font-size:14px;}
.PC{ display:none;}
.SP{ display:block;}

#container { width: 100%; margin: 0; padding: 100px 0 0 0;}
.contents { width: 100%; padding:10px; overflow: hidden; }
.primary{ float:none; width:96%; margin: 0 auto;}
.secondry{ float:none; width:96%; text-align:center; margin: 0 auto;}

/*TITLE*/
h1,h2{ font-size: 1.2em; text-align:center; line-height: 1.2; }
h2 em{ padding: 0.5em 0 ; display: block;}
h3,h4,h5,h6{ font-size: 1.1em; text-align:center; }

.line { margin: 2em 0 1.4em; line-height: 1.2; padding: 0 0 0.7em; border-bottom: 1px solid #efefef;}
h1.line,
h2.line { margin: 2em 0 1.4em; line-height: 1.5; padding: 0 0 0.5em; border: none; border-bottom: 1px dotted #aaa;}
.line span ,
h1.line span ,
h2.line span { padding:0;}
.line::before,
h1.line::before,
h2.line::before { background: none; }

h1.slash { margin: 20px auto}
h1.slash span{ margin: 0 auto 10px; }

.notes { padding: 0.5em; }
.memo{ font-size: 0.8em; text-align: left;}

	
.front h2 span:before{ width:70px; height: 1em; vertical-align:middle; content: ""; margin:0 10px 0 0;
background:url("https://festinc.jp/wp-content/uploads/2024/06/parts01.png") no-repeat left center;
display: inline-block;  background-size: contain;}
.front h2 span:after{ width:70px; height: 1em; vertical-align:middle; content: ""; margin:0 0 0 10px;
background:url("https://festinc.jp/wp-content/uploads/2024/06/parts01.png") no-repeat left center;
display: inline-block;  background-size: contain;}

/**/}

/*for PC-Tablet ==========================================*/
@media screen and (min-width:769px) {

.SP{ display:none;}
.PC{ display:block;}

/**/}

/*==========================================================
3:HEADER/FOOTER Style
==========================================================*/

header { width:100%; height: auto; overflow: auto; -webkit-overflow-scrolling: touch;
position: fixed; top: 0 ; left: 0; padding: 5px 10px; z-index: 100;}

header h1 { border: none; padding: 12px; text-align: left;}
header h1 img{ height: 60px; width:auto; padding:20px;}
header h1 a{ color:#aaa;}

footer{ clear:both; padding:50px 100px; color:#fff; background: #000;}
footer p.copy{ font-size:10px; text-align:right; }

#fNav{ border-top: 1px solid #333; width: 100%; margin: 10px auto;}
#fNav ul{ text-align: center; margin: 30px auto;}
#fNav ul li{display: inline-block; padding:1em 2em;}
#fNav ul li a{ color: #fff;}


/*for pc Tablet ==========================================*/
@media screen and (min-width:769px) {
header h1{ display: inline-block;line-height: 1; text-align: right;}
	
.is-fixed { position: fixed; top: 0; left: 0; z-index: 2; }
.is-hide { transform: translateY(-100%);}

/**/}

/*for SP ==========================================*/
@media screen and (max-width:768px) {
header { padding: 15px 10px 0; }

header h1 img{ height: 40px; width:auto; padding:10px;}
footer{ padding:10px 0 60px; }
header nav p.logo {}

footer{ clear:both; padding:20px 0 40px;  }
footer p.copy{ font-size:10px; text-align:center;}
	
#fNav{  width: 90%; margin: 10px auto;}
#fNav ul{ text-align: left; margin: 10px auto;}
#fNav ul li{display: block; padding:1em;}
#fNav ul li a{ color: #fff;}

/**/}

/*==========================================================
4:GLOBAL NAVIGATION
==========================================================*/
@keyframes catch_anime {
  0% {
    transform: translateX(200px);
  }
   100% {
    opacity: 1;
    transform: translateX(0);
  }
}

#gNav { width: 100%;height: 100%;
position:fixed;top:0;right: -120%;z-index: 998;
transition: all 0.5s ease;
margin:0 ; padding: 80px 0 0; background:#808080;
text-align: center;
}

/*ナビゲーションの縦スクロール*/
#gNav #gNav-list{
/*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 997; 
    width: 100%;
    height: 100vh;/*表示する高さ*/
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

#gNav ul{ /*ナビゲーション天地中央揃え*/
    position: absolute;
    z-index: 990;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
	width: 100%;
}
#gNav.panelactive{right: 0;}

#gNav li { font-weight:normal; font-size:1.5em; display: block;margin: 0;width: 100%;
opacity: 0;transform: translateX(200px);transition:1s; }

#gNav li.anime:nth-child(1) {animation: catch_anime .4s forwards 0.1s;}
#gNav li.anime:nth-child(2) {animation: catch_anime .4s forwards 0.3s;}
#gNav li.anime:nth-child(3) {animation: catch_anime .4s forwards 0.5s;}
#gNav li.anime:nth-child(4) {animation: catch_anime .4s forwards 0.7s;}

#gNav li a {text-decoration: none;display: block;text-align: center; width: 100%;
padding: 0.8em 0;letter-spacing: 0.05em;color: #fff;text-shadow: 1px 1px 0px #333;}
#gNav li.current a	{ color: #888; }
#gNav li.current:nth-child(1) a	{ color: #888; }
#gNav li a:hover{ color: #fff; text-shadow: 2px 2px 0px rgba(0,0,0,0.8); background: rgba(0, 0, 0,0.1); }

#gNav ul.sub-menu li a{ padding: 0.5em 1em 0.5em 1.5em;}
#gNav ul.sub-menu li a::before{ content: '-'; padding:0 0.5em;}

#gNav li span{ display: inline; font-size: 0.7em; padding:0 0 0 1em;}


#gNav li a:before{ width:100px; height: 1em; vertical-align:middle; content: ""; margin:0 10px 0 0;
background:url("https://festinc.jp/wp-content/uploads/2024/06/parts01.png") no-repeat left center;
display: inline-block;  background-size: contain;}
#gNav li a:after{ width:100px; height: 1em; vertical-align:middle; content: ""; margin:0 0 0 10px;
background:url("https://festinc.jp/wp-content/uploads/2024/06/parts01.png") no-repeat left center;
display: inline-block;  background-size: contain;}


.menuBTN{ display:block;position:fixed;z-index:1001;cursor:pointer;
border-radius: 1px;width: 50px;height: 50px;
top:24px;right:6px;color: #fff;}

.menuBTN .bar {position: absolute;display: inline-block; left:0;
width: 33px; height: 4px;transition: .20s ease-in-out;background-color: #fff;}

.menuBTN:hover .bar{ background-color: #bbb;}

#bar01 {top: 12px; }
#bar02 {top: 30px; }
.active #bar01 {top: 16px;	transform: rotate(45deg);}
.active #bar02 {top: 16px;	transform: rotate(-45deg);}

/*ローディング ==========================================*/

/* Loading背景画面設定　*/
#splash {
    /*fixedで全面に固定*/
  position: fixed;top:0; left: 0;
  width: 100%; height: 100%;
  z-index: 1000;
  background:#000;
  text-align:center;
  color:#fff;
}

/* Loading画像中央配置　*/
#splash_logo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* Loading アイコンの大きさ設定　*/
#splash_logo img {
  width:260px;
}

/* fadeUpをするアイコンの動き */

.fadeUp{
animation-name: fadeUpAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity: 0;
}

@keyframes fadeUpAnime{
  from {
    opacity: 0;
  transform: translateY(100px);
  }

  to {
    opacity: 1;
  transform: translateY(0);
  }
}



/*==========================================================
5:CONTENTS Style
==========================================================*/

/*PAGE NAVI
==============================================================*/
.pageNav { border-top:1px dotted #eee; clear: both; width:100%; margin:10px auto; padding:1em 0.5em; overflow:hidden;text-align: center;}
.pageNav li.prev a{ float:right; padding:.3em; border-bottom: dotted 1px #00afcc ; text-align: right;}
.pageNav li.next a{ float:left;  padding:.3em; border-bottom: dotted 1px #00afcc ; text-align: left;}

a.page-numbers,
.pageNav .current{ background: #000; border-bottom: solid 3px #00afcc; padding:5px 8px; margin:0 2px;text-decoration: none;}
.pageNav .current{ background: #000 ;border-bottom: solid 3px #ccc;}
.pageNav a{ }
.pageNav a.page-numbers:hover{ background: #ddd ;border-bottom: solid 3px #00afcc ; color: #333; }

/*for SP ==========================================*/
@media screen and (max-width:736px) {
.pageNav { text-align: center;}
.pageNav li.prev a,
.pageNav li.next a{ font-size: 0.9em; display: inline-block; float:none; padding:.1em 0; margin: 0.5em auto; }

a.page-numbers,
.pageNav .current{ background: #000; border-bottom: solid 3px #00afcc; padding:5px 8px; margin:0 2px;text-decoration: none;}
.pageNav .current{ background: #000 ;border-bottom: solid 3px #ccc;}
.pageNav a{ }
.pageNav a.page-numbers:hover{ background: #ddd ;border-bottom: solid 3px #00afcc ; color: #333; }

/**/}

/*MORE BTN
==============================================================*/
.MORE { clear: both; margin: 200px auto 100px; text-align: center;}
.MORE a{ clear: both; text-align: center; padding: 20px 30px;
position: relative;line-height: 2.5; letter-spacing: 0.1em;
color: #fff;background:none; border-bottom: 8px double #fff;}

.MORE a:before { position: absolute;top: 0;left: 0; overflow: hidden;
content: attr(data-text); width: 100%; height: 100%;line-height: 2.5;
background: rgba(0,0,0,0.1) ; color: #8fbc8f; border-bottom: 1px solid #fff;
-webkit-transition: .3s; -moz-transition: .3s; -ms-transition: .3s; -o-transition: .3s; transition: .3s;}
.MORE a:hover{ border-bottom: 6px solid #fff;}
.MORE a:hover:before { height: 0px;	}

/*for SP ==========================================*/
@media screen and (max-width:768px) {

.MORE { }
.MORE a{ }
.MORE a:hover{ }

/**/}


/* BTN
==============================================================*/
.BTN { clear: both; margin: 10px auto 20px; text-align: center; padding: 0;}
.BTN a{border-width:2px;border-style: solid;position:relative;display:inline-block;
padding:0.7em 1em;transition:all 0.3s ease-in-out;text-align:center; font-weight: bold; margin: 1em;
background:#fff;border-color:#fff; color: #000; letter-spacing: 0.1em; line-height: 1.3;}

.BTN a:before, .BTN a:after {
content:'';display:block;position:absolute;box-sizing:border-box;border-style:solid;width:1em;height:1em;transition:all 0.3s ease-in-out;
border-color:#fff;}
.BTN a:before {top:-6px;left:-6px;border-width:2px 0 0 2px;z-index:5;}
.BTN a:after {bottom:-6px;right:-6px;border-width:0 2px 2px 0;}

.BTN a:hover { background-color:#555;}
.BTN a:hover { color: #fff; }
.BTN a:hover:before, .BTN a:hover:after {width:calc(100% + 12px);height:calc(100% + 12px);}



/*PageTOP
==============================================================*/
#pageTop { position: fixed; right: 40px; bottom: -200px; z-index: 99; height: 120px; }
#pageTop a  { display: inline-block; position: relative; width: 10px;	height: 80px; color: #f0f0f0; }
#pageTop a::before { width: 1px; height: 100%; left: 0; top: 0;}
#pageTop a::before, #pageTop a::after {display: block; content: ''; position: absolute; background: #f0f0f0;
transition: all .4s cubic-bezier(.3,0,.15,1);}
#pageTop a::after { width: 8px;height: 1px; left: -1px; top: 3px;transform: rotate(45deg);}
#pageTop span { display: block;position: absolute;bottom: 0;right: 0;width: 100px;
font-size: 0.9em;text-align: right;transform: rotate(90deg);transform-origin: right bottom;}
#pageTop a:hover { opacity: 1; color: #ddd;}

/*for PC-Tablet ==========================================*/
@media screen and (min-width:737px) {
#pageTop a:hover::before { height: 90px; top: -10px;}
#pageTop a:hover::after { top: -7px;}
/**/}

/*for SP ==========================================*/
@media screen and (max-width:736px) {
#pageTop { opacity: 0.7;  position: fixed; right: 20px; bottom:-100px; height: 70px; }
#pageTop a  { width: 4px;	height: 60px; }
#pageTop span { font-size: 0.7em;}
#pageTop a:hover { opacity: 0.7; color: #ddd;}

/**/}



/*HOME
==========================================================*/

#MainVisual{ width:100%; position: relative;}

#HOME div.content{ padding : 1em 0;}
#HOME .newsPosts{ padding :1.5em; margin: 0 0 1em 16px; overflow: hidden;}
#HOME .newsPosts .date{ margin: 0 0 1em; letter-spacing: 0.16em; text-align: left;}
#HOME .newsPosts .lead{ margin: 1em 0; font-size: 1.3em;}
#HOME .newsPosts  span.NEW{ background: #bf545e; color:#fff ; padding: 0 7px; border-radius: 3px;}

.home ul#Banner { display:flex;	align-items: center; justify-content: center; width: 100%; }
.home ul#Banner li{ display: block; width: 30%; height: auto; margin:0 5px;}
.home ul#Banner li a{ display: block; align-items: center; width: 100%; min-height: 170px; height: auto; padding: 30px 0; text-align: center;background: #00afcc;color:#fff;position: relative;
-webkit-transition: All 0.5s ease;-moz-transition: All 0.5s ease;-o-transition: All 0.5s ease;-ms-transition: All 0.5s ease;transition: All 0.5s ease; border-bottom: 8px solid #076A53;}
.home ul#Banner li em{ font-size: 1.7em; display: block; border-bottom: 1px solid #fff; 
	width: 80%; padding: 0 0 5px 0; margin: 0 10% 8px; letter-spacing: 0.2em;}
.home ul#Banner li span{ font-size: 1em; display: block;}
.home ul#Banner li a:before {height: 0;display: block;position: absolute; right: -3px;top: -3px;
	z-index: 2;content: "";border-top: solid 50px #fff;border-left: solid 50px transparent;}
.home ul#Banner li a:after {height: 0;display: block;position: absolute;right: -2px;top: -2px;
content: "";border-top: solid 50px transparent;border-left: solid 50px transparent;}
.home ul#Banner li a:hover{ background: #076A53;color:#fff; border-bottom: 8px solid #00afcc;}
.home ul#Banner li a:hover:before {border: none;}
.home ul#Banner li a:hover:after {border: none;}

/*for PC-Tablet ==========================================*/
@media screen and (min-width:737px) {

/*#MainVisual h2,#MainVisual h2.bgW{ display: none;} */

/**/}



/*for SP ==========================================*/
@media screen and (max-width:736px) {
#MainVisual h2,#MainVisual h2.bgW{ display: none;}

#HOME .newsPosts{ padding :1.5em; margin: 0 0 1em 0;}

.home ul#Banner { display:block;}
.home ul#Banner li{ display: block; width: 80%; margin:0 auto 10px;}
.home ul#Banner li a{ min-height:inherit; padding: 20px 0;}
.home ul#Banner li em{ font-size: 1.5em;}
.home ul#Banner li span{ }
	

/**/}


/*NEWS
==========================================================*/
#NEWS { margin:0 0 20px 0; border-bottom: 1px dotted #fff; }
#NEWS.contents { height:auto; }
#NEWS .inner p.description {}
#NEWS div#NewsData {}

#NEWS div.NewsData ul{ overflow: hidden;}
#NEWS div.NewsData ul li{ width:25%; padding:0 1px 30px; float: left; position: relative; }
#NEWS div.NewsData ul li:nth-child(4n-3){ clear: both;}
#NEWS div.NewsData ul li span.img { display: block;}
#NEWS div.NewsData ul li span.img img{ display: block; width: 100%; height: auto; margin: 0 auto;}
#NEWS div.NewsData ul li span.ttl{ display: block; width: 90%; height: 100%; margin: 1em;
background: rgba(255,255,255,0.30); color: #fff;}
#NEWS div.NewsData ul li em{ display: block; color: #aaa; font-size: 0.9em;letter-spacing: 0.1em;
padding: 1em 1em 0;
/*
position: absolute;top: 0;left: 10px; transform: rotate(90deg) translateX(-.5em);transform-origin: left center;
*/
}
#NEWS div.NewsData ul li em span.NEW{ background: #bf545e; color:#fff ; padding: 0 7px; border-radius: 3px;}
#NEWS div.NewsData ul li a{ display: block; }
#NEWS div.NewsData ul li:hover img{ border-radius: 50%;}
#NEWS div.NewsData ul li a,#NEWS div.NewsData ul li a img { opacity: 1 !important }

#NEWS div.NewsPosts dl{ margin:10px 0; padding:10px; overflow: hidden;}
#NEWS div.NewsPosts dl dt{ float: left; width: 32%; margin: 0 1em 1em 0;}
#NEWS div.NewsPosts dl dt img{ max-width: 100%; height: auto;}
#NEWS div.NewsPosts dl dd{ float: right; width: 66%; padding:0  10px; }
#NEWS div.NewsPosts dl dd p{ margin: 0 0 1em; }
#NEWS div.NewsPosts dl dd em{ display:block;font-size:0.9em;margin:0 0 1em 0; color: #888;}
#NEWS div.NewsPosts dl h1{ font-size:1.3em; margin-bottom:1em; padding:0.5em 0; color: #333; }
#NEWS div.NewsPosts ul.subMenu{ margin:0.5em; font-size: 0.8em; color: #888; }
#NEWS div.NewsPosts ul.subMenu a{ display: inline-block; margin: 0 5px; padding:1px; border-bottom: dotted 1px #00afcc ;}
#NEWS div.NewsPosts ul.subMenu a:hover{ color: #333;}
#NEWS div.NewsPosts dl dd a.BTN{ background: #eee }

/*COMMENT*/
p.nocomments{ display: none;}


/*for SP(notTablet)==========================================*/
@media screen and (max-width:767px) {
#NEWS { margin:0 0 20px 0; }

#NEWS div.NewsData ul{ }
#NEWS div.NewsData ul li{ width:100%; padding: 10px 0; margin: 0 0 10px; overflow: hidden;float: none; clear: both;}
#NEWS div.NewsData ul li:nth-child(3n+1){ clear: both;}
#NEWS div.NewsData ul li span.img { float: left; width: 20%; height: auto;}
#NEWS div.NewsData ul li span.img img{ width: 100%; height: auto; margin: 0 auto;}
#NEWS div.NewsData ul li span.ttl{ float: right; width: 77%; margin:0;
 background: rgba(255,255,255,0.30); color: #555;}
#NEWS div.NewsData ul li em{ display: block; color: #999; font-size: 0.9em; padding: 0 0 7px 7px;float: right; width: 77%; 
position:static; transform: rotate(0deg) translateX(-.5em);transform-origin: left center;}
#NEWS div.NewsData ul li a{ display: block; width: 100%;overflow: hidden;}
#NEWS div.NewsData ul li:hover img{ border-radius: 0%; }

#NEWS div.NewsPosts dl{ }
#NEWS div.NewsPosts dl dt{ float: none; width: 70%; margin:10px auto;}
#NEWS div.NewsPosts dl dt img{padding:0 0 0.5em 0;}
#NEWS div.NewsPosts dl dd{ float: none; width: 100%; padding:0  10px; }
#NEWS div.NewsPosts dl dd em{ text-align: center;}
#NEWS div.NewsPosts dl h1{ font-size:1.2em;text-align: center; line-height: 1.5; margin-bottom:1em; padding:0 0 0.5em 0;}
#NEWS div.NewsPosts ul.subMenu{  }
#NEWS div.NewsPosts ul.subMenu a{ }
#NEWS div.NewsPosts ul.subMenu a:hover{ }

/*COMMENT*/
p.nocomments{}

/**/}



/*==========================================================
ABOUT
==========================================================*/
#ABOUT.front{ padding:200px 10px 300px; background: #8fbc8f;}
#ABOUT.front p{ color: #fff; line-height: 4; font-weight: lighter; text-align:center;}
#ABOUT.front h1{ text-align:center;}

#ABOUT .contents{ max-width: 900px; min-width: 500px; margin: 0 auto;text-align: left;}

#ABOUT h1{ color: #fff; font-size: 2em; font-weight: lighter; padding: 100px 0 10px;text-align:center;
 margin: 0 0 100px 0;}


#ABOUT .inner h1{ background:url("https://festinc.jp/wp-content/uploads/2024/06/line01.png") repeat-x left bottom; 
padding: 10px 0 30px 0;}


#ABOUT .inner h1 span:before{ width:180px; height: 1em; vertical-align:middle; content: ""; margin:0 30px 0 0;
background:url("https://festinc.jp/wp-content/uploads/2024/06/parts01.png") no-repeat left center;
display: inline-block;  background-size: contain;}
#ABOUT .inner h1 span:after{ width:180px; height: 1em; vertical-align:middle; content: ""; margin:0 0 0 30px;
background:url("https://festinc.jp/wp-content/uploads/2024/06/parts01.png") no-repeat left center;
display: inline-block;  background-size: contain;}




#ABOUT h2{ color: #fff; font-size: 2.2em; font-weight: lighter; text-align:center;}
#ABOUT p{ color: #fff; line-height: 2; font-weight: lighter;}


/*for SP(notTablet)==========================================*/
@media screen and (max-width:767px) {
#ABOUT.front{ text-align: center;}
#ABOUT .contents{  max-width: 100%; min-width: 100%; margin: 0 auto;text-align: left;}
#ABOUT h1{ text-align: center; font-size: 1.3em;}
#ABOUT.front h2{ font-size: 1.3em;text-align: center;}
#ABOUT.front p{text-align: center;}

#ABOUT .contents .inner{ padding: 50px 30px;} 


	
#ABOUT .inner h1 span:before{ width:50px; height: 1em; vertical-align:middle; content: ""; margin:0 10px 0 0;
background:url("https://festinc.jp/wp-content/uploads/2024/06/parts01.png") no-repeat left center;
display: inline-block;  background-size: contain;}
#ABOUT .inner h1 span:after{ width:50px; height: 1em; vertical-align:middle; content: ""; margin:0 0 0 10px;
background:url("https://festinc.jp/wp-content/uploads/2024/06/parts01.png") no-repeat left center;
display: inline-block;  background-size: contain;}

/**/}

/*==========================================================
HOME CONTACT
==========================================================*/
#CONTACT.front{ padding:200px 10px 300px; background: #222;}
#CONTACT.front p{ color: #fff !important; line-height: 4; font-weight: lighter;}

#CONTACT .contents{ max-width: 1000px; min-width: 500px; margin: 0 auto;text-align: left;}
#CONTACT h1{ color: #fff; font-size: 2.4em; font-weight: lighter; padding: 100px 0 10px;
border-bottom: 1px solid #aaa;  margin: 0 0 100px 0; letter-spacing: 0.2em;}
#CONTACT h2{ color: #fff; font-size: 2.2em; font-weight: lighter;text-align: center;}
#CONTACT p{ color: #fff; line-height: 2; font-weight: lighter;}

#CONTACT.front h2{ background:url("https://festinc.jp/wp-content/uploads/2024/06/line01.png") repeat-x left bottom; 
padding: 10px 0 30px 0; text-align: left;}

#CONTACT.front h2 span:before{ width:50px; height: 1em; vertical-align:middle; content: ""; margin:0 10px 0 0;
background:url("https://festinc.jp/wp-content/uploads/2024/06/parts02.png") no-repeat left center;
display: inline-block;  background-size: contain;}
#CONTACT.front h2 span:after{ width:50px; height: 1em; vertical-align:middle; content: ""; margin:0 0 0 30px;
background:url("https://festinc.jp/wp-content/uploads/2024/06/parts03.png") no-repeat left center;
display: inline-block;  background-size: contain;}

/*for SP(notTablet)==========================================*/
@media screen and (max-width:767px) {
#CONTACT.front{ text-align: center;padding:100px 10px; border: none;}
#CONTACT.front p{ color: #fff; line-height: 2; font-weight: lighter;}
#CONTACT .contents{  max-width: 100%; min-width: 100%; margin: 0 auto;text-align: center;}
#CONTACT h1{ text-align: left; font-size: 2em; letter-spacing: 0.1em;}
#CONTACT.front h2{ font-size: 1.3em;text-align: left;}

#CONTACT.front p{text-align:left;}
#CONTACT.front dl dt{text-align:center;}
#CONTACT.front dl dd{text-align:center;}

#CONTACT .contents .inner{ padding: 50px 30px;} 

#CONTACT.front h2 span:before{ width:20px; height: 1em; vertical-align:middle; content: ""; margin:0 15px 0 0;
background:url("https://festinc.jp/wp-content/uploads/2024/06/parts02.png") no-repeat left center;
display: inline-block;  background-size: contain;}
#CONTACT.front h2 span:after{ width:20px; height: 1em; vertical-align:middle; content: ""; margin:0 0 0 20px;
background:url("https://festinc.jp/wp-content/uploads/2024/06/parts03.png") no-repeat left center;
display: inline-block;  background-size: contain;}
/**/}


/*==========================================================
PROJECTS
==========================================================*/
.PROJECTS.front{ padding:100px 10px; background: #ccc;}
.PROJECTS.front p{ color: #fff; line-height: 4; font-weight: lighter;}

.PROJECTS .contents{ max-width: 1000px; min-width: 500px; margin: 0 auto 50px;text-align: center;}
.PROJECTS .contents .inBox{ }
.PROJECTS.front .slider{ width: 400px; height: auto;}
.PROJECTS.front .slider img{ width: 400px; height: auto; margin: 50px auto;}
.PROJECTS .LINK{ max-width: 300px; text-align: center; margin: 100px auto 20px;}

.PROJECTS h2{ color: #fff; font-size: 2em; font-weight: lighter; 
text-align:center;}
.PROJECTS p{ color: #fff; line-height: 2; font-weight: lighter;}


/*for SP(notTablet)==========================================*/
@media screen and (max-width:767px) {
.PROJECTS.front{}
.PROJECTS .contents{  max-width: 100%; min-width: 100%; margin: 0 auto;text-align: center;}
.PROJECTS .contents .inBox{ display: block;}

.PROJECTS h2{ text-align: center; font-size: 1.3em;}

.PROJECTS.front .slider img{ width: 70%; height: auto; 
margin: 20px auto;}
.PROJECTS .LINK{  width: 50%; margin: 80px auto 40px;}
/**/}


/*==========================================================
HOMEfree
==========================================================*/
#HOMEfree.front{ padding:100px 10px; background: #fff; color:#000;text-align: center;}
#HOMEfree.front p{ color: #333; }
#HOMEfree.front h1,#HOMEfree.front h2,#HOMEfree.front h3{ color: #333; margin:10px 10px 20px 10px;}

/*for SP(notTablet)==========================================*/
@media screen and (max-width:767px) {

/**/}

	

/*==========================================================
:FORM Style
==========================================================*/
#contentsMethod{padding: 20px 0;}
#contentsMethod p{ color: #fff; padding: 1em;}

.wpcf7 dl{ clear:both; overflow:hidden; width:100%; margin: 0 auto; display:flex; border-bottom: 1px dotted #333;}
.wpcf7 dl dt{ width:40%; padding:1em; text-align:right;color: #fff ;}
.wpcf7 dl dt span{ color:#C44; padding:4px; }
.wpcf7 dl dd{width:60%;padding:11px 0; text-align:left;}
.wpcf7 dl dd input{margin:4px 2px;vertical-align:middle;}

div.wpcf7 select{color: #333;}
div.wpcf7 {	margin: 30px auto 0;	padding: 0;}
div.wpcf7-response-output {	margin: 1em auto !important ;	padding: 0.2em 1em;}
div.wpcf7 .screen-reader-response { position: absolute;	overflow: hidden;	clip: rect(1px, 1px, 1px, 1px);	height: 1px;	width: 1px;	margin: 0;	padding: 0;	border: 0;}
div.wpcf7-mail-sent-ok { margin:20px 0px 20px 10px;border:1px solid #ccc;text-align:center;font-weight:bold;padding:50px 20px;}
div.wpcf7-mail-sent-ng {	border:none !important;}
div.wpcf7-spam-blocked { border: 2px solid #fa0;}
div.wpcf7-validation-errors {}
span.wpcf7-form-control-wrap {position: relative;}
span.wpcf7-not-valid-tip {/*	position: absolute;	top: 0%;	left: 90%;	z-index: 100;	*/
color:#C44 !important;	font-size: 0.8em !important;	padding: 0.1em 0 1em 0;	}
span.wpcf7-not-valid-tip-no-ajax {color: #f00;	font-size: 1em;	display: block;}
span.wpcf7-list-item {	margin: 0 !important; padding:0 ; display: block !important; text-align: left;}
span.wpcf7-display-none {	display: none;}
img.ajax-loader {	border: none;	vertical-align: middle;}
.wpcf7-list-item-label{padding-right:5px;}
div.wpcf7-validation-errors {
border:none !important;background:#C44;color:#fff;width:90%;margin:10px auto;padding:10px;border-radius:3px;text-align:center;}
div.wpcf7-mail-sent-ok {border:none !important;background:#cf2e2e;
color:#fff;width:90%;margin:10px auto;padding:10px !important;border-radius:3px;}

/*error*/
.wpcf7 form.invalid .wpcf7-response-output, 
.wpcf7 form.unaccepted .wpcf7-response-output{border-color: #B10000 !important; background:#B10000; color: #fff;
border-radius: 3px;}

/*送信後メッセージ*/
.wpcf7 form.sent .wpcf7-response-output {
	border-color: #c2e59c !important; background:#c2e59c ; color:#314F10;}


/*submit BTN*/
.wpcf7-form-control.wpcf7-submit {}
#submitBtn{ clear:both; min-width:90%; margin:20px auto; text-align:center;}
#submitBtn input { background:#cf2e2e; margin:0px auto; letter-spacing:0.2em; font-weight:bold; }
#submitBtn input:hover{ background:#777; color:#fff; }
.wpcf7 .CHECK{ min-width: 100%; text-align: center; margin: 0 auto; }
.g-recaptcha { width: 210px; margin:1em auto 0;}

.FORM .conditions ul { list-style: none; padding-left: 1em; }
.FORM .conditions ul li{ position: relative;padding-left: 0.2em;}
.FORM .conditions ul li:before {position: absolute;left: -1em;top: 0; content: "・";}

/*for SP(notTablet)==========================================*/
@media screen and (max-width:767px) {
.wpcf7 dl{ border-bottom: 1px dotted #eee; margin: 2px auto; padding: 5px 0;}
.wpcf7 dl{ width:100%; display: block;}
.wpcf7 dl dt{ width:100%;padding:5px 0 0; text-align: center; color: #00afcc ;}
.wpcf7 dl dt span{}
.wpcf7 dl dd{ width:100%; padding:5px 0 0 0; text-align: center; margin: 0 auto;}
.wpcf7 dl dd input[type="text"],
.wpcf7 dl dd input[type="email"],
.wpcf7 dl dd input[type="tel"],
.wpcf7 dl dd textarea{width:90% !important; margin: 0 auto 1px;}

span.wpcf7-list-item {	padding:0.2em 0 0.3em 1em ;}

.wpcf7 .CHECK{ width:100%; padding: 0 }
.g-recaptcha { width: 300px; margin:1em auto 0;}

.FORM .memo{ margin: 0 1em;}
.FORM .conditions dd{ text-align: left !important;}
.FORM .conditions ul {  padding-left: 2em;}

.seminarDate span.wpcf7-list-item { padding: 0 1em 0 2em ;}
.seminarDate span.wpcf7-list-item label {	margin-left:-1em; text-indent: 1em; }

/**/}



.grecaptcha-badge {opacity: 0;}


/*---------------------------------------------------------
Responsive 
--------------------------------------------------------- */

/*for Tablet ==========================================*/
@media screen and (min-width:769px) {

/**/}

/*for SP(notTablet)==========================================*/
@media screen and (max-width:767px) {

/**/}


/*for SP ==========================================*/
@media screen and (max-width:736px) {

/**/}

@media screen and (max-width:480px){

/**/
}