/*固有の数値*/
:root
{
    --backCr:#eee;
    --bodyCr:#0000;
    --fontCr:#222222;
    --fontGlayCr:rgba(151, 151, 151, 0.574);
    --fontSize:16px;
    --fontSizeTitle:calc(var(--fontSize)*2);
    --fontSizeTopic:calc(var(--fontSize)*1.5);
    --fontSizeTopic2:calc(var(--fontSize)*1.3);

    --fontLarge:1.08;

    --logoSize:200px;
    --logoOffset:80px;
    --logoLineCr1:#486db18c;
    --logoLineCr2:#00000033;
    --logoBackCr:#00000010;
    --logoAngle1:58deg;
    --logoAngle2:45deg;
    --logoTextCr:#0d2d59ce;
    --logoTextSize:24px;
    
    --headerBackCr:#ffffffdd;
    --headerHeight:70px;

    --mainPad:140px;
    
    --footerBackCr:#ffffff55;
    --footerSize:50px;
    --footerOffsetX:20px;
    --footerOffsetY:20px;
    --footerTextCr:#888888;
    --footerClickCr:#55555555;

    --lineCr:#555555;

    --hrBaseCr:#0006;
    --hrTextColor:#333;
    --hrSize:6px;

    --linkCr:#0b193a;
    --linkHoverCr:#63739d;
    --linkAfterCr:#898989;

    --outlineCr:var(--lineCr);

    --strongLineSize:40%;
    --strongCr:#e8b5b5;
    --strongCr2:#a6a7d2;
}
:root{

    --rect1:2px;
    --rect2:8px;
    --rect3:16px;

    --sizeSquare10:10em;
    --sizeSquare9:9em;
    --sizeSquare8:8em;
    --sizeSquare7:7em;
    --sizeSquare6:6em;
    --sizeSquare5:5em;
    --sizeSquare4:4em;
    --sizeSquare3:3em;
    --sizeSquare2:2em;
    --sizeSquare1:1em;
    
    --size1:0.1;
    --size2:0.2;
    --size3:0.3;
    --size4:0.4;
    --size5:0.5;
    --size6:0.6;
    --size7:0.7;
    --size8:0.8;
    --size9:0.9;
    --size10:1.1;
}

hr{margin:0;padding:0;border:0;height:0;}

/*汎用的な機能*/
a{
    color: var(--linkCr);
    text-decoration: underline;
}a:link{
    color: var(--linkCr);
}a:visited{
    color: var(--linkAfterCr);
    text-decoration: underline;
}a:hover{
    color: var(--linkHoverCr);
}a:active{
    color:var(--linkHoverCr);
}

.center{
    text-align: center;
}.left{
    text-align: left;
}.right{
    text-align: right;
}
.large{
    font-size: calc(var(--fontSize)*var(--fontLarge));
}
hr.mesh{
    height: var(--hrSize);
    background-image: repeating-linear-gradient(45deg, var(--hrBaseCr) 0, var(--hrBbaseCr) 1px, transparent 0, transparent 50%),repeating-linear-gradient(-45deg, var(--hrBaseCr) 0, var(--hrBaseCr) 1px, transparent 0, transparent 50%);
    background-size: var(--hrSize);
}hr.diagonal{
    height: var(--hrSize);
    background-image: repeating-linear-gradient(45deg, var(--hrBaseCr) 0, var(--hrBaseCr) 1px, transparent 0, transparent 50%);
    background-size: var(--hrSize);
}hr.gradation{ 
    height: 1px;
    background-image: linear-gradient(to right, transparent, var(--hrBaseCr), transparent);
}hr.gradationOut{ 
    height: 1px;
    background-image: linear-gradient(to right, var(--hrBaseCr), transparent);
}hr.dash{
    border-top: 1px dashed var(--hrBaseCr);
}hr.dot{
    border-top: 1px dotted var(--hrBaseCr);
}hr.double{
    border-top: 3px double var(--hrBaseCr);
}hr.base{
    border-top: 1px solid var(--hrBaseCr);
}

.outline{ outline: var(--outlineCr) solid 1px; outline-offset: 2px;}
.outline2{ outline: var(--outlineCr) dashed 1px; outline-offset: 2px;}
.outline3{ outline: var(--outlineCr) dotted 1px; outline-offset: 2px;}
.border{ border: var(--outlineCr) solid 1px;}
.border2{ border: var(--outlineCr) dashed 1px;}
.border3{ border: var(--outlineCr) dotted 1px;}

.horizontal{
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: center;
}
/* Test */
:root
{
    --backColor:#eee;
    --backColorA_09:#eeed;
}
.grad-btn {
    z-index: 2;
    color: #555;
    text-align: center;
    cursor: pointer;
    transition: .2s ease;
    /* box-shadow: 0 0 3px rgba(0,0,0,.3); */
  }
  .grad-btn::after {
    content: "続きを読む"
  }
  .grad-btn:hover {
    background: #fff;
    color: #009e8f;
  }
  .grad-btn .fa {
    margin-right: .5em;
  }
  .grad-item {
    position: relative;
    overflow: hidden;
    height: 80px; /*隠した状態の高さ*/
  }
  .grad-item::before {
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 40px; /*グラデーションで隠す高さ*/
    background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%, var(--backColorA_09) 50%, var(--backColor) 100%);
    background: linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, #fff 100%);
    content: "";
  }
  .grad-trigger {
    display: none;
  }
  .grad-trigger:checked ~ .grad-btn {
    bottom: -2em;
  }
  .grad-trigger:checked ~ .grad-btn::after {
    content: "閉じる"
  }
  .grad-trigger:checked ~ .grad-btn .fa {
    transform: rotate(180deg);
  }
  .grad-trigger:checked ~ .grad-item {
    height: auto;
  }
  .grad-trigger:checked ~ .grad-item::before {
    display: none;
  }



img{
    object-fit: cover;
}
img.left{ object-position: 0;}

.offset{ padding:20px;}

/*画像効果*/
img.brightness { filter: brightness(1.25); }
img.blur { filter: blur(3px); }
img.saturate { filter: saturate(130%); }
img.grayscale { filter: grayscale(200%); }
img.contrast { filter: contrast(80%); }
img.blurContrast{filter: blur(3px) contrast(80%);}
/*画像リンク*/
a img:hover{
    filter: contrast(50%) grayscale(50%);
}a img.blur:hover{
    filter: blur(3px) contrast(50%) grayscale(50%);
}a img.blurContrast:hover{
    filter: blur(3px) contrast(50%) grayscale(50%);
}

.circle{ border-radius: 50%;}
.rect1{border-radius: var(--rect1);}
.rect2{ border-radius: var(--rect2);}
.rect3{ border-radius: var(--rect3);}
.leftUp0{ border-top-left-radius: 0;}
.leftUp1{ border-top-left-radius: var(--rect1);}
.leftUp2{ border-top-left-radius: var(--rect3);}
.rightUp0{ border-top-right-radius: 0;}
.rightUp1{ border-top-right-radius: var(--rect1);}
.rightUp2{ border-top-right-radius: var(--rect3);}
.leftDown0{ border-bottom-left-radius: 0;}
.leftDown1{ border-bottom-left-radius: var(--rect1);}
.leftDown2{ border-bottom-left-radius: var(--rect3);}
.rightDown0{ border-bottom-right-radius: 0;}
.rightDown1{ border-bottom-right-radius: var(--rect1);}
.rightDown2{ border-bottom-right-radius: var(--rect3);}

img.resize{max-width: 100%; height: auto;}

img.constSizeSquare1{ width: var(--sizeSquare1); height: var(--sizeSquare1);}
img.constSizeSquare2{ width: var(--sizeSquare2); height: var(--sizeSquare2);}
img.constSizeSquare3{ width: var(--sizeSquare3); height: var(--sizeSquare3);}
img.constSizeSquare4{ width: var(--sizeSquare4); height: var(--sizeSquare4);}
img.constSizeSquare5{ width: var(--sizeSquare5); height: var(--sizeSquare5);}
img.constSizeSquare6{ width: var(--sizeSquare6); height: var(--sizeSquare6);}
img.constSizeSquare7{ width: var(--sizeSquare7); height: var(--sizeSquare7);}
img.constSizeSquare8{ width: var(--sizeSquare8); height: var(--sizeSquare8);}
img.constSizeSquare9{ width: var(--sizeSquare9); height: var(--sizeSquare9);}
img.constSizeSquare10{ width: var(--sizeSquare10); height: var(--sizeSquare10);}

img.constSize1{ width: var(--sizeSquare1); height: auto;}
img.constSize2{ width: var(--sizeSquare2); height: auto;}
img.constSize3{ width: var(--sizeSquare3); height: auto;}
img.constSize4{ width: var(--sizeSquare4); height: auto;}
img.constSize5{ width: var(--sizeSquare5); height: auto;}
img.constSize6{ width: var(--sizeSquare6); height: auto;}
img.constSize7{ width: var(--sizeSquare7); height: auto;}
img.constSize8{ width: var(--sizeSquare8); height: auto;}
img.constSize9{ width: var(--sizeSquare9); height: auto;}
img.constSize10{ width: var(--sizeSquare10); height: auto;}

img.size1{ width: calc(100% * var(--size1)); height: auto;}
img.size2{ width: calc(100% * var(--size2)); height: auto;}
img.size3{ width: calc(100% * var(--size3)); height: auto;}
img.size4{ width: calc(100% * var(--size4)); height: auto;}
img.size5{ width: calc(100% * var(--size5)); height: auto;}
img.size6{ width: calc(100% * var(--size6)); height: auto;}
img.size7{ width: calc(100% * var(--size7)); height: auto;}
img.size8{ width: calc(100% * var(--size8)); height: auto;}
img.size9{ width: calc(100% * var(--size9)); height: auto;}
img.size10{ width: calc(100% * var(--size10)); height: auto;}

/*固有の機能(デザイン)*/

html{
    scroll-behavior: smooth;
    font-family:"Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
    font-size: var(--fontSize);
    color: var(--fontCr);
    background-color:var(--backCr);
}
body{
    background-color:var(--bodyCr);
}

header.style01{
    z-index: 100;
    position:fixed;
    height: var(--headerHeight);
    width: 100%;
    background-color: var(--headerBackCr);
}header.style01::after{
    content: "\A";
}
header.none{
    content: "";
}header.none::after{
    content: "\A";
}

toplogo{
    position: relative;
    top:var(--logoOffset);
    left:calc(50% - var(--logoSize)*0.5);
    margin: 0, auto;
    width: var(--logoSize);
    height: var(--logoSize);
    display: flex;
    justify-content: center;
    align-items: center;
    background-color:var(--logoBackCr);
    outline: 2px solid var(--logoBackCr);
    outline-offset: 2px;
}toplogo::before{
    z-index: -1;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: var(--logoSize);
    height: var(--logoSize);
    margin: auto;
    content: "";
    border: 1px solid var(--logoLineCr1);
    -webkit-transform: rotate(var(--logoAngle1));
    transform: rotate(var(--logoAngle1));
}toplogo::after{
    z-index: -1;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: var(--logoSize);
    height: var(--logoSize);
    margin: auto;
    content: "";
    border: 1px solid var(--logoLineCr2);
    -webkit-transform: rotate(var(--logoAngle2));
    transform: rotate(var(--logoAngle2));
    outline: 1px solid var(--logoLineCr2);
    outline-offset: -4px;
}toplogo h1{
    color: var(--logoTextCr);
    font-size:calc(var(--logoTextSize) + 1vw);
}

.default_top{
    margin: auto;
    padding-top: var(--mainPad);
    padding-left: 10%;
    padding-right: 10%;
}
.default{
    margin: auto;
    padding-top: 5%;
    padding-left: 10%;
    padding-right: 10%;
}

.footer button{
    z-index: 100;
    position:fixed;
    width: var(--footerSize);
    height: var(--footerSize);
    right: var(--footerOffsetX);
    bottom: var(--footerOffsetY);
    background-color: var(--footerBackCr);
    border: 5px double var(--footerTextCr);
    outline: 1px solid var(--footerTextCr);
    color: var(--footerTextCr);
}.footer button:hover{
    background-color:var(--footerClickCr);
}

strong{
    font-weight:normal;
    background-image: linear-gradient(to top,var(--strongCr) var(--strongLineSize),transparent var(--strongLineSize));
}
strong.cr{
    font-weight:normal;
    background-image: linear-gradient(to top,var(--strongCr2) var(--strongLineSize),transparent var(--strongLineSize));
}

section.line{
    width: 90%;
    margin: 0 auto;
    border: 1px solid var(--lineCr);
}
section.basic{
    width: 95%;
    margin: 0 auto;
}

.pageTitle{
    font-size: var(--fontSizeTitle);
    background-image: linear-gradient(to right, var(--hrBaseCr), transparent );
    background-repeat: no-repeat;
    background-size: 100% 1px;
    background-position-y: bottom;
}.center .pageTitle{
    background-image: linear-gradient(to right, transparent, var(--hrBaseCr), transparent );
}
.pageTopic{
    font-size: var(--fontSizeTopic);
    background-image: linear-gradient(to right, var(--hrBaseCr), transparent );
    background-repeat: no-repeat;
    background-size: auto 1px;
    background-position-y: bottom;
}.pageTopic2{
    font-size: var(--fontSizeTopic2);
}

hr.style01{
    height: 1em;
    padding-top:3em;
    padding-bottom:1em;
    text-align: center;
    overflow: visible;
    width: 100%;
    background-image: linear-gradient(to right, var(--hrBaseCr), transparent calc(50% - 1.5em), transparent calc(50% + 1.5em), var(--hrBaseCr) );
    background-repeat: no-repeat;
    background-size: auto 1px;
    background-position-y: 3em;
}hr.style01::after {
    position: relative;
    top:calc(-1em + 1px);
    content: "◇◆◇";
    color: var(--hrBaseCr);
    display: inline-block;
    height: 2em;
    line-height: 2em;
}
hr.diagonal{
    width: 92%;
    margin: 0 auto;
}

canvas.back
{
    position:absolute;
    z-index: -9;
    left:0;
    bottom: 0;
    width:100%;
    height:100%;
}
canvas.backfix
{
    position:fixed;
    z-index: -10;
    left:0;
    bottom: 0;
    width:100%;
    height:100%;
}
.glay{
    color:var(--fontGlayCr);
}:root
{
    --backCr1:rgb(240, 240, 224);
    --backCr2:rgb(151, 211, 201);
    --backCr3:rgba(25, 78, 128, 0.9);
    --backCr4:rgb(42, 43, 97);
    --backRate1:0%;
    --backRate2:1%;
    --backRate3:10%;
    --backRate4:43%;
    --backRate5:90%;
    --backAngle:-45deg;

    --bodyBackCr1:#0005;
    --bodyBackCr2:#000a;

    --fontCr:rgb(237, 231, 241);
    --fontGlayCr:rgba(237, 231, 241, 0.574);
    --hrBaseCr:#fffa;
    --hrSize:8px;

    --footerBackCr:#aaa7;
    --footerSize:50px;
    --footerOffsetX:20px;
    --footerOffsetY:20px;
    --footerTextCr:#341b4d;
    --footerClickCr:#6c50a055;

    --lineCr:rgb(170, 156, 178);

    --sectionBackCr:rgba(8, 24, 72, 0.095);
    
    --linkCr:#c3d9e3;
    --linkHoverCr:#5188a1;
    --linkAfterCr:#8d8d8d;
}
html{
    width: 100%;
    height: 100%;
    font-family:"Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
    background-color: var(--backCr1);
    background: linear-gradient(var(--backAngle), var(--backCr1) var(--backRate1), var(--backCr1) var(--backRate2), var(--backCr2) var(--backRate3), var(--backCr3) var(--backRate4), var(--backCr4) var(--backRate5));
    background-attachment: fixed;
}
body{
    width: 80%;
    height: auto;
    min-height: 100%;
    margin:auto;
    background: linear-gradient(to top, var(--bodyBackCr1), var(--bodyBackCr2));
color: var(--fontCr);
}
.pageTitle{
    background-image: linear-gradient(to right, transparent, var(--hrBaseCr), transparent );
}
section.line{
    /* width: 90%; */
    margin: auto;
    margin-bottom: 2.5em;
    border: 1px solid var(--lineCr);
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
    padding-top: 1em;
    padding-bottom: 1em;
    background-color: var(--sectionBackCr);
}
em.chapter{
    width: var(--sectionEmSize);
    top: -1em;
    left: calc(50% - var(--sectionEmSize)*0.5);
    font-size: large;
    margin: 0 auto;
    text-align: center;
}
