@charset "utf-8";

/*--------------------*/
/*フォント*/
/*--------------------*/

@import url('https://fonts.googleapis.com/css2?family=Kosugi+Maru&family=M+PLUS+Rounded+1c:wght@300;400;700;900&display=swap');
@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200");

.material-symbols-outlined {
  font-variation-settings:
  'FILL' 0,
  'wght' 400,
  'GRAD' -25,
  'opsz' 24
}

/*--------------------*/
/*色*/
/*--------------------*/

:root {
    --color__main: #d8d8d8;
    --color__sabu: #F2f2f2;
    --color__sabu2: #948F85;
    --color__sabu3: #CCBAA5;
    --color__text: #4C4B49;
    --color__sabu4: #F2F2F2;
    --color__accent: #f6d3a0;
    --color__accent2: #eaaf5e;
    --color__accent3: #d0841d;
    --color__accent4: #bc7412;
}

/*--------------------*/
/*ベタ打ち*/
/*--------------------*/

* {
    /*簡易リセットCSS*/
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    /*その他CSS*/
    line-height: 1.75em;
}

html {
    font-family: 'Kosugi Maru', sans-serif;
    font-size: 14px;
    color: var(--color__text);
}

body {
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: var(--color__main);
}

body > header,
body > main,
body > nav,
body > section,
body > footer {
    width: min(40rem, calc(100% - 2rem));
}

body > main,
body > nav,
body > section,
body > footer {
    margin-bottom: 1.5rem;
}

body > *:last-child {
    margin-bottom: 0;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Murecho', sans-serif;
    line-height: 1em;
    margin: 0 0 0.5em;
}

h1 {
    font-size: 3rem;
}

h2 {
    font-size: 2.2rem;
}

h3 {
    font-size: 1.7rem;
}

h4 {
    font-size: 1.4rem;
}

h5 {
    font-size: 1.2rem;
}

h6 {
    font-size: 1rem;
}

small {
    font-size: 0.8rem;
}

a {

    color: var(--color__accent3);
    text-decoration: none;

    &:visited {
        color: var(--color__accent3);
    }

    &:hover {
        color: var(--color__accent4);
        text-decoration: underline;
    }

}

img {
    /*画像下の空白が無くなる*/
    vertical-align: middle;
}

ul, ol {
    /*リストがボックス内に収まる*/
    list-style-position: inside;
    /*改行したとき、行頭が「・」の右側で揃う*/
    padding-left: 1em;
    text-indent: -1em;
}

audio {
    /*line-heightの代用*/
    margin: 1rem 0;
}

strong {
    /*てがろぐ本体で生成される注意書きのデザインを変更*/
    color: var(--color__main);
    line-height: 1.75rem;
    border: none;
    border-radius: 0.25rem;
    background-color: var(--color__accent3);
}

input, textarea, select {
    font-family: 'Kosugi Maru', sans-serif;
    color: var(--color__main);
    <!-- background-color: var(--color__text);-->
}

input[type=text] {
    border: solid 1px var(--color__sabu2);
    border-radius: 0.2rem;
}

input[type=button], input[type=submit] {
    padding: 0.2rem 0.5rem;
    font-size: 1rem;
    color: var(--color__text);
    border: none;
    border-radius: 0.2rem;
    background-color: var(--color__sabu2);

    &:hover {
        filter: brightness(0.8);
        border: none;
        cursor: pointer;
    }
}

input[type="file"] {
    padding: 0.2rem 0.5rem;
    font-size: 1rem;
    color: var(--color__text);
    border-radius: 0.2rem;
    background-color: var(--color__sabu2);

    &:hover {
        color: var(--color__sabu);
        border: solid 1px var(--color__sabu);
        cursor: pointer;
    }
}

hr {
    height: 0;
    padding: 0;
    border: 0;
    margin: 1rem 0;
    border-top: 1px solid var(--color__sabu3);
    background-color: transparent;
}

summary {
    cursor: pointer;
}

/*--------------------*/
/*ヘッダー*/
/*--------------------*/

header {
    display: flex;
    justify-content: center;
    align-items: center;
    position: sticky;
    top: 0;
    left: 0;
    height: 4rem;
    z-index: 10;
    background-color: #d8d8d82b;
    border-bottom: 1px solid var(--color__main);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    
    & nav.menu {
        height: 100%;
        
        & ul {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100%;
            padding-left: 0;
            text-indent: 0;
            list-style: none;
        }

        & li {
            display: flex;
            justify-content: center;
            align-items: center;
            position: relative;
            font-size: 0.8rem;
            width: 2.5rem;
            height: 100%;
        }

        & li:hover {
            color: var(--color__accent4);
        }

        & li span {
            display: block!important;
            line-height: 1em;
        }

        & li button {
            color: var(--color__text);
            background-color: transparent;
            border: none;
            cursor: pointer;
        }

        @media (hover:hover) {
            & li button:hover {
                color: var(--color__accent4);
            }
            
        }

        .tips {
            display: none;
            position: absolute;
            bottom: -2.4rem;
            left: calc(50% + 1px);
            transform: translate(-50%, -50%);
            -webkit-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
            width: max-content;
            padding: 0.05rem 0.2rem;
            font-size: 0.8rem;
            text-align: center;
            color: var(--color__text);
            background-color: var(--color__sabu);
            border: 1px solid var(--color__sabu2);
            border-radius: 0.2rem;
            z-index: 10;
        }

    }

}

/*--------------------*/
/*プロフィール*/
/*--------------------*/

section.profile {
    display: none;
}

body.home section.profile {
    display: block;
    position: relative;
    margin-top: 1rem;
    background-color: var(--color__sabu);
    border-radius: 1rem;
    overflow: hidden;

    .header {
        position: relative;
    }

    .banner {
        position: relative;
        width: 100%;
        height: 200px;
        background-color: var(--color__sabu2);

        &::after {
            content: "";
            display: block;
            position: absolute;
            left: 0;
            bottom: 0;
            width: 100%;
            height: 100%;
            background: rgb(7,7,7);
            background: linear-gradient(359deg, rgb(255 255 255 / 90%) 0%, rgb(240 236 236 / 68%) 20%, rgb(227 206 206 / 20%) 55%, rgba(7, 7, 7, 0) 100%);
            z-index: 1;
            overflow: hidden;
        }

        & img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

    }

    .icon {
        position: absolute;
        top: 120px;
        left: 1rem;
        width: 120px;
        height: 120px;
        background-color: var(--color__sabu2);
        border-radius: 50%;
        border: 6px solid var(--color__sabu);
        overflow: hidden;
        z-index: 2;

        & img {
            width: 100%;
            height: auto;
            object-fit: cover;
        }
    }

    .userdata {
        position: absolute;
        left: 0;
        bottom: 1rem;
        padding: 1rem 0 0;
        z-index: 2;


        &  * {
            font-family: 'Murecho', sans-serif;
            line-height: 1.25em;
        }

        .user {
            display: flex;
            flex-wrap: wrap;
            align-items: end;
            padding-bottom: 0.2rem;
        }

        .name {
            font-size: 1.5rem;
            font-weight: bold;
        }
        
        .id {
            <!--  color: var(--color__sabu3); -->
            margin-left: 0.5rem;
            margin-bottom: 0.25rem;
        }
    }

    .role {
        display: flex;
        flex-wrap: wrap;
        align-items: end;
        gap: 0.5em;
        font-size: 0.8rem;
        color: var(--color__sabu3);

        & > *::before {
            content: "#";
        }

        & > * {
            display: block;
        }

    }

    .discription {
        min-height: 5rem;
        padding: 1.5rem 1rem;
    }

    .userdata, .discription {
        padding-left: calc(120px + 1rem + 2rem);
    }

    .field, .status {
        padding: 1.5rem;
        border-top: 1px solid var(--color__sabu2);

        & > ul {
            display: flex;
            list-style: none;
            padding-left: 0;
            text-indent: 0;
        }

    }

    .field {

        & > ul {
            flex-direction: column;
            row-gap: 0.5rem;
        }

        & > ul > li {
            display: flex;
        }

        & > ul > li > *:first-child {
            width: calc(120px + 1rem + 2rem - 1.5rem);
            text-align: center;
        }

    }

    .status {
        display: flex;

        & > ul {
            width: 100%;
            justify-content: center;
            gap: 1.5rem;
        }

        & > ul > li {
            display: flex;
            flex-direction: column;
            align-items: center;
        }

        & > ul > li > *:last-child {
            font-size: 0.8rem;
            color: var(--color__sabu3);
        }

    }

}

/*--------------------*/
/*メイン*/
/*--------------------*/

main {
    margin-top: 1rem;
    background-color: var(--color__sabu);
    border-radius: 1rem;
}

/*簡易投稿エリア*/

.qpostarea {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    width: 120dvw;
    height: 120dvh;
    background-color: #070707d0;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 100;

    .back {
        position: fixed;
        top: 0;
        left: 0;
        /*モーダル外側クリックで非表示の動作用*/
        width: 100%;
        height: 100%;
        z-index: -1;
    }

}

.qpostform {
    width: min(45rem, calc(100vw - 3rem));
    padding: 1.5rem;
    background-color: var(--color__sabu);
    border-radius: 1rem;
    z-index: 1;
}

form.qpostform {
    width: 100%;

}

.tegalogpost {
    width: 100%;
    max-width: 100%;
    min-height: 8rem;
    max-height: 80vh;
    padding: 0.5rem;
    font-size: 1rem;
    color: var(--color__text);
    background-color: var(--color__sabu);
    border: none;

    &:focus-visible {
        outline: none;
    }

}

.line-control {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
    color: var(--color__sabu2);
}

.line-control span {
    display: inline-block;
}

.line-control input[type=button],
.line-control input[type=file],
.line-control input[type=checkbox],
.line-control select,
.line-control label {
    margin-right: 0.25rem;
    margin-bottom: 0.25rem;
    font-size: 0.8rem;
}

.line-control input[type=checkbox] {
    margin-bottom: 0;
}

.line-control input[type=button],
.line-control input[type=file],
.line-control select {
    color: var(--color__sabu3);
    background-color: var(--color__sabu);
    border: 1px solid var(--color__sabu2);
}

input[type=submit].postbutton {
    padding: 0.4rem 1rem;
    font-size: 1rem;
    color: var(--color__text);
    border: none;
    border-radius: 1.2rem;
    background-color: var(--color__accent3);

    &:hover {
        background-color: var(--color__accent4);
        border: none;
        cursor: pointer;
    }
}

/*データセパレータ*/

.dateseparator {
    display: none;
}

/*記事*/

article.post {
    /*記事をarticleで囲んでいる*/
    display: grid;
    grid-template-rows: auto auto;
    grid-template-columns: 4rem auto;
    grid-template-areas:
        "header main"
        "header footer";
    padding: 1.5rem;
    border-bottom: 1px solid var(--color__sabu2);

    .header {
        grid-area: header;

        div.usericon {
            position: sticky;
            top: 4.5rem;
            left: 0;
            width: 3rem;
            height: 3rem;
            overflow: hidden;
            border-radius: 50%;

            & a {
                width: 100%;
                height: 100%;
            }

            & img {
                width: inherit;
                height: inherit;
                object-fit: cover;
            }
        }

    }

    .main {
        grid-area: main;

        .data .name a {
            font-weight: bold;
            color: var(--color__text);
        }

        .data .id::before {
            content: "＠";
            color: var(--color__sabu2);
        }

        .data .id a, .data .date a {
            color: var(--color__sabu2);
        }

        .data a:hover {
            text-decoration: underline;
        } 

    }

    .footer {
        display: flex;
        justify-content: right;
        grid-area: footer;
    }

    .categories {
        display: flex;
        align-items: center;

        .categorylink {
            display: flex;
            justify-content: center;
            align-items: center;
            margin-left: 0.5rem;
            text-decoration: none;
        }

        .categorylink:first-child {
            margin-left: 0;
        }

        .categorylink::before {
            font-family: 'Material Symbols Outlined';
            content: "\e2c8";
            color: var(--color__sabu2);
            text-decoration: none;
        }


        .categorylink span {
            display: block;
            padding: 0.05rem 0.05rem;
            font-size: 0.8rem;
            color: var(--color__sabu2);
            text-decoration: none;
        }
    
        .categorylink:hover span {
            color: var(--color__sabu2);
            text-decoration: underline;
        }

    }

    &:last-child {
        border: none;
    }

    &:last-of-type {
        border: none;
    }
    
    .edit {

        display: flex;
        justify-content: center;
        align-items: center;
        margin-left: 0.5rem;

        & * {
            font-size: 0.8rem;
            color: var(--color__sabu2);
        }

        & .material-symbols-outlined {
            position: relative;
            right: -4px;
        }
    
    }

}

/*固定投稿*/

.fixed {
    display: none;
}

.logstatus-fixed {

    .fixed {
        display: flex;
        justify-content: center;
        align-items: center;
        margin-left: 0.5rem;
        font-size: 0.8rem;
        color: var(--color__sabu2);
    }

    & .material-symbols-outlined {
        font-size: 1rem;
        color: var(--color__sabu2);
    }

}

/*鍵付き投稿*/

.passkeybox {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;

    .passkeyguide, .passkeyinput, .submitcover {
        display: block;
        line-height: 1em;
    }

    .passkeyinput {
        padding: 0.45rem;
        font-size: 1rem;
    }

    .passkeysubmit {
        font-size: 0.8rem;
        color: var(--color__text);
    }

}

.locked {
    display: none;
}

.logstatus-lock {

    .locked {
        display: flex;
        justify-content: center;
        align-items: center;
        margin-left: 0.5rem;
        font-size: 0.8rem;
        color: var(--color__sabu2);
    }

    & .material-symbols-outlined {
        font-size: 1rem;
        color: var(--color__sabu2);
    }
}

/*タグ*/

.taglink {

    &:hover {
        text-decoration: underline;
    }
}

/*ページリスト*/

nav.pagenavi {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

a.pagenumlink {
    min-width: 3rem;
    height: 3rem;
    padding: 1rem 0;
    line-height: 1em;
    text-align: center;
    font-size: 1rem;
    color: var(--color__sabu2);
    text-decoration: none;
    border-radius: 1.5rem;

    &:hover {
        background-color: var(--color__sabu);
    }
}

a.pagenumhere {
    color: var(--color__main);
    background-color: var(--color__sabu3);

    &:hover {
        color: var(--color__main);
        background-color: var(--color__text);
    }

}

.prevlink, .nextlink, .linkseparator {
    display: none;
}

body.onelog {

    & a.prevlink, a.nextlink, .linkseparator {
        display: block;
    }

}

/*個別投稿ページ*/

.utilitylinks {
    display: none;

    padding: 1rem;
    background-color: var(--color__sabu);
    border-radius: 0.5rem;

    & ul {
        list-style: none;
    }
}


/*--------------------*/
/*ナビゲーション*/
/*--------------------*/

/*てがろぐの各種機能をナビゲーションとしてまとめている*/

nav.othrer {

    & > * {
        margin-bottom: 1rem;
        background-color: var(--color__sabu);
        border-radius: 1rem;
    }

    & > * > h2 {
        line-height: 1em;
        font-size: 1.5rem;
    }

    & ul {
        list-style: none;

    
    }

    .freespacearea {
    
        > * {
            padding: 1.5rem;
            <!-- border-bottom: 1px solid var(--color__sabu2);-->
        }
    
        > *:last-child {
            border: none;
        }
    
        & hgroup {
            min-width: 10rem;
        
            > * {
                margin: 0;
                margin-bottom: 0.5rem;
            }
    
            > *:last-child {
                margin: 0;
            }
        
            & h1 a, h2 {
                line-height: 1em;
            }
    
            & h1 {
                font-size: 2rem;
            }
        
            & h1 a {
                color: var(--color__text);
                text-decoration: none;
            }
        
            & h1 a:visited{
                color: var(--color__text);
            }
        
            & h1 a:hover {
                text-decoration: none;
            }
        
            & h2 {
                font-size: 1rem;
                color: var(--color__sabu2);
            }
        
        }
    
    }
    
    .search,
    div.calendar,
    .imagelist,
    .datelistarea,
    .categoryarea,
    .hashtag,
    .latestpostarea {
        padding: 1.5rem;
    }
    
    /*検索*/
    
    .search {
    
        & span.searchinputs {
            display: grid;
            grid-template-columns: 3fr minmax(4rem, 1fr);
            gap: 1rem;
        }
    
        & input.queryinput {
            padding: 0.2rem 0.5rem;
        }
    
        & span.submitcover {
            position: relative;
        }
    
        & input.submitbutton {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
        }
    }
    
    /*複合検索*/
    
    .complexsearch {
        
        & details.searchbox {
            margin-top: 1rem;
        }
    
        & p.searchbox {
            display: grid;
            grid-template: 1fr/3fr 1fr;
            gap: 1rem;
            margin: 1rem 0;
        }
    
        & input.queryinput {
            padding: 0.2rem 0.5rem;
        }
    
        & input.submitbutton {
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
        }
    
        & ul {
            list-style: none;
            font-size: 0.8rem;
    
            & li {
                display: flex;
                flex-wrap: wrap;
                margin: 0.5rem 0;
            }
    
            .solabel {
                display: block;
                width: 5rem;
            }
        
            & select {
                display: block;
            }
        }
    
    }
    
    /*カレンダー*/
    
    div.calendar {
        & table.calendar {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            width: 100%;
            text-align: center;
        }
    
        & table.calendar > * {
            width: clamp(40%, 20rem, 100%);
        }
    
        & caption {
    
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 0.5rem;
            border-bottom: 1px solid var(--color__sabu2);
    
            & span {
                display: block;
            }
    
        }
    
        & thead, tbody {
            & tr {
                display: grid;
                grid-template-columns: repeat(7, 1fr);
                width: 100%;
                padding: 0.5rem;
                border-bottom: 1px solid var(--color__sabu2);
            }
    
            & tr:last-child {
                margin-bottom: 0;
            }
    
            & th {
                display: block;
            }
        }
    }
    
    /*新着画像*/
    
    & .imagelist {
    
        & .list {
            display: grid;
            grid-template-rows: repeat(2, 1fr);
            grid-template-columns: repeat(3, 1fr);
            gap: 1rem 0.5rem;
            width: 100%;
            overflow: hidden;
        }
    
        & .imagelistitem {
            display: block;
            width: 100%;
            height: auto;
            aspect-ratio: 1 / 1;
            overflow: hidden;
            border-radius: 0.5rem;
    
            & a {
                display: block;
                width: 100%;
                height: 100%;
            }
    
            & img {
                display: block;
                max-width: 100%;
                max-height: 100%;
                width: 100%;
                height: 100%;
                object-fit: cover;
            }
    
        }
    }
    
    /*アーカイブ*/
    
    .datelistarea {
    
        .datelistlink {
            display: block;
            line-height: 1em;
            font-size: 1rem;
        }
    
    }
    
    /*カテゴリー*/
    
    .categoryarea {
        
        & ul.cattree {
            
            & li.catbranch a::before {
                font-family: 'Material Symbols Outlined';
                content: "\e2c8";
                color: var(--color__accent3);
            }
    
            & li.catbranch a:visited::before {
                color: var(--color__accent3);
            }
    
            & li.catbranch a:hover::before {
                color: var(--color__accent4);
            }
        }
    }
    
    /*ハッシュタグ*/
    .hashtag {
    
        & ul.hashtaglist {
            display: flex;
            flex-wrap: wrap;
            gap: 0.5rem;
            /*デフォルトのリストで特有の設定をしている関係上、ここでリセットする必要がある*/
            padding-left: 0;
            text-indent: 0;
        }
    
        .taglink {
    
            &::before {
                /*ハッシュタグ表示*/
                content: "#";
            }
    
        }
    }
    
    /*最近の投稿*/
    
    .latestpostlist {
    
        /*デフォルトのリストで特有の設定をしている関係上、ここでリセットする必要がある*/
        padding-left: 0;
        text-indent: 0;
    
        & li {
            margin-bottom: 0.5rem;
        }
    
        & li:last-child {
            margin-bottom: 0;
        }
    
        .postlink {
            font-size: 1.25rem;
        }
    
        .postdate, .posttime, .username {
            color: var(--color__sabu2);
        }
    }

}

/*現状AndroidのEdge等でページ下部ナビゲーションの表示が崩れてしまうことへの対策*/
/*ブラウザ側のアップデートで不要になる可能性有り*/

/*カレンダー*/

div.calendar {
    & table.calendar {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 100%;
        text-align: center;
    }

    & table.calendar > * {
        width: clamp(40%, 20rem, 100%);
    }

    & caption {

        display: flex;
        justify-content: center;
        align-items: center;
        padding: 0.5rem;
        border-bottom: 1px solid var(--color__sabu2);

        & span {
            display: block;
        }

    }

    & thead, tbody {
        & tr {
            display: grid;
            grid-template-columns: repeat(7, 1fr);
            width: 100%;
            padding: 0.5rem;
            border-bottom: 1px solid var(--color__sabu2);
        }

        & tr:last-child {
            margin-bottom: 0;
        }

        & th {
            display: block;
        }
    }
}

/*新着画像*/

    
.imagelist {
    
    & .list {
        display: grid;
        grid-template-rows: repeat(2, 1fr);
        grid-template-columns: repeat(3, 1fr);
        gap: 1rem 0.5rem;
        width: 100%;
        overflow: hidden;
    }

    & .imagelistitem {
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        overflow: hidden;
        border-radius: 0.5rem;

        & a {
            display: block;
            width: 100%;
            height: 100%;
        }

        & img {
            display: block;
            max-width: 100%;
            max-height: 100%;
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

    }
}

/*--------------------*/
/*フッター*/
/*--------------------*/

footer {
        
    display: flex;

    & * {
        font-size: 1rem;
    }

    & span {
        display: block;
    }

    .material-symbols-outlined {
        font-size: 1rem;

    }

    & a {
        text-decoration: none;
    }


}


/*--------------------*/
/*汎用装飾*/
/*--------------------*/

/* B:太字(Bold) */
.decorationB {
    font-weight: bold;
}

/* D:削除(Delete) */
.decorationD {
    color: var(--color__sabu3);
    text-decoration: line-through var(--color__sabu3);
}

/* E:強調(Emphasis) */
.decorationE {
    color: var(--color__sabu4);
    background:linear-gradient(transparent 70%, var(--color__accent4) 30%);
}

/* I:斜体(Italic) */
.decorationI {
    font-style: italic;
}

/* Q:引用(Quote) */
.decorationQ {
    margin: 1rem 0;
    padding: 1rem;
    border-left: solid 2px var(--color__sabu2);
}

.decorationQ::before,
.decorationQ::after {
    /*引用符の非表示に*/
    content: '';
}

.decorationQ + br {
    display: none;
}

/* S:小文字(Small) */
.decorationS {
    font-size: 0.8em;
}

/* T:極小文字(Tiny) */
.decorationT {
    font-size: 0.6em;
}

/* U:下線(Underline) */
.decorationU {
    text-decoration: underline var(--color__text);
}

/*続きを読む*/
.readmorebutton {
    display: block;
    width: 100%;
    margin: 1rem 0;
    padding: 0.2rem;
    border-radius: 1rem;
    text-align: center;
    font-size: 0.8rem;
    color: var(--color__text);
    background-color: var(--color__sabu2);
    text-decoration: none;

    &:hover {
        text-decoration: none;
        color: var(--color__text);
        filter: brightness(0.9);
    }

}

.readmoreclose {
    margin: 1rem 0 0;
}

/*リスト*/

.decorationL {
    & + br {
        display: none;
    }
}

dl.decorationL {
    & dd {
        padding-left: 2rem;
    }
}

/*--------------------*/
/* 埋め込み画像 */
/*--------------------*/

figure.nsfw {
    overflow: hidden; /* ぼかし領域がfigureのボックスからはみ出ないようにする */
}

.imagelink.nsfw {
    overflow: hidden; /* ぼかし領域がfigureのボックスからはみ出ないようにする */
}

img.nsfw {
    filter: blur(9px); /* ぼかす */
}

.imagelink {
    display: block;
    max-width: 100% - 1rem;
    height: auto;
    margin: 0.5rem 0;
    border-radius: 0.25rem;
    overflow: hidden;

    & img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    & +br {
        display: none;
    }
}

.embeddedpictbox {
    margin: 0.5rem 0;
    max-width: 100%;
    height: auto;

    .imagelink  {
        max-width: 100%;
        margin: 0;
    }
    
    & figcaption{
        font-size: 0.8rem;
        color: var(--color__sabu2);
    }

    & +br {
        display: none;
    }
}

.embeddedimage {
    max-width: 100%;
    height: auto;
}

/*--------------------*/
/*自由装飾（画像複数カラム化）*/
/*--------------------*/

/*画像の二カラム化*/

.deco-2column {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 0.5rem;
    margin-top: 0.5rem;

    & .imagelink {
        max-width: calc((100% - 0.5rem)/2);
        margin: 0;
        height: fit-content;
    }

    & .embeddedpictbox {
        max-width: calc((100% - 0.5rem)/2);
        margin: 0;
        height: fit-content;
        
        & .imagelink {
            max-width: 100%;
        }
    }
}

/*画像の三カラム化*/

.deco-3column {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 0.5rem;
    margin-top: 0.5rem;

    & .imagelink {
        max-width: calc((100% - 1rem)/3);
        margin: 0;
        height: fit-content;
    }

    & .embeddedpictbox {
        max-width: calc((100% - 1rem)/3);
        margin: 0;
        height: fit-content;

        & .imagelink {
            max-width: 100%;
        }
    }
    
}

/*二カラムmasonry版（敷き詰めるようなデザイン）*/
/*異なる画像幅の画像を並べるときはこちらを推奨*/

.deco-2column_m {
    display: block;
    column-count: 2;
    margin-top: 0.5rem;

    & .imagelink {
        max-width: 100%;
        break-inside: avoid;
        margin: 0 0 0.5rem;
    }

    & .embeddedpictbox {
        max-width: 100%;
        break-inside: avoid;
        margin: 0 0 0.5rem;

        .imagelink  {
            margin: 0;
        }
    }
}

/*三カラムmasonry版*/

.deco-3column_m {
    display: block;
    column-count: 3;
    margin-top: 0.5rem;

    & .imagelink {
        max-width: 100%;
        break-inside: avoid;
        margin: 0 0 0.5rem;
    }

    & .embeddedpictbox {
        max-width: 100%;
        break-inside: avoid;
        margin: 0 0 0.5rem;

        .imagelink  {
            margin: 0;
        }
    }
}

/*--------------------*/
/*ツール*/
/*--------------------*/

.toolsarea {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    position: fixed;
    right: 1rem;
    bottom: 1rem;

    .pagetop_button,
    .qpost_button {
        position: relative;

    }

    .tips {
        position: absolute;
        top: 50%;
        left: -4rem;
        transform: translate(-50%, -50%);
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        font-size: 1rem;
        color: var(--color__sabu2);
    }

}

button.pagetop {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 3rem;
    height: 3rem;
    text-decoration: none;
    color: var(--color__sabu4);
    border-radius: 50%;
    border: none;
    background-color: var(--color__sabu2);
    cursor: pointer;

    & span {
        display: block;
    }
}

button.qpost {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 3rem;
    height: 3rem;
    text-decoration: none;
    color: var(--color__sabu4);
    border-radius: 50%;
    border: none;
    background-color: var(--color__accent3);
    cursor: pointer;

    &:hover {
        background-color: var(--color__accent4);
    }

    & span {
        display: block;
    }
}

button.close {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 3rem;
    height: 3rem;
    text-decoration: none;
    color: var(--color__sabu3);
    border-radius: 50%;
    border: none;
    background-color: var(--color__sabu);
    cursor: pointer;

    &:hover {
        filter: brightness(0.8);
    }

    & span {
        display: block;
    }

}

/*--------------------*/
/*その他*/
/*--------------------*/

.url {
    /*ＵＲＬがボックスから食み出ないように設定。*/
    /*ＵＲＬがボックスから食み出ると、レスポンシブデザインが崩れることがある。*/
    word-break: break-all;
}

.embeddedmovie{
    /*動画がボックスから食み出ないように設定。*/
    /*動画がボックスから食み出ると、レスポンシブデザインが崩れることがある。*/
    display: block;
    max-width:100%;
}

.embeddedmovie iframe{
    /*埋め込みコンテンツ（動画）がボックスから食み出ないように設定。*/
    /*埋め込みコンテンツ（動画）がボックスから食み出ると、レスポンシブデザインが崩れることがある。*/
    display: block;
    max-width:100%;
}

iframe.instagram-media {
    /*埋め込みコンテンツ（インスタ）がボックスから食み出ないように設定*/
    /*埋め込みコンテンツ（インスタ）がボックスから食み出ると、レスポンシブデザインが崩れることがある。*/
    max-width: 100% !important;
    min-width: initial !important;
}

.embeddedmusic iframe {
    /*埋め込みコンテンツ（音声）がボックスから食み出ないように設定。*/
    /*埋め込みコンテンツ（音声）がボックスから食み出ると、レスポンシブデザインが崩れることがある。*/
    max-width: 100% !important;
    min-width: initial !important;
}

/* ================================================================ */
/* てがろぐVer 4.5.5β以降で使える、カード型リンク用CSSの抜粋です。 */
/* お使いのスキンのCSSに追記するなどしてご活用下さい。              */
/* 次の正式版(Ver 4.6.0)では、標準添付各スキンに追加する予定です。  */
/* ================================================================ */

	/* ---------------------- */
	/* ▼カード型リンクの装飾 */
	/* ---------------------- */
	.cardlink {
		display: inline-block;
		width: 100%;
		max-width: 500px;			/* 最大幅 (※横幅を制限したくない場合はこれを削除して下さい) */
		padding: 0 0.25em 0.5em 0;	/* 内側の余白量 */
		font-size: 0.9rem;			/* 文字サイズ */
		text-decoration: none;		/* リンク文字の下線を消す */
		vertical-align: middle;		/* 行内の上下方向では中央配置 */
	}

		/* ------------------------------------- */
		/* リンクカードの装飾(サイズS/L共通部分) */		/* ※後述の「サイズS用の追記」や「サイズL用の追記」と合わせて、1つのカードデザインになります。 */
		/* ------------------------------------- */
		/* カード外枠 */
		.cardlinkbox {
			border: 1px solid #ccc;		/* 枠線 */
			border-radius: 7px;			/* 角丸 */
			background-color: white;	/* 背景色 */
			display: flex;				/* 内部レイアウトのFlexbox化 */
		}
		/* (マウスが載ったとき) */
		.cardlinkbox:hover {
			background-color: #f5fff5;	/* 背景色 */
			border-color: #8c8;			/* 枠線色 */
		}
			/* ▽リンクカード内の画像枠 (※読み込まれたog:imageは、この枠に《背景画像として》描画されます) */
			.cardlinkimage {
				background-image: linear-gradient(-30deg, #8a8, #e0f0e0);		/* プレースホルダ的な背景グラデーション(※og:imageの画像指定が読み込まれたら、この値は上書きされます) */
				background-size: cover;					/* 背景画像で枠を埋める */
				background-position: center center;		/* 背景画像を中央に寄せる */
				background-repeat: no-repeat;			/* 背景画像を繰り返さない */
			}
			/* ▽リンクカード内のテキスト枠 */
			.cardlinktextbox {
				display: flex;				/* Flexbox化 */
				flex-direction: column;		/* 子要素を縦方向に並べる */
				padding: 0.5em 1em;			/* 内側の余白量 */
			}
				/* ▽リンクカードのテキスト枠内の3要素共通 */
				.cardlinktitle,
				.cardlinkdescription,
				.cardlinkurl {
					/* ↓表示行数を制限するための準備 (※システム側では文字数は制限せずに「記述されている全文字」をHTMLに出力しますので、表示分量を制限したい場合はCSSで制御する必要があります。) */
					display: -webkit-box;			/* -webkit-line-clampを使うために必要な記述1 ※A */
					-webkit-box-orient: vertical;	/* -webkit-line-clampを使うために必要な記述2 ※A */
					overflow: hidden;				/* 表示量を制限する場合に必須の記述 */
					/* ↓制限の仕様 */
					line-clamp: 1;				/* 1行だけ見せる (将来的にはこれだけで実現可能かも) */
					-webkit-line-clamp: 1;		/* 1行だけ見せる (今のブラウザにはこちらが必要で、そのためには上記「※A」も必要) */
					text-overflow: ellipsis;	/* 省略記号(三点リーダー) */
				}
				/* リンクタイトル */
				.cardlinktitle {
					padding-bottom: 0.25em;		/* 内側下端の余白量 */
				}
				/* リンク概要文 */
				.cardlinkdescription {
					line-height:1.3;			/* 行の高さ */
					color:#555;					/* 文字色 */
					line-clamp: 2;				/* (既存指定の上書き) 最大2行まで見せる */
					-webkit-line-clamp: 2;		/* (既存指定の上書き) 最大2行まで見せる */
				}
				/* リンクドメイン */
				.cardlinkurl {
					color: #999;				/* 文字色 */
				}

		/* ----------------------------------- */
		/* リンクカードの装飾(サイズS用の追記) */		/* 前述の「サイズS/L共通部分」と合わせて、1つのカードデザインになります。 */
		/* ----------------------------------- */
		.cardsize-S {
			flex-direction: row;				/* 画像とテキストは横に並べる(Flexbox) */
		}
			/* ▽リンクカード内の画像枠 */
			.cardsize-S .cardlinkimage {
				min-width: 100px;				/* 最小の横幅 */
				min-height: 100px;				/* 最小の高さ */
				border-radius: 6px 0 0 6px;		/* 左側だけ角丸 */
				flex-shrink: 0;					/* 枠サイズを自動縮小させない */
			}
			/* ▽リンクカード内のテキスト枠 */
			.cardsize-S .cardlinktextbox {
				border-left: 1px solid #ccc;	/* 左側の枠線 */
				justify-content:center;			/* Flexboxの上下方向での中央寄せ */
			}
				/* ▽リンクカードのテキスト枠内の3要素 */
				.cardsize-S .cardlinktitle { order: 2; }		/* タイトルは、2番目に表示 */
				.cardsize-S .cardlinkdescription { order: 3; }	/* 概要文　は、3番目に表示 */
				.cardsize-S .cardlinkurl { order: 1; }			/* ドメインは、1番上に表示 */

		/* ----------------------------------- */
		/* リンクカードの装飾(サイズL用の追記) */		/* 前述の「サイズS/L共通部分」と合わせて、1つのカードデザインになります。 */
		/* ----------------------------------- */
		.cardsize-L {
			flex-direction: column;			/* 画像とテキストは縦に並べる(Flexbox) */
		}
			/* ▽リンクカード内の画像枠 */
			.cardsize-L .cardlinkimage {
				aspect-ratio: 1.91 / 1;		/* 画像枠の縦横比を指定= (横)1.91：(縦)1 */
				width: 100%;				/* 横幅は枠最大に拡げる */
				height: auto;				/* 高さは自動計算 */
				border-radius: 6px 6px 0 0;	/* 上側だけ角丸 */
			}
			/* ▽リンクカード内のテキスト枠 */
			.cardsize-L .cardlinktextbox {
				border-top: 1px solid #ccc;	/* 上側の枠線 */
			}
				/* ▽リンクカードのテキスト枠内の3要素 */
				.cardsize-L .cardlinktitle { font-weight: bold; }			/* 太字 */
				.cardsize-L .cardlinkdescription { min-height: 2.5em; }		/* 内容量が少ない場合でも一定の高さを確保 */
				.cardsize-L .cardlinkurl {
					border-top: 1px solid #ddd;		/* 上側の枠線 */
					margin-top:0.5em;				/* 上側の枠線より上の余白量 */
					padding-top:0.5em;				/* 上側の枠線より下の余白量 */
					font-size:0.75rem;				/* 文字サイズ(小さめ) */
				}
