/* base */

:root {
    --key-color: #666;
    --color: #333;
    --bg: #fff;
    --bg-sub: #fcfcfc;
    --border-color: #ddd;
    --shadow: 3px 3px 0 #ccc;
    --font-awesome: "Font Awesome 7 Free";
}
/* はみ出し防止 */
html, body {
    overflow-x: hidden;
}
/* focus(accessibility) */
*:focus {
    outline: none;
}
*:focus-visible {
    outline: 2px solid;
    outline-offset: 1px;
}

/* color */
body {
    background-color: var(--bg);
    color: var(--color);
}
a:where(:not(.wp-element-button)) {
    color: #1155dd;
    text-decoration: underline;
}
/* font */
@font-face {
    font-family: 'Noto Sans JP';
    src: url('../fonts/noto-sans-jp/NotoSansJP-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
}
@font-face {
    font-family: 'Noto Sans JP';
    src: url('../fonts/noto-sans-jp/NotoSansJP-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
}
body {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 16px;
    font-weight: 400;
}
/* text */
body * {
    letter-spacing: 0;
}
/* blocks margin */
header,
:where(.wp-site-blocks) > :not(header,footer) > *,
:where(.wp-site-blocks article) > *,
:where(.wp-block-post-content > *),
:where(.wp-block-post-content p) {
    margin-block-start: 0;
    margin-block-end: 1.5em;
}
:where(.wp-block-group) > :last-child,
:where(.wp-block-group-is-layout-flex) > *,
.wp-block-spacer {
    margin: 0;
}
.wp-block-columns {
    margin-top: 0;
}

/* generic */

/* <wbr>でレスポンシブ改行 */
.keep-all {
    word-break: keep-all;
}

/* header/footer */

header *, footer * {
    text-decoration: none;
}
/* ナビゲーションメニュー */
.wp-block-navigation span, .wp-block-navigation span a {
    white-space: nowrap;
}

/* header */

:where(.wp-site-blocks header) {
    padding: 20px;
    box-shadow: var(--shadow);
    background: var(--bg-sub);
}
:where(.wp-site-bloks header .wp-block-site-title) {
    color: var(--color);
    font-weight: bold;
    white-space: nowrap;
}

/* footer */

.wp-site-blocks > footer {
    font-size: 14px;
    margin-top: 50px;
    margin-bottom: 30px;
}
.wp-site-blocks > footer .footer-nav-wrap {
    margin-top: 15px;
    margin-left: auto;
}

/* heading */
h1.wp-block-post-title {
    font-size: 26px;
    font-weight: bold;
    margin-bottom: 20px;
}
.wp-block-heading {
    font-size: 16px;
    font-weight: bold;
    box-sizing: border-box;
    padding: 10px;
    border-color: var(--key-color);
}
h2.wp-block-heading {
    font-size: 24px;
    border-style: solid;
    border-width: 0 0 8px 0;
}
h3.wp-block-heading {
    font-size: 18px;
    border-style: solid;
    border-width: 0 0 2px 8px;
}
h4.wp-block-heading {
    border-style: solid;
    border-width: 0 0 0 8px;
    padding-left: 15px;
}
h5.wp-block-heading {
    border-style: double;
    border-width: 0 0 0 7px;
    padding-left: 20px;
}
h6.wp-block-heading {
    border-style: solid;
    border-width: 0 0 0 2px;
    padding-left: 30px;
}
@media screen and (max-width:480px) {
    h1.wp-block-post-title {
        font-size: 22px;
    }
    h2.wp-block-heading {
        font-size: 20px;
    }
}

/* taxonomy */
.taxonomy-category a,
.taxonomy-post_tag a {
    color: inherit;
    text-decoration: none;
    font-size: 12px;
    padding: 3px 10px;
    margin-bottom: 15px;
    margin-right: 10px;
    border: 1px solid #ccc;
    border-radius: 5px;
    display: inline-block;
    box-shadow: var(--shadow);
}
.taxonomy-category a::before {
    content: "\f0c8";
    font-family: var(--font-awesome);
    font-weight: 900;
    padding-right: 3px;
}
.taxonomy-post_tag a::before {
    content: "\23";
    font-family: var(--font-awesome);
    font-weight: 900;
    padding-right: 3px;
}
.wp-block-post-terms__separator {
    display: none;
}

/* contents */

/* Tracking tag */
img[width="1"] {
    display: none;
}

/* button */
a.wp-element-button {
    background: var(--key-color);
    box-shadow: var(--shadow);
}

/* img video */
figure.wp-block-image:not(.alignleft):not(.alignright),
figure.is-type-video:not(.alignleft):not(.alignright) {
    text-align: center;
}
.wp-block-image img {
    width: 100%;
}
figure.is-type-video iframe {
    aspect-ratio: 16/9;
    width: 100%;
    height: 100%;
}
.wp-video {
    margin: 0 auto;
}
figcaption {
    font-size: 0.8em;
}
figure.wp-block-embed figcaption {
    text-align: center;
}

/* list */
ul.wp-block-list,
ol.wp-block-list {
    padding-left: 30px;
}

/* table */
figure.wp-block-table.aligncenter {
    display: block;
    width: fit-content;
    max-width: 100%;
}
figure.wp-block-table:not(.alignleft):not(.alignright) table {
    margin-left: auto;
    margin-right: auto;
}
table:not(.has-fixed-layout) {
    white-space: nowrap;
    width: max-content;
}
.wp-block-table th,
.wp-block-table td {
    border: 1px solid #ccc;
}

/* insert h2 before */

/* author card */
:where(.author-card) {
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    padding: 20px;
    background: var(--bg-sub);
    border: 1px solid var(--border-color);
    border-radius: 10px;
    box-shadow: var(--shadow);
    margin-bottom: 50px;
    gap: 20px;
    font-size: 14px;
}
:where(.author-card__avatar-wrap) {
    margin: 0;
}
:where(.author-card__avatar) {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    margin: 0 auto 10px auto;
    overflow: hidden;
}
:where(.author-card__avatar img) {
    width: 100%;
    height: 100%;
}
:where(.author-card__name) {
    font-weight: bold;
    white-space: nowrap;
    text-align: center;
    margin: 0;
}
:where(.author-card__description) {
    white-space: pre-line;
    margin: 0;
}
@media screen and (max-width:480px){
    :where(.author-card) {
        flex-direction: column;
    }
}

/* toc */
:where(.toc) {
    font-size: .9em;
    width: fit-content;
    padding: 20px 15px;
    background: var(--bg-sub);
    border: 1px solid var(--border-color);
    border-radius: 10px;
    box-shadow: var(--shadow);
    margin: 0 auto 50px auto;
}
:where(.toc__title),
:where(.toc__page) {
    font-weight:bold;
    text-align: center;
    margin-bottom: 5px;
}
:where(.toc__content ol) {
    padding-inline-start: 0;
    list-style-position: inside;
    margin: 10px 0;
}
:where(.toc__content li) {
    font-weight:bold;
}
:where(.toc__content ol li) {
    line-height:1.5;
    padding:.5em .5em .3em .5em;
}
:where(.toc__content > ol > li) {
    margin-bottom: 10px;
    border-bottom: dashed 1px #ccc;
}
:where(.toc__content li li) {
    list-style: none;
    font-weight:normal;
    padding-left: 1.1em;
}
.toc__content a {
    text-decoration: none;
    color: inherit;
}

/* pagenation */
.page-pagenation {
	align-items: center;
	text-align: center;
    margin-bottom: 20px;
}
.page-pagenation__info {
    margin-bottom: 10px;
}
.page-pagenation__links {
	display: flex;
    justify-content: center;
    width: 100%;
    max-width: 300px;
	gap: 10px;
	flex-wrap: wrap;
    margin: 0 auto;
}
.page-pagenation a {
    color: var(--color);
}
.page-pagenation button {
    padding: 10px 20px;
    border: 1px solid #ccc;
    border-radius: 5px;
    cursor: pointer;
}
.page-pagenation__prev::before {
    font-family: var(--font-awesome);
	font-weight: 900;
	content: "\f104";
	margin-right: 0.5em;
}
.page-pagenation__next::after {
    font-family: var(--font-awesome);
	font-weight: 900;
	content: "\f105";
	margin-left: 0.5em;
}

/* blocks */

/* details */
.wp-block-details {
    border: 1px solid var(--border-color);
    border-radius: 5px;
    padding: 10px 20px;
}
.wp-block-details summary::-webkit-details-marker {
    display: none; /* safariで矢印削除 */
}
.wp-block-details summary {
    text-align: center;
    display: block; /* その他ブラウザで矢印削除 */  
}
.wp-block-details summary::before {
    margin-right: .8em;
    opacity: .5;
    font-family: var(--font-awesome);
    font-weight: 900;
}
.wp-block-details:not([open]) summary::before {
    content: "\f055";
}
.wp-block-details[open] summary::before {
    content: "\f056";
}
.wp-block-details summary + * {
    margin-top: 1.7em;
}

/* quote */
.wp-block-quote {
    position: relative;
    padding: 50px 20px 10px 20px;
    box-sizing: border-box;
    border: solid 1px var(--border-color);
    font-size: 1em;
}
blockquote {
    position: relative;
}
blockquote:before {
    position: absolute;
    top: 15px;
    left: 15px;
    content: "\f10d";
    font-family: var(--font-awesome);
    font-size: 25px;
    color: #ccc;
    line-height: 1;
    font-weight: 900;
}
.wp-block-quote cite {
    display: block;
    text-align: right;
    color: #888;
    font-size: 0.7em;
}
.wp-block-quote cite a {
    color: #888;
}

/* search box */
.wp-block-search {
    margin-bottom: 30px;
}
.wp-block-search input, .wp-block-search button {
    border: 1px solid #888;
    border-radius: 8px;
}

/* shortcodes */

/* link card */
:where(.link-card) {
    align-items: center;
    background: var(--bg-sub);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    box-shadow: var(--shadow);
    overflow: hidden;
    width: 100%;
    margin-bottom: 20px;
}
.link-card__link {
    display: flex;
    text-decoration: none;
    padding: 10px;
}
:where(.link-card__thumbnail) {
    width: 200px;
    height: auto;
    max-height: 113px;
    aspect-ratio: 16/9;
    margin: auto;
}
:where(.link-card__thumbnail):empty {
    background-image: url('../img/thumbnail.webp');
    background-size: cover;
    background-position: center;
}
:where(.link-card__thumbnail img) {
    width: 100%;
    height: auto;
    object-fit: cover;
}
:where(.link-card__title) {
    font-size: 18px;
    font-weight: bold;
    color: var(--color);
    padding-left: 20px;
    margin: auto;
    flex: 1;
}
@media screen and (max-width:480px) {
    :where(.link-card__thumbnail) {
        width: 150px;
        max-height: 85px;
    }
    :where(.link-card__title) {
        font-size: 14px;
    }
}

/* patterns */

/* custom-border-box */
.custom-border-box {
    border: 3px solid var(--key-color);
    border-radius: 10px;
    padding: 20px;
}
.custom-border-box :first-child {
    margin-top: 0;
}
/* custom-fa-box */
.custom-fa-box {
    border: 3px solid var(--key-color);
    border-radius: 10px;
    padding: 20px;
}
.custom-fa-box > .wp-block-group:has(i) {
    width: 100px;
    max-width: 10%;
    text-align: center;
}
.custom-border-box > .wp-block-group i {
    color: var(--key-color);
}
@media (max-width:480px) {
    .custom-fa-box {
        flex-direction: column;
    }
}
/* custom-speech-box */
.custom-speech-box {
    gap: 15px;
    align-items: flex-start;
}
.custom-speech-box__avatar {
    min-width: 10%;
}
.custom-speech-box__avatar img {
    max-width: 100%;
    width: 100px;
    height: auto;
    border: 2px solid var(--border-color);
    border-radius: 50px;
}
.custom-speech-box__content {
    background: var(--bg-sub);
    border: 2px solid var(--border-color);
    border-radius: 5px 40px 40px 40px;
    padding: 15px;
    margin-top: 10px;
}
@media screen and (max-width: 480px) {
    .custom-speech-box {
        gap: 8px;
    }
    .custom-speech-box__avatar {
        min-width: 15%;
    }
    .custom-speech-box__content {
        font-size: 14px;
    }
}

/* plugins */

/* contactform7 */
.wpcf7-form-control {
    width: 100%;
    padding: 10px;
    margin: 5px 0;
    border: 1px solid var(--border-color);
    border-radius: 5px;
}
.wpcf7-submit {
    cursor: pointer;
}