@charset "UTF-8";


:root {
  --orange: #dc5513;
  --green: #289e3f;
}



/* --- ハンバーガーボタン（右上に固定） --- */
.hamburger {
    position: fixed;
    top: 11px;
    right: 12px;
    width: 60px;
    height: 60px;
    background-color: orange;
    border-radius: 12px;
    cursor: pointer;
    z-index: 9999;
    /* position: absoluteで制御するのでflexは外してもOK */
}

.hamburger span {
    display: block;
    width: 30px;
    height: 3px;
    background-color: #fff;
    position: absolute;
    left: 15px; /* (60px - 30px) / 2 で中央 */
    transition: all 0.4s;
}

/* 1本目と3本目を、中心（2本目）と同じ位置に移動させてから回転させる */
.hamburger span:nth-child(1) { top: 20px; }
.hamburger span:nth-child(2) { top: 28.5px; } /* これが中心 */
.hamburger span:nth-child(3) { top: 37px; }

/* ✖になった時の微調整 */
.hamburger.is-active span:nth-child(1) {
    top: 28.5px; /* 真ん中の棒と同じ高さまで下げてから */
    transform: rotate(45deg); /* 回転 */
}
.hamburger.is-active span:nth-child(2) {
    opacity: 0; /* 真ん中は消す */
}
.hamburger.is-active span:nth-child(3) {
    top: 28.5px; /* 真ん中の棒と同じ高さまで上げてから */
    transform: rotate(-45deg); /* 逆に回転 */
}

/* --- 全画面メニューのスタイル --- */
.full-menu {
    position: fixed;
    top: 0;
    left: 0;
    
    /* ★ここがポイント！ */
    width: 100vw;   /* 100% ではなく 100vw にする */
    height: 100vh;
    
    background-color: rgba(0, 0, 0, 0.9);
    z-index: 9998;
    
    /* 最初は隠す設定 */
    opacity: 0;
    visibility: hidden;
    transition: all 0.5s;

    display: flex;
    justify-content: center;
    align-items: center;
}

/* メニューが開いた時 */
.full-menu.is-active {
    opacity: 1;
    visibility: visible;
}

/* 中身のリストのデザイン */
.large-nav {
    list-style: none;
    padding: 0;
}
.large-nav li {
    margin: 20px 0;
}
.large-nav a {
    color: #fff;
    text-decoration: none;
    font-size: 2rem;
    font-weight: bold;
}





header {background: #ffffffc7;display: flex;align-items: center;padding: 1em 1vw;position: absolute;width: 100%;}
header a.logo-area {display: flex;align-items: center;}
header a.logo-area img {width: 4vw;height: auto;}
header a.logo-area h1 {font-size: 1.5vw;margin: 0 0 0 0.4em;white-space: nowrap;}
header nav.global-nav {
    position: absolute;
    right: 18vw;
}
header nav.global-nav ul.menu {display: flex;margin: 0 0 1em 0;}
header nav.global-nav ul.menu li {margin: 0 0.5em;}
header nav.global-nav ul.menu li a {color: #000;font-weight: 600;font-size: var(--fs-3);white-space: nowrap;}
header a.contact {
    color: #fff;
    background: #434343;
    padding: 0.5vw 2vw;
    border-radius: 200px;
    margin: 0 0 0 2vw;
    transition: all 0.3s ease; /* アニメーションを滑らかに */
    display: inline-block; /* 念のため追加 */
    white-space: nowrap;
    text-decoration: none;
    position: absolute;
    right: 6vw;
}

header a.contact:hover {
    background: var(--green); /* ハンバーガーのオレンジと統一 */
    transform: translateY(-2px); /* 2pxだけふわっと浮かす */
     /* オレンジの影を足す */
}
/*============================
#js-hamburger
============================*/
header div#js-hamburger.hamburger {background: var(--orange);}
header div#js-hamburger.hamburger span {}

/*============================
#js-full-menu
============================*/
header nav#js-full-menu.full-menu {
}
header nav#js-full-menu.full-menu div.full-menu-contents {
}
header nav#js-full-menu.full-menu div.full-menu-contents ul.large-nav {
}
header nav#js-full-menu.full-menu div.full-menu-contents ul.large-nav li {text-align: center;}
header nav#js-full-menu.full-menu div.full-menu-contents ul.large-nav li a {
}

.menu li a {
    position: relative;
    text-decoration: none;
    color: #333; /* 文字色はお好みで */
    padding-bottom: 15px; /* メニューと●の間の距離 */
}

/* メニュー下の「●」の初期状態 */
.menu li a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%); /* 真ん中に配置 */
    
    /* 最初は小さな「●」に見せる */
    width: 6px;
    height: 6px;
    background-color: var(--orange); /* オレンジのドット */
    border-radius: 50%; /* 正円にする */
    
    /* アニメーションの設定 */
    transition: all 0.3s ease;
}

/* ホバーした時の動き */
.menu li a:hover::after {
    width: 100%;       /* 横幅をいっぱいまで広げる */
    height: 2px;       /* 線の太さに変える */
    border-radius: 0;  /* 角を四角に戻して線に見せる */
    bottom: 0;         /* 位置の微調整が必要ならここで */
}



div.news {background: #d9d9d9;border-radius: 10px;margin: -2em auto 0 auto;z-index: 999;position: relative;width: 80%;box-shadow: 2px 3px 9px;padding: 1vw 2vw;}
div.news {}
div.news a {display: block;margin: 0.5em 0;}
div.news a dl {
    display: flex;
    flex-wrap: wrap;
}
div.news a dl dt {width: 7vw;display: flex;align-items: center;}
div.news a dl dt i{
    margin: 0 0.5vw 0 0;
    color: var(--green);
}
div.news a dl dd {width: 53vw;font-weight: 500;display: flex;align-items: center;}
div.news a.news_list {color: var(--orange);border-bottom: 1px dotted;display: inline;position: absolute;right: 2vw;top: 0.5vw;font-weight: 500;}
div.news a dl dt,div.news a dl dd{
    font-size: var(--fs-3);
}

/* ニュースの各行（aタグ） */
div.news a {
    display: block;
    margin: 0.5em 0;
    transition: all 0.3s ease;
    position: relative;
    padding-left: 0; /* 最初はパディングなし */
    text-decoration: none;
}

/* ホバー時の動き：全体を右にずらしてアイコン分のスペースを作る */
div.news a:hover {
    padding-left: 1.5vw; /* アイコンが入る隙間を作る */
    color: var(--green);
}

/* Font Awesomeアイコンの設定 */
div.news a::before {
    /* f138 (chevron-circle-right) を指定 */
    content: '\f138'; 
    font-family: "Font Awesome 5 Free", "Font Awesome 6 Free"; /* バージョンに合わせて */
    font-weight: 900; /* Free版は900にしないと表示されないことが多いです */
    
    position: absolute;
    left: -10px; /* 最初は少し左に隠しておく */
    top: 50%;
    transform: translateY(-50%); /* 垂直中央 */
    opacity: 0;
    transition: all 0.3s ease;
    
    color: var(--green);
    font-size: 1vw; /* 文字サイズに合わせて調整 */
}

/* ホバー時にアイコンをふわっと出す */
div.news a:hover::before {
    opacity: 1;
    left: 0; /* 指定位置にスッと出てくる */
}
div.news a.news_list:hover::before
{
    content: none;
}
div.news a.news_list {
    color: var(--orange);
    border-bottom: 1px dotted; /* 既存 */
    display: inline;
    position: absolute;
    right: 2vw;
    top: 0.5vw;
    font-weight: 500;
    transition: all 0.3s ease;
}

div.news a.news_list:hover {
    border-bottom: 1px solid var(--orange); /* 点線を実線に */
    opacity: 0.7; /* 少し透かして「クリック感」を出す */
    transform: translateY(-1px); /* ほんの少しだけ上に浮かす */
    padding: 0;
}


div.top02 {text-align: center;margin: 1rem 0 5rem;position: relative;padding: 6vw;}
div.top02 h2.montserrat {font-size: var(--fs-11);color: var(--orange);line-height: 1.2;font-weight: 600;}
div.top02 h3 {font-size: var(--fs-5);color: #000;margin: 1em 0;}
div.top02 p {font-size: var(--fs-3);color: var(--orange);font-weight: 600;}
div.top02 img.top01_1 {left: 0;top: 0;width: 32vw;}
div.top02 img.top01_2 {top: 0;right: 0;width: 33vw;}
div.top02 img.top01_1,div.top02 img.top01_2{
    position: absolute;
}


div.top03 {position: relative;margin: 6vw 0 0 0;}
div.top03 h2 {font-size: 2.2vw;color: var(--orange);margin: 0 0 0 -0.5em;}
div.top03 p {font-size: var(--fs-4);color: #000;margin: 1em 0;line-height: 2;font-weight: 600;}
div.top03 ul {display: flex;gap: 1%;width: 58%;}
div.top03 ul li {
    background: #fff;
    width: calc((100% - 2%)/3);
    padding: 2rem;
    box-shadow: 0px 0 3px #80808061;
}
div.top03 ul li h3.montserrat {
    color: var(--green);
    position: relative;
    padding-bottom: 10px; /* 文字と線の間の距離 */
    display: inline-block; /* これを入れると、文字の長さと同じ幅が基準になります */
}

div.top03 ul li h3.montserrat::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;           /* 左寄せ */
    width: 40px;       /* 線の長さ（お好みで調整してください） */
    height: 3px;       /* 線の太さ */
    background-color: var(--green); /* 文字色と同じ緑 */
    border-radius: 2px; /* 少し角を丸くすると柔らかい印象になります */
}div.top03 ul li p {margin: 0.5em 0 0 0;font-size: var(--fs-3);}
div.top03 ul li h4 {font-size: var(--fs-5);}
div.top03 a.strong {
    display: flex;
    align-items: center;
    background: var(--orange);
    border-radius: 200px;
    color: #fff;
    justify-content: space-between;
    padding: 0 2em;
    width: 15vw;
    min-width: 300px;
    margin: 1em 0 0 0;
}
div.top03 a.strong p {color: #ffff;}
div.top03 a.strong i.fa-solid.fa-circle-arrow-right {
}
div.top03 span.en {font-size: 6vw;font-weight: 500;color: #f5f5f5;position: absolute;top: -5vw;}
div.top03 img.strong_img {border-radius: 20px 0 0 20px;position: absolute;right: 0;bottom: -6vw;width: 40%;}
div.top03 img.strong_img_sp{display:none;}
div.top03 div.wrap{background: #ededed;border-radius: 0 20px 20px 0;width: 90%;padding: 5rem 0 5rem 10rem;}
div.top03 a.strong {
    /* 既存のコードに以下を追加 */
    transition: all 0.3s ease;
    text-decoration: none; /* 下線を消す */
}

div.top03 a.strong:hover {
    background: #e69500; /* 少し濃いオレンジ（あるいは別の色）に変える */
    box-shadow: 0 4px 15px rgba(255, 165, 0, 0.4); /* 浮遊感を出す */
}

div.top03 a.strong i.fa-solid.fa-circle-arrow-right {
    transition: transform 0.3s ease; /* アイコンの動きを滑らかに */
}

div.top03 a.strong:hover i.fa-solid.fa-circle-arrow-right {
    transform: translateX(10px); /* 右に10px動かす */
}

.top04 .splide__slide {
    text-align: center; /* 中身を中央寄せ */
}

.top04 .splide__slide img {
    width: 100%;
    height: auto;
    border-radius: 10px; /* 角丸にすると今風 */
    margin-bottom: 15px;
}

.top04 .montserrat {
    display: block;
    color: var(--orange);
    font-weight: bold;
    font-size: 0.8rem;
}

/* 矢印の色をオレンジにする場合 */
.splide__arrow svg {
    fill: var(--orange);
}



div.top04 {background: url(../images/top03_bg.webp) no-repeat;
}
div.top04 div.wrap {text-align: center;padding: 9vw 0 3vw 0;}
div.top04 div.wrap span.montserrat {font-size: var(--fs-13);line-height: 1;font-weight: 500;}
div.top04 div.wrap h2 {font-size: var(--fs-4);}
div.top04 div.wrap h3 {font-size: var(--fs-5);margin: 1em 0;color: #000;}
div.top04 div.wrap p {font-size: var(--fs-3);color: #000;font-weight: 500;}

/*============================
#flow-carousel
============================*/
div.top04 div#flow-carousel.splide {
}
div.top04 div#flow-carousel.splide div.splide__track {
}
div.top04 div#flow-carousel.splide div.splide__track ul.splide__list {
}
div.top04 div#flow-carousel.splide div.splide__track ul.splide__list li.splide__slide {
}
div.top04 div#flow-carousel.splide div.splide__track ul.splide__list li.splide__slide img {height: 26vw;object-fit: cover;}
div.top04 div#flow-carousel.splide div.splide__track ul.splide__list li.splide__slide span.montserrat {text-align: left;font-size: 1vw;color: var(--green);line-height: 1;}
div.top04 div#flow-carousel.splide div.splide__track ul.splide__list li.splide__slide h4 {text-align: left;font-size: 1.1vw;}


div.top05 {/* 左から右へ流れるグラデーション */
    background: linear-gradient(90deg, #ee6a1a 0%, /* 左：鮮やかなオレンジ */ #f36c09 60%, /* 中間：オレンジを広めに維持 */ #c94f04 100% /* 右：締まりのあるダークカラー */);
    
    /* 念のため文字色を白にしておくと見やすくなります */
    color: #fff;
    padding: 60px 0; /* 上下の余白 */
    margin: 5vw 0 0 0;
}
div.top05 div.wrap {display: flex;width: 80%;max-width: 1500px;margin: 0 auto;align-items: center;justify-content: space-between;}
div.top05 div.wrap div {display: flex;align-items: center;}
div.top05 div.wrap div span.montserrat {font-size: 3.5vw;padding: 0 0.5em 0 0;font-weight: 500;}
div.top05 div.wrap div h2 {border-left: 4px solid;padding: 0 0 0 1em;}
div.top05 div.wrap a {display: flex;align-items: center;border-radius: 200px;background: #fff;padding: 0 2em;justify-content: space-between;height: 4em;width: 17vw;min-width: 300px;}
div.top05 div.wrap a p {color: #000;font-weight: 600;}
div.top05 div.wrap a i.fa-solid.fa-circle-arrow-right {color: var(--green);}
/* ホバー時の動きを滑らかにするための設定を元のaタグに追加 */
div.top05 div.wrap a {
    transition: all 0.3s ease;
}

/* ホバー時のスタイル */
div.top05 div.wrap a:hover {
    background: #f0f0f0; /* 薄いグレーに */
    transform: translateY(-3px); /* 少し上に浮かす */
    box-shadow: 0 5px 15px rgba(0,0,0,0.1); /* 軽い影をつける */
}

/* アイコンだけを少し右に動かす演出 */
div.top05 div.wrap a:hover i.fa-solid.fa-circle-arrow-right {
    transform: translateX(5px);
    transition: transform 0.3s ease;
}
div.top05 ul {width: 80%;margin: 2em auto;display: flex;max-width: 1500px;justify-content: space-between;}
div.top05 ul li {width: calc((100% - 6%) / 3);}
div.top05 ul li a {
}
div.top05 ul li a img {width: 100%;height: 17vw;object-fit: cover;border-radius: 10px;}
div.top05 ul li a span.date {font-size: 1vw;}
div.top05 ul li a h3 {font-size: 1.1vw;}
/* CSS */
.img-box {
    overflow: hidden;
    border-radius: 10px;
    height: 17vw;
}
.img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.3s;
}
div.top05 ul li a:hover img {
    transform: scale(1.1);
}
div.top05 ul li:last-child {

    display:none;

}



div.top06 {
}
div.top06 dl {display: flex;align-items: center;}
div.top06 dl dt {width: 55%;}
div.top06 dl dt img {width: 100%;}
div.top06 dl dd {padding: 0 0 0 3vw;}
div.top06 dl dd h3.montserrat {color: var(--orange);font-size: 3vw;font-weight: 500;}
div.top06 dl dd h4 {color: #000;font-size: 1.5vw;margin: 0 0 0.5em 0;}
div.top06 dl dd p {line-height: 2;color: #000;font-weight: 700;}
div.top06 dl dd a {background: #3f3f3f;display: flex;border-radius: 200px;align-items: center;color: #fff;justify-content: space-between;padding: 0.7em 2em;margin: 1em 0;width: 56%;min-width: 250px;}
div.top06 dl dd a p {color: #fff;}
div.top06 dl dd a i.fa-solid.fa-circle-arrow-right {
}
/* 元のaタグに transition を追加 */
div.top06 dl dd a {
    transition: background-color 0.3s ease, transform 0.3s ease;
}

/* ホバー時 */
div.top06 dl dd a:hover {
    background: var(--green); /* 背景を緑に */
    transform: translateX(5px); /* 少し右にスライドして「進む」感を出す */
}

/* アイコンも連動して白く、少し右へ */
div.top06 dl dd a i {
    transition: transform 0.3s ease;
}
div.top06 dl dd a:hover i {
    transform: translateX(3px);
}


footer {width: 90%;margin: 0 auto;display: flex;justify-content: space-between;padding: 2vw 0;}
footer div.footer01 {}
footer div.footer01 div.logo_wrap {display: flex;align-items: center;}
footer div.footer01 div.logo_wrap img {width: 3vw;margin: 0 0.5em 0 0;}
footer div.footer01 div.logo_wrap h3 {font-size: var(--fs-6);}
footer div.footer01 a.tel {font-size: var(--fs-8);font-weight: 700;}
footer div.footer01 p {
}
footer div.footer02 {
}
footer div.footer02 ul.footer-nav {display: flex;}
footer div.footer02 ul.footer-nav li {margin: 0 0 0 1em;}
footer div.footer02 ul.footer-nav li a {font-weight: 700;}
footer div.footer02 p.copyright {text-align: right;}


div.second_h2 {background: var(--orange);padding: 11em 0 6em 0;}
div.second_h2 div.wrap {width: 80%;margin: 0 auto;color: #fff;display: flex;align-items: center;}
div.second_h2 div.wrap h2 {
}
div.second_h2 div.wrap span.montserrat {margin: 0 0 0 1em;}
section.company01 {width: 60%;margin: 3em auto;max-width: 1200px;}
div.h3 {color: var(--orange);display: flex;align-items: center;justify-content: flex-start;}
div.h3 span {font-size: var(--fs-9);padding: 0 0.5em 0 0;}
div.h3 h3 {
    font-size: var(--fs-3);
    padding: 0 0 0 1em;
    border-left: 2px solid #dc5513;
    color: #434343;
}
section.company01 dl {display: flex;justify-content: space-between;align-items: stretch;margin: 2em 0;}
section.company01 dl dt {width: 48%;}
section.company01 dl dt table {
}
section.company01 dl dt table tbody {
}
section.company01 dl dt table tbody tr {
}
section.company01 dl dt table tbody tr th {text-align: left;}
section.company01 dl dt table tbody tr td {
}
section.company01 dl dt table tbody tr th,
section.company01 dl dt table tbody tr td{
    padding: 0.5em 1em;
}
/* 偶数行 (even) をグレーにする場合 */
section.company01 dl dt table tbody tr:nth-child(even) {
    background-color: #f2f2f2; /* 薄いグレー */
}

/* 奇数行 (odd) を白に指定（念のため） */
section.company01 dl dt table tbody tr:nth-child(odd) {
    background-color: #ffffff;
}
section.company01 dl dd {
    width: 49%;
    height: auto;
}
section.company01 dl dd iframe {width: 100%;height: 100%;}
section.company02 {width: 60%;margin: 0 auto;max-width: 1200px;}
section.company02 ul {
}
section.company02 ul li {
}
section.company02 ul li img {
}
section.company03 {width: 60%;margin: 0 auto;max-width: 1200px;}
section.company03 div.h3 {
}
section.company03 div.h3 span {
}
section.company03 div.h3 h3 {
}
section.company03 table {
    width: 100%;
    border-collapse: collapse; /* セル同士の隙間をなくして綺麗に見せます */
}

section.company03 table tbody tr:nth-child(even) {
    background-color: #f2f2f2; /* 偶数行にグレーを適用 */
}

section.company03 table tbody tr:nth-child(odd) {
    background-color: #ffffff; /* 奇数行は白 */
}

section.company03 table tbody tr th,
section.company03 table tbody tr td {
    padding: 0.8em 1em;       /* 余白を少し持たせると読みやすくなります */
    border-bottom: 1px solid #eee; /* 境界線を入れる場合はこちら（任意） */
}

section.company03 table tbody tr th {
    text-align: left;
    white-space: nowrap;      /* 見出しの改行を防ぐ（任意） */
}
section.company03 table tbody tr td{}

section.company03 table tbody tr td a{color:#dc5513;
                                     }
section.list_main {width: 80%;margin: 3vw auto;max-width: 1200px;display: flex;flex-wrap: wrap;}
section.list_main a {width: calc((100% - 6%) / 3);display: block;margin: 0 1% 1em 1%;}
section.list_main a img {border: 1px solid #bdbdbd;width: 100%;object-fit: cover;border-radius: 20px;aspect-ratio: 4/3;}
section.list_main a span.montserrat {
}
section.list_main a h3 {
}
/* 共通のリセット含む基本スタイル */
.pagination {
  display: flex;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 20px 0;
  gap: 8px;
}

/* 親要素のaタグの設定：浮き上がる動きの準備 */
section.list_main a {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    text-decoration: none; /* 下線を消す */
    color: inherit;       /* 文字色を維持 */
}

/* 画像コンテナの動き：はみ出した画像を隠す設定を画像に追加 */
section.list_main a img {
    transition: transform 0.3s ease; /* ズーム用 */
}

/* --- ホバー時の動き --- */

/* 1. 全体を少し上に持ち上げる */
section.list_main a:hover {
    transform: translateY(-5px);
}

/* 2. 画像を少しズームさせる */
/* 注意：角丸が崩れないよう、img自体にtransitionをかけています */
section.list_main a:hover img {
    transform: scale(1.05);
     /* ホバー時に枠線の色を変えるとおしゃれ */
    box-shadow: 0 10px 20px rgba(0,0,0,0.1); /* 影をつけて浮遊感を出す */
}

/* 3. タイトル（h3）の色を変える（お好みで） */
section.list_main a:hover h3 {
    color: var(--green);
    text-decoration: underline; /* リンクであることを強調 */
}

.pagination-link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  border: 1px solid #ddd;
  border-radius: 4px;
  text-decoration: none;
  color: #333;
  transition: all 0.3s ease;
  font-size: 14px;
}

/* ホバー時 */
.pagination-link:hover:not(.is-current) {
  background-color: #f0f0f0;
  border-color: #bbb;
}

/* 現在のページ */
.pagination-link.is-current {
  background-color: #007bff;
  color: #fff;
  border-color: #007bff;
  cursor: default;
}

/* 前へ・次への幅調整 */
.pagination-link.prev,
.pagination-link.next {
  padding: 0 15px;
}



:root {
  --orange: #dc5513;
  --green: #289e3f;
  --text-dark: #333;
  --bg-light: #f9f9f9;
  --white: #ffffff;
}

/* メインセクション全体の余白と背景 */
section.detail_main {
  max-width: 1200px;
  margin: 40px auto;
  color: var(--text-dark);
  line-height: 1.8;
  width: 80%;
}

/* 見出し部分のラップ：上下にラインを引くなど装飾 */
section.detail_main div.h3_wrap {
  /* border-left: 5px solid var(--orange); */
  /* padding: 10px 0 10px 20px; */
  margin-bottom: 30px;
  /* background: linear-gradient(to right, #fff4f0, #fff); */
}

/* メインの見出し */
section.detail_main div.h3_wrap h3 {
  font-size: 2.2rem;
  margin: 0;
  display: block;
  align-items: baseline;
  gap: 15px;
  color: #000000;
  text-align: center;
}

/* 英字フォントなどの補足テキスト */
section.detail_main div.h3_wrap span.montserrat {
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  color: var(--green);
  font-weight: 400;
  text-transform: uppercase;
  text-align: center;
  display: block;
}

/* 記事コンテンツエリア */
section.detail_main article {
  background-color: var(--white);
  padding: 20px 0;
}

/* 本文テキスト */
section.detail_main article p {
  margin-bottom: 1.5rem;
  font-size: 1rem;
}

/* 中見出し：オレンジの下線 */
section.detail_main article h4 {
  font-size: 1.4rem;
  margin: 2rem 0 1rem;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--orange);
  color: var(--orange);
}

/* 小見出し：グリーンの左線 */
section.detail_main article h5 {
  font-size: 1.2rem;
  margin: 1.5rem 0 1rem;
  padding-left: 12px;
  border-left: 3px solid var(--green);
  color: var(--text-dark);
}

/* 最小見出し：シンプルに強調 */
section.detail_main article h6 {
  font-size: 1.2rem;
  margin: 1.2rem 0 0.8rem;
  font-weight: bold;
  color: var(--green);
}

figure.wp-block-pullquote{
border: 1px solid;
    padding: 2em;}


.contact-form{ width:80%;
max-width:900px;
margin:3em auto;}
/* CF7 カスタムスタイル */
.contact-form p {
    margin-bottom: 1.5rem;
    font-weight: bold;
}
.required {
    color: #d9534f;
    font-size: 0.8rem;
    margin-left: 5px;
}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form select,
.contact-form textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    margin-top: 5px;
    font-weight: normal;
}
.submit-btn {
    text-align: center;
}
.wpcf7-submit {
    background-color: #0073aa;
    color: #fff;
    padding: 15px 60px !important;
    border: none !important;
    border-radius: 5px;
    cursor: pointer;
    font-size: 1.1rem;
}
.wpcf7-submit:hover {
    background-color: #005177;
}

.wp-block-table td:first-child {
  background-color: #d7d4d4;
  font-weight: bold;
  white-space: nowrap;
}
.wp-block-column.is-layout-flow .wp-block-image {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.wp-block-column.is-layout-flow .wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}