@charset "UTF-8";

:root {
    --main-color: #F2EC2B;
}

/*--------------------------------

>>> Base Style

---------------------------------*/
* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
}
*:active,
*:focus,
*:hover {
    outline: none;
}
html {
    height: 100%;
    font-size: 10px !important;
}
body {
    width: 100%;
    margin: 0 auto;
    font-family: 'Noto Sans JP', sans-serif;
    transition:ALL .8s ease .3s;
    opacity: 0;
    color: #000 !important;
}
body.active {
    overflow: hidden;
}
body.show {
    opacity: 1;
}

@media (max-width: 520px) {
    html {
        font-size: 3.6vw !important;
    }
}
a {
    color: #000;
    text-decoration: none !important;
    transition:ALL .5s ease;
    -webkit-transition:ALL .5s ease;
    -moz-transition:ALL .5s ease;
    -o-transition:ALL .5s ease;
}
p {
    line-height: 1;
    word-break: break-all;
    line-break: normal;
    letter-spacing: -.02em;
}
img {
    display: block;
    width: 100%;
    height: auto;
}
.flex {
	display: flex;
	flex-wrap: wrap;
}

.clear {
    clear: both;
}
.clear hr {
    display: none;
}
.wrap {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
}
.wrap800 {
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
}

br.sp {
    display: none;
}
br.pc {
    display: inline;
}

@media (max-width: 520px) {
    br.sp {
        display: inline;
    }
    br.pc {
        display: none;
    }
}
/*------------------------------
>>> Breadcrumb
-------------------------------*/
#breadcrumb{
	color:#000;
	clear:both;
	font-size:1rem;
	padding:20px 0 20px 5%;
	margin:auto;
}
@media screen and (max-width:920px) {
	#breadcrumb{
		padding:10px 0;
	}
}
#breadcrumb a{
	color:#000;
	text-decoration:none;
}

/*--------------------------------

>>> Share Style

---------------------------------*/
/*navigation*/
.navigation {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.navigation .navigation_btn {
    width: 200px;
    font-size: 1.5rem;
}
.navigation .navigation_btn i {
    transition: ALL 0.3s ease;
}
.navigation .navigation_btn:hover i {
    color: var(--main-color);
}
.navigation .navigation_btn a {
    display: block;
    width: 100%;
    padding: 15px 0;
    text-decoration: none;
    text-align: center;
}
.navigation .navigation_btn.navigation_btn_pre i {
    transform: rotate(180deg);
}
.navigation .navigation_btn.navigation_btn_back a {
    border: 0;
    background-color: transparent;
    color: #000;;
}
.navigation .navigation_btn.navigation_btn_back a:hover {
    border: 0;
    color: #000;
    opacity: 0.5;
}

@media (max-width: 520px) {
    .navigation .navigation_btn {
        width: 30%;
    }
    .navigation .navigation_btn.navigation_btn_back {
        width: 40%;
    }
    .navigation .navigation_btn {
        font-size: 1rem;
    }

}

/*--------------------------------

>>> Common Style

---------------------------------*/
.bg_obj {
    position: fixed;
    bottom: 0;
    right: 0;
    width: 100vw;
    height: 100vh;
    z-index: -10;
}
@media (max-width: 520px) {
    .bg_obj {
        position: fixed;
        bottom: 0;
        right: 0;
        width: 100vw;
        height: 100vh;
        z-index: -10;
    }
    .bg_obj img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center center;
    }
}



.cta {
    width: 700px;
    margin-inline: auto;
    margin: 50px auto;
}
.cta a:hover {
    opacity: 0.5;
}
@media (max-width: 520px) {
    .cta {
        width: 100%;
        margin-inline: auto;
        margin: 50px auto;
        padding: 0 5%;
    }
}

.base_hl {
    font-size: 4.4rem;
    letter-spacing: .05em;
    line-height: 1.2;
}
.base_hl span {
    display: block;
    font-size: .5em;
    position: relative;
    left: 3px;
}
@media (max-width: 520px) {
    .base_hl {
        font-size: 2rem;
    }
}

.big_ttl {
    width: 100%;
    font-size: 17rem;
    font-weight: 700;
    color: #F4F4F4;
    position: absolute;
    top: 0;
    left: 0;
    text-align: center;
    z-index: -1;
}
@media (max-width: 520px) {
    .big_ttl {
        width: 100%;
        font-size: 3rem;
        font-weight: 700;
        color: #F4F4F4;
        position: absolute;
        top: 0;
        left: 0;
        text-align: center;
        z-index: -1;
    }

}

.logo_ttl {
    text-align: center;
    font-size: 2.4rem;
}
.logo_ttl img {
    display: inline-block;
    vertical-align: bottom;
    width: 180px;
    margin-right: -5px;
}
@media (max-width: 520px) {
    .logo_ttl {
        font-size: 1.5rem;
    }
    .logo_ttl img {
        width: 25%;
    }
  
}
.simyulation_mark-wh::before {
    content: "";
    width: 1em;
    aspect-ratio: 1/1;
    display: inline-block;
    background: url("../img/common/simulation-wh.svg") center center/contain no-repeat;
    position: relative;
    top: 2px;
    margin-right: 5px;
}

/*--------------------------------

>>>Header Style

---------------------------------*/
header {
    width: 100%;
    padding: 5px 0;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    background-color: #fff;
}
header .logo {
    width: 130px;
    margin: 0 auto 0 2.5%;
}
header .site_description {
    text-align: center;
    margin: 5px 0;
}
.g_nav {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    border-radius: 10px 0 0 10px;
    padding: 0 0 0 20px;
}
.g_nav ul {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    width: 100%;
}
.g_nav ul li {
    font-size: 1.4rem;
    position: relative;
}
.g_nav ul li a {
    display: block;
    color: #000;
    padding: 10px 0;
    text-align: center;
    font-weight: 600;
    position: relative;
    padding: 10px 20px;
    border-radius: 10px;
}
.g_nav ul li a:hover {
    color: var(--main-color)
}   
.g_nav ul li .simyulation_mark-bk,
.g_nav ul li .mail_mark {
    font-size: 1rem;
}
.g_nav ul li .simyulation_mark-bk::after,
.g_nav ul li .mail_mark::after {
    content: "";
    width: 1px;
    height: 18px;
    background-color: #000;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}
.g_nav ul li .simyulation_mark-bk::before {
    content: "";
    width: 3rem;
    aspect-ratio: 1/1;
    display: block;
    background: url("../img/common/simulation-bk.svg") center center/contain no-repeat;
    position: relative;
    top: 2px;
    margin-inline: auto;
    margin-bottom: 3px;
}
.g_nav ul li .mail_mark::before {
    content: "";
    width: 3rem;
    aspect-ratio: 1/1;
    display: block;
    background: url("../img/common/mail.svg") center center/contain no-repeat;
    position: relative;
    top: 2px;
    margin-inline: auto;
    margin-bottom: 3px;
}


@media (max-width: 768px) {
    header .logo {
        width: 15%;
        margin: 0 auto;
    }
    header #site_description {
        display: none;
    }
    .g_nav {
        width: 100%;
        height: 100dvh;
        background-color: #fff;
        position: fixed;
        top: 0;
        right: 100%;
        transform: translateY(0%);
        z-index: -1;
        transition: all .4s ease;
    }
    .g_nav ul {
        width: 100%;
        flex-wrap: wrap;
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%);

        display: flex;
        justify-content: center;
        align-items: center;
        flex-wrap: wrap;
        width: 100%;
    }

    .g_nav ul li {
        width: 100%;
        font-size: 1rem;
        position: relative;
        border-bottom: 1px solid #000;
    }

    .g_nav ul li a {
        font-size: 1.2rem;
        text-align: left;
        letter-spacing: 0.05em;

        display: block;
        color: #000;
        padding: 10px 0;
        font-weight: 600;
        position: relative;
        padding: 10px 20px;
        border-radius: 10px;
    }
    .g_nav ul li .simyulation_mark-bk,
    .g_nav ul li .mail_mark {
        font-size: 1.2rem;
    }
    .g_nav ul li .simyulation_mark-bk::after,
    .g_nav ul li .mail_mark::after {
        display: none;
    }
    .g_nav ul li .simyulation_mark-bk::before {
        content: "";
        width: 1.4rem;
        aspect-ratio: 1/1;
        display: inline-block;
        background: url("../img/common/simulation-bk.svg") center center/contain no-repeat;
        position: relative;
        top: 2px;
        margin-inline: auto;
        margin-right: 10px;
        margin-bottom: -2px;
    }
    .g_nav ul li .mail_mark::before {
        content: "";
        width: 1.4rem;
        aspect-ratio: 1/1;
        display: inline-block;
        background: url("../img/common/mail.svg") center center/contain no-repeat;
        position: relative;
        top: 2px;
        margin-inline: auto;
        margin-right: 10px;
        margin-bottom: -2px;
    }
    .g_nav.active {
        right: 0;
    }
}
@media (max-width: 520px) {
    header .logo {
        width: 20%;
        margin: 0 auto;
    }
}

.header_overray {
    position: fixed;
    width: 100vw;
    height: 100vh;
    top: 0;
    left: 0;
    background-color: rgba(255, 255, 255, 0.7);
    z-index: 999;
    display: none;
}
.header_overray.active {
    display: block;
}

/*バーガーメニュー PC非表示*/
.menu_trigger {
    display: none;
    z-index: 2000;
}

@media (max-width: 768px) {
    .menu_trigger,
    .menu_trigger span {
        display: inline-block;
        transition: all .4s;
        box-sizing: border-box;
    }
    .menu_trigger {
        position: absolute;
        top: 50%;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%);
        right: 10px;
        width: 30px;
        height: 20px;
    }
    .menu_trigger span {
        position: absolute;
        left: 0;
        width: 100%;
        height: 2px;
        background-color: #000;
        border-radius: 4px;
    }
    .menu_trigger span:nth-of-type(1) {
        top: 0;
    }
    .menu_trigger span:nth-of-type(2) {
        top: 9px;
    }
    .menu_trigger span:nth-of-type(3) {
        bottom: 0;
    }
    .menu_trigger.active span:nth-of-type(1) {
        -webkit-transform: translateY(10px) rotate(-45deg);
        transform: translateY(10px) rotate(-45deg);
    }
    .menu_trigger.active span:nth-of-type(2) {
        left: -20px;
        opacity: 0;
    }
    .menu_trigger.active span:nth-of-type(3) {
        -webkit-transform: translateY(-8px) rotate(45deg);
        transform: translateY(-8px) rotate(45deg);
    }
}

/*--------------------------------

>>>Footer Style

---------------------------------*/
footer {
    background-color: #000;
    color: #fff;
    padding: 30px 0 100px;
    font-size: 1.5rem;
    margin-top: 100px;
}
footer .f_logo {
    display: block;
    width: 150px;
    margin-inline: auto;
    margin-bottom: 50px;
}
footer .f_nav-top {
    width: calc(100% - 400px);
    margin-inline: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    column-gap: 30px;
    border-bottom: 1px solid #fff;
    padding-bottom: 20px;
}
footer .f_nav-top a {
    color: #fff;
    letter-spacing: .1em;
    text-decoration: none;
}
footer .f_nav-bottom {
    width: calc(100% - 400px);
    margin-inline: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding-top: 20px;
}
footer .f_nav-bottom a {
    color: #fff;
    letter-spacing: .1em;
    text-decoration: none;
}
footer .f_container-under {
    width: calc(100% - 400px);
    margin-inline: auto;
    margin-top: 50px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
footer .f_container-under .f_nav-low {
    display: flex;
    width: 50%;
    flex-wrap: wrap;
    column-gap: 30px;
}
footer .f_container-under .f_nav-low a {
    color: #fff;
    font-size: 1.2rem;
    letter-spacing: .1em;
    text-decoration: none;
}
footer .copyright {
    width: 50%;
    font-size: 1.2rem;
    text-align: right;
}
@media (max-width: 520px) {
    footer {
        background-color: #000;
        color: #fff;
        padding: 30px 5% 100px;
        font-size: 1rem;
        margin-top: 100px;
    }
    footer .f_logo {
        display: block;
        width: 150px;
        margin-inline: auto;
        margin-bottom: 50px;
    }
    footer .f_nav-top {
        width: 100%;
        flex-wrap: wrap;

        margin-inline: auto;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        column-gap: 30px;
        border-bottom: 1px solid #fff;
        padding-bottom: 20px;
    }
    footer .f_nav-top li {
        width: 100%;
        text-align: center;
    }
    footer .f_nav-top li + li {
        margin-top: 10px;
    }
    footer .f_nav-bottom {
        width: 100%;
    }
    footer .f_container-under {
        width: 100%;
    }
    footer .f_container-under .f_nav-low {
        width: 100%;
        justify-content: center;
        margin-bottom: 15px;
    }
    footer .f_container-under .f_nav-low li {
        text-align: center;
    }
    footer .f_container-under .f_nav-low a {
        font-size: .8rem;
        text-align: center;
    }
    footer .copyright {
        width: 100%;
        font-size: 1rem;
        text-align: center;
    }
}

/*--------------------------------

>>>Layout Style

---------------------------------*/
/*Main*/
main {
    width: 100%;
}

/*Side*/
aside {
    overflow: hidden;
    padding: 0 0 20px;
    margin: 0;
    width: 250px;
}

.side-widget {
    padding: 20px 0 0;
    float: left;
    width: 250px;
    overflow: hidden;
}
.side-widget .widget-title {
    margin: 0;
    font-weight: bold;
}
.side-widget ul {
    margin: 0;
}
.side-widget ul li {
    margin: 0;
    padding: 0 0 0 10px;
}
.side-widget ul li p {
    margin: 0;
}
.side-widget ul li th,
.side-widget ul li .side-widget td {
    padding: 0;
    text-align: center;
}


/*--------------------------------

>>>Index Style

---------------------------------*/
.post_index {
    width: 100%;
    margin-bottom: 150px;
}
.post_index article {
    border-bottom: 1px solid #000;
}
.post_index article h4 {
    font-weight: 400;
}
.post_index article a {
    display: flex;
    padding: 20px 10px;
    font-size: 1.5rem;
    column-gap: 50px;
}
.post_index article a:hover {
    opacity: 0.5;
}
.post_index article a span {
    display: block;
    padding: 0 20px;
    box-sizing: border-box;
    color: #000;
}
/* ==========================================================================
   Post styles - 統合版（変数名を --postdetails-... に統一）
   ========================================================================== */

/* ---------------------------
   カスタムプロパティ（変数）
   --------------------------- */
:root {
  /* Colors */
  --postdetails-bg: #ffffff;
  --postdetails-text: #222222;
  --postdetails-muted: #808080;
  --postdetails-border: #dcdcdc;
  --postdetails-accent: #2673ff;
  --postdetails-accent-opaque: rgba(38,115,255,0.18);
  --postdetails-muted-bg: #f8f9ff;

  /* Typography & spacing */
  --postdetails-base-font: 1.5rem;
  --postdetails-rhythm: 1.6;
  --postdetails-container-max: 1100px;
  --postdetails-gutter: 5%;
  --postdetails-space-xxl: 75px;
  --postdetails-space-xl: 50px;
  --postdetails-space-md: 35px;
  --postdetails-space-sm: 15px;
  --postdetails-radius: 6px;
}

/* ==========================================================================
   ベース（post container / entry content 対応）
   ========================================================================== */
.post_details,
.entry-content,
article.post {
  color: var(--postdetails-text);
  font-size: var(--postdetails-base-font);
  line-height: var(--postdetails-rhythm);
  letter-spacing: .05em;
  box-sizing: border-box;
  word-wrap: break-word;
}

/* ---------------------------
   コンテナ / レイアウト
   --------------------------- */
.post_details {
  padding: 0;
  margin-bottom: 150px;
}
.post_details .post_body {
  padding: var(--postdetails-space-xxl) 0;
}
.post_details .inner,
.entry-content .inner {
  max-width: var(--postdetails-container-max);
  margin: var(--postdetails-space-xl) auto 0;
  padding: 0 var(--postdetails-gutter);
}

/* post head / title / meta */
.post_details .post_head {
  padding: 5px var(--postdetails-gutter);
}
.post_details h1,
article.post h1 {
  letter-spacing: .05em;
  line-height: 1.4;
  font-weight: 600;
  margin: 0;
  font-size: clamp(1.6rem, 2.2vw, 2rem);
  border-bottom: 1px solid #707070;
  padding-bottom: 10px;
}

.post_details h3::after {
    content: "";
    display: block;
    width: 130px;
    height: 3px;
    background: #000;
    margin-top: 10px;
}

.post_details .date,
article.post .date {
    display: block;
    padding: 10px 0 35px;
    text-align: right;
    color: #707070;
}

.post_details .meta,
article.post .meta {
  text-align: center;
  color: var(--postdetails-muted);
  letter-spacing: .1em;
  margin-top: var(--postdetails-space-sm);
}

/* ==========================================================================
   見出し・ブロック間の余白設計（簡潔ルール）
   ========================================================================== */
/* 「直前の要素」 + 見出し に適用 */
.post_details > * + h2,
.entry-content > * + h2 { margin-top: var(--postdetails-space-xxl); }
.post_details > * + h3,
.entry-content > * + h3,
.post_details > * + h4,
.entry-content > * + h4 { margin-top: var(--postdetails-space-md); }

/* 見出し直後の細かめ調整 */
.post_details h2 + h3,
.post_details h3 + h3,
.post_details h4 + h3,
.post_details h2 + h4,
.post_details h3 + h4,
.post_details h4 + h4,
.entry-content h2 + h3,
.entry-content h3 + h3,
.entry-content h4 + h3 {
  margin-top: var(--postdetails-space-md);
}

/* 段落・画像・リスト・表などのブロック間余白 */
.post_details > * + p,
.post_details > * + .wp-block-image,
.post_details > * + ul,
.post_details > * + ol,
.post_details > * + figure,
.post_details > * + table,
.entry-content > * + p,
.entry-content > * + .wp-block-image,
.entry-content > * + ul,
.entry-content > * + ol,
.entry-content > * + figure,
.entry-content > * + table {
  margin-top: var(--postdetails-space-md);
}

/* 基本テキストスタイル */
.post_details p,
.entry-content p {
  line-height: 1.5;
  margin: 0 0 var(--postdetails-space-md) 0;
}

/* リスト */
.post_details ul,
.entry-content ul {
  padding-left: 1.25rem;
  margin: 0 0 var(--postdetails-space-md) 0;
}
.post_details ul li,
.entry-content ul li {
  list-style: disc;
}
.post_details ul li + li,
.entry-content ul li + li {
  margin-top: var(--postdetails-space-sm);
}

/* テーブル */
.post_details table,
.entry-content table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: var(--postdetails-space-xxl);
}
.post_details table td,
.post_details table th,
.entry-content table td,
.entry-content table th {
  padding: 10px 8px;
  border: .5px solid var(--postdetails-border);
  text-align: left;
}

/* thumb（背景画像など） */
.post_details .thumb,
.entry-content .thumb {
  margin: var(--postdetails-space-xl) 0 var(--postdetails-space-xxl) 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

/* ==========================================================================
   追加ブロックのスタイル（blockquote / pre / code / figure / caption）
   ========================================================================== */
/* figure / figcaption */
.post_details figure,
.entry-content figure {
  margin: 0 0 var(--postdetails-space-md) 0;
}
.post_details figcaption,
.entry-content figcaption {
  font-size: .9rem;
  color: var(--postdetails-muted);
  margin-top: .5rem;
  text-align: center;
}

/* blockquote */
.post_details blockquote,
.entry-content blockquote {
  border-left: 4px solid var(--postdetails-accent);
  padding: 12px 16px;
  margin: var(--postdetails-space-md) 0;
  background: var(--postdetails-muted-bg);
  color: #333;
  border-radius: 4px;
}
.post_details blockquote p,
.entry-content blockquote p { margin: 0; }

/* code / pre */
.post_details pre,
.entry-content pre {
  background: #0f1724;
  color: #e6eef8;
  padding: 16px;
  border-radius: 6px;
  overflow-x: auto;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, "Roboto Mono", "Courier New", monospace;
  font-size: .95rem;
  margin: 0 0 var(--postdetails-space-md) 0;
}
.post_details code,
.entry-content code {
  background: #f5f6f8;
  padding: .12rem .28rem;
  border-radius: 4px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, "Roboto Mono", monospace;
}

/* テーブルの横スクロール用ラッパー */
.table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* ==========================================================================
   画像関連（wp-block-image / alignwide / alignfull 対応）
   ========================================================================== */
.post_details img,
.entry-content img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* full width / alignfull の対応（viewport全幅） */
.wp-block-image.alignfull img,
.wp-block-cover.alignfull,
.wp-block-video.alignfull {
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

/* alignwide の最大幅調整 */
.wp-block-image.alignwide,
.wp-block-gallery.alignwide {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

/* ==========================================================================
   Embeds (YouTube等) アスペクト比保護
   ========================================================================== */
.embed-wrap {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}
.embed-wrap iframe,
.embed-wrap object,
.embed-wrap embed {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  border: 0;
}

/* ==========================================================================
   ボタン / CTA / 小UI
   ========================================================================== */
.btn,
.entry-content a.button {
  display: inline-block;
  padding: .6rem 1rem;
  background: var(--postdetails-accent);
  color: #fff;
  border-radius: var(--postdetails-radius);
  text-decoration: none;
  transition: transform .12s ease, box-shadow .12s ease;
}
.btn:active { transform: translateY(1px); }
.btn:focus-visible,
.entry-content a.button:focus-visible {
  box-shadow: 0 0 0 6px var(--postdetails-accent-opaque);
  outline: none;
}

/* breadcrumb */
.breadcrumb {
  font-size: .9rem;
  color: var(--postdetails-muted);
  margin-bottom: .75rem;
}
.breadcrumb a { color: inherit; text-decoration: underline; }

/* custom list with icons */
.entry-content ul.custom-check li {
  list-style: none;
  padding-left: 28px;
  position: relative;
}
.entry-content ul.custom-check li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--postdetails-accent);
}

/* ==========================================================================
   小さなユーティリティ / アクセシビリティ
   ========================================================================== */
/* sr-only（スクリーンリーダー用） */
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* focus-visible */
a:focus, button:focus, input:focus, textarea:focus { outline: none; }
:focus-visible { outline: 3px solid var(--postdetails-accent-opaque); outline-offset: 2px; }

/* reduced motion 対応 */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* ==========================================================================
   印刷用スタイル / ダークモード（ベーシック）
   ========================================================================== */
/* print */
@media print {
  nav, .sidebar, .btn, .no-print { display: none !important; }
  body { color: #000; background: #fff; }
  pre, code { word-wrap: break-word; white-space: pre-wrap; }
}

/* dark mode（必要なら変数を上書きして調整） */
/* @media (prefers-color-scheme: dark) {
  :root {
    --postdetails-bg: #0b0d10;
    --postdetails-text: #e6eef8;
    --postdetails-muted: #aeb6c1;
    --postdetails-muted-bg: #071026;
  }
  .post_details .post_body,
  .entry-content {
    background: var(--postdetails-bg);
    color: var(--postdetails-text);
  }
  .entry-content pre { background: #041024; color: #dbe9ff; }
} */

/* ==========================================================================
   レスポンシブ調整（スマホ向け）
   ========================================================================== */
@media (max-width: 520px) {
  :root {
    --postdetails-gutter: 5%;
    --postdetails-space-xxl: 50px;
    --postdetails-container-max: 100%;
  }
  .post_details { padding: 0 5% 0; }
  .post_details .post_body { padding: 50px 0; }
  .post_details .inner { margin-top: 35px; padding: 0 5%; }
  .post_details .thumb { margin-top: 35px; }
  .post_details h1,
  article.post h1 { font-size: clamp(1.3rem, 4.5vw, 1.8rem); }
  .post_details h3 {
    font-size: 1.2rem;
  }
  .post_details h3::after {
    width: 100px;
    height: 2px;
}
    .post_details .date,
article.post .date {
    font-size: 1rem;
}

  .post_details p, .entry-content p { font-size: 1rem; letter-spacing: .05em;}
  .post_details table td, .post_details table th { padding: 8px 6px; }
}

/* ==========================================================================
   元の細かいパターン（互換のため） - 必要なら残す
   ========================================================================== */
/* 元のファイルにあった「直列のセレクタ群」互換対応（互換性を保つ） */
.post_details h2 + h2,
.post_details h3 + h2,
.post_details h4 + h2,
.post_details p + h2,
.post_details .wp-block-image + h2,
.post_details ul + h2,
.post_details ol + h2,
.post_details figure + h2,
.post_details table + h2,
.post_details h2 + h3,
.post_details h3 + h3,
.post_details h4 + h3,
.post_details p + h3,
.post_details .wp-block-image + h3,
.post_details ul + h3,
.post_details ol + h3,
.post_details figure + h3,
.post_details table + h3,
.post_details h2 + h4,
.post_details h3 + h4,
.post_details h4 + h4,
.post_details p + h4,
.post_details .wp-block-image + h4,
.post_details ul + h4,
.post_details ol + h4,
.post_details figure + h4,
.post_details table + h4,
.post_details h2 + p,
.post_details h3 + p,
.post_details h4 + p,
.post_details p + p,
.post_details .wp-block-image + p,
.post_details ul + p,
.post_details ol + p,
.post_details figure + p,
.post_details table + p,
.post_details h2 + .wp-block-image,
.post_details h3 + .wp-block-image,
.post_details h4 + .wp-block-image,
.post_details p + .wp-block-image,
.post_details .wp-block-image + .wp-block-image,
.post_details ul + .wp-block-image,
.post_details ol + .wp-block-image,
.post_details figure + .wp-block-image,
.post_details table + .wp-block-image,
.post_details h2 + ul,
.post_details h3 + ul,
.post_details h4 + ul,
.post_details p + ul,
.post_details .wp-block-image + ul,
.post_details ul + ul,
.post_details ol + ul,
.post_details figure + ul,
.post_details table + ul,
.post_details h2 + ol,
.post_details h3 + ol,
.post_details h4 + ol,
.post_details p + ol,
.post_details .wp-block-image + ol,
.post_details ul + ol,
.post_details ol + ol,
.post_details figure + ol,
.post_details table + ol,
.post_details h2 + table,
.post_details h3 + table,
.post_details h4 + table,
.post_details p + table,
.post_details .wp-block-image + table,
.post_details ul + table,
.post_details ol + table,
.post_details figure + table,
.post_details table + table {
  margin-top: var(--postdetails-space-md);
}

/* ==========================================================================
   End - カスタマイズは :root の --postdetails-... 変数を編集してください
   ========================================================================== */

/*--------------------------------

>>>Post Style

---------------------------------*/
/* .post_details {
    padding: 0;
}
.post_details .post_body {
    padding: 75px 0;
    background-color: #fff;
}
.post_details .inner {
    margin-top: 50px;
    padding: 0 10%;
}

.post_details .post_head {
    padding: 5px 5%;
}
.post_details h1 {
    letter-spacing: .05em;
    line-height: 1.4;
    font-weight: 500;
    text-align: center;
}
.post_details .meta {
    text-align: center;
    color: #808080;
    letter-spacing: .1em;
    margin-top: 15px;
}

.post_details h2 + h2,
.post_details h3 + h2,
.post_details h4 + h2,
.post_details p + h2,
.post_details .wp-block-image + h2,
.post_details ul + h2,
.post_details ol + h2,
.post_details figure + h2,
.post_details table + h2 {
    margin-top: 75px;
}
.post_details h2 + h3,
.post_details h3 + h3,
.post_details h4 + h3,
.post_details p + h3,
.post_details .wp-block-image + h3,
.post_details ul + h3,
.post_details ol + h3,
.post_details figure + h3,
.post_details table + h3 {
    margin-top: 35px;
}
.post_details h2 + h4,
.post_details h3 + h4,
.post_details h4 + h4,
.post_details p + h4,
.post_details .wp-block-image + h4,
.post_details ul + h4,
.post_details ol + h4,
.post_details figure + h4,
.post_details table + h4 {
    margin-top: 35px;
}
.post_details h2 + p,
.post_details h3 + p,
.post_details h4 + p,
.post_details p + p,
.post_details .wp-block-image + p,
.post_details ul + p,
.post_details ol + p,
.post_details figure + p,
.post_details table + p {
    margin-top: 35px;
}
.post_details h2 + .wp-block-image,
.post_details h3 + .wp-block-image,
.post_details h4 + .wp-block-image,
.post_details p + .wp-block-image,
.post_details .wp-block-image + .wp-block-image,
.post_details ul + .wp-block-image,
.post_details ol + .wp-block-image,
.post_details figure + .wp-block-image,
.post_details table + .wp-block-image {
    margin-top: 35px;
}
.post_details h2 + ul,
.post_details h3 + ul,
.post_details h4 + ul,
.post_details p + ul,
.post_details .wp-block-image + ul,
.post_details ul + ul,
.post_details ol + ul,
.post_details figure + ul,
.post_details table + ul {
    margin-top: 35px;
}
.post_details h2 + ol,
.post_details h3 + ol,
.post_details h4 + ol,
.post_details p + ol,
.post_details .wp-block-image + ol,
.post_details ul + ol,
.post_details ol + ol,
.post_details figure + ol,
.post_details table + ol {
    margin-top: 35px;
}
.post_details h2 + table,
.post_details h3 + table,
.post_details h4 + table,
.post_details p + table,
.post_details .wp-block-image + table,
.post_details ul + table,
.post_details ol + table,
.post_details figure + table,
.post_details table + table {
    margin-top: 35px;
}


.post_details h2,
.post_details h3,
.post_details h4,
.post_details p,
.post_details .wp-block-image,
.post_details ul,
.post_details ol,
.post_details figure,
.post_details table {
    letter-spacing: .05em;
} */

/* List li -----------------------------------------------------------------*/
/* .post_details ul {
    padding-left: 20px;
}
.post_details ul li{
    list-style: disc;
}
.post_details ul li + li {
    margin-top: 15px;
}



.post_details table td,
.post_details table th {
    padding: 10px 5px;
    border: .5px solid #dcdcdc;
}
.post_details .thumb {
    margin-top: 50px;
    margin-bottom: 60px;
}

.post_details p {
    line-height: 1.5;
}

.post_details .thumb {
    background: center center/cover no-repeat;
}

@media (max-width: 520px) {
    .post_details {
        padding: 75px 0 0;
    }
    .post_details .post_body {
        padding: 50px 0;
        background-color: #fff;
    }
    .post_details .inner {
        margin-top:35px;
        padding: 0 5%;
    }
    .post_details .thumb {
        margin-top: 35px;
    }
        
}
 */
/*--------------------------------

>>> Contact Form Style

---------------------------------*/
.cf7-ui { max-width:700px; margin:0 auto; padding:40px 20px 60px; font-size: 1.5rem; }
.form_block {
    margin:16px 0;
}
.form_block + .form_block {
    margin-top:35px;
}
.form_block label {
    display:block;
    font-weight:500;
    margin-bottom:8px;
    font-size: 1.5rem;
}
.form_block .req {
    color:#e53935;
    margin-left:6px;
}
.cf7-ui input[type="text"],
.cf7-ui input[type="email"],
.cf7-ui input[type="tel"],
.cf7-ui textarea,
.cf7-ui select {
  width:100%; background:#f7f7f7; border:none; border-radius:4px;
  padding:16px; font-size:16px; box-sizing:border-box;
}
.cf7-ui textarea { min-height:260px; resize:vertical; }
.cf7-ui .cf7-privacy {
    text-align: center;
}
.btn-black {
    display: block;
    width: 300px;
    margin-inline: auto;
    background:#000;
    color:#fff;
    border:none;
    border-radius:9999px;
    padding:14px 40px;
    cursor:pointer;
    transition: opacity .3s, background .3s;
}
.btn-black:hover {
  background-color: var(--main-color);
  color: #000;
}
/* チェックされていないとき（disabled時） */
.wpcf7-acceptance .wpcf7-list-item input:not(:checked) ~ .wpcf7-list-item-label ~ .btn-black,
.btn-black:disabled {
  background:#aaa;   /* グレーアウト */
  cursor:not-allowed;
  pointer-events:none;
}

@media (max-width: 520px) {
    .cf7-ui { max-width:700px; margin:0 auto; padding:40px 20px 60px; font-size: 1rem; }

    .form_block label {
        font-size: 1rem;
    }

}
