@charset "UTF-8";

/****************
    ベース
*****************/

html {
    font-family: monospace;
    font-size: 18px;
}

p {
    line-height: 27px;
}

h1 {
    font-family: math;
    font-size: 6em;
    font-weight: bold;
}

h2 {
    border-bottom: dotted 4px #003E8D;
    color: #003E8D;
}

h3 {
    border-left: solid 5px #003E8D;
    color: #000;
    padding: 0.3% 1%;
    background-color: #fff;
}

.title-font {
    font-size: 3em;
    font-family: monospace;
}

@media screen and (max-width:1400px)  {
    h1 {
        font-size: 3em;
    }

    .title-font {
        font-size: 1em;
    }
}

html, body {
    height: 100%;
    margin: 0;
}

/* コンテンツを伸ばす */
main {
    padding: 2%;
    /* display: flex;
    flex-direction: row;
    justify-content: space-between; */
}

main section {
    flex: 1 1 auto;
}

main aside {
    flex: 0 0 20%;
}

@media screen and (max-width:1400px)  {
    main {
        display: flex;
        flex-direction: column;
        justify-content: space-around;
    }
}

.nav-padding, footer {
    padding: 1.5% calc(5% + 1%);
}

nav a {
    margin-right: 1em;
    text-decoration: none;
    color: #fff;
}

.headline {
    padding: 1% 0;
    background-color: #003E8D;
}

.headline p,h1 {
    margin: 0;
    padding: 0;
    color: #FFE44D;
}

.headline p {
    margin-bottom: 0%;
}

.nav-padding, .headline p,h1 {
    padding-left: 2%;
}

.headline h1 {
    margin-bottom: 5%;
}

.headline nav {
    display: flex;
}

.headline nav li {
    list-style: none;
}

/* フッターを固定する */
footer {
    margin-top: auto; /* フッターをページの下部に固定する */
    padding: 2em;
}

.a-position {
    margin: 5%;
    text-align: right;
}


/****************
    top
*****************/

.text-layout {
    margin: 0;
    margin-bottom: 5%;
}

.text-layout h3 {
    margin: 0 0 1% 0;
}

.text-layout p {
    margin: 0;
}

.text-layout ul li {
    margin-bottom: 3%;
}

@media screen and (max-width:768px)  {
    .text-layout ul li {
        margin-bottom: 12%;
    }
}

.text-layout ul {
    list-style: none;
    padding: 0;
}

/* .profile-length {
     max-width: min-content;
} */

.profile-length h3 {
    margin-bottom: 0;
}

.profile-length ul {
    margin-top: 1%;
}

.profile {
    width: fit-content;
}

.profile ul {
    margin: 0;
}

.profile h3 {
    margin-bottom: 0;
}



/****************
    blog
*****************/

pre {
    margin: 1% 0;
    /* white-space: pre-wrap; 改行の扱い */
    /* word-wrap: break-word; 長い単語の折り返し */
    overflow-x: auto;     /* 横スクロールを追加 */
    background-color: #fff; /* 背景色 */
    padding: 2%;
    /* border: 1px solid #ccc; 枠線 */
    border-radius: 5px;
}

.box-detail section {
    margin: 3% 0;
}

.box {
    background-color: #f5f5f5;
    border: 1px solid #f5f5f5;
    border-radius: 5px;
    padding: 0 1em 1em 1em;
    margin-bottom: 2em;
}

.box-detail {
    box-shadow: 5px 5px 5px #808080;
    width: 90%;
    padding: 0 3%;
}

.post-list ul {
    list-style: none;
    padding: 0;
}

.post-list ul li{
    margin: 1% 0;
}

.box-detail ul {
    list-style: none;
    padding: 0;
}
.box-detail ul li{
    margin: 1% 0;
}

@media screen and (max-width:1400px)  {
    .box-detail {
        width: auto;
    }
}

.post-list {
    width: 90%;
}

.post-list:hover {
    transition: all 0.3s ease-in-out;
    box-shadow: 5px 5px 5px #808080;
}

.post-list-row a,.box a {
    text-decoration: none;
}

.pagenation a {
    text-decoration: none;
}

.search-form {
    background-color: #f5f5f5;
    border: 1px solid #f5f5f5;
    border-radius: 5px;
    padding: 0 1em;
    margin-bottom: 10%;
}

#id_tags li {
    list-style: none;
    font-size: large;
    margin: 2% 0;
}

.tag-margin{
    margin-bottom: 0;
}

.search-form #id_category,#id_tags,#id_user {
    padding: 0;
    margin-top: 0;
    margin-bottom: 2%;
}

#id_tags option {
    margin: 0.5em 0;
}

.search-form button {
    padding: 0.6em 2em;
    font-size: 1em;
    margin: 1em 0;
}

aside ul li {
    margin: 2% 0;
}

aside ul li a {
    font-size: large;
    text-decoration: none;
}

.pagenation {
    display: inline-block;
    margin-bottom: 10%;
    padding-left: 1em;
}

/****************
    contact
*****************/

.form-width{
    padding: 0 20%;
}

.form-layout form {
    padding: 5% 10%;
}

@media screen and (max-width:1400px)  {
    .form-width{
        padding: 0;
    }

    .form-layout form {
        padding: 0;
    }
}

.helptext {
    color: #AD0000;
    font-size: 1em;
    padding: 0.2em;
    border-radius: 12%;
}

.input,.textarea,.select {
    display: block;
    width: 90%;
    padding: 0.7em;
    margin: 2% 0;
    font-size: 1em;
}

.contact-button {
    padding: 0.6em 2em;
    margin: 3% 0%;
    font-size: 1em;
}

.form-layout{
    /* display: inline-block;
    margin: 10% 0; */
    padding: 2%;
}

form .field {
    margin: 5% 0;
}

.errorlist {
    margin: 0;
}

.errorlist li {
    list-style: none;
    color: #AD0000;
}