@charset "utf-8";

@import url("editor-style.css");

/* -- WebFonts -- */
@import url('https://fonts.googleapis.com/css?family=Josefin+Sans:400,600&display=swap');
@import url('https://fonts.googleapis.com/css?family=Noto+Serif+JP:500,600&display=swap');


/* Reset CSS.
-------------------------------------------------------------- */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { border: 0; font-family: inherit; font-size: 100%; font-style: normal; font-weight: normal; margin: 0; outline: 0; padding: 0; vertical-align: baseline; }
:focus { outline:0; }
html { overflow-y: scroll; }
ol, ul { list-style: none; }
table { width: 100%; border-collapse: collapse; border-spacing: 0; }
caption, th, td { font-weight: normal; text-align: left; }
blockquote:before, blockquote:after,q:before, q:after { content: ""; }
blockquote, q { quotes: "" "";}
img, a img { height: auto; max-width: 100%; border: 0; vertical-align: bottom; }
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, main { display: block; }
input, textarea { margin: 0; padding: 0; }
figure { margin: 0; padding: 0; }


/* Web Fonts
-------------------------------------------------------------- */

/* -- 約物半角ゴシック -- */
@font-face {
  font-family: "YakuHanJP";
  font-style: normal;
  font-weight: 100;
  src: url("../fonts/YakuHanJP-Thin.eot");
  src: url("../fonts/YakuHanJP-Thin.woff2") format("woff2"),
  url("../fonts/YakuHanJP-Thin.woff") format("woff");
}
@font-face {
  font-family: "YakuHanJP";
  font-style: normal;
  font-weight: 200;
  src: url("../fonts/YakuHanJP-Light.eot");
  src: url("../fonts/YakuHanJP-Light.woff2") format("woff2"),
  url("../fonts/YakuHanJP-Light.woff") format("woff");
}
@font-face {
  font-family: "YakuHanJP";
  font-style: normal;
  font-weight: 300;
  src: url("../fonts/YakuHanJP-DemiLight.eot");
  src: url("../fonts/YakuHanJP-DemiLight.woff2") format("woff2"),
  url("../fonts/YakuHanJP-DemiLight.woff") format("woff");
}
@font-face {
  font-family: "YakuHanJP";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/YakuHanJP-Regular.eot");
  src: url("../fonts/YakuHanJP-Regular.woff2") format("woff2"),
  url("../fonts/YakuHanJP-Regular.woff") format("woff");
}
@font-face {
  font-family: "YakuHanJP";
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/YakuHanJP-Medium.eot");
  src: url("../fonts/YakuHanJP-Medium.woff2") format("woff2"),
  url("../fonts/YakuHanJP-Medium.woff") format("woff");
}
@font-face {
  font-family: "YakuHanJP";
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/YakuHanJP-Bold.eot");
  src: url("../fonts/YakuHanJP-Bold.woff2") format("woff2"),
  url("../fonts/YakuHanJP-Bold.woff") format("woff");
}
@font-face {
  font-family: "YakuHanJP";
  font-style: normal;
  font-weight: 900;
  src: url("../fonts/YakuHanJP-Black.eot");
  src: url("../fonts/YakuHanJP-Black.woff2") format("woff2"),
  url("../fonts/YakuHanJP-Black.woff") format("woff");
}

/* -- 源ノ明朝 -- */
.font-mincho { font-family: 'Noto Serif JP', "游明朝", "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "HGS明朝E", "メイリオ", Meiryo, serif; }


/* フォント設定
------------------------------------------------------------*/
html{ font-size: 10px; }
body{ font-size: 16px; font-size: 1.6rem; line-height: 1; }
@font-face {
  font-family: "Yu Gothic";
  src: local("Yu Gothic Medium");
  font-weight: 100;
}
@font-face {
  font-family: "Yu Gothic";
  src: local("Yu Gothic Medium");
  font-weight: 200;
}
@font-face {
  font-family: "Yu Gothic";
  src: local("Yu Gothic Medium");
  font-weight: 300;
}
@font-face {
  font-family: "Yu Gothic";
  src: local("Yu Gothic Medium");
  font-weight: 400;
}
@font-face {
  font-family: "Yu Gothic";
  src: local("Yu Gothic Bold");
  font-weight: bold;
}
@font-face {
  font-family: "Yu Mincho";
  src: local("Yu Mincho Medium");
  font-weight: 100;
}
@font-face {
  font-family: "Yu Mincho";
  src: local("Yu Mincho Medium");
  font-weight: 200;
}
@font-face {
  font-family: "Yu Mincho";
  src: local("Yu Mincho Medium");
  font-weight: 300;
}
@font-face {
  font-family: "Yu Mincho";
  src: local("Yu Mincho Medium");
  font-weight: 400;
}
@font-face {
  font-family: "Yu Mincho";
  src: local("Yu Mincho Bold");
  font-weight: bold;
}

@font-face {
  font-family: "Helvetica Neue";
  src: local("Helvetica Neue Regular");
  font-weight: 100;
}
@font-face {
  font-family: "Helvetica Neue";
  src: local("Helvetica Neue Regular");
  font-weight: 200;
}
body { font-family: "Josefin Sans", "YakuHanJP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Yu Gothic Medium", Yu Gothic Medium, "Yu Gothic", YuGothic, Verdana, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "M+ 1p", sans-serif; color: #333; background: #FFF; -webkit-text-size-adjust: 100%; }
h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: normal; }
h2, h3, h4, h5, h6, p { margin-bottom: 1.5em; }
.bold, strong { font-weight: bold; }
.italic, em { font-style: italic; }
.underline { text-decoration: underline; }
.font-12 { font-size: 12px; font-size: 1.2rem; }
.font-13 { font-size: 13px; font-size: 1.3rem; }
.font-14 { font-size: 14px; font-size: 1.4rem; }
.font-15 { font-size: 15px; font-size: 1.5rem; }
.font-16 { font-size: 16px; font-size: 1.6rem; }
.font-17 { font-size: 17px; font-size: 1.7rem; }
.font-18 { font-size: 18px; font-size: 1.8rem; }
.font-19 { font-size: 19px; font-size: 1.9rem; }
.font-20 { font-size: 20px; font-size: 2.0rem; }
.font-22 { font-size: 22px; font-size: 2.2rem; }
.font-24 { font-size: 24px; font-size: 2.4rem; }
.font-25 { font-size: 25px; font-size: 2.5rem; }
.font-26 { font-size: 26px; font-size: 2.6rem; }
.font-28 { font-size: 28px; font-size: 2.8rem; }
.font-30 { font-size: 30px; font-size: 3.0rem; }

/* -- フォント色 -- */
.navy { color: #001F3F; }
.blue { color: #0074D9; }
.aqua { color: #7FDBFF; }
.teal { color: #39CCCC; }
.olive { color: #3D9970; }
.green { color: #2ECC40; }
.lime { color: #01FF70; }
.yellow { color: #FFDC00; }
.orange { color: #FF851B; }
.red { color: #FF4136; }
.maroon { color: #85144B; }
.fuchsia { color: #F012BE; }
.purple { color: #B10DC9; }
.sitver { color: #DDD; }
.gray { color: #AAA; }
.black { color: #111; }


/* リンク設定
------------------------------------------------------------*/
a {
	color: #47398F;
	vertical-align: baseline; text-decoration: underline; outline: 0; margin: 0; padding: 0; background: transparent;
	-webkit-transition: 0.4s color ease, 0.4s background ease, 0.4s opacity ease-out, 0.4s border-color ease-out;
	-moz-transition: 0.4s color ease, 0.4s background ease, 0.4s opacity ease-out, 0.4s border-color ease-out;
	transition: 0.4s color ease, 0.4s background ease, 0.4s opacity ease-out, 0.4s border-color ease-out;
}
a:hover,
a:active { text-decoration: none; outline: none; }

/* -- ホバー時透過　単体：.fade　全体：.fadeAll -- */
.fade:hover,
.fadeAll a:hover { opacity: 0.6; filter: alpha(opacity=60); }


/* 配置指定
------------------------------------------------------------*/
img.aligncenter { display: block; margin: 5px auto; }
img.alignright, img.alignleft{ padding: 4px;	margin: 0 0 2px 7px; display: inline; }
img.alignleft{ margin: 0 7px 2px 0; }
.alignright{ float: right; }
.alignleft{ float: left; }
.text-center { text-align: center; }
.text-right  { text-align: right;  }
.text-left   { text-align: left;   }

/* -- inline-block -- */
.inline { letter-spacing: -0.4em; } 
.inline li { display: inline-block; letter-spacing: normal; }


/* マージン
------------------------------------------------------------*/
.mb00 { margin-bottom: 0; }
.mb05 { margin-bottom: 5px; }
.mb10 { margin-bottom: 10px; }
.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; }
.mb100 { margin-bottom: 100px; }


/* Editor style
------------------------------------------------------------*/
.editor-style h2,
.editor-style h3,
.editor-style h4 { position: relative; font-weight: bold; line-height: 1.35; margin-top: 2.5em; }
.editor-style h2 { font-size: 24px; font-size: 2.4rem; padding: 10px 24px; background: #F5F1F4; border-left: 5px solid #47398F; }
.editor-style h3 { font-size: 20px; font-size: 2.0rem; padding: 8px 0 8px 15px; border-bottom: 1px solid #47398F; }
.editor-style h3:before { position: absolute; top: 0; bottom: 0; left: 0; content: ""; display: block; width: 5px; height: 25px; margin: auto; background: #47398F; }
.editor-style h4 { font-size: 16px; font-size: 1.6rem; color: #47398F; }

/* -- リスト -- */
.editor-style ol,
.editor-style ul { margin-bottom: 1.5em; margin-left: 1.5em; }
.editor-style ol li,
.editor-style ul li { margin-bottom: 1.0em; }
.editor-style ol li:last-child,
.editor-style ul li:last-child { margin-bottom: 0; }
.editor-style ol { list-style: decimal; }
.editor-style ul { list-style: disc; }


/* Clearfix
------------------------------------------------------------*/
.cf:before,
.cf:after {	content: ""; display: table; }
.cf:after { clear: both; }
.cf { zoom: 1; }


/* フォームタグ
------------------------------------------------------------*/
input[type="text"], input[type="tel"], input[type="number"], input[type="email"], textarea, select {
	font-family: "Josefin Sans", "YakuHanJP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Yu Gothic Medium", Yu Gothic Medium, "Yu Gothic", YuGothic, Verdana, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "M+ 1p", sans-serif;
	font-size: 16px; font-size: 1.6rem; color: #333; line-height: 34px; vertical-align: middle; width: 100%; height: 44px; padding: 5px 10px; background-color: #F6F6F6; border: none; border-radius: 4px; box-sizing: border-box;
	-webkit-appearance: none; -moz-appearance: none; appearance: none;
}
textarea { line-height: 1.8; height: auto; }

/* -- select -- */
select { line-height: 30px; cursor: pointer; padding-right: 32px; background-color: #FFF; background-image: url("../img/page/contact/select.png"); background-repeat: no-repeat; background-position: -webkit-calc(100% - 10px) 50%; background-position: calc(100% - 10px) 50%; border: 2px solid #DDD; }

/* -- radio -- */
span.wpcf7-list-item { margin: 0 !important; }
input[type="radio"] { display: none; }
input[type="radio"] + span { position: relative; margin: 10px 20px 10px 0; padding-left: 40px; cursor: pointer; }
input[type="radio"] + span:before,
input[type="radio"] + span:after  { position: absolute; top: 0; bottom: 0; content: ""; display: block; margin: auto; border-radius: 50%; }
input[type="radio"] + span:before { width: 30px; height: 30px; background: #F6F6F6; }
input[type="radio"] + span:after  { left: 7.5px; width: 15px; height: 15px; background: #47398F; opacity: 0; }
input[type="radio"]:checked + span:after { opacity: 1.0; }

/* -- submit -- */
input[type="submit"] {
	font-family: "Josefin Sans", "YakuHanJP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Yu Gothic Medium", Yu Gothic Medium, "Yu Gothic", YuGothic, Verdana, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "M+ 1p", sans-serif;
	font-size: 24px; font-size: 2.4rem; font-weight: bold; color: #FFF; line-height: 80px; text-indent: 1.0em; text-shadow: 0 -2px 0 #000; letter-spacing: 1.0em; width: 100%; height: 80px; padding: 0; background: #333; border: none; border-radius: 4px; box-sizing: border-box;
	-webkit-transition: 0.4s opacity ease; -moz-transition: 0.4s opacity ease; transition: 0.4s opacity ease;
	-webkit-appearance: none; -moz-appearance: none; appearance: none;
}
input[type="submit"]:hover { opacity: 0.6; }

/* 全画面動画セクションのスタイル */
.hero-video-section {
    position: relative;
    width: 100%;
    height: 100vh; /* 画面いっぱいの高さ */
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #000; /* 動画読み込み前の背景色 */
}

.hero-video-section video {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    object-fit: cover; /* ネイエのように画面に合わせて切り抜き */
    z-index: 1;
}

/* 動画の上の薄い重なり（文字を読みやすくする） */
.video-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.2); /* 20%の黒を被せる */
    z-index: 2;
}

/* キャッチコピーのスタイル */
.hero-copy {
    position: relative;
    z-index: 3;
    text-align: center;
    color: #fff;
    text-shadow: 0 2px 10px rgba(0,0,0,0.3);
}

.hero-copy h2 {
    font-size: 3rem;
    letter-spacing: 0.2em;
    margin-bottom: 10px;
}

.hero-copy .en {
    font-size: 1rem;
    letter-spacing: 0.3em;
}

/* スクロール促しアニメーション（任意） */
.scrolldown {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
    z-index: 3;
    font-size: 12px;
}

/* 動画テストモード時のスタイル */
.video-mode #main {
    position: relative;
    width: 100%;
    height: 100vh; /* 画面いっぱいの高さに固定 */
    overflow: hidden;
    background: #000;
}

.video-hero {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.video-hero video {
    width: 100%;
    height: 100%;
    object-fit: cover; /* 画面サイズに合わせてトリミング */
}

.video-hero__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.2); /* 重なりの暗さ */
    z-index: 1;
}

/* 動画の上のキャッチコピーを最前面に */
.video-mode .catchfress {
    z-index: 2;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    color: #fff; /* 動画上なので白文字を推奨 */
}


/* 動画モードの時だけ適用 */
.video-mode #header {
    background-image: none !important; /* 背景の波形画像を消去 */
    background-color: transparent !important; /* 背景色を透明に */
    box-shadow: none !important; /* 影があれば消去 */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
}

/* ヘッダーの擬似要素（波形パーツによく使われる）を非表示にする */
.video-mode #header::after,
.video-mode #header::before {
    display: none !important;
}

/* 文字を白にして視認性を上げる（ネイエ風） */
.video-mode #header .logo h1 a,
.video-mode #header .logo p a,
.video-mode #header .address p,
.video-mode #navigation > ul > li > a {
    color: #ffffff !important;
    text-shadow: 0 1px 3px rgba(0,0,0,0.5); /* 文字を見やすくするための影 */
}

/* 動画エリアの余白をリセットして全画面化 */
.video-mode #main {
    margin-top: 0 !important;
    padding-top: 0 !important;
}







/* 動画モード時のテキスト色と視認性アップ */
.video-mode #header .logo h1 a,
.video-mode #header .logo p a,
.video-mode #header .address p,
.video-mode #header .address p .tel,
.video-mode #navigation > ul > li > a {
    color: #ffffff !important; /* 文字を白に変更 */
    text-shadow: 0px 1px 10px rgba(0, 0, 0, 0.6); /* 映像が明るくなった時でも読めるように影を追加 */
    transition: color 0.3s ease;
}

/* 資料請求ボタンの調整 */
.video-mode .pampinq a {
    color: #ffffff !important;
    border-color: #ffffff !important;
    text-shadow: 0px 1px 5px rgba(0, 0, 0, 0.5);
}


/* ナビゲーションのホバー時（少しグレーにするなど） */
.video-mode #navigation > ul > li > a:hover {
    color: #cccccc !important;
}

