/* style.css */

body{
	padding-top: 80px;
}
main.container, main.container-fluid {
	margin-top: 10px;
	position:relative;
}

/* 未ログイン時はシステムヘッダーを非表示にする */
header.nc-system-header-nologgedin {
	display: none;
}
body.body-nologgedin {
	padding-top: 0;
}

/* space */
.mb-1 {margin-bottom:1em;}
.mb-2 {margin-bottom:2em;}
.mb-3 {margin-bottom:3em;}
.mb-4 {margin-bottom:4em;}
.mb-5 {margin-bottom:5em;}
.mt-1 {margin-top:1em;}
.mt-2 {margin-top:2em;}
.mt-3 {margin-top:3em;}
.mt-4 {margin-top:4em;}
.mt-5 {margin-top:5em;}

/* global-menu */
#global-menu .navbar-header img{
    height:100px;
}
#global-menu .nav {
    list-style-type:none;
    display:flex;
    justify-content:flex-end;
}
.breadcrumb {
    margin: 0 calc(50% - 50vw);
    padding:8px calc(50vw - 50%);
    background-color:#c6171e;
}
.breadcrumb > .active, .breadcrumb > li {
    color:#fff;
}

/* swiper */
.swiper {
    margin: 0 calc(50% - 50vw);
    width:100vw;
}

/* feature|top */
.feature-block {
    margin:8px;
    padding:16px;
    background-color:#226344;
    color:#fff;
}
/* payment|top */
.payment {
    margin:32px calc(50% - 50vw);
    width:100vw;
    padding:32px calc(50vw - 50%);
    background-color:#f8f8f8;
}
/* whatsnew|top */
#frame-42 .panel-heading {
    text-align:center;
    font-size:28px;
    font-weight:bold;
}

/* company-info */
.company-info {
    display:flex;
    border-top:2px solid gray;
    padding:24px 8px 0;
}
.company-info.first {
    border-top:none;
}
.company-info dt {
    margin-right:2rem;
}

/* footer */
main footer {
    margin:6rem calc(50% - 50vw) 0;
    padding:16px calc(50vw - 50%);
    background-color:#eeeeee;
}
.info {
    margin:6rem calc(50% - 50vw) 0;
    padding:16px calc(50vw - 50%);
    color:#777;
    background-color:#ddcfb1;

}
.fixed-bottom {
    position:fixed;
    bottom:0;
    z-index:3;
}
.copyright {
    padding-bottom:150px;
}


@media screen and (max:768px){
    .copyright{padding-bottom:240px;}
}
.blck-inverse {
    font-size:18pt;
    background-color:#17557c;
    padding:5px 0 5px 5px;
    border-radius:2px;
}
.blck-inquery {
    color:#fff;
    text-align:center;
    background-color:#f1aa41;
    margin:16px 4px;
    padding:4px;
    border-radius:4px;
    border: solid 1px #17557c;
}

/* snslink */
#snslink {
    display:flex;
    justify-content:center;
}

/* guidance | for adults */
.bordered-title {
    margin-top:0.5em;
    padding: 0.5em 0;
    border-top: solid 3px #008000;
    border-bottom: solid 3px #008000;
}
.colored-title {
    margin-top:3em;
    color:#008000;
}
.balloon-left {
  position: relative;
  display: inline-block;
  margin: 1.5em 0 1.5em 15px;
  padding: 16px 16px;
  min-width: 120px;
  max-width: 100%;
  color: #555;
  font-size: 16px;
  background: #FFF;
  border: solid 3px #008000;
  box-sizing: border-box;
  border-radius:10px;
}

.balloon-left:before {
  content: "";
  position: absolute;
  top: 50%;
  left: -24px;
  margin-top: -12px;
  border: 12px solid transparent;
  border-right: 12px solid #FFF;
  z-index: 2;
}

.balloon-left:after {
  content: "";
  position: absolute;
  top: 50%;
  left: -30px;
  margin-top: -14px;
  border: 14px solid transparent;
  border-right: 14px solid #008000;
  z-index: 1;
}
.balloon-left p {
  margin: 0;
  padding: 0;
}
.balloon-right {
  position: relative;
  display: inline-block;
  margin: 1.5em 15px 1.5em 0;
  padding: 16px 16px;
  min-width: 120px;
  max-width: 100%;
  color: #555;
  font-size: 16px;
  background: #FFF;
  border: solid 3px #008000;
  box-sizing: border-box;
  border-radius:10px;
}

.balloon-right:before {
  content: "";
  position: absolute;
  top: 50%;
  right: -24px;
  margin-top: -12px;
  border: 12px solid transparent;
  border-left: 12px solid #FFF;
  z-index: 2;
}

.balloon-right:after {
  content: "";
  position: absolute;
  top: 50%;
  right: -30px;
  margin-top: -14px;
  border: 14px solid transparent;
  border-left: 14px solid #008000;
  z-index: 1;
}
.balloon-right p {
  margin: 0;
  padding: 0;
}

/* template|tniymce */
.blog_big_heading {
    padding: 8px 0 8px 12px;
    border-left: solid 4px #aa0b1a;
    background-color: #cccccc;
    font-weight:bold;
}
.blog_middle_heading {
    padding: 6px 0;
    border-bottom: solid 2px #aa0b1a;
    font-weight:bold;
}

/* workbooks_sale */

.workbook-top-view {
    margin:0 calc(50% - 50vw);
    position:relative;
    background:url('https://cherry--tomato.com/wysiwyg/image/download/1/4');
    background-size:cover;
    width:100vw;
    height:855px;
}
.top-text {
    position:absolute;
    top:1rem;
    left:50%;
    transform:translateX(-50%);
    font-family:Noto Serif JP;
    font-weight:700;
}
.bottom-text {
    position:absolute;
    bottom:1rem;
    left:50%;
    transform:translateX(-50%);
    font-family:Noto Serif JP;
    padding:12px;
    font-weight:500;
    background:rgba(255,255,255,0.8);
}
.workbook-top-view img {
    position:absolute;
    top:50%;
    left:50%;
    width:1140px;
    height:855px;
    object-fit:cover;
    transform:translate(-50%, -50%);
}
.figure-section {
    position:relative;
}
.figcaption {
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%, -50%);
    display:none;
}
.figure-section img:hover + .figcaption {
    display:block;
}
.figcaption:hover {
    display:block;
}
#level5-book, #level4-book, #level3-book, #level2-book, #level2-book-disabled, #level5-work, #level4-work, #level3-work, #level2-work {
	position: fixed;
	top: 80px;
	left: 0;
	width: 100%;
	height: 100%;
	text-align: center;
	background: rgba(0,0,0,50%);
	padding: 40px 20px;
	overflow: auto;
	opacity: 0;
	visibility: hidden;
	transition: .3s;
    box-sizing: border-box;
}
.modal-container:before{
	content: "";
	display: inline-block;
	vertical-align: middle;
	height: 100%;
}
#level5-book.active, #level4-book.active, #level3-book.active, #level2-book.active, #level5-work.active, #level4-work.active, #level3-work.active, #level2-work.active {
	opacity: 1;
	visibility: visible;
}
.modal-body{
	position: relative;
	display: inline-block;
	vertical-align: middle;
	width: 90%;
}
.modal-close{
	position: absolute;
	display: flex;
    align-items: center;
    justify-content: center;
	top: -40px;
	right: -40px;
	width: 40px;
	height: 40px;
	font-size: 40px;
	color: #fff;
	cursor: pointer;
}
.modal-content{
	background: #fff;
	text-align: left;
	padding: 30px;
}

/* panel */
.card-content {
    border-radius:16px;
    box-shadow: 2px 4px 12px rgba(0,0,0,0.2);
}
.row-eq-height {
    display: flex;
    flex-wrap: wrap;
}

