@charset "utf-8";

/* ---------------- Root font-size (valid CSS) ---------------- */
html { font-size: 0.625vh; }
@media screen and (min-width: 1601px) { html { font-size: 62.5%; } }
@media screen and (max-width: 1000px) { html { font-size: 39.0625%; } }
@media screen and (max-width: 750px)  { html { font-size: 60%; } }

body {
  font-size: 4.2rem;
  font-family: "BIZ UDPGothic", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "sans-serif";
  text-align: center;
  color: #EB631E;
  background-color: #fff;
  width: 100%;
  margin-right: 0px;
  margin-left: 0px;
  position:relative;
}
.bg {
  writing-mode: vertical-rl;
　-ms-writing-mode: tb-rl;
  text-align: center;
  margin: 5rem auto;
}
div.tate {
text-align: center;
}

div.tate h1 {
writing-mode: vertical-rl;
display: inline-block;
margin-bottom: 0.5rem;
}
.container {
  width: 80%;
  margin: 0.5rem auto 5rem;
  padding: 0.25rem;
  background: rgba(235,99,30,0.25);
}
.contents {
  text-align: left;
  width: 75%;
  margin: 0 auto;
  padding: 0px 10px 20px 10px;
  -webkit-text-size-adjust: 100%;
  font-family: 'Noto Sans', "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "sans-serif";
  font-size: 1.8rem;
  letter-spacing: 0.1rem;
  line-height: 2;
}

p {
  -webkit-text-size-adjust: 100%;
  font-size: 1.8rem;
  font-family: "Teko", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "sans-serif";
  padding-bottom: 0.8rem;
  letter-spacing: 0.1rem;
  line-height: 2rem;
  color: #111;
}
hr {
  width: 80%;
  height: 0.1rem;
  margin: 0 auto 2rem auto;
  color: #CCC;
  background-color: #CCC;
}
h1 {
  -webkit-text-size-adjust: 100%;
  color: #EB631E;
  font-size: 15rem;
  font-family: 'Ibarra Real Nova', serif;
  font-style: italic;
  text-align: left;
  margin-top: 0.4rem;
  margin-bottom: 0rem;
  line-height: 10rem;
  white-space: nowrap;
  display: inline-block;
  background: linear-gradient(45deg, #111 10%, #EB631E 50%, #111 90%);
  background: -webkit-linear-gradient(45deg, #111 10%, #EB631E 50%, #111 90%);
  background-size: 300% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: gradientEffect 10s infinite alternate;
}
 
@keyframes gradientEffect {
  from {background-position: left}
  to {background-position: right}
}

h2 {
  -webkit-text-size-adjust: 100%;
  font-size: 3.6rem;
  text-align: center;
  letter-spacing: 0.16rem;
  margin-top: 1rem;
  margin-bottom: 0rem;
  line-height: 3rem;
  color: #111;
}
h3 {
  -webkit-text-size-adjust: 100%;
  font-size: 3rem;
  font-family: 'Teko', "BIZ UDPGothic", sans-serif;	
  text-align: center;
  letter-spacing: 0.09rem;
  margin: 0rem 2rem;
  padding: 1rem 0.5rem 0.2rem;
  line-height: 2.5rem;
  color: #111;
}
h4 {
  -webkit-text-size-adjust: 100%;
  font-size: 1.5rem;
  color: #111;
}
a {
  color: #EB631E;
  text-decoration: none;
}
a:visited {
  color: #EB631E;
}

.pframe {
	border: solid 0.6rem;
	border-color: #111;
	color: #111;
	background-color: #FFF;
	margin-bottom: 3rem;
	padding: 0 ;
}

.cframe {
	margin-top: 0rem;
	border-right: solid 0.6rem;
	border-bottom: solid 0.6rem;
	border-color: #111;
	color: #111;
	background-color: #FFF;
	padding: 0.6rem 0 -0.6rem 0;
	text-align: left;
	width: fit-content;
}

div.pframe p {
	margin: 2rem 4rem;
	font-family: "BIZ UDPGothic", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "sans-serif";
	font-size: 1.8rem;
	letter-spacing: 0.1rem;
	line-height: 3.6rem;

}

dl {
	margin: 2rem 4rem;
}
dt {
	clear: both;
	float: left;
	width: 9rem;
	padding: 0 0.2rem;
}
dd {
	padding: 0 0 0 12rem;
}

.gototop a {
  color: #FFF;
  text-decoration: none;
}

.twitter-timeline {
  margin-left: auto;
  margin-right: auto;
  display: block !important;
}
.center {
  text-align: center;
  font-size: 1.8rem;
  margin:0 auto 2rem;
  letter-spacing: 0.1rem;
  line-height: 2rem;
}
.copyright {
  font-size: 1.5rem;
  font-family: "Teko","Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "sans-serif";
  padding-bottom: 0.8rem;
  letter-spacing: 0.01rem;
  line-height: 2;
  color: #111;
}


.booksubmit {
  width: 10rem;
  height: 4rem;
  font-family: 'Sawarabi Mincho',"ＭＳ Ｐ明朝", "MS PMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", serif;
  font-size: 1.5rem;
  background-color: #CCC;
}

.contactsubmit {
  width: 10rem;
  height: 8rem;
  padding: 1.5rem 2.5rem;
  font-family: 'Sawarabi Mincho',"ＭＳ Ｐ明朝", "MS PMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", serif;
  font-size: 1.5rem;
  background-color: #DDD;
}
.asa {
  display: block;
  font-family: Roboto, Raleway, sans-serif;
  font-size: 3rem;
  text-align: center;
  color: #111;
}
.asa A {
  font-family: Roboto, Raleway, sans-serif;
  font-size: 3rem;
  text-align: center;
  color: #63C7BE;
}


#formWrap {
	width: 80%;
	margin: 0 auto;
	color: #FFF;
	line-height: 120%;
	font-size: 1.5rem;
}
table.formTable{
	width: 100%;
	margin: 0 auto;
	border-collapse: collapse;
}
table.formTable td,table.formTable th{
	border: 0.1rem solid #ccc;
	padding: 1rem;
}
table.formTable th{
	width: 30%;
	font-weight: normal;
	background: #444;
	text-align: left;
}
/*　簡易版レスポンシブ用CSS（必要最低限のみとしています。ブレークポイントも含め自由に設定下さい）　*/
@media screen and (max-width:572px) {
#formWrap {
	width: 95%;
	margin: 0 auto;
}
table.formTable th, table.formTable td {
	width: auto;
	display: block;
}
table.formTable th {
	margin-top: 0.5rem;
	border-bottom: 0;
}
input[type="text"], textarea {
	width: 80%;
	padding: 0.2rem;
	font-size: 110%;
	display: block;
}
input[type="submit"], input[type="reset"], input[type="button"] {
	display: block;
	width: 100%;
	height: 0.5rem;
}
}

.smallimage {
        width: auto;
  text-align: center;
}
.smallimage img {
        max-width: 100%;
        height: auto;
  display:block;
  margin: 0 auto;
  padding: 1rem 0;
}




.modalDialog {
    -webkit-text-size-adjust: 100%;
    position: fixed;
    font-family: Arial, Helvetica, sans-serif;
    text-align: left;
	color: #111;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.8);
    z-index: 99999;
    opacity:0;
    -webkit-transition: opacity 400ms ease-in;
    -moz-transition: opacity 400ms ease-in;
    transition: opacity 400ms ease-in;
    pointer-events: none;
}

.modalDialog p {
    text-align: left;
    margin: 0;
}
.modalDialog h2 {
    text-align: center;
    line-height: 1.2;
    margin: 0 0 20px 0;
}
.modalDialog h3 {
    text-align: center;
    line-height: 1.2;
    margin: 0 0 10px 0;
}
.modalDialog h4 {
    text-align: left;
    margin: 0;
}
.modalDialog h5 {
    text-align: right;
    line-height: 1.2;
    margin: 0 0 10px 0;
}

.modalDialog:target {
    opacity:1;
    pointer-events: auto;
}
.modalDialog > div {
    width: 60%;
    position: relative;
    margin: 100px auto 0;
    padding: 10px 10px 10px 20px;
    border-radius: 10px;
    background: #fff;
    background: -moz-linear-gradient(#fff, #999);
    background: -webkit-linear-gradient(#fff, #999);
    background: -o-linear-gradient(#fff, #999);
    font-size: 1.8rem;
}
.close {
    background: #CCC;
    color: #FFF;
    line-height: 40px;
    position: absolute;
    right: 15%;
    text-align: center;
    top: 80px;
    width: 40px;
    text-decoration: none;
    font-size: 30px;
    font-weight: bold;
    -webkit-border-radius: 20px;
    -moz-border-radius: 20px;
    border-radius: 20px;
    -moz-box-shadow: 1px 1px 3px #000;
    -webkit-box-shadow: 1px 1px 3px #000;
    box-shadow: 1px 1px 3px #000;
}
.close:hover {
    background: #999;
}

/* ===== Mobile tuning (match lab readability) ===== */
@media screen and (max-width: 750px) {

  /* Comfortable gutter similar to the lab site */
  .container{
    width: 100%;
    margin: 0.5rem auto 3rem;
    padding: 0 18px;
    background: rgba(235,99,30,0.25);
    box-sizing: border-box;
  }

  .contents{
    width: 100%;
    margin: 0;
    padding: 0 0 24px;
    font-size: 1.45rem;
    line-height: 1.75;
    letter-spacing: 0.02em;
    box-sizing: border-box;
  }

  p{
    font-size: 1.6rem;
    line-height: 1.85;
    letter-spacing: 0.02em;
  }

  /* Vertical title: avoid clipping on small screens */
  div.tate h1{
    font-size: 9rem;
    line-height: 3.8rem;
  }

  /* Frames: reduce inner whitespace */
  div.pframe p{
    margin: 1.0rem 1.2rem;
    line-height: 1.85;
    letter-spacing: 0.02em;
  }

  /* Definition list spacing similar to your preferred look */
  .pframe dl{
    margin: 1.0em 0em 1.0em 0.6em;
  }
  .pframe dt{
    margin: 0 0 0.6em 0.6em;
    float: none;
    width: auto;
    padding: 0;
  }
  .pframe dd{
    margin: 0 0.6em 0.6em 0;
    padding: 0;
  }
  .pframe dl dt:first-child{ margin-top: 0; }

  /* Lists: slight spacing between items */
  ul li, ol li{ margin: 0.35em 0; }
  li ul li, li ol li{ margin: 0.2em 0; }

  /* Prevent overflow */
  img, iframe, video{ max-width: 100%; height: auto; }
  pre, code{ max-width: 100%; overflow-x: auto; }

  /* Modal fits iPhone */
  .modalDialog > div{ width: 92%; margin: 70px auto 0; }
  .close{ right: 4%; top: 20px; }
}
