@charset "utf-8";

/*------------------------------------------------------------------------------

  片桐裕司彫刻セミナー

  2018.2.16 5Tools Design

------------------------------------------------------------------------------*/

/*------------------------------------------------------------------------------

  common

------------------------------------------------------------------------------*/
html,
body {
  background-color: #fff;
}

html {
  height: 100%;
  box-sizing: border-box;
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

body {
  min-height: 100%;
  display: flex;
  flex-direction: column;
}



/* ---- web font-setting ---------------------------------------- */
/* font */
@import url('https://fonts.googleapis.com/css?Cormorant+SC:500|Oswald');

.font-csc {
  font-family: 'Cormorant SC', serif;
  letter-spacing: normal;
  font-weight: 500;
  font-variant: small-caps;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.font-osw {
  font-family: 'Oswald', sans-serif;
  letter-spacing: normal;
  font-weight: bold;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}



/* ---- link ---------------------------------------- */
a {
  text-decoration: none;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

a:hover {
  opacity: 0.65;
}

.under-line a:hover {
  border-bottom: dotted 1px #4c3930;
  padding-bottom: 2px;
}




/*------------------------------------------------------------------------------

  layout

------------------------------------------------------------------------------*/

/* ---- container ---------------------------------------- */
.container {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 1280px;
  /* background-color: #efefef; */
  padding: 0 16px;
  margin: 0 auto;
}

.container-full {
  display: flex;
  flex-direction: column;
  width: 100%;
  /* background-color: #efefef; */
  padding: 0 16px;
}

.container:not(:last-child),
.container-full:not(:last-child) {
  margin-bottom: 48px;
}

@media (min-width: 992px) {

  .container,
  .container-full {
    display: grid;
    grid-gap: 0 32px;
    padding: 0 48px;
  }
}

/* ---- column ---------------------------------------- */
@media (min-width: 992px) {
  .col2 {
    grid-template-columns: 1fr 240px;
    grid-template-rows: auto auto;
  }

  .col-half {
    grid-template-columns: repeat(auto-fit, minmax(48%, 1fr));
  }
}

@media (min-width: 1200px) {
  .col2 {
    grid-template-columns: 1fr 320px;
  }
}

/* ---- contents frame ---------------------------------------- */
.la-main {
  width: 100%;
  padding: 16px 0;
  /* background-color: #fcc; */
}

.la-sidebar {
  width: 100%;
  padding: 16px 0;
  /* background-color: #ccf; */
}

@media (min-width: 768px) {

  .la-main,
  .la-sidebar {
    width: 640px;
    padding: 32px 0;
    margin: 0 auto;
  }
}

@media (min-width: 992px) {

  .la-main,
  .la-sidebar {
    width: 100%;
    padding: 48px 0;
  }
}

/* ---- flex ---------------------------------------- */
@media (min-width: 992px) {
  .flex {
    display: flex;
    justify-content: center;
  }
}

/* ---- col ---------------------------------------- */
/*
  基本的に flex-item の width に使用する
*/
.col-xs-12 {
  width: 100%;
}

.col-xs-11 {
  width: 91.6667%;
}

.col-xs-10 {
  width: 83.3333%;
}

.col-xs-9 {
  width: 75%;
}

.col-xs-8 {
  width: 66.6667%;
}

.col-xs-7 {
  width: 58.3333%;
}

.col-xs-6 {
  width: 50%;
}

.col-xs-5 {
  width: 41.6667%;
}

.col-xs-4 {
  width: 33.3333%;
}

.col-xs-3 {
  width: 25%;
}

.col-xs-2 {
  width: 16.6667%;
}

.col-xs-1 {
  width: 8.33333%;
}

@media (min-width: 768px) {
  .col-s-12 {
    width: 100%;
  }

  .col-s-11 {
    width: 91.6667%;
  }

  .col-s-10 {
    width: 83.3333%;
  }

  .col-s-9 {
    width: 75%;
  }

  .col-s-8 {
    width: 66.6667%;
  }

  .col-s-7 {
    width: 58.3333%;
  }

  .col-s-6 {
    width: 50%;
  }

  .col-s-5 {
    width: 41.6667%;
  }

  .col-s-4 {
    width: 33.3333%;
  }

  .col-s-3 {
    width: 25%;
  }

  .col-s-2 {
    width: 16.6667%;
  }

  .col-s-1 {
    width: 8.33333%;
  }
}

@media (min-width: 992px) {
  .col-m-12 {
    width: 100%;
  }

  .col-m-11 {
    width: 91.6667%;
  }

  .col-m-10 {
    width: 83.3333%;
  }

  .col-m-9 {
    width: 75%;
  }

  .col-m-8 {
    width: 66.6667%;
  }

  .col-m-7 {
    width: 58.3333%;
  }

  .col-m-6 {
    width: 50%;
  }

  .col-m-5 {
    width: 41.6667%;
  }

  .col-m-4 {
    width: 33.3333%;
  }

  .col-m-3 {
    width: 25%;
  }

  .col-m-2 {
    width: 16.6667%;
  }

  .col-m-1 {
    width: 8.33333%;
  }
}

@media (min-width: 1200px) {
  .col-l-12 {
    width: 100%;
  }

  .col-l-11 {
    width: 91.6667%;
  }

  .col-l-10 {
    width: 83.3333%;
  }

  .col-l-9 {
    width: 75%;
  }

  .col-l-8 {
    width: 66.6667%;
  }

  .col-l-7 {
    width: 58.3333%;
  }

  .col-l-6 {
    width: 50%;
  }

  .col-l-5 {
    width: 41.6667%;
  }

  .col-l-4 {
    width: 33.3333%;
  }

  .col-l-3 {
    width: 25%;
  }

  .col-l-2 {
    width: 16.6667%;
  }

  .col-l-1 {
    width: 8.33333%;
  }
}





/*------------------------------------------------------------------------------

  object - component

------------------------------------------------------------------------------*/

/* ---- header ---------------------------------------- */
header {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  /* height: 100%; */
  height: 64px;
  /* padding: 16px; */
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: rgba(0, 0, 0, .5);
}

/* HK logo */
header h2 {
  line-height: 1;
  padding: 16px;
}

header h2 img {
  height: 32px;
}

/* ---- footer ---------------------------------------- */
footer {
  background-color: #2b4e67;
  padding: 16px;
}

.hk-footer-logo {
  padding: 16px;
}

.hk-footer-logo h2 {
  text-align: center;
  font-size: 18px;
  color: #99ddfa;
  font-weight: normal;
}

.hk-footer-logo img {
  width: 320px;
  margin-bottom: 16px;
}

.footer-contents-wrapper {
  padding-top: 16px;
}

.footer-contents-wrapper h3 {
  color: #99ddfa;
  background-color: #1d3e55;
  padding: 4px 8px;
  border-radius: 4px;
}

.footer-nav,
.footer-nav ul {
  list-style: none;
  padding: 0;
}

.footer-nav,
.footer-nav a {
  color: #fff;
}

.footer-nav,
.footer-nav li {
  position: relative;
  padding: 8px;
}

.footer-nav>li>ul {
  padding: 8px 0 0;
}

.footer-nav>li>ul>li {
  padding-left: 16px;
}

.footer-nav>li {
  font-weight: bold;
  border-bottom: dotted 1px #6992af;
}

.footer-nav>li>ul>li>a {
  font-weight: normal;
}

.footer-nav>li>a::after {
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  content: "\f054";
  position: absolute;
  top: 50%;
  right: 28px;
  margin-top: -8px;
  color: #fff;
}

.footer-nav>li>ul>li>a::after {
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  content: "\f054";
  position: absolute;
  top: 50%;
  right: 10px;
  margin-top: -8px;
}

.copyright {
  text-align: center;
  color: #99ddfa;
  padding: 32px 0;
  border-top: solid 1px #3f6783;
}

@media (min-width: 992px) {
  .footer-contents-wrapper {
    padding-left: 16px;
  }
}

/* ---- nav ---------------------------------------- */
nav h3 {
  color: #fff;
  line-height: 32px;
  padding: 0 16px 0 0;
}

nav h3 span {
  margin-right: 8px;
}

nav h3 img {
  height: 32px;
  vertical-align: top;
}

/* 改修 */
nav li,
nav a {
  color: #fff;
}

nav li {
  position: relative;
}

nav>ul>li>a::after {
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  content: "\f054";
  position: absolute;
  top: 50%;
  right: 28px;
  margin-top: -8px;
  color: #fff;
}

nav>ul>li>ul>li>a::after {
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  content: "\f054";
  position: absolute;
  top: 50%;
  right: 10px;
  margin-top: -8px;
}

nav>ul {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  list-style: none;
  background-color: #000;
  margin: 64px 0 0;
  padding: 0;
  border-top: solid 1px #454545;
  border-bottom: solid 1px #454545;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

nav>ul>li {
  color: #edca06;
  font-weight: bold;
  padding: 16px;
}

nav>ul>li>a {
  color: #edca06;
}

nav>ul>li:not(:last-child) {
  border-bottom: dotted 1px #454545;
}

nav>ul>li>ul {
  list-style: none;
  padding: 8px 0 0;
}

nav>ul>li>ul>li {
  padding: 8px 0 8px 16px;
  font-weight: normal;
}

nav>ul>li>ul>li:last-child {
  padding-bottom: 0;
}

nav>ul>li>ul>li a::before {
  content: "- ";
}

.nav-bg {
  content: '';
  position: absolute;
  display: block;
  top: -100%;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  background: rgb(50, 50, 50);
  transition: .45s ease-in-out;
}

.bg-hidden {
  top: -100%;
  opacity: 0;
}

.bg-visible {
  top: 0;
  opacity: 1;
}


@media (min-width: 1024px) {
  nav h3 {
    display: none;
  }

  nav a,
  nav span {
    display: block;
    padding: 16px 20px;
    transition: .25s ease-in-out;
  }

  nav a {
    width: 100%;
    height: 100%;
    color: white;
    text-decoration: none;
    font-weight: lighter;
  }

  nav a:hover,
  nav span:hover {
    color: #99ddfa;
    background-color: #2b4e67;
    opacity: 1;
  }

  .main-nav {
    display: flex;
    position: absolute;
    top: 0;
    left: auto;
    right: 0;
    width: auto;
    height: 64px;
    background-color: transparent;
    margin-top: 0;
    border-top: none;
    border-bottom: none;
    overflow: visible;
  }

  nav>ul>li:not(:last-child) {
    border-bottom: none;
  }

  nav>ul>li {
    line-height: 32px;
    margin: 0;
    position: relative;
    padding: 0;
    color: #fff;
  }

  nav>ul>li>a {
    color: #fff;
    font-weight: bold;
  }

  nav>ul>li>ul {
    position: absolute;
    top: 64px;
    left: 0;
    background-color: #000;
    padding: 0;
  }

  nav>ul>li>ul>li {
    white-space: nowrap;
    padding: 0;
  }

  nav>ul>li>a::after,
  nav>ul>li>ul>li>a::after {
    content: none;
  }

  nav>ul>li>ul>li a::before {
    content: none;
  }

  nav>ul>li>ul{
      display: none;
  }
  nav>ul>li:hover>ul{
      display: block;
  }

}

/* ---- hero ---------------------------------------- */
.hero {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 600px;
}

/* hero HK logo */
.hero h1 img {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 90%;
  height: auto;
}

@media (min-width: 768px) {
  .hero h1 img {
    top: auto;
    bottom: 8%;
  }
}

/* hero images */
#hero-images {
  height: 450px;
}

@media (min-width: 768px) {
  .hero h1 img {
    width: 560px;
  }

  #hero-images {
    height: 450px;
  }
}

/* ---- hero contents title ---------------------------------------- */
.hero-contents {
  position: relative;
  height: 320px;
}

.hero-contents h1 {
  position: absolute;
  bottom: 20%;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 3em;
  text-shadow: 0 2px 8px #000;
}

#hero-contents-images {
  height: 320px;
}




/*------------------------------------------------------------------------------

  object - project

------------------------------------------------------------------------------*/

/* ---- top page ---------------------------------------- */
/* バナー */
.hk-banner {
  padding: 16px;
  list-style: none;
}

.hk-banner li:not(:last-child) {
  margin-bottom: 1rem;
}

@media (min-width: 768px) {
  .hk-banner {
    display: flex;
    justify-content: center;
  }

  .hk-banner li {
    padding: 1rem;
  }

  .hk-banner li:not(:last-child) {
    margin-bottom: 0;
  }
}

/* SNS */
.hk-sns-wrap {
  padding: 32px 0;
}

.hk-sns-wrap>p {
  text-align: center;
  font-weight: bold;
}

.hk-sns {
  display: flex;
  justify-content: center;
  text-align: center;
}

.hk-sns p {
  padding: 16px;
}

.hk-sns p i {
  font-size: 64px;
}

.hk-sns p span {
  display: none;
}

.hk-sns p a span {
  color: #333;
}

@media (min-width: 768px) {
  .hk-sns p span {
    display: inline;
  }
}

/* お知らせ */
.top-info {
  list-style: none;
  padding: 0;
  margin-bottom: 1rem;
}

.top-info-title {
  display: block;
  padding-top: .25rem;
}

.top-info li {
  position: relative;
  padding: 0 3rem 1rem 0;
  margin: 0 0 1rem 0;
  border-bottom: dotted 1px #cfcfcf;
}

.top-info li::before {
  content: "";
  position: absolute;
  right: 10px;
  top: 50%;
  margin-top: -16px;
  width: 16px;
  height: 16px;
  border-top: solid 2px #032138;
  border-right: solid 2px #032138;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.top-info li em {
  font-style: normal;
  font-weight: bold;
  color: #2b4e67;
}

.top-info li a {
  color: #333;
}

.top-info li a:hover {
  color: #549ebe;
}

/* リード */
.lead-bg-gray {
  background-color: #efefef;
}

.lead-image {
  margin-bottom: 1rem;
}

.lead {
  padding: 16px;
}

.lead h2 {
  text-align: center;
  margin-bottom: 1.5rem;
}

.lead h3 {
  color: #436475;
  padding: 1.5rem 0;
  margin-bottom: 1.5rem;
  border-top: solid 1px #cfcfcf;
  border-bottom: solid 1px #cfcfcf;
}

.on992 {
  display: none;
}

@media (min-width: 768px) {
  .lead-container {
    padding: 32px 0;
  }

  .lead-image,
  .lead {
    width: 640px;
    margin: 0 auto;
  }
}

@media (min-width: 992px) {
  .lead-bg-gray {
    background-color: transparent;
  }

  .lead h3 {
    text-align: center;
  }

  .lead-container {
    padding: 0;
  }

  .lead-image {
    display: none;
  }

  .lead-bg-image {
    background: transparent url(../images/toppage/lead_image.jpg) right 20% no-repeat;
    background-size: cover;
  }

  .lead {
    width: 50%;
    background-color: rgba(255, 255, 255, 0.85);
    padding: 48px;
    margin: 0;
  }

  .on992 {
    display: block;
  }
}

/* ---- 彫刻セミナーとは ---------------------------------------- */
.top-features {
  width: 100%;
  max-width: 640px;
  margin: 0 auto 1.5rem;
}

.top-features img {
  margin-bottom: 0.5rem;
}

.top-features-outline {
  margin-bottom: 32px;
}

.top-features-ph {
  padding: 1rem;
}

.top-features-ph img {
  display: block;
  margin: 0 auto;
}

.top-features-text {
  padding: 1rem;
}

.top-features-text p:not(:last-child) {
  margin-bottom: 1rem;
}

@media (min-width: 768px) {
  .top-features-wrapper {
    display: grid;
    grid-gap: 0 24px;
    grid-template-columns: repeat(auto-fit, minmax(48%, 1fr));
  }
}

@media (min-width: 992px) {
  .top-features-outline {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(48%, 1fr));
  }

  .top-features-ph {
    padding: 2rem 0 2rem 2rem;
  }

  .top-features-text {
    padding: 2rem;
  }
}

@media (min-width: 1200px) {
  .top-features-wrapper {
    grid-template-columns: repeat(auto-fit, minmax(20%, 1fr));
  }
}

/* ---- 生徒の声 ---------------------------------------- */
.top-impressions-wrapper {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
}

.top-impressions {
  color: #2b4e67;
  background-color: #efefef;
  padding: 1rem;
  margin-bottom: 1rem;
  border: solid 2px #2b4e67;
  border-radius: 4px;
}

.top-impressions p:first-child {
  padding-bottom: .5rem;
  margin-bottom: .5rem;
  border-bottom: dotted 1px #cfcfcf;
}

.top-impressions p:last-child {
  text-align: right;
}

.top-impressions small {
  color: #454545;
}

@media (min-width: 992px) {
  .top-impressions-wrapper {
    display: grid;
    grid-gap: 16px;
    /* padding: 0 48px; */
    grid-template-columns: repeat(auto-fit, minmax(48%, 1fr));
    margin-bottom: 32px;
  }

  .top-impressions {
    margin-bottom: 0;
  }
}

/* ---- 関連商品 ---------------------------------------- */
.top-product {
  color: #2b4e67;
  background-color: #efefef;
  padding: 1rem;
  margin-bottom: 1rem;
  border: solid 2px #2b4e67;
  border-radius: 4px;
}

.top-product h3 {
  padding: .5rem 0;
}

.top-product img {
  display: block;
  margin: 0 auto;
}

@media (min-width: 768px) {
  .top-product-wrapper {
    display: grid;
    grid-gap: 0 24px;
    grid-template-columns: repeat(auto-fit, minmax(48%, 1fr));
  }

  .top-product {
    position: relative;
  }

  .top-product a {
    position: absolute;
    bottom: 16px;
    left: 0;
    right: 0;
    width: 85%;
    margin: auto;
  }

  .top-product h3 {
    padding: 1.5rem 0 100px;
  }
}

@media (min-width: 992px) {
  .top-product-wrapper {
    grid-template-columns: repeat(auto-fit, minmax(20%, 1fr));
  }
}


/* ---- ブログコンテンツ共通 ---------------------------------------- */

/* NOTE: entry */
.blog-entry-wrapper {
  padding-bottom: 48px;
  margin-bottom: 48px;
  border-bottom: solid 1px #999;
}

.blog-date {
  font-weight: bold;
  color: #2b4e67;
  margin-bottom: 48px;
}

.blog-entry-title {
  margin-bottom: 48px;
}

.blog-entry-title a {
  color: #000;
}

.blog-entry-title a:hover {
  color: #549ebe;
}

.blog-text {
  color: #333;
}

.blog-text a {
  color: #126487;
  border-bottom: dotted 1px #126487;
}

.blog-text a:hover {
  color: #549ebe;
}

/* NOTE: archive list title */
.blog-archive-list-title {
  color: #126487;
  padding: 16px 20px;
  margin-bottom: 48px;
  border: double 4px #cfcfcf;
}

/* NOTE: sidebar:archive list */
.blog-list-wrapper {
  margin-bottom: 32px;
}

.blog-list-wrapper h3 {
  padding: 8px 8px 8px 12px;
  margin-bottom: 16px;
}

.blog-list-title-bar-blue {
  background-color: #bde7f9;
  border-left: solid 6px #549ebe;
}

.blog-list-title-bar-brown {
  background-color: #f9d8bd;
  border-left: solid 6px #be8354;
}

.blog-list-title-bar-green {
  background-color: #c9f9bd;
  border-left: solid 6px #549943;
}

.blog-list {
  list-style: none;
  padding: 0;
}

.blog-list li {
  font-weight: bold;
  color: #126487;
  position: relative;
  padding: 8px 16px 8px 8px;
  margin: 0 0 1rem 0;
  border-bottom: dotted 1px #cfcfcf;
}

.blog-list li::before {
  content: "";
  position: absolute;
  right: 8px;
  top: 0;
  margin-top: 16px;
  width: 8px;
  height: 8px;
  border-top: solid 2px #032138;
  border-right: solid 2px #032138;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.blog-list li a {
  color: #126487;
  display: block;
}

.blog-list li a:hover {
  color: #549ebe;
}

.blog-list li small {
  margin-left: 8px;
}

/* NOTE: sub category */
.blog-subcategory {
  display: block;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.blog-subcategory:hover {
  color: #549ebe;
  cursor: pointer;
}

.blog-list li ul {
  list-style: none;
  padding: 8px 0 0;
  margin-left: 16px;
}

.blog-list li ul li {
  font-weight: bold;
  position: static;
  padding: 8px;
  margin: 0;
  border-bottom: dotted 1px #cfcfcf;
}

.blog-list li ul li:last-child {
  border-bottom: 0;
}

.blog-list li ul li::before {
  content: none;
  position: static;
  margin-top: 0;
}

/* NOTE: pager */
.blog-pager-entry-title {
  display: block;
  line-height: 1.2;
  margin-bottom: 24px;
}

/* ---- セミナー詳細 ---------------------------------------- */
/* NOTE: セミナー詳細共通 */
.seminar-detail-wrapper {
  margin-bottom: 32px;
}

.seminar-detail-wrapper a {
  color: #126487;
  border-bottom: dotted 1px #126487;
}

.seminar-detail-wrapper a:hover {
  color: #549ebe;
}

/* NOTE: 一般セミナー */
/* リード */
.seminar-detail-lead {
  margin-bottom: 24px;
}

.seminar-detail-lead p:not(:last-child) {
  margin-bottom: 16px;
}

/* 特長 */
.seminar-detail-features {
  margin-bottom: 24px;
  border: solid 2px #2b4e67;
  border-radius: 8px;
}

.seminar-detail-features p {
  padding: 16px;
}

.seminar-detail-features h3 {
  color: #2b4e67;
  background-color: #efefef;
  padding: 8px 16px;
  border-radius: 6px 6px 0 0;
}

/* 講師より */
.from-hk {
  padding: 24px;
  border-radius: 8px;
}

.from-hk-title {
  text-align: center;
  color: #fff;
  background-color: #2b4e67;
  padding: 8px;
  margin-bottom: 24px;
  border-radius: 50px;
}

.from-hk p:not(:last-child) {
  margin-bottom: 16px;
}

.from-hk blockquote {
  padding: 16px;
  margin: 16px 0;
  border: dotted 2px #2b4e67;
  border-radius: 4px;
}

/* 詳細 */
.seminar-detail-step:not(:last-child) {
  margin-bottom: 32px;
}

.seminar-detail-step img {
  margin-bottom: 16px;
}

.seminar-detail-step h3 {
  color: #2b4e67;
  margin-bottom: 8px;
  border-bottom: dotted 1px #cfcfcf;
}


@media (min-width: 768px) {
  .seminar-detail-step-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(48%, 1fr));
    grid-gap: 16px;
  }
}

/* NOTE: 経験者セミナー */
.experienced-caution {
  color: #c50e13;
  font-weight: bold;
  background-color: #efefef;
  list-style: none;
  padding: 16px;
  border: solid 2px #f33;
  border-radius: 8px;
}

.experienced-caution li {
  padding-left: 16px
}

.experienced-caution li:not(:last-child) {
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: solid 1px #cfcfcf;
}

.experienced-caution li::before {
  content: "※";
  margin-left: -16px;
}

.experienced-detail-wrapper {
  border: solid 2px #2b4e67;
  border-radius: 8px;
}

.experienced-detail-text h2 {
  color: #2b4e67;
  background-color: #efefef;
  padding: 8px 16px;
  border-radius: 6px 6px 0 0;
}

.experienced-detail-text p {
  padding: 16px;
}

.experienced-detail-image {
  padding: 16px;
}

.experienced-impressions-wrapper {
  padding: 16px;
}

.experienced-impressions-wrapper h4 {
  color: #2b4e67;
  text-align: center;
  background-color: #efefef;
  padding: 8px;
  margin-bottom: 16px;
  border-radius: 50px;
}

.experienced-impressions-wrapper p {
  padding: 0 16px 16px;
}

.experienced-impressions-wrapper p:not(:last-child) {
  margin-bottom: 16px;
  border-bottom: dotted 1px #cfcfcf;
}

/* NOTE: 企業セミナー */
.corporate-list {
  padding: 16px;
  margin-bottom: 16px;
  border-bottom: solid 1px #cfcfcf;
}

.corporate-list h3 {
  margin-bottom: 16px;
}

.corporate-list ul {
  font-size: 14px;
  padding-left: 20px;
  margin-bottom: 16px;
}

.corporate-list ul li:not(:last-child) {
  margin-bottom: 8px;
}


/* ---- 講師紹介 ---------------------------------------- */
.instructor-ph-container {
  padding: 24px 16px 0;
}

.hk-profile-ph {
  position: relative;
  height: 560px;
  background: transparent url(../images/instructor/hiroshi-katagiri.jpg) 70% 30% no-repeat;
  background-size: cover;
}

.hk-name {
  position: absolute;
  bottom: 32px;
  width: 100%;
}

.hk-name h1 {
  font-size: 64px;
  text-align: center;
  color: #fff;
  text-shadow: 0 2px 16px #000;
}

.hk-name p {
  color: #fff;
  text-align: center;
  text-shadow: 0 2px 16px #000;
}

.instructor-profile-text {
  margin-bottom: 32px;
}

.instructor-profile-text p:not(:last-child) {
  margin-bottom: 16px;
}

.instructor-profile-text a {
  color: #126487;
  border-bottom: dotted 1px #126487;
}

.instructor-profile-text a:hover {
  color: #549ebe;
}

.movie-ph-wrapper {
  margin-bottom: 24px;
}

.career {
  margin-bottom: 24px;
}

.career h4 {
  background-color: #efefef;
  padding: 4px 10px;
  margin-bottom: 8px;
  border-radius: 4px;
}

.career ul {
  padding-left: 24px;
}

@media (min-width: 768px) {
  .hk-name h1 {
    font-size: 96px;
  }

  .hk-name p {
    font-size: 24px;
  }

  .hk-works {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(48%, 1fr));
    grid-gap: 16px;
  }

  .hk-works div {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

/* ---- 募集要項 ---------------------------------------- */
/* NOTE: セミナー概要 */
.seminar-outline {
  border: solid 1px #cfcfcf;
  border-radius: 4px;
  margin-bottom: 32px;
}

.seminar-outline h3 {
  background-color: #cfcfcf;
  border-radius: 2px 2px 0 0;
  padding: 12px 16px;
}

.seminar-outline-text {
  padding: 16px;
}

.seminar-outline-text ul {
  padding: 16px 0 16px 24px;
}

.seminar-outline-text h4 {
  color: #2b4e67;
  padding: 24px 0 16px;
}

.seminar-member dt {
  font-weight: bold;
  color: #2b4e67;
  background-color: #efefef;
  padding: 4px 16px;
  margin-bottom: 8px;
  border-radius: 50px;
}

.seminar-member dd {
  padding: 0 16px;
  margin: 0 0 24px 0;
}

@media (min-width: 768px) {
  .seminar-outline {
    display: grid;
    grid-template-columns: 240px 1fr;
  }

  .seminar-wrapper:not(:last-child) {
    margin-bottom: 0;
  }

  .seminar-outline h3 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 2px 0 2px 0;
  }
}

/* NOTE: セミナー情報 */
.seminar-wrapper {
  position: relative;
  border: solid 3px #2b4e67;
  border-radius: 8px;
}

.seminar-wrapper:not(:last-child) {
  margin-bottom: 32px;
}

.seminar-wrapper h2 {
  background-color: #efefef;
  padding: 12px;
  border-radius: 4px 4px 0 0;
  margin-bottom: 24px;
}

.place-badge {
  color: #fff;
  background-color: #009990;
  border-radius: 4px;
  padding: 8px 12px;
  margin-right: 8px;
}

.seminar-data {
  padding: 0 16px;
  margin-bottom: 160px;
}

.seminar-data dt {
  font-weight: bold;
  padding-bottom: 8px;
  margin-bottom: 8px;
  border-bottom: dotted 1px #cfcfcf;
}

.seminar-data dd {
  margin: 0 0 16px 0;
}

.seminar-btn {
  position: absolute;
  bottom: 24px;
  left: 0;
  right: 0;
  width: 85%;
  margin: auto;
}

@media (min-width: 992px) {
  .seminar-list-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(48%, 1fr));
    grid-gap: 24px;
  }

  .seminar-wrapper:not(:last-child) {
    margin-bottom: 0;
  }
}

/* ---- お申し込み ---------------------------------------- */
.application-btn-wrapper {
  position: relative;
  border: solid 3px #2b4e67;
  border-radius: 8px;
}

.application-btn-wrapper:not(:last-child) {
  margin-bottom: 32px;
}

.application-btn-wrapper h1 {
  text-align: center;
  color: #fff;
  background-color: #4880a8;
  padding: 8px;
  border-radius: 4px 4px 0 0;
}

.application-text {
  padding: 24px;
  margin-bottom: 120px;
}

.application-text a {
  font-weight: bold;
  color: #126487;
}

.application-text a:hover {
  color: #549ebe;
}

.application-btn {
  position: absolute;
  bottom: 24px;
  left: 0;
  right: 0;
  width: 85%;
  margin: auto;
}

.application-waiting {
  position: absolute;
  bottom: 24px;
  left: 0;
  right: 0;
  width: 85%;
  margin: auto;
  line-height: 64px;
  font-size: 1.25em;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  border-radius: 4px;
  border: solid 2px #00408b;
  color: #00408b;
}

.application-closed {
  position: absolute;
  bottom: 24px;
  left: 0;
  right: 0;
  width: 85%;
  margin: auto;
  line-height: 64px;
  font-size: 1.25em;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  border-radius: 4px;
  border: solid 2px #666;
  color: #666;
}

@media (min-width: 992px) {
  .application-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(48%, 1fr));
    grid-gap: 24px;
  }

  .application-btn-wrapper:not(:last-child) {
    margin-bottom: 0;
  }
}

/* ---- 生徒の声 ---------------------------------------- */
.profession {
  text-align: right;
  padding: 0.5rem;
  background-color: #efefef;
  border-radius: 2px;
  margin-top: 1rem;
}

.impression-category {
  font-size: 0.875rem;
}

/* ---- FAQ ---------------------------------------- */
.faq-wrapper {
  border: solid 1px #d765a9;
  border-radius: 4px;
}

.faq-wrapper:not(:last-child) {
  margin-bottom: 24px;
}

.faq-wrapper h3 {
  font-size: 18px;
  background-color: #ffbfe5;
  padding: 12px 16px;
  border-bottom: solid 1px #d765a9;
  border-radius: 4px 4px 0 0;
}

.faq-text {
  padding: 12px 16px;
}

@media (min-width: 768px) {
  .faq-wrapper h3 {
    font-size: 24px;
  }
}

/* ---- 関連商品 ---------------------------------------- */
.product-entry-wrapper {
  margin-bottom: 32px;
}

.product-image {
  text-align: center;
  margin-bottom: 32px;
}

@media (min-width: 992px) {
  .product-entry-wrapper {
    display: grid;
    grid-template-columns: 280px 1fr;
    grid-template-rows: auto auto;
    grid-gap: 24px;
  }
}

/* ---- 課題・作品 ---------------------------------------- */
.thumb-wrap {
  display: flex;
  justify-content: left;
  flex-wrap: wrap;
  text-align: center;
  list-style: none;
  padding: 0;
  margin: 0 auto;
}

.thumb-wrap li {
  padding: 0.5rem;
}

.thumb-wrap li img {
  border: solid 1px #666;
}

/*------------------------------------------------------------------------------

  object - utility

------------------------------------------------------------------------------*/
/* ---- 見出し ---------------------------------------- */
/* NOTE: 大見出し */
.chapter {
  text-align: center;
  font-size: 2em;
  padding: 1rem 0;
  margin-bottom: 1rem;
  border-bottom: dotted 1px #666;
}

@media (min-width: 992px) {
  .chapter {
    margin-bottom: 2rem;
    border-bottom: 0
  }

  .chapter span {
    position: relative;
    display: inline-block;
    padding: 0 80px;
  }

  .chapter span::before,
  .chapter span::after {
    content: "";
    background-color: #666;
    width: 56px;
    height: 1px;
    display: inline-block;
    position: absolute;
    top: 50%;
  }

  .chapter span::before {
    left: 0;
  }

  .chapter span::after {
    right: 0;
  }
}

/* NOTE: コンテンツ内セクション見出し */
.headline {
  color: #2b4e67;
  background-color: #efefef;
  padding: 8px 16px;
  margin-bottom: 16px;
  border-radius: 4px;
}

/* ---- badge ---------------------------------------- */
.badge {
  font-size: 0.75em;
  color: #fff;
  font-weight: normal;
  padding: 4px 8px;
  margin-left: 16px;
  border-radius: 4px;
}

.badge-green {
  background-color: #00a669;
}

.badge-brown {
  background-color: #a66800;
}

.badge-blue {
  background-color: #00408b;
}

/* ---- button ---------------------------------------- */
.ul-btn,
.ul-btn-v {
  list-style: none;
  padding: 0;
  text-align: center;
}

.ul-btn li,
.ul-btn-v li {
  margin-bottom: 1rem;
}

.btn {
  display: inline-block;
  width: 100%;
  line-height: 64px;
  font-size: 1.25em;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  border-radius: 4px;
  transition: .3s;
}

@media (min-width: 768px) {
  .btn {
    max-width: 420px;
  }

  .ul-btn {
    display: grid;
    grid-gap: 10px;
    grid-template-columns: repeat(auto-fit, minmax(48%, 1fr));
  }

  .ul-btn li {
    margin-bottom: 0;
  }
}

@media (min-width: 992px) {
  .ul-btn {
    grid-template-columns: repeat(auto-fit, minmax(20%, 1fr));
  }
}

/* ---- button color ---------------------------------------- */
.btn-blue {
  color: #2b4e67 !important;
  background-color: #fff !important;
  border: solid 2px #2b4e67 !important;
}

.btn-blue:hover {
  background-color: #2b4e67 !important;
  color: #fff !important;
}

.btn-orange {
  color: #ed8a06 !important;
  background-color: #fff !important;
  border: solid 2px #ed8a06 !important;
}

.btn-orange:hover {
  background-color: #ed8a06 !important;
  color: #fff !important;
}

/* ---- text align ---------------------------------------- */
.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.font-size-m {
  font-size: 1.25em;
}

.font-size-l {
  font-size: 1.5em;
}

/* ---- text color ---------------------------------------- */
.color-red {
  color: #c50e13;
}

.color-blue {
  color: #2b4e67;
}

.color-orange {
  color: #f60;
}

/* ---- background color ---------------------------------------- */
.bg-gray {
  background-color: #efefef;
}

.bg-blue {
  background-color: #a1c4dd;
}

/* ---- margin, padding ---------------------------------------- */
.mb16 {
  margin-bottom: 16px;
}

.mb24 {
  margin-bottom: 24px;
}

.mb32 {
  margin-bottom: 32px;
}

.mb48 {
  margin-bottom: 48px;
}

.mb64 {
  margin-bottom: 64px;
}

/* ---- page top ---------------------------------------- */
#pagetop {
  position: fixed;
  bottom: 1.5em;
  right: 1.5em;
  width: 64px;
  height: 64px;
  z-index: 20;
}


/* ---- google map responsive ---------------------------------------- */
.g-map {
  position: relative;
  padding-top: 56.25%;
  /* or 75%;(4:3) */
  height: 0;
  overflow: hidden;
}

.g-map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* ---- youtube responsive ---------------------------------------- */
.video {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}

.video iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
}
