﻿/*
font-family: "Noto Sans JP", sans-serif;
font-family: "Tomorrow", sans-serif;
*/
/*******************************************************************************
custom property
********************************************************************************/
:root {
  --tema-color:0 122 214;
}
.font-red{
	color: #CC0000;
}
/*******************************************************************************
detailTitle
********************************************************************************/
.titlePhotos{
    display: flex;
    flex-wrap: wrap;
    padding-top: 1em;
}
.titlePhotos img{
    flex-basis: 50%;
    max-width: 50%;
}
#detailTitle h1 {
    font-size: 1.6em;
    line-height: 1.4;
    font-weight: 600;
    border-top: 1px solid rgb(var(--tema-color));
    border-bottom: 4px solid rgb(var(--tema-color));
    padding: 0.5em 0 0.7em 0;
    margin:2em 0 0.2em;
    word-break: keep-all;
    position: relative;
}
#detailTitle h1::before{
    display: inline-block;
    padding: 0.2em 0.5em;
    color: #FFF;
    position:absolute;
    left: 0;
    bottom: 100%;
    font-size: 0.6em;
    font-weight: 400;
}
[data-category="studyTour"] h1::before{
    content: "中・高・大学生向けスタディーツアー";
    background-color: #33c3a7;
}
[data-category="familyTour"] h1::before{
    content: "めいてつ探究クエスト";
    background-color: #f3b100;
}
[data-category="overseasPrograms"] h1::before{
    content: "小学生向け海外プログラム";
    background-color: #39a5db;
}
[data-category="explorationProgram"] h1::before{
    content: "大人のための探究プログラム";
    background-color: #f5756e;
}



#detailTitle h2{
    font-size: 1.3em;
    font-weight: 600;
    line-height: 1.4;
    margin-top: 1.4em;
    margin-bottom: 0.5em;
}
#detailTitle > p + p{
	margin-top: 0.7em;
}


#detailTitle .point{
    position: relative;
    margin: 4em 0 2em;
    border-radius: 1em;
    padding: 1em 2em;
    z-index: 0;
    background-color: rgb(var(--tema-color)/ 0.05);
}
#detailTitle .point::before{
    content: "Point!";
    display: inline-block;
    position: absolute;
    left: 0.5em;
    top: -0.8em;
    font-size: 1.8em;
    font-weight: 700;
    color: rgb(var(--tema-color));
}
#detailTitle .point li{
    margin: 0.5em 0;
    font-weight: 500;
    position: relative;
    padding-left: 1.5em;
}
#detailTitle .point li::before{
    content: "●";
    display: inline-block;
    position: absolute;
    left: 0;
    top: 0.2em;
    color:rgb(var(--tema-color));
    font-size: 0.8em;
}
.imagePhotos{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.imagePhotos figure{
    flex-basis: calc(100% / 4 - 4px);
    max-width: calc(100% / 4 - 4px);
}
.imagePhotos figure img{
    width: 100%;
    border: 2px solid #EEE;
}
.imagePhotos figure figcaption{
    font-size: 0.85em;
    color: #666;
    padding: 0 2px;
}
.anchorLink{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-top: 0.5em;
}
.anchorLink li{
    flex-grow: 1;
    border-right: 1px solid #666;
}
.anchorLink li:first-of-type{
    border-left: 1px solid #666;
}
.anchorLink a{
    display: block;
    text-align: center;
    color:#333;
    padding: 0.2em;
}
dl.photoLeft{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
dl.photoLeft dt{
	flex-basis: 23%;
	max-width: 23%;
}
dl.photoLeft dt img{
	width: 100%;
}
dl.photoLeft dd{
	flex-basis: 75%;
	max-width: 75%;
}

/*--1000px以下------------------------------------*/
@media only screen and (max-width: 1000px) {

}
/*--737px以下 ------------------------------------*/
@media only screen and (max-width: 737px) {
#detailTitle .point{
    padding: 1em ;
}
.imagePhotos figure{
    flex-basis: calc(100% / 2 - 4px);
    max-width: calc(100% / 2 - 4px);
    margin-bottom: 2px;
}
.anchorLink{
    font-size: 3.6vw;
}
dl.photoLeft{
	justify-content: center;
}
dl.photoLeft dt{
	flex-basis: 60%;
	max-width: 60%;
	margin-bottom: 1em;
}
dl.photoLeft dd{
	flex-basis: 100%;
	max-width: 100%;
}

}
/*******************************************************************************
summary
********************************************************************************/
#summary{
    margin-top: 5%;
}
#summary h3{
    font-size: 1.8em;
    color:rgb(var(--tema-color));
    margin-bottom: 0.2em;
}
.summaryTable{
    display: flex;
    flex-wrap: wrap;
    border:1px solid #CCC;
    border-top: 0;
}
.summaryTable dt{
    flex-basis: 12em;
    max-width: 12em;
    padding: 0.5em 1em;
    background-color: #EEE;
    background-color: rgb(var(--tema-color)/ 0.1);
    color: #000;
    border-top: 1px solid #CCC;
    border-right: 1px solid #CCC;
}
.summaryTable dt:first-of-type{
    border-top: 1px solid #CCC;
}
.summaryTable dd{
    flex-basis:calc(100% - 12em);
    max-width: calc(100% - 12em);
    padding: 0.5em 1em;
    border-top: 1px solid #CCC;
}
.summaryTable .map{
	display: inline-block;
	margin: 0 0.5em;
	font-size: 0.8em;
	line-height: 1;

}
.summaryTable .map a{
	display: block;
	padding: 0.2em 0.5em;
	background-color: #666;
	color: #FFF;
	border-radius: 5px;
}

/*--737px以下 ------------------------------------*/
@media only screen and (max-width: 737px) {
.summaryTable dt{
    flex-basis: 100%;
    max-width: 100%;
    padding: 0.2em 1em;
    color: rgb(var(--tema-color));
    font-weight: 500;
    border-top:1px solid #CCC;
    border-right: 0;
}
.summaryTable dd{
    flex-basis: 100%;
    max-width: 100%;
    border-top: 1px dashed #CCC;
}
}

/*******************************************************************************
schedule 
********************************************************************************/
#schedule{
    margin-top: 5%;
}
#schedule h3{
    font-size: 1.8em;
    color: rgb(var(--tema-color));
    margin-bottom: 0.2em;
}
 [class^="sc-"]{
    width: 100%;
    border: 1px solid #CCC;
    border-collapse: collapse;
    margin-top: -1px;
}

.sc-head td{
    background-color: rgb(var(--tema-color) / 0.1);
    color: #000;
    font-weight: 400;
    text-align: center;
    border-left:1px solid #CCC;
}
.sc-day tbody{
    position: relative;
    border-bottom: 1px solid #CCC;
    padding-bottom: 2em;
}
.sc-day th{
    border-left:1px solid #CCC;
    padding: 0.5em 0.2em;
}
.sc-day td{
    border-left:1px solid #CCC;
    padding: 0.5em;
    vertical-align: text-top;
}
[class^="sc-"] .days{
	width: 5.5em;
}
[class^="sc-"] .city{
	width: 10em;
}
[class^="sc-"] .time{
	width: 4em;
}
[class^="sc-"] .move{
	width: 5em;
}
[class^="sc-"] .itny{
	width: auto;
}
[class^="sc-"] .meal{
	width: 5em; font-weight: normal; text-align: left; padding: 0.5em;
}

.sc-day .hotel{
    display: block;
    border-top: 1px dashed #CCC;
    text-align: right;
    margin: 0.5em -0.5em -0.2em;
    padding: 0.2em 0.5em 0;
}
.scheduleNote{
    font-size: 0.9em;
    margin: 1em 0;
}

/*--737px以下 ------------------------------------*/
@media only screen and (max-width: 737px) {
.sc-head{display: none;}
.sc-day{
    position: relative;
    border-left: 0;
}
.sc-day tr{
    display: flex;
    flex-wrap: wrap;
	padding-right: 5em;
	min-height: 9.5em;
}
.sc-day td{
    border-top: 1px solid #CCC;
}
.sc-day th.days{
    width:calc(100% + 5em);
	margin-right: -5em;
	background-color: rgb(var(--tema-color) / 0.1);
    border-bottom: 1px solid #CCC;
}
.sc-day th.days br{
    display: none;
}

.sc-day td.city,
.sc-day td.time,
.sc-day td.move{
    width: auto;
    flex-grow: 1;
    margin-top: -1px;
}
.sc-day td.itny{
	flex-basis: 100%;
}

.sc-day th:nth-of-type(2){
    position: absolute;
    right: 0;
    top: 2.6em;
    height: calc(100% - 2.6em);
}




}

/*******************************************************************************
others 
********************************************************************************/
#others{
    margin-top: 5%;
}
#others h3{
    font-size: 1.8em;
    color: rgb(var(--tema-color));
    margin-bottom: 0.2em;
}
.infoBox{
    display: flex;
    flex-wrap: wrap;
    border: 1px solid #CCC;
    padding: 1em;
	margin-bottom: 3em;
}
.infoBox dt{
    flex-basis: 16em;
    max-width: 16em;
    margin-right: 1em;
}
.infoBox dt img{
    width: 100%;
}
.infoBox dd{
    flex-basis: calc(100% - 17em);
    max-width:  calc(100% - 17em);
}
.infoBox h4{
    font-size: 1.2em;
    margin: 0 ;
}
.infoBox .infoLink{
    margin: 0.5em 0;
}
.infoBox .infoLink a{
    display: inline-block;
    border-radius: 2em;
    padding: 0.2em 1em;
    border: 1px solid rgb(var(--tema-color));
    color: rgb(var(--tema-color));
}
.infoBox .infoLink a:hover{
    background-color: rgb(var(--tema-color));
    color: #FFF;
}
/*--737px以下 ------------------------------------*/
@media only screen and (max-width: 737px) {
.infoBox dt{
    flex-basis: 100%;
    max-width: 100%;
    position: relative;
    padding-top: 50%;
    overflow: hidden;
    margin: 0 0 1em;
}
.infoBox dt img{
    width: 100%;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%);
}
.infoBox dd{
    flex-basis: 100%;
    max-width: 100%;
}
.infoBox .infoLink a{
    padding: 0.8em 1em;

}
}








/*******************************************************************************
entry
********************************************************************************/
#entry{
    margin-top: 5%;
    margin-bottom: 10%;
}

#entry h3{
    font-size: 1.8em;
    color: rgb(var(--tema-color));
    margin-bottom: 0.2em;
}
.entryWrap{
    position: relative;
    text-align: center;
    padding: 2em;
}
.entryWrap::before{
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    background-color: rgb(var(--tema-color));
    opacity: 0.06;
}
.entryLink{
    position: relative;
    display: block;
    margin: 2em 0;
}
.entryLink a{
    display: inline-block;
    position: relative;
    font-size: 1.6em;
    line-height: 1.4;
    color: #FFF;
    background-color: rgb(var(--tema-color));
    border-radius: 2em;
    padding:0.4em 2em 0.6em 2em;
    overflow: hidden;
}
.entryLink a::before{
    content: "";
    display: inline-block;
    position: absolute;
    left: 0;
    bottom: 0px;
    width: 100%;
    border-bottom: 5px solid rgba(0,0,0,0.1);
}

.entryLink a:hover{
    transform: translateY(3px);
}
.entryLink a:hover::before{
    border-bottom: 2px solid rgba(0,0,0,0.1);
}

/*--737px以下 ------------------------------------*/
@media only screen and (max-width: 737px) {
.entryWrap{
    padding: 1em;
}
.entryLink a{
    width: 100%;
    font-size:5.6vw;
    padding: 0.4em 1em 0.6em 1em;
}
}





