@charset "utf-8";
/*
Theme Name: KEJapan
Author: Koschy
Description: 鉄道模型用サイト
Version: 1.0
*/



/* リセット */
body, h1, h2, h3, h4, h5, h6, p, ul, figure {
  margin: 0;
  padding: 0;
}

/* 変数 */
:root {
  --f1: 2.44em;
  --f2: 1.95em;
  --f3: 1.56em;
  --f4: 1.25em;
  --f5: 1em;
  --f6: 0.8em;
}


/* ===== 基本 ===== */
body {
  font-family: 'Zen Kaku Gothic New', sans-serif;  /* Mac用追加 */
  background-color: #fafafa;
  color: #404040;
}

.container {
  margin: 0 8%;
}

main {
  margin: 0;
  padding-top: 24px;
}

aside {
  margin: 0;
  padding: 36px 0;
  background-color: #ddd; /* #235180 */
}

aside li a {
  color: #333;
}

article figure:first-child {
  margin-top: 0;
  margin-bottom: 0;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

iframe {
  width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

a:hover {
  opacity: 0.7;
}

ul {
  list-style: none;
}


/* ===== 部品 ===== */
h1 {
  font-size: var(--f1);
}

h2 {
  font-size: var(--f2);
}

h3 {
  font-size: var(--f3);
}

h4 {
  font-size: var(--f4);
}

h5 {
  font-size: var(--f5);
}

h6 {
  font-size: var(--f6);
}

p {
  font-size: var(--f5);
  line-height: 1.9;
}



/* FontAwesome */
.fa-youtube {
  color: #e00;
}

/* twitter */




/* ============
共通モジュール
=============== */
/* ヘッダー */
header {
  padding: 14px 0;
  background-color: #1c4fb2;
}

header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sitename {
  display: flex;
}

.header-logo p {
  font-size: var(--f4);
  font-weight: normal;
  color: #eee;
}


/* ハンバーガーメニュー */
.nav-button {
  padding: 0;
  border: none;
  outline: none;
  background: none;
  font-size: var(--f2);
  color: #eee;
  cursor: pointer;
}


/* ナビゲーションメニュー */
.nav {
  display: none;
  padding: 4px 10px;
}

.nav ul {
  list-style: none;
  font-size: var(--f5);
}

.nav li {
  padding: 14px;
  text-align: center;
}

.nav a {
  color: #eee;
}



/* ===========
共通モジュール　固定ページ
============== */

h2 {
  margin-bottom: 36px;
  border-bottom: 1px solid #aaa;
  text-align: center;
}


/* =========
ブログ本文  
============ */


/* タイトル */
article li {
  margin-bottom: 20px;
  color: #1c4fb2;
}

article h3 {
  margin-top: 48px;
  margin-bottom: 12px;
  padding-left: 12px;
  border-left: solid 12px #1c4fb2;
  line-height: 1.6;
}

/* 本文のリンク */
article p a {
  color: #1c4fb2;
  text-decoration: underline;
}


/* サイドバー */

/* aside section {
  padding: 15px;
  border: solid 1px #ddd;
  box-shadow: 0 3px 5px #ddd;
} */

aside section h2 {
  border-bottom: solid 1px #888;
  margin-bottom: 1em;
  font-size: var(--f5);
  font-weight: normal;
  color: #333;
  text-align: center;
}

aside section ul {
  font-size: var(--f6);
}

aside section li {
  margin-bottom: 20px;
}

aside section li:last-child {
  margin-bottom: 0;
}


/* フッター */
footer {
  padding: 14px 0;
  background-color: #1c4fb2;
  text-align: right;
  color: #eee;
}

footer small {
  font-size: var(--f6);
}


/* ====== 
記事関係 
========= */

/* 記事：投稿日 */
.postinfo {
  display: flex;
  justify-content: space-between;
  font-size: var(--f6);
}

.postinfo i {
  color: #0af;
}

time {
  display: block;
  color: #444;
}

.postcat a {
  color: #1c4fb2;
  text-decoration: none;
}

.postcat a:hover {
  opacity: 0.7;
  text-decoration: underline;
}

.post-date {
  margin-left: 14px;
  font-size: 10px;
}


/* 個別記事 (single.php) */

.singlemain {
  padding-top: 0;
}

.singlemain .thumbnail img {
  object-fit: cover;
  height: 180px;
  opacity: 0.7;
}

.singlemain h1 {
  margin-top: 24px;
  margin-bottom: 8px;
  border-bottom: 1px solid #aaa;
  font-size: var(--f3);
}


.contents h2 {
  margin-top: 14px;
  margin-bottom: 14px;
  font-size: var(--f4);
}

.contents img {
  max-width: 600px;
  margin: 0 auto;
}

.postcontent {
  margin: 36px 0;
}

.postcontent p {
  margin-bottom: 24px;
}

.postcontent a {
  color: #1c4fb2;
  text-decoration: none;
}

.postcontent a:hover {
  opacity: 0.7;
  text-decoration: underline;
}


/* 記事：カテゴリー */


/* スクリーンリーダー用のテキスト（削除用） */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}





/* ====================
NEWS　新着一覧 (home.php) 
======================= */

.homemain h1 {
  margin-bottom: 1em;
  border-bottom: 1px solid #aaa;
  text-align: center;
  font-size: var(--f2);
}

.postlist article {
  display: flex;
  padding-bottom: 1em;
  border-bottom: 1px solid #ddd;
  margin-bottom: 1em;
}

.postphoto {
  flex-basis: 25%;
}

.postphoto img {
  object-fit: cover;
  vertical-align: bottom;
}

.posttitle {
  flex-basis: 80%;
  margin-left: 1em;
}

.posttitle h2 {
  margin-bottom: 0.5em;
  border-bottom: none;
  text-align: left;
  font-size: var(--f5);
  color: #404040;
}

.posttitle h2 a {
  color: inherit;
}

/* カテゴリー & 月別ページ */
.postlist h1 {
  grid-column: 1 / -1;
  font-size: var(--f3);
  font-weight: normal;
}

.date h1::before {
  content: '\f186';
  font-family: 'Font Awesome 5 Free';
  font-weight: bold;
  margin-right: 10px;
  opacity: 0.8;
}

.category-title {
  margin-top: 14px;
}


/* ページネーション */
.pagenav {
  margin-bottom: 2em;
  display: flex;
  justify-content: space-between;
}

.pagenav a {
  color: #1c4fb2;
  text-decoration: none;
}

.pagenav a:hover {
  opacity: 0.7;
  text-decoration: underline;
}


/* ============================================ 
ホーム画面  (front-page.php) body class="home" 
=============================================== */



/*  スライド写真  */
.swiper {
  margin: 1em;
  height: 200px;
}

.swiper-slide {
  width: 100%;
  height: 100%;
  /* Center slide text vertically */
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
  color: #eee;
  font-weight: bold;
}

.swiper-slide img{
  width: 100%;
  height: auto;
  object-fit: cover;
  vertical-align: bottom;
}

.swiper-button-prev,
.swiper-button-next {
  color: #ccc;
  font-weight: bold;
  opacity: .7;
}

.swiper-pagination-bullets {
  position: static;
  margin-top: 1em;
  margin-bottom: 1em;
}

.swiper-pagination-bullet {
  width: 12px !important;
  height: 12px !important;
  margin: 0 0 0 10px !important;
  background: #1c4fb2 !important;
}

.swiper-pagination-bullet:first-child {
  margin: 0 !important;
}


/*ヒーロー画像*/
.heroimage {
  margin: 24px ;
}

.heroimage img {
  background-size: cover;
  background-position: center;
}

/*
.hero {
  background-image: url(images/football1.JPG);
  background-size: cover;
  background-position: center;
  height: 514px;
  color: #246;

  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}


.hero h2 {
  margin-bottom: 14px;
  font-size: 48px;
  text-shadow: 0 0 14px #fff;
  text-align: center;
}

.hero p {
  margin-bottom: 14px;
  font-size: 20px;
  font-weight: bold;;
  text-shadow: 0 0 8px #fff;
}

.hero a {
  border: solid 2px #246;
  padding: 10px 40px;
  border-radius: 6px;
  background-color: rgba(221, 221, 221, 0.7);
}

.bg_rgba {
  height: 100%;
  padding: 0;
  background-color: rgba(221, 221, 221, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
} */


/* ごあいさつ */
.greeting {
  margin-bottom: 6em;
}

.greeting h2 {
  font-size: 24px;
}


/* 新着情報 */
.news {
  margin-bottom: 6em;
  /* background-color: #eee; */
}

.news h2 {
  padding-top: 1em;
  padding-bottom: 1em;
  border-bottom: 0;
  background-color: #1c4fb2;
  color: #fafafa;
  font-weight: normal;
}

.news ul {
  margin-bottom: 1em;
  border-bottom: dotted 1px #1c4fb2;
}

.news li {
  margin-bottom: 1em;
}

.news a {
  color: #1c4fb2;
}

.service-content {
  margin-bottom: 6em;
}

.service figure {
  margin-bottom: 1em;
  text-align: center;
}

.service p {
  margin-bottom: 48px;
}

.service-content .content h3 {
  margin-top: 1em;
  margin-bottom: 12px;
  text-align: center;
}



/* =====================
固定ページ (page.php) 
======================== */

.pagepost h1 {
  margin-bottom: 24px;
  border-bottom: 1px solid #aaa;
  text-align: center;
}

.pagepost h2 {
  margin-top: 48px;
  margin-bottom: 12px;
  padding-left: 12px;
  border-left: solid 12px #1c4fb2;
  border-bottom: none;
  font-size: var(--f3);
  text-align: left;
  line-height: 1.6;
}

.pagepost > p {
  margin-bottom: 24px;
}


/*===== ギャラリー page-gallary.php =====*/
.gallary {
  margin-bottom: 2em;
}


/*===== サイトについて page-about.php =====*/
.about {
  margin-bottom: 2em;
}


/*===== お問い合わせページ page-contact.php =====*/
input,
textarea,
label {
  font-size: 16px;
}

form p {
  margin-bottom:24px;
}

.required {
  margin-left: 6px;
  font-size: 0.875rem;
  color: #49a3af;
}

input,
textarea {
  width: 100%;
  padding: 10px;
  box-sizing: border-box;
  border: solid 1px #bbb;
  border-radius: 4px;
}

textarea {
  height: 10rem;
  line-height: 1.5;
}

.form-button {
  width: 180px;
  margin: 0 auto;
}

.wpcf7-submit {
  padding: 10px 20px;
  border: none;
  border-radius: 6px;
  color: #eee;
  background-color: #0bf;
  /* -webkit-appearance: none; */
}


/* 仕上げ */
.alignleft {
  float: left;
  margin: 0 2em 2em 0;
}

.alignright {
  float: right;
  margin: 0 0 2em 2em;
}

.aligncenter {
  display: block;
  margin: 2em auto;
  clear: both;
}

article {
  display: flow-root;
}

/* 未対応ブラウザ用 */
article::after {
  content: '';
  display: block;
  clear: both;
}



/* =======================
レスポンシブ タブレット用
========================== */

@media (min-width: 768px) {

  .container {
    max-width: 968px;
  }

  main {
    margin-left: auto;
    margin-right: auto;
  }

  header {
    padding: 0;
    background-color: inherit;
  }

  .header-logo {
    padding: 14px 0;
    background-color: #fafafa;
  }

  .header-logo p {
    color: #444;
  }

  .nav-button {
    display: none;
  }

  .nav {
    display: block !important;
    padding: 18px 8%;
    background-color: #1c4fb2;
  }

  .menu {
    display: flex;
    justify-content: space-between;
  }

  .nav li {
    padding: 0;
  }

  /* front-page */

  .swiper {
    margin: 2em;
    height: 300px;
  }

  .frontpage h1 {
    font-size: 3.6rem;
  }

  .frontpage h4 {
    font-size: 1.8rem;
  }

  .postlist {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 20px;
  }

  .postlist article {
    background-color: #fafafa;
  }

  .postinfo {
    display: flex;
  }

  .postcat {
    margin-left: 20px;
  }

  .sns {
    display: flex;
    justify-content: space-between;
  }

  .youtube, .instagram {
    width: 48%;
  }

  aside .container {
    display: grid;
    grid-template-columns: 3fr 1fr 1fr;
    column-gap: 36px;
  }

  .pagepost {
    max-width: 768px;
    margin-left: auto;
    margin-right: auto;
  }

  /* .form-button {
    width: 240px;
    margin: 0;
  } */

  .wpcf7-submit {
    width: 240px;
  }
}



/* =============== 
レスポンシブ PC用 
================== */ 
@media (min-width: 1024px) {
  
  .container {
    margin-right: auto;
    margin-left: auto;
    padding-left: 8%;
    padding-right: 8%;
  }
  
  .menu {
    max-width: 1024px;
    margin-right: auto;
    margin-left: auto;
  }

  .main {
    margin-right: auto;
    margin-left: auto;
  }

  .page {
    margin: 0 auto;
  }

  .pagepost {
    width: 100%;
  }
  
  .postlist {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    column-gap: 28px;
  }

  .postinfo {
    justify-content: flex-start;
  }

  /* front-page */
  .frontpage h1 {
    font-size: 4.8rem;
  }

  .frontpage h4 {
    font-size: 2.8rem;
  }
}



