/* ============================================================
   ベース
   ============================================================ */
:root {
    --main_color: #1671B6;
    /* 見出し頭文字・濃い青 */
    --light_blue: #47B4FF;
    /* 見出し・明るい青 */
    /* 波の濃い青 */
    --footer_blue: #1464a1;
    --navy: #062e8e;
    --font_en: "Outfit", sans-serif;
    --font_mincho: "Zen Old Mincho", serif;
}


body,
p {
    color: #333333;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 18px;
    line-height: 1.88;
    margin: 0 0 1.6em;
    font-weight: normal;
    line-break: strict;
}


a {
    color: #333333;
    background-color: transparent;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 18px;
    font-weight: normal;
    text-decoration: none;
}

span {
    font-family: "Noto Sans JP", sans-serif;
}

th,
td,
dt,
dd {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 18px;
    font-weight: normal;
}

@media (max-width: 768px) {

    body,
    p,
    a,
    th,
    td,
    dt,
    dd {
        font-size: 16px;

    }
}

figure {
    display: inline-block;
}

.site-content {
    padding: 0;
    max-width: none;
}

.content-area {
    margin-bottom: 0;
}

.sec_container,
.entry-content>*:last-child {
    margin-bottom: 120px;
}

.common_inner {
    width: min(1216px, 90%);
    margin: 0 auto;
}

.font_serif {
    font-family: var(--font_en);
}

.font_md {
    font-size: 20px;
}




h1 {
    margin-bottom: 60px !important;
    margin-top: 0 !important;

}

h2 {
    font-size: 60px;
    font-weight: bold;
    margin-bottom: 40px;
    margin-top: 0 !important;
    font-family: var(--font_en);
    color: var(--light_blue);
}


h3 {
    font-size: 22px;
    color: var(--main_color);
    font-family: var(--font_mincho);
}

h4 {
    font-family: var(--font_en);
    color: var(--main_color);
    font-weight: 700;
    font-size: 20px;
    padding: 0;
}

h5 {
    font-family: var(--font_en);
    font-weight: 700;
    font-size: 20px;
    margin-bottom: 30px;
}

.sp-only {
    display: none;
}


@media (max-width: 990px) {

    .pc-only {
        display: none;
    }
}

@media (max-width: 768px) {

    h2 {
        font-size: 38px;
        margin-bottom: 30px;
    }


    .home h2 {
        display: flex;
        flex-direction: column;
    }

    .font_md,
    .has-medium-font-size {
        font-size: 16px !important;
    }


    .sec_container,
    .sec_container.company_container {
        margin-bottom: 85px;
    }

}

@media (max-width: 500px) {
    .sp-only {
        display: block;
    }


}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header {
    border-bottom: none;
    margin-bottom: 0;
}

/* 下層ページ：タイトル部分（波）の下の余白 */
body:not(.home) .site-header {
    margin-bottom: 90px;
}

.main-header {
    background-color: #ffffff;
    box-shadow: none;
    padding: 0;
}

.main-header-content {
    max-width: none;
    padding-left: 6.25%;
    padding-right: 6.25%;
    margin: 0 auto;
    min-height: 120px;
}

/* ロゴ／サイトタイトル */
.site-branding {
    display: flex;
    align-items: center;
    padding-right: 0;
}


.site-title {
    margin: 0 !important;
    line-height: 1;
}

.site-description {
    display: none;
}

/* ==========================================================================
   日本理化GROUP 共通
   ========================================================================== */
body {
    margin: 0;
}


/* ---------- ヘッダー ---------- */
.site-logo img,
.main-header-clone .site-logo img {
    transform: none !important;
    width: auto;
    height: auto;
    max-height: 48px;
}

.site-title a {
    font-size: 26px;
    font-weight: 700;
    color: var(--navy);
}

@media screen and (min-width: 980px) {
    .main-navigation {
        font-size: 16px;
        line-height: 1.5;
    }

    .main-navigation a {
        font-size: 16px;
        color: #FFF;
        padding-left: 18px;
        padding-right: 18px;
        letter-spacing: 0.04em;
        transition: opacity .3s;
    }

    .main-navigation .current_page_item>a,
    .main-navigation .current-menu-item>a {
        color: #FFF;
        font-weight: normal !important;
    }

    .main-navigation a:hover {
        color: var(--footer_blue);
        opacity: .7;
    }

    /* スクロール時のヘッダー：上下に余白（1行のときは高さ80px、
       タブレットでロゴとメニューが2段になったときも上下が詰まらないように） */
    .main-header-clone .main-header-content {
        min-height: 52px;
        padding-top: 14px;
        padding-bottom: 14px;
        row-gap: 12px;
    }
}

@media screen and (max-width: 979px) {
    .main-header-content {
        min-height: 70px;
    }

    .site-logo img,
    .main-header-clone .site-logo img {
        max-height: 36px;
    }

    .site-title a {
        font-size: 18px;
    }
}

/* 最初のヘッダー（全ページ）：白文字・青地 */
.main-header-original {
    background-color: #49b5fe;
    border-bottom: 1px solid rgba(255, 255, 255, .6);
}

.main-header-original .site-logo img {
    /* 単色ロゴを白抜きにする（白ロゴ画像を使う場合は削除） */
    filter: brightness(0) invert(1);
}

.main-header-original .site-title a,
.main-header-original .main-header-content .main-navigation a {
    color: #fff;
}

/* ハンバーガーアイコンは白（最初のヘッダー・スクロール時のヘッダーとも） */
.main-header .drawer-hamburger-icon,
.main-header .drawer-hamburger-icon::before,
.main-header .drawer-hamburger-icon::after {
    background-color: #fff;
}

.main-header.drawer-opened .drawer-hamburger-icon {
    background-color: transparent;
}

/* ハンバーガーメニュー内の文字色は「ハンバーガーメニュー」の項目で指定 */

/* スクロール時の追従ヘッダー：少し透過 */
.main-header-clone {
    background-color: rgb(7 125 212 / 57%);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}

.main-header-clone-show {
    box-shadow: 0 2px 12px rgba(20, 112, 181, .08);
}

/* ---------- セクション見出し ---------- */
.sec_ttl {
    display: block;
    margin: 0 0 50px !important;
    padding: 0 !important;
    color: var(--light_blue);
}

.sec_ttl_en {
    display: block;
    font-family: var(--font_en);
    font-weight: 200;
    font-size: 80px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    color: var(--light_blue);
}

.sec_ttl_en::first-letter {
    color: var(--main_color);
}

.sec_ttl_jp {
    display: block;
    margin-top: 6px;
    padding-left: 12px;
    font-family: var(--font_mincho);
    font-size: 22px;
    line-height: 1.5;
    letter-spacing: 0.08em;
    color: var(--main_color);
}

.sec_ttl--light_blue .sec_ttl_en,
.sec_ttl--light_blue .sec_ttl_jp {
    color: var(--light_blue);
}

.sec_ttl--light_blue .sec_ttl_jp::first-letter {
    color: var(--main_color);
}

.sec_ttl--white .sec_ttl_en,
.sec_ttl--white .sec_ttl_en::first-letter,
.sec_ttl--white .sec_ttl_jp {
    color: #fff;
}

.sec_ttl--center {
    text-align: center;
}

.sec_ttl--center .sec_ttl_jp {
    padding-left: 0;
}

@media (max-width: 768px) {
    .sec_ttl {
        margin-bottom: 32px !important;
    }

    .sec_ttl_en {
        font-size: 44px;
    }

    .sec_ttl_jp {
        font-size: 16px;
        padding-left: 4px;
    }
}

/* ---------- 丸矢印 ---------- */
.circle_arrow {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid currentColor;
    border-radius: 50%;
    transition: background-color .3s, border-color .3s, color .3s, transform .3s;
}

/* リンクにホバーすると丸が少し大きくなる（TOPの全ての丸矢印で共通） */
a:hover .circle_arrow {
    transform: scale(1.2);
}

.circle_arrow svg {
    width: 15px;
    height: 15px;
}

/* ---------- 波形 ---------- */
.wave {
    line-height: 0;
    pointer-events: none;
}

.wave svg {
    display: block;
    width: 100%;
    height: 7.51vw;
    min-height: 36px;
}

.wave.is-flip {
    transform: rotate(180deg);
}

/* ---------- フッター ---------- */
.nrika_footer {
    background: transparent;
    border-top: none;
    padding: 0;
    margin-top: 0;
}

.nrika_footer_body {
    margin-top: -1px;
    background-color: var(--footer_blue);
    color: #fff;
}

.nrika_footer a {
    color: #fff;
}

.nrika_footer a:hover {
    color: #fff;
    opacity: .75;
}

.footer_contact {
    display: block;
    padding: 90px 0 85px;
    border-bottom: 1px solid rgba(255, 255, 255, .4);
    transition: opacity .3s;
}

.footer_contact:hover {
    opacity: .75;
}

.footer_contact .sec_ttl {
    margin-bottom: 0 !important;
}

.footer_bottom {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
    padding: 60px 0 70px;
}

/* ロゴ側は縮んでもよい（メニューが折り返さないように、狭い画面ではロゴが小さくなる） */
.footer_brand {
    flex: 0 1 auto;
    min-width: 0;
}

.footer_logo {
    display: inline-block;
    max-width: 100%;
    font-size: 26px;
    font-weight: 700;
}

.footer_logo img {
    max-height: 48px;
    max-width: 100%;
    height: auto;
    width: auto;
    /* 単色ロゴを白抜きにする（白ロゴ画像を使う場合は削除） */
    filter: brightness(0) invert(1);
}

.footer_copy {
    margin: 50px 0 0;
    font-size: 14px;
    color: #fff;
    letter-spacing: 0.02em;
}

.footer_nav {
    display: flex;
    flex-shrink: 0;
    gap: 70px;
}

/* メニューの文字は折り返さない */
.footer_nav dt,
.footer_nav a {
    white-space: nowrap;
}

/* ロゴと横並びで幅が足りない間は、メニューの列の間隔を詰める */
@media (min-width: 1101px) and (max-width: 1300px) {
    .footer_nav {
        gap: 40px;
    }
}

.footer_nav dt,
.footer_nav li a {
    font-size: 17px;
    font-weight: 500;
    letter-spacing: 0.05em;
}

.footer_nav dd {
    margin: 20px 0 0;
    padding-left: 16px;
}

.footer_nav dd a {
    font-size: 17px;
    font-weight: 300;
    letter-spacing: 0.05em;
}

.footer_nav li+li {
    margin-top: 20px;
}

.footer_nav a:hover {
    opacity: .7;
}

/* タブレット（1100px以下）：ロゴの上にメニューを縦1列で並べる（文字の折り返しでガタガタにならないように） */
@media (max-width: 1100px) {
    .footer_bottom {
        flex-direction: column-reverse;
    }

    .footer_nav {
        flex-direction: column;
        gap: 28px;
    }

    .footer_nav ul {
        margin-left: 0;
    }
}

@media (max-width: 768px) {
    .footer_contact {
        padding: 50px 0;
    }

    .footer_bottom {
        padding: 40px 0 50px;
    }

    .footer_nav {
        flex-direction: column;
        gap: 28px;
    }

    .footer_nav dt,
    .footer_nav li a,
    .footer_nav dd a {
        font-size: 15px;
    }

    .footer_nav dd {
        margin-top: 12px;
    }



    .footer_copy {
        margin-top: 24px;
        font-size: 12px;
    }
}


/* ---------- 自作パーツの初期化（親テーマの既定スタイルを打ち消す）----------
   :where() で詳細度を0にしているので、各パーツのスタイルが必ず優先される */
:where(.top-main, .nrika_footer) *,
:where(.top-main, .nrika_footer) *::before,
:where(.top-main, .nrika_footer) *::after {
    box-sizing: border-box;
}

:where(.top-main) :where(ul, ol),
:where(.nrika_footer) :where(ul, dl, dt, dd) {
    list-style: none;
    margin: 0;
    padding: 0;
}

:where(.top-main, .nrika_footer) a {
    text-decoration: none;
}

:where(.top-main) img {
    vertical-align: bottom;
}

/* ==========================================================================
   TOPページ
   ========================================================================== */

/* ---------- ヘッダー（TOPはMVの上に重ねる）---------- */
.home .site-header {
    position: relative;
    margin-bottom: 0 !important;
}

.home .main-header-original {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 10;
    background-color: transparent;
}

.home .site-content,
.home .content-area,
.home .site-main {
    margin: 0;
    padding: 0;
}

/* ---------- MV ---------- */
.top_mv {
    position: relative;
    height: clamp(600px, 50.8vw, 975px);
    overflow: hidden;
    background: linear-gradient(180deg, #8cc8f6 0%, #5db6f3 60%, #49b5fe 100%);
}

.top_mv_img,
.top_mv_img img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.top_mv_img img {
    object-fit: cover;
    /* 画像は右に合わせる（画面が狭くなると左側から切れていく） */
    object-position: right center;
}

/* 1199px以下：画像の左右が切れるので、水滴（画像の左から65.8%）を
   画面の --drop の位置に置き、文字と重ならないようにする
   1.2953 = 0.658 × 画像の横縦比（2880 / 1463）
   （画像の端より外にはずれないよう、右寄せ〜左寄せの範囲に収める） */
@media (max-width: 1199px) {
    .top_mv {
        --drop: 70vw;
        --mv_h: clamp(600px, 50.8vw, 975px);
    }

    .top_mv_img img {
        object-position: clamp(100%, calc(var(--drop) - 1.2953 * var(--mv_h)), 0px) center;
    }
}

@media (max-width: 768px) {
    .top_mv {
        --drop: 80vw;
        --mv_h: min(88svh, 640px);
    }
}

.top_mv_inner {
    position: relative;
    z-index: 1;
    height: 100%;
    display: flex;
    align-items: center;
    padding-bottom: 4vw;
}

.top_mv_catch {
    margin: 0;
    font-family: var(--font_mincho);
    font-weight: 400;
    font-size: clamp(48px, 5vw, 96px);
    line-height: 1.3;
    letter-spacing: 0.04em;
    color: #fff;
    text-shadow: 0 0 24px rgb(54 143 180 / 96%);
}

.top_mv_catch span {
    display: block;
    font-family: var(--font_mincho);
}

.top_mv .wave {
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 100%;
    z-index: 2;
}

/* ---------- COMPANY ---------- */
.top_company {
    padding: 170px 0 110px;
}

.top_company_inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
}

.top_company_txt {
    flex-shrink: 0;
    padding-top: 5px;
}

.top_company .sec_ttl {
    margin-bottom: 70px !important;
}

.top_company_copy {
    margin: 0;
    padding-left: 12px;
    font-family: var(--font_mincho);
    font-size: 26px;
    font-weight: 500;
    line-height: 1.9;
    letter-spacing: 0.08em;
    color: var(--main_color);
}

.link_list {
    display: flex;
    gap: 80px;
    margin: 0;
    margin-top: 120px;
    padding-left: 10px;
}

.link_list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 172px;
    padding-bottom: 18px;
    border-bottom: 1px solid #cfcfcf;
    font-size: 18px;
    letter-spacing: 0.06em;
    color: #333;
}

.link_list .circle_arrow {
    width: 42px;
    height: 42px;
    color: #9a9a9a;
}

.link_list .circle_arrow svg {
    width: 12px;
    color: #555;
}

/* ホバー時：青く塗りつぶされる（大きくなるのは共通の指定） */
.link_list a:hover .circle_arrow {
    background-color: var(--main_color);
    border-color: var(--main_color);
}

.link_list a:hover .circle_arrow svg {
    color: #fff;
}

/* ----- グループ図（デザイン上の 830×665px をそのまま縮尺）----- */
.group_diagram {
    --u: calc(100cqw / 830);
    position: relative;
    flex: 0 1 830px;
    /* 右の余白に最大170pxはみ出す（余白が狭い画面では、その分だけ。画面の端から40pxは空ける） */
    margin-right: calc(-1 * clamp(0px, (100vw - 1216px) / 2 - 40px, 170px));
    aspect-ratio: 830 / 665;
    container-type: inline-size;
}

.group_diagram_circles {
    position: absolute;
    inset: 0;
    container-type: inline-size;
}

.gd_main,
.gd_sub {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    isolation: isolate;
}

/* 円の塗り：文字はぼかさず、塗りだけをぼかして縁をやわらかくする
   ぼかしの強さは --blur で調整 */
.gd_main::after,
.gd_sub::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: 50%;
    background: var(--fill);
    filter: blur(var(--blur));
}

.gd_main {
    left: calc(80 * var(--u));
    top: calc(135 * var(--u));
    width: calc(390 * var(--u));
    height: calc(390 * var(--u));
    --fill: radial-gradient(circle closest-side, rgba(118, 184, 254, 0) 37%, rgba(65, 157, 255, .26) 100%);
    --blur: calc(3 * var(--u));
}

.gd_main::before {
    content: "";
    position: absolute;
    inset: calc(35 * var(--u));
    border: 1px solid rgba(20, 112, 181, .12);
    border-radius: 50%;
}

.gd_logo {
    position: relative;
    font-size: calc(26 * var(--u));
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--navy);
}

.gd_logo img {
    display: block;
    width: calc(220 * var(--u));
    height: auto;
}

.gd_sub {
    width: calc(180 * var(--u));
    height: calc(180 * var(--u));
    --fill: radial-gradient(circle closest-side, rgba(134, 193, 255, 0) 31%, rgba(139, 195, 255, .9) 100%);
    --blur: calc(3 * var(--u));
}

.gd_sub span {
    font-size: calc(22 * var(--u));
    font-weight: 500;
    color: var(--main_color);
    white-space: nowrap;
}

.gd_sub--design {
    left: calc(185 * var(--u));
    top: calc(32 * var(--u));
}

.gd_sub--maintenance {
    left: calc(5 * var(--u));
    top: calc(365 * var(--u));
}

.gd_sub--analysis {
    left: calc(367 * var(--u));
    top: calc(365 * var(--u));
}

/* 吹き出し */
.gd_info {
    position: absolute;
    left: calc(var(--x) * var(--u));
    top: calc(var(--y) * var(--u));
}

.gd_info--design {
    --x: 330;
    --y: 3;
    --w: 213;
    --pad: 20;
    --list: 42;
    --dl: 14;
    --da: 122.3deg;
}

.gd_info--analysis {
    --x: 530;
    --y: 335;
    --w: 275;
    --pad: 5;
    --list: 27;
    --dl: 25.3;
    --da: 129.7deg;
}

.gd_info--maintenance {
    --x: 177;
    --y: 575;
    --w: 240;
    --pad: 10;
    --list: 33;
    --dl: 83.7;
    --da: -118.3deg;
}

.gd_info_name {
    position: relative;
    width: calc(var(--w) * var(--u));
    margin: 0;
    padding: 0 0 calc(6 * var(--u)) calc(var(--pad) * var(--u));
    border-bottom: 1px solid #c8d3dc;
    font-size: calc(18 * var(--u));
    line-height: calc(26 * var(--u));
    font-weight: 500;
    letter-spacing: 0.03em;
    color: var(--main_color);
    white-space: nowrap;
}


.gd_info_name::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: calc(var(--dl) * var(--u));
    height: 1px;
    background-color: #c8d3dc;
    transform-origin: left center;
    transform: rotate(var(--da));
}

.gd_info_label {
    display: none;
}

.gd_info_list {
    display: grid;
    grid-template-columns: auto auto;
    justify-content: start;
    column-gap: calc(14 * var(--u));
    margin: calc(9 * var(--u)) 0 0;
    padding-left: calc(var(--list) * var(--u));
    font-weight: 600;
}

.gd_info_list li {
    position: relative;
    padding-left: calc(10 * var(--u));
    font-size: calc(14 * var(--u));
    line-height: calc(24.5 * var(--u));
    letter-spacing: 0.02em;
    color: var(--main_color);
    white-space: nowrap;
}

.gd_info_list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: calc(4 * var(--u));
    height: calc(4 * var(--u));
    margin-top: calc(-2 * var(--u));
    border-radius: 50%;
    background-color: var(--main_color);
}

.gd_info_list li:first-child {
    grid-column: 1 / -1;
}

.gd_info_list li.is-plain {
    padding-left: 0;
}

.gd_info_list li.is-plain::before {
    display: none;
}

/* ---------- 青背景エリア（GROUP / GROUP TOPICS）---------- */
.top_blue {
    background: linear-gradient(180deg, #46b4ff 0%, #33a6f7 45%, #1a8fe9 100%);
}

/* 上の波：小数点以下の誤差で背景の青が1px線のように見えるので、1px上に重ねる */
.top_blue>.wave:first-child {
    position: relative;
    top: -1px;
    margin-bottom: -1px;
}

/* 下の波：同じく背景の青が1px線のように見えるので、1px下に重ねる（SUSTAINABILITYとの境目） */
.top_blue>.wave:last-child {
    position: relative;
    top: 1px;
    margin-bottom: -1px;
}

.top_group {
    padding: 170px 0 0;
}

.group_cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.group_cards a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 598 / 320;
    border-radius: 16px;
    overflow: hidden;
    color: #fff;
    background-color: #2a6aa5;
}

.group_cards a:hover {
    color: #fff;
}

.group_cards img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease;
}

.group_cards a::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background-color: rgba(10, 30, 70, .38);
}

.group_cards_ttl {
    position: relative;
    z-index: 2;
    padding: 0 20px;
    font-size: 22px;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-align: center;
}

.group_cards .circle_arrow {
    position: absolute;
    right: 20px;
    bottom: 20px;
    z-index: 2;
}

.group_cards a:hover img {
    transform: scale(1.05);
}

.group_cards a:hover .circle_arrow {
    background-color: #fff;
    color: var(--main_color);
}

.top_topics {
    padding: 160px 0 220px;
}

.top_topics .sec_ttl {
    margin-bottom: 65px !important;
}

.topics_list {
    border-top: 1px solid rgba(255, 255, 255, .6);
}

.topics_list li {
    border-bottom: 1px solid rgba(255, 255, 255, .6);
}

/* 親テーマの ul の左余白（1.5em）をなくす */
.group_cards,
.topics_list {
    margin-left: 0;
}

/* リンクあり（a）・リンクなし（.topics_list_item）とも同じ並び */
.topics_list a,
.topics_list .topics_list_item {
    display: flex;
    align-items: center;
    gap: 32px;
    min-height: 108px;
    padding: 20px;
    color: #fff;
}

.topics_list a:hover {
    color: #fff;
}

.topics_list time {
    flex-shrink: 0;
    font-family: var(--font_en);
    font-size: 18px;
    font-weight: 400;
    letter-spacing: 0.02em;
}

.topics_list_ttl {
    flex: 1;
    /* 長いタイトル（スペースのない英数字・URLなど）も途中で折り返して全部表示する */
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
    font-size: 18px;
    font-weight: 400;
    letter-spacing: 0.04em;
}

/* 外部リンクのマーク（丸なし。本文が外部リンクだけのとき） */
.external_icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    transition: opacity .3s;
}

.external_icon svg {
    width: 20px;
    height: 20px;
}

.topics_list a:hover .external_icon {
    opacity: .7;
}

/* PDFのマーク（PDFへのリンクのとき） */
.topics_pdf {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 52px;
    height: 32px;
    padding: 0 10px;
    border: 1px solid #fff;
    font-family: var(--font_en);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.08em;
    transition: background-color .3s, color .3s;
}

.topics_list a:hover .topics_pdf {
    background-color: #fff;
    color: var(--main_color);
}

.topics_list a:hover .circle_arrow {
    background-color: #fff;
    color: var(--main_color);
}

/* 一覧ページへのボタン（COMPANYの「ごあいさつ」と同じ、下線付きの形。青背景なので白） */
.topics_more {
    display: flex;
    justify-content: center;
    margin-top: 60px;
}

.btn_view_more {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 172px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(255, 255, 255, .6);
    font-size: 18px;
    letter-spacing: 0.06em;
    color: #fff;
    text-decoration: none;
}

.btn_view_more .circle_arrow {
    width: 42px;
    height: 42px;
    color: rgba(255, 255, 255, .8);
}

.btn_view_more .circle_arrow svg {
    width: 12px;
    color: #fff;
}

/* ホバー時：丸が白く塗りつぶされ、矢印が青になる（大きくなるのは共通の指定） */
.btn_view_more:hover {
    color: #fff;
}

.btn_view_more:hover .circle_arrow {
    background-color: #fff;
    border-color: #fff;
}

.btn_view_more:hover .circle_arrow svg {
    color: var(--main_color);
}

.topics_empty {
    color: #fff;
}

/* ---------- SUSTAINABILITY ---------- */
.top_sustainability {
    padding: 170px 0 180px;
}

.top_sustainability .sec_ttl {
    margin-bottom: 60px !important;
}

.top_sustainability_body {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 60px;
    padding-left: 10px;
}

.top_sustainability_txt {
    flex: 0 1 600px;
}

.top_sustainability_txt p {
    margin: 0;
    font-size: 17px;
    line-height: 2.4;
    letter-spacing: 0.02em;
    color: #333;
}

.top_sustainability_txt p+p {
    margin-top: 2.4em;
}

.top_sustainability_txt sub {
    font-size: 60%;
    bottom: -0.1em;
}

.top_sustainability_img {
    display: block;
    flex: 0 1 515px;
    margin: 0;
    border-radius: 16px;
    overflow: hidden;
}

.top_sustainability_img img {
    width: 100%;
    aspect-ratio: 515 / 397;
    object-fit: cover;
}

/* ---------- RECRUITS ---------- */
.top_recruit {
    padding: 0 0 220px;
}

.recruit_banner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 500px;
    border-radius: 40px;
    overflow: hidden;

}

.recruit_banner img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s ease;
}

.recruit_banner::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background-color: rgb(0 138 231 / 73%);
}

.recruit_banner_inner {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 60px;
}

.recruit_banner .sec_ttl {
    margin-bottom: 40px !important;
    text-align: center;
}

.recruit_banner .sec_ttl_jp {
    padding-left: 0;
}

.recruit_banner .circle_arrow {
    background-color: #fff;
    border-color: #fff;
    color: var(--main_color);
}

.recruit_banner:hover img {
    transform: scale(1.04);
}

.recruit_banner:hover .circle_arrow {
    background-color: var(--main_color);
    color: #fff;
}

/* ==========================================================================
   TOPページ レスポンシブ
   ========================================================================== */
/* 1360px以下は、図をテキストの下に置いて大きく表示（横並びだと図が縮みすぎるため） */
@media (max-width: 1360px) {
    .top_company_inner {
        flex-direction: column;
    }

    .group_diagram {
        flex: none;
        width: 100%;
        max-width: 830px;
        margin: 0 auto;
    }
}

@media (max-width: 990px) {
    .top_company {
        padding: 110px 0 80px;
    }

    .top_company .sec_ttl {
        margin-bottom: 40px !important;
    }

    .link_list {
        margin-top: 50px;
    }

    /* 縦並びのときは画像を見出しのすぐ下（文章の上）に */
    .top_sustainability_body {
        flex-direction: column-reverse;
        gap: 40px;
        padding-left: 0;
    }

    .top_sustainability_txt,
    .top_sustainability_img {
        flex: none;
        width: 100%;
    }

    /* タブレットでは画像が大きくなりすぎないよう、最大560pxで中央に */
    .top_sustainability_img {
        max-width: 560px;
        margin: 0 auto;
    }
}

/* タブレット・ノートPC（786〜1360px）：コピーとリンクを横並びにする */
@media (min-width: 786px) and (max-width: 1360px) {
    .top_company_txt {
        display: grid;
        grid-template-columns: auto auto;
        justify-content: space-between;
        align-items: end;
        column-gap: 40px;
        width: 100%;
    }

    .top_company .sec_ttl {
        grid-column: 1 / -1;
    }

    .top_company_copy {
        font-size: clamp(22px, 2.6vw, 26px);
    }

    .link_list {
        gap: clamp(24px, 4vw, 80px);
        margin-top: 0;
        padding-bottom: 10px;
    }

    .link_list a {
        width: clamp(150px, 16vw, 172px);
    }
}

/* 図：785px以下は円だけ拡大し、吹き出しは図の下に並べる（786px以上はPCの形） */
@media (max-width: 785px) {
    .group_diagram {
        flex: none;
        width: 100%;
        max-width: 640px;
        margin: 0 auto;
        aspect-ratio: auto;
        overflow: hidden;
    }

    /* 円のまとまりを幅の約80%にして中央配置（左右に約10%ずつ余白）
       円が描かれている範囲は 830 中の 5〜547 なので、その幅（542）が 80% になる大きさと位置 */
    .group_diagram_circles {
        position: relative;
        inset: auto;
        width: 122.5%;
        margin-left: 9.3%;
        aspect-ratio: 830 / 560;
    }

    .gd_sub span {
        font-size: max(13px, calc(22 * var(--u)));
    }

    .gd_info {
        position: static;
        margin-top: 28px;
    }

    .gd_info_name {
        width: 100%;
        padding: 0 0 8px;
        font-size: 16px;
        line-height: 1.6;
        white-space: normal;
    }

    .gd_info_name::after {
        display: none;
    }

    .gd_info_label {
        display: inline-block;
        margin-right: 10px;
        padding: 2px 10px;
        border-radius: 20px;
        background-color: #e3f1fe;
        font-size: 13px;
        vertical-align: 1px;
    }

    .gd_info_list {
        column-gap: 18px;
        margin-top: 10px;
        padding-left: 4px;
    }

    .gd_info_list li {
        padding-left: 11px;
        font-size: 14px;
        line-height: 1.9;
        white-space: normal;
    }

    .gd_info_list li::before {
        width: 4px;
        height: 4px;
        margin-top: -2px;
    }
}

@media (max-width: 768px) {
    .top_mv {
        height: min(88svh, 640px);
    }

    .top_mv_catch {
        font-size: 44px;
    }

    .top_company_copy {
        padding-left: 4px;
        font-size: 19px;
    }

    .link_list {
        gap: 24px;
        padding-left: 0;
    }

    /* リンクを全幅にする（2つを横に並べて均等割り） */
    .top_company_txt {
        width: 100%;
    }

    .link_list li {
        flex: 1;
    }

    .link_list a {
        width: 100%;
        gap: 8px;
        padding-bottom: 14px;
        font-size: 16px;
        white-space: nowrap;
    }

    .link_list .circle_arrow {
        width: 34px;
        height: 34px;
    }

    .top_group {
        padding-top: 90px;
    }

    .group_cards {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    /* 1カラムのときは横長にして高さを抑える */
    .group_cards a {
        aspect-ratio: 21 / 9;
    }

    .group_cards_ttl {
        font-size: 17px;
    }

    .group_cards .circle_arrow {
        right: 14px;
        bottom: 14px;
        width: 34px;
        height: 34px;
    }

    .top_topics {
        padding: 90px 0 120px;
    }

    .top_topics .sec_ttl {
        margin-bottom: 32px !important;
    }

    .topics_list a,
    .topics_list .topics_list_item {
        flex-wrap: wrap;
        gap: 6px 16px;
        min-height: 0;
        padding: 20px 50px 20px 4px;
        position: relative;
    }

    /* リンクなしの行は右側の余白（矢印分）をなくす */
    .topics_list .topics_list_item {
        padding-right: 4px;
    }

    .topics_list .external_icon {
        position: absolute;
        right: 4px;
        bottom: 18px;
        width: 32px;
        height: 32px;
        margin-top: -16px;
    }

    .topics_pdf {
        position: absolute;
        right: 4px;
        bottom: 18px;
        min-width: 40px;
        height: 26px;
        margin-top: -13px;
        padding: 0 6px;
        font-size: 11px;
    }

    .topics_list time,
    .topics_list_ttl {
        font-size: 15px;
    }

    .topics_list_ttl {
        flex-basis: 100%;
    }

    .topics_more {
        margin-top: 40px;
    }

    .btn_view_more {
        gap: 8px;
        padding-bottom: 14px;
        font-size: 16px;
    }

    .btn_view_more .circle_arrow {
        width: 34px;
        height: 34px;
    }

    .topics_list .circle_arrow {
        position: absolute;
        right: 4px;
        bottom: 18px;
        width: 32px;
        height: 32px;
        margin-top: -16px;
    }

    .top_sustainability {
        padding: 90px 0 100px;
    }

    .top_sustainability .sec_ttl {
        margin-bottom: 32px !important;
    }

    .top_sustainability_txt p {
        font-size: 15px;
        line-height: 2.1;
    }

    .top_sustainability .sec_ttl_en {
        font-size: 36px;
    }

    .top_recruit {
        padding-bottom: 110px;
    }

  .recruit_banner {
    height: auto;
    aspect-ratio: 16 / 10;
    max-height: 300px;
    border-radius: 20px;
  }
  .recruit_banner img {
    transform-origin: 51% 40%; /* 真ん中2人の位置を基準に拡大 */
    transform: scale(1.5);
  }
  .recruit_banner:hover img {
    transform: scale(1.56);
  }

    .recruit_banner_inner {
        padding-top: 20px;
    }

    .recruit_banner .sec_ttl {
        margin-bottom: 24px !important;
    }
	 }



/* ==========================================================================
   下層ページ タイトル部分
   ========================================================================== */
.page_header {
    position: relative;
    background-color: #49b5fe;
    padding: 78px 0 calc(6.51vw + 28px);
    text-align: center;
}

.page_header_inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 110px;
}

.page_header_en {
    margin: 0;
    font-family: var(--font_en);
    font-weight: 200;
    font-size: 150px;
    line-height: 1;
    letter-spacing: 0.02em;
    color: rgba(255, 255, 255, .2);
    white-space: nowrap;
}

.page_header_ttl {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    margin: 0 !important;
    padding: 0;
    font-family: var(--font_mincho);
    font-size: 40px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.06em;
    color: #fff;
}

.page_header .wave {
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 100%;
}

/* パンくず：波の白い部分に置く。上端を固定して、長いときは下に折り返す（青い部分に重ならない） */
.page_breadcrumb_wrap {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% - 6.51vw * .5);
    z-index: 1;
    display: flex;
    justify-content: flex-end;
}

.page_breadcrumb {
    max-width: 40%;
}

.page_breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    row-gap: 2px;
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: right;
}

.page_breadcrumb li {
    font-size: 14px;
    line-height: 1.6;
    color: #46b5fd;
}

.page_breadcrumb li+li::before {
    content: ">";
    margin: 0 10px;
}

.page_breadcrumb a,
.page_breadcrumb span {
    font-size: 14px;
    color: #46b5fd;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.page_breadcrumb a:hover {
    opacity: .7;
}

@media (max-width: 1200px) {
    .page_header_en {
        font-size: 11vw;
    }
}

/* 1199px以下は波が低いので、パンくずは波の下に普通に並べる
   （行数が増えたら本文が下にずれるので、本文とも重ならない） */
@media (max-width: 1199px) {
    .page_header {
        padding-bottom: 0;
    }

    .page_header .wave {
        position: relative;
        bottom: auto;
        margin-top: 28px;
        margin-bottom: -1px;
    }

    .page_breadcrumb_wrap {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        z-index: 0;
        padding-top: 12px;
        /* パンくずの後ろは白（画面の端まで）。ページの横幅は広げない方法で塗る */
        background-color: #fff;
        box-shadow: 0 0 0 100vmax #fff;
        clip-path: inset(0 -100vmax);
    }

    .page_breadcrumb {
        max-width: 100%;
    }

    body:not(.home) .site-header {
        margin-bottom: 60px;
    }
}

@media (max-width: 768px) {
    .page_header {
        padding: 50px 0 0;
    }

    .page_header .wave {
        margin-top: 50px;
    }

    .page_header_inner {
        min-height: 70px;
    }

    .page_header_en {
        font-size: 13vw;
    }

    .page_header_ttl {
        font-size: 26px;
    }

    body:not(.home) .site-header {
        margin-bottom: 40px;
    }

    .page_breadcrumb li,
    .page_breadcrumb a,
    .page_breadcrumb span {
        font-size: 12px;
    }
}


/* ==========================================================================
   下層ページ（固定ページ・投稿・一覧）コンテンツ幅
   TOPの .common_inner と同じ幅（最大1216px / 画面幅の90%）
   ========================================================================== */
body:not(.home) .site-content {
    width: min(1216px, 90%);
    max-width: none;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 180px;
    padding-left: 0;
    padding-right: 0;
}

/* 本文の最後の要素の下余白は、上の 180px に含めるので 0 にする */
body:not(.home) .entry-content>*:last-child {
    margin-bottom: 0;
}

/* サイドバーありの場合も同じ幅の中で2カラム */
body.has-sidebar:not(.home) .site-content {
    max-width: none;
}

/* ブロックの「幅広」はコンテンツ幅と同じ、「全幅」は画面いっぱい */
body:not(.home) .entry-content .alignwide {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

body:not(.home) .entry-content .alignfull {
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: 0;
}

/* 投稿のアイキャッチもコンテンツ幅に合わせる */
body:not(.home) .post-thumbnail {
    margin-left: 0;
    margin-right: 0;
}


/* ==========================================================================
   下層ページ 見出し2（ビジュアルエディタの「見出し」H2）
   明朝・中央、1文字目だけ濃い青、下に短い線
   ========================================================================== */
body:not(.home) .entry-content h2 {
    margin: 0 0 60px !important;
    padding: 0;
    font-family: var(--font_mincho);
    font-size: 28px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.04em;
    color: var(--light_blue);
    text-align: center;
}

body:not(.home) .entry-content h2::first-letter {
    color: var(--main_color);
}

body:not(.home) .entry-content h2::after {
    content: "";
    display: block;
    width: 60px;
    height: 1px;
    margin: 30px auto 0;
    background-color: var(--main_color);
}

/* エディタで左揃え・右揃えを選んだ場合は、線も同じ側に寄せる */
body:not(.home) .entry-content h2.has-text-align-left {
    text-align: left;
}

body:not(.home) .entry-content h2.has-text-align-left::after {
    margin-left: 0;
}

body:not(.home) .entry-content h2.has-text-align-right {
    text-align: right;
}

body:not(.home) .entry-content h2.has-text-align-right::after {
    margin-right: 0;
}

/* 2つ目以降の見出し2の上に余白 */
body:not(.home) .entry-content *+h2 {
    margin-top: 120px !important;
}

@media (max-width: 768px) {
    body:not(.home) .entry-content h2 {
        margin-bottom: 40px !important;
        font-size: 22px;
    }

    body:not(.home) .entry-content h2::after {
        width: 40px;
        margin-top: 20px;
    }

    body:not(.home) .entry-content *+h2 {
        margin-top: 80px !important;
    }
}

/* ==========================================================================
   沿革（テーブルブロック → 高度な設定 →「追加CSSクラス」に history）
   ========================================================================== */
body:not(.home) .entry-content .wp-block-table.history {
    display: block;
    width: 100%;
    /* max-width: 960px; */
    margin: 0 auto;
    overflow: visible;
}

body:not(.home) .entry-content .wp-block-table.history table {
    width: 100%;
    margin: 0;
    border: 0;
    border-collapse: collapse;
    font-size: inherit;
}

body:not(.home) .entry-content .wp-block-table.history tr {
    height: 106px;
}

body:not(.home) .entry-content .wp-block-table.history td {
    padding: 18px 0;
    border: 0;
    background: none;
    vertical-align: middle;
}

/* 線は「月・内容」の列だけ（年の列には引かない） */
body:not(.home) .entry-content .wp-block-table.history td:nth-child(n+2) {
    border-bottom: 1px solid #cee0ec;
}

body:not(.home) .entry-content .wp-block-table.history tr:first-child td:nth-child(n+2) {
    border-top: 1px solid #cee0ec;
}

/* 1列目：年（数字だけ入力。「年」は自動で表示） */
body:not(.home) .entry-content .wp-block-table.history td:nth-child(1) {
    width: 146px;
    padding-left: 0;
    font-family: "Zen Old Mincho", serif;
    font-size: 36px;
    line-height: 1;
    color: #3383bf;
    white-space: nowrap;
}

body:not(.home) .entry-content .wp-block-table.history td:nth-child(1):not(:empty)::after {
    content: "年";
    margin-left: 2px;
    font-size: 13px;
    color: #599bcb;
}

/* 2列目：月 */
body:not(.home) .entry-content .wp-block-table.history td:nth-child(2) {
    width: 102px;
    padding-left: 52px;
    font-family: "Zen Old Mincho", serif;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--main_color);
    white-space: nowrap;
}

/* 3列目：内容 */
body:not(.home) .entry-content .wp-block-table.history td:nth-child(3) {
    font-size: 17px;
    line-height: 1.95;
    color: #333;
}

@media (max-width: 768px) {
	body:not(.home) .site-content {
		margin-bottom: 120px;
	}
    /* スマホは「年」を1行目、「月・内容」を2行目に（月の幅を固定して内容の左端をそろえる） */
    body:not(.home) .entry-content .wp-block-table.history tr {
        display: grid;
        grid-template-columns: 44px 1fr;
        align-items: baseline;
        column-gap: 16px;
        row-gap: 16px;
        height: auto;
        padding: 18px 4px;
        border-bottom: 1px solid #cee0ec;
    }

    body:not(.home) .entry-content .wp-block-table.history td:nth-child(n) {
        width: auto;
        padding: 0;
    }

    /* スマホは行全体に線（セルの線は消す） */
    body:not(.home) .entry-content .wp-block-table.history tr:nth-child(n) td:nth-child(n) {
        border: 0;
    }

    body:not(.home) .entry-content .wp-block-table.history tr:first-child {
        border-top: 1px solid #cee0ec;
    }

    body:not(.home) .entry-content .wp-block-table.history td:nth-child(1) {
        grid-column: 1 / -1;
        font-size: 26px;
    }

    body:not(.home) .entry-content .wp-block-table.history td:nth-child(1):empty {
        display: none;
    }

    body:not(.home) .entry-content .wp-block-table.history td:nth-child(2) {
        font-size: 17px;
    }

    body:not(.home) .entry-content .wp-block-table.history td:nth-child(3) {
        font-size: 15px;
        line-height: 1.8;
    }

    /* 年が空欄の行は、前の行との間の線をなくして続けて見せる */
    body:not(.home) .entry-content .wp-block-table.history tr:has(+ tr > td:first-child:empty) {
        border-bottom: none;
        padding-bottom: 6px;
    }

    body:not(.home) .entry-content .wp-block-table.history tr:has(> td:first-child:empty) {
        padding-top: 6px;
    }
}


.wp-block-separator {
    border-color: #cfcfcf;
}

/* ==========================================================================
   マップボタン
   ボタンブロック → 高度な設定 →「追加CSSクラス」に btn_map
   （リンク先に地図のURL、「新しいタブで開く」をON）
   ========================================================================== */
.wp-block-button.btn_map .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    min-width: 209px;
    padding: 11px 21px 11px 20px;
    border: 0;
    border-radius: 0;
    background-color: #f7f7f7;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.04em;
    color: var(--main_color);
    text-decoration: none;
    transition: opacity .3s;
}

/* 左：マップのピン */
.wp-block-button.btn_map .wp-block-button__link::before {
    content: "";
    flex-shrink: 0;
    width: 17px;
    height: 23px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M9 23s7.5-7.2 7.5-13.5a7.5 7.5 0 0 0-15 0C1.5 15.8 9 23 9 23z'/%3E%3Ccircle cx='9' cy='9.5' r='2.6'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M9 23s7.5-7.2 7.5-13.5a7.5 7.5 0 0 0-15 0C1.5 15.8 9 23 9 23z'/%3E%3Ccircle cx='9' cy='9.5' r='2.6'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* 右：外部リンク */
.wp-block-button.btn_map .wp-block-button__link::after {
    content: "";
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    margin-left: 5px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 1.5h5v5M14.5 1.5 7.5 8.5M12.5 9.5v4a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h4'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 1.5h5v5M14.5 1.5 7.5 8.5M12.5 9.5v4a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wp-block-button.btn_map .wp-block-button__link:hover {
    color: var(--main_color);
    opacity: .7;
}


/* ==========================================================================
   カラムの高さそろえ（営業所案内など）
   カラムブロック → 高度な設定 →「追加CSSクラス」に group_wrapper
   各カラムの中身（区切り線 → グループ →［社名・住所・ボタン…］）を行ごとにそろえるので、
   住所などが折り返しても、ボタン以降が左右で同じ位置になる（subgrid を使用）
   ※ スマホ（781px以下）はカラムが縦並びになるので対象外
   ========================================================================== */
@media (min-width: 782px) {
    .group_wrapper {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: repeat(10, auto);
        row-gap: 0 !important;
    }

    .group_wrapper>.wp-block-column {
        grid-row: 1 / span 10;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: subgrid;
        align-content: start;
    }

    /* カラム内の要素はすべて1列に置く（重なっても横に列が増えないように） */
    .group_wrapper>.wp-block-column>* {
        grid-column: 1;
    }

    /* 区切り線：グリッド内でも幅いっぱいに（margin: auto だと幅0になるため） */
    .group_wrapper .group_hr {
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
    }

    .group_wrapper>.wp-block-column>.wp-block-group {
        grid-row: 2 / span 8;
        display: grid;
        grid-template-rows: subgrid;
    }

    .group_wrapper>.wp-block-column>.wp-block-group>.wp-block-group__inner-container {
        grid-row: 1 / -1;
        display: grid;
        grid-template-rows: subgrid;
    }

    /* 一番下の区切り線は、グループの中・外どちらに置いても同じ行にそろえる */
    .group_wrapper>.wp-block-column>.wp-block-group>.wp-block-group__inner-container>.group_hr:last-child {
        grid-row: -2 / -1;
    }

    .group_wrapper>.wp-block-column>.group_hr:last-child:not(:first-child) {
        grid-row: 9 / 10;
    }
}

.wp-block-flexible-table-block-table {
    display: block;
    margin-bottom: 60px;
}

@media (max-width: 768px) {
    .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table>table tr th {
        border-bottom: none;
        border-top: none;
    }

    .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table>table tr:nth-of-type(1) th {
        border-top: 1px solid;
    }
}

.extra-link {
    position: relative;
}

.external-link>a {
    display: inline-flex;
    align-items: center;
}

.extra-link>a::after {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    margin-left: 5px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 1.5h5v5M14.5 1.5 7.5 8.5M12.5 9.5v4a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h4'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 1.5h5v5M14.5 1.5 7.5 8.5M12.5 9.5v4a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h4'/%3E%3C/svg%3E") center / contain no-repeat;
}


/* ==========================================================================
   お問い合わせフォーム（Contact Form 7 / .form-box）
   ========================================================================== */
.form-box {
    margin: 0 auto;
}

/* 表：上下の線だけのシンプルなデザイン（th | td を横並び） */
.form-box table,
.form-box tbody {
    display: block;
    width: 100%;
    margin: 0;
    border: 0;
    font-size: inherit;
}

.form-box tr {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    column-gap: 40px;
    border-bottom: 1px solid #cee0ec;
}

.form-box tr:first-child {
    border-top: 1px solid #cee0ec;
}

.form-box th,
.form-box td {
    padding: 32px 0;
    border: 0;
    background: none;
    text-align: left;
    vertical-align: top;
}

/* 項目名：「必須／任意」を左に置く */
.form-box th {
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 16px;
    padding-top: 40px;
    font-size: 17px;
    font-weight: 500;
    line-height: 1.6;
    color: var(--main_color);
}

.form-box .required,
.form-box .any {
    flex-shrink: 0;
    display: inline-block;
    min-width: 58px;
    padding: 3px 10px;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 0.1em;
    text-align: center;
    color: #fff;
}

.form-box .required {
    background-color: var(--main_color);
}

.form-box .any {
    background-color: #a9b7c2;
}

/* 入力欄 */
.form-box input[type="text"],
.form-box input[type="email"],
.form-box input[type="tel"],
.form-box textarea {
    width: 100%;
    padding: 14px 18px;
    border: 1px solid #dde6ed;
    border-radius: 0;
    background-color: #f7f9fb;
    font-family: inherit;
    font-size: 16px;
    line-height: 1.6;
    color: #333;
    box-shadow: none;
    transition: border-color .2s, background-color .2s;
	margin-top:0;
}

.form-box input[type="text"]:focus,
.form-box input[type="email"]:focus,
.form-box input[type="tel"]:focus,
.form-box textarea:focus {
    outline: none;
    border-color: var(--main_color);
    background-color: #fff;
}

.form-box ::placeholder {
    color: #b3bcc4;
}

.form-box textarea {
    height: 220px;
    resize: vertical;
    max-width: none;
}

/* 住所 */
.form-box .address {
    margin: 0;
    padding: 0;
    list-style: none;
}

.form-box .address li+li {
    margin-top: 12px;
}

.form-box .address_zip {
    display: flex;
    align-items: center;
    gap: 10px;
}

.form-box .address_zip .wpcf7-form-control-wrap {
    width: 200px;
}

.form-box .address_mark {
    font-size: 17px;
    color: var(--main_color);
}

/* チェックボックス */
.form-box .wpcf7-checkbox {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 32px;
    padding-top: 8px;
	
}

.form-box .wpcf7-list-item {
    margin: 0;
}

.form-box .wpcf7-list-item label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.form-box input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--main_color);
}

.form-box .wpcf7-list-item-label {
    font-size: 16px;
}

/* 個人情報の利用について */


.form-box .policy_box {
    padding: 16px 20px;
    border: 1px solid #dde6ed;
    background-color: #f7f9fb;
}

.form-box .policy_box p {
    margin: 0 0 1em;
    font-size: 14px;
    line-height: 1.8;
}

.form-box .policy_box p:last-child {
    margin-bottom: 0;
}

.form-box .policy_agree {
    margin-top: 20px;
}

.form-box .policy_agree .wpcf7-list-item-label {
    font-weight: 500;
}

/* エラーメッセージ */
.form-box .wpcf7-not-valid-tip {
    margin-top: 6px;
    font-size: 14px;
}

/* 送信ボタン */
.form-box .submit_btn {
    display: flex;
    justify-content: center;
    margin: 60px 0 0;
    padding: 0;
    list-style: none;
    gap: 24px;
}

.form-box .submit_btn li {
    position: relative;
    flex: 0 1 320px;
}

/* 「送信」「戻る」は同じ大きさ（枠線・余白込みで幅100%、高さもそろえる） */
.form-box input[type="submit"],
.form-box .js-form-back {
    box-sizing: border-box;
    width: 100%;
    height: 64px;
    margin: 0;
    padding: 0 20px;
    line-height: 62px;
}

.form-box input[type="submit"] {
    border: 1px solid var(--main_color);
    border-radius: 0;
    background-color: var(--main_color);
    font-family: inherit;
    font-size: 17px;
    font-weight: 500;
    color: #fff;
    cursor: pointer;
    transition: opacity .3s;
}

.form-box input[type="submit"]:hover {
    opacity: .8;
}

/* 「同意する」にチェックがない間は押せない */
.form-box input[type="submit"]:disabled {
    opacity: .4;
    cursor: not-allowed;
}

.form-box .wpcf7-spinner {
    position: absolute;
    top: 50%;
    right: -40px;
    margin: -12px 0 0;
}

.wpcf7 form .wpcf7-response-output {
    max-width: 1000px;
    margin: 30px auto 0;
    padding: 16px 20px;
    font-size: 15px;
}

/* ---------- 確認ページ（/contact/confirm/ ・ js/contact-form.js） ---------- */
/* 入力ページ：「入力内容を確認する」のあと（CF7上は送信完了扱い）に完了メッセージを出さない */
.is-contact-input .wpcf7 form.sent .wpcf7-response-output {
    display: none;
}

/* 確認ページ：入力欄の表・エラー表示は隠して、確認用の表と「戻る」を出す */
.is-contact-confirm .form-box>table,
.is-contact-confirm .wpcf7-response-output {
    display: none;
}

.form-box .btn_back {
    flex: 0 1 320px;
}

.form-box .confirm_lead {
    margin: 0 0 40px;
    font-size: 16px;
    line-height: 1.8;
    text-align: center;
}

.form-box .confirm_table td {
    font-size: 16px;
    line-height: 1.8;
    word-break: break-all;
}

.form-box .confirm_table th {
    padding-top: 32px;
}

.form-box .confirm_empty {
    color: #a9b7c2;
}

.form-box .js-form-back {
    display: block;
    text-align: center;
    text-decoration: none;
    border: 1px solid #1671b6;
    border-radius: 0;
    background-color: #fff;
    font-family: inherit;
    font-size: 17px;
    font-weight: 500;
    color: #1671b6;
    cursor: pointer;
    transition: opacity .3s;
}

.form-box .js-form-back:hover {
    opacity: .7;
}

@media (max-width: 768px) {
    .form-box tr {
        grid-template-columns: 1fr;
    }

    .form-box th {
        padding: 24px 0 12px;
        font-size: 16px;
    }

    .form-box td {
        padding: 0 0 24px;
    }

    .form-box .address_zip .wpcf7-form-control-wrap {
        width: 160px;
    }

    .form-box .wpcf7-checkbox {
        gap: 10px 24px;
        padding-top: 0;
    }

    .form-box .submit_btn {
        flex-direction: column-reverse;
        align-items: center;
        gap: 16px;
        margin-top: 40px;
    }

    .form-box .submit_btn li,
    .form-box .btn_back {
        flex: none;
        width: 100%;
        max-width: 320px;
    }

    .form-box .confirm_table th {
        padding-top: 24px;
    }

    .form-box .confirm_lead {
        margin-bottom: 24px;
        font-size: 15px;
        text-align: left;
    }
}


/* ==========================================================================
   ハンバーガーメニュー（スマホ・タブレット：979px以下）
   親テーマ BusinessPress のドロワーをサイトの色に合わせて調整
   ========================================================================== */
/* 後ろのページを暗くする */
.drawer-overlay {
    background-color: rgba(6, 46, 142, .45);
}

/* メニューの枠：右から出る濃い青のパネル */
.drawer-navigation {
    width: 86%;
    max-width: 420px;
    background-color: var(--main_color);
    color: #fff;
}

.drawer-opened .drawer-navigation {
    box-shadow: none;
}

/* 下の波 */
.drawer-navigation::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 80px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 125' preserveAspectRatio='none'%3E%3Cpath fill='%23077dd4' d='M0,2 C360,-4 700,24 960,62 C700,102 330,132 0,102 Z'/%3E%3Cpath fill='%231464a1' d='M1920,0 C1560,0 1240,22 960,62 C700,102 330,132 0,102 L0,125 L1920,125 Z'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat;
    pointer-events: none;
}

.drawer-navigation .drawer-navigation-content {
    padding: 90px 24px 140px;
}

/* メニュー項目 */
.drawer-navigation ul {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid rgba(255, 255, 255, .3);
}

.drawer-navigation ul li {
    padding: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .3);
}

.main-header .drawer-navigation li a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 17px 4px;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.06em;
    color: #fff;
    text-decoration: none;
    transition: opacity .3s;
}

.main-header .drawer-navigation li a:hover {
    color: #fff;
    opacity: .7;
}

/* 右端の「＞」 */
.drawer-navigation .menu>li>a::after {
    content: "";
    flex-shrink: 0;
    width: 12px;
    height: 12px;
    margin: 0;
    background-color: currentColor;
    opacity: .8;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3l5 5-5 5'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3l5 5-5 5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* 外部リンク（採用情報など extra-link）は外部リンクのアイコン */
.drawer-navigation .menu>li.extra-link>a::after {
    width: 14px;
    height: 14px;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 1.5h5v5M14.5 1.5 7.5 8.5M12.5 9.5v4a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h4'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 1.5h5v5M14.5 1.5 7.5 8.5M12.5 9.5v4a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h4'/%3E%3C/svg%3E");
}


/* お問い合わせ：白い枠線のボタン */
.drawer-navigation .menu>li:has(> a[href$="/contact/"]) {
    margin-top: 28px;
    border-bottom: 0;
}

.drawer-navigation .menu>li>a[href$="/contact/"] {
    justify-content: center;
    padding: 14px 20px;
    border: 1px solid #fff;
    font-weight: 500;
    letter-spacing: 0.1em;
}

/* ホバー時は色を反転（白背景・青文字） */
.main-header .drawer-navigation .menu>li>a[href$="/contact/"] {
    transition: background-color .3s, color .3s;
}

.main-header .drawer-navigation .menu>li>a[href$="/contact/"]:hover {
    background-color: #fff;
    color: var(--main_color);
    opacity: 1;
}

.drawer-navigation .menu>li>a[href$="/contact/"]::after {
    display: none;
}

/* 子メニューの開閉ボタン */
.drawer-navigation .dropdown-toggle {
    top: 12px;
    right: 0;
}

.drawer-navigation .dropdown-toggle:after {
    color: #fff;
}

.drawer-navigation ul ul {
    margin: 0 0 12px 1em;
    border-top: 0;
}

.drawer-navigation ul ul li {
    border-bottom: 0;
}

.drawer-navigation ul ul a {
    padding: 8px 4px;
    font-size: 14px;
}

/* 開いているときの「×」は白（スクロール時のヘッダーからも同じ） */
.drawer-opened .drawer-hamburger-icon::before,
.drawer-opened .drawer-hamburger-icon::after {
    background-color: #fff;
}


/* ==========================================================================
   投稿（一覧・記事ページ・サイドバー）
   ========================================================================== */
/* 一覧ページ：上のヘッダーにタイトルを出すので、本文側の見出しは隠す */
.archive .page-header {
    display: none;
}

/* 一覧：記事ごとに線で区切る（親テーマの短い線は消す）
   表示形式（カスタマイザー）が「全文」「抜粋」「リスト」のどれでも同じ */
body:not(.home) .post-full,
body:not(.home) .post-summary,
body:not(.home) .post-list {
    margin: 0;
    padding: 48px 0;
    border-bottom: 1px solid #cee0ec;
}

body:not(.home) .loop-wrapper>div:first-child {
    padding-top: 0;
}

body:not(.home) .post-full:after,
body:not(.home) .post-summary:after {
    display: none;
}

body:not(.home) .post-full .hentry,
body:not(.home) .post-summary .hentry,
body:not(.home) .post-list .hentry {
    margin-bottom: 0;
}

body:not(.home) .post-list .entry-header {
    margin-bottom: 16px;
}

body:not(.home) .post-list .entry-summary {
    font-size: 15px;
    color: #555;
}

/* 記事タイトル */
body:not(.home) .entry-header {
    margin-bottom: 32px;
    text-align: left;
}

body:not(.home) .entry-title {
    margin: 0 !important;
    font-family: var(--font_mincho);
    font-size: 24px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.04em;
    color: var(--main_color);
}

body:not(.home) .entry-title a {
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
    font-family: inherit;
}

body:not(.home) .entry-title a:hover {
    opacity: .7;
}

body.single .entry-title {
    font-size: 30px;
}

/* 日付・カテゴリー */
body:not(.home) .entry-meta,
body:not(.home) .cat-links {
    margin-top: 10px;
    font-family: var(--font_en);
    font-size: 14px;
    letter-spacing: 0.04em;
    color: #8a99a6;
}

body:not(.home) .entry-meta a,
body:not(.home) .cat-links a {
    font-size: 14px;
    color: inherit;
}

/* 「続きを読む」 */
body:not(.home) a.continue-reading {
    font-size: 15px;
    color: var(--main_color);
}

/* 前の投稿・次の投稿 */
.single .post-navigation {
    margin: 60px 0 0;
    padding-top: 32px;
    border-top: 1px solid #cee0ec;
}

.single .post-navigation a {
    font-size: 16px;
    color: #333;
}

.single .post-nav-title {
    font-size: 13px;
    color: #8a99a6;
}

/* サイドバー */
.sidebar-area .widget {
    margin-bottom: 48px;
    font-size: 15px;
    color: #333;
}

/* 見出し（クラシックウィジェット .widget-title ／ ブロックウィジェットの見出し h2・h3） */
.sidebar-area .widget-title,
.sidebar-area .widget h2,
.sidebar-area .widget h3 {
    margin: 0 0 12px !important;
    padding: 0 0 12px;
    border-bottom: 1px solid #cee0ec;
    font-family: var(--font_mincho);
    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.06em;
    text-transform: none;
    color: var(--main_color);
}

.sidebar-area .widget ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sidebar-area .widget li {
    padding: 10px 0;
    border-bottom: 1px dashed #dde6ed;
}

.sidebar-area .widget a {
    font-size: 15px;
    color: #333;
    text-decoration: none;
}

.sidebar-area .widget a:hover {
    color: var(--main_color);
}

@media (max-width: 979px) {
    .sidebar-area {
        margin-top: 60px;
        padding-top: 40px;
        border-top: 1px solid #cee0ec;
    }
}

@media (max-width: 768px) {

    body:not(.home) .post-full,
    body:not(.home) .post-summary,
    body:not(.home) .post-list {
        padding: 32px 0;
    }

    body:not(.home) .entry-title {
        font-size: 20px;
    }

    body.single .entry-title {
        font-size: 22px;
    }
}


/* ==========================================================================
   投稿一覧ページ・月別などの一覧ページ（home.php / archive.php）
   TOPの GROUP TOPICS と同じ並び。白い背景なので線・日付・アイコンを青に
   ========================================================================== */
.topics_list--page {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top-color: #cee0ec;
}

.topics_list--page li {
    margin: 0;
    padding: 0;
    border-bottom-color: #cee0ec;
}

.topics_list--page a,
.topics_list--page .topics_list_item {
    min-height: 96px;
    padding: 20px 8px;
    color: #333;
    text-decoration: none;
}

.topics_list--page a:hover {
    color: #333;
}

.topics_list--page time {
    font-size: 16px;
    color: var(--main_color);
}

.topics_list--page .topics_list_ttl {
    font-size: 17px;
}

.topics_list--page .circle_arrow,
.topics_list--page .external_icon,
.topics_list--page .topics_pdf {
    color: var(--main_color);
    border-color: var(--main_color);
}

.topics_list--page a:hover .circle_arrow,
.topics_list--page a:hover .topics_pdf {
    background-color: var(--main_color);
    color: #fff;
}


@media (max-width: 768px) {

    /* スマホ：日付とタイトルを詰めて並べる（最低の高さをなくし、上に寄せる） */
    .topics_list--page a,
    .topics_list--page .topics_list_item {
        min-height: 0;
        align-content: flex-start;
        row-gap: 6px;
        padding: 18px 50px 18px 4px;
    }

    .topics_list--page .topics_list_item {
        padding-right: 4px;
    }

    .topics_list--page time,
    .topics_list--page .topics_list_ttl {
        font-size: 15px;
    }
}


/* ==========================================================================
   ページ送り（一覧ページ）
   親テーマの .pagination をサイトの色に合わせて調整
   ========================================================================== */
.pagination {
    margin: 56px 0 0;
    font-size: 15px;
    text-align: center;
}

.pagination .nav-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}

.pagination .nav-links .page-numbers {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    margin: 0;
    padding: 0 14px;
    border: 1px solid #cee0ec;
    background-color: #fff;
    font-family: var(--font_en);
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 0.04em;
    color: var(--main_color);
    text-decoration: none;
    transition: background-color .3s, border-color .3s, color .3s;
}

/* 今のページ */
.pagination .nav-links .page-numbers.current {
    border-color: var(--main_color);
    background-color: var(--main_color);
    font-weight: 500;
    color: #fff;
}

/* ホバー */
.pagination .nav-links a.page-numbers:hover {
    border-color: var(--main_color);
    background-color: var(--main_color);
    color: #fff;
}

/* 「…」 */
.pagination .nav-links .page-numbers.dots {
    min-width: auto;
    padding: 0 4px;
    border: 0;
    background: none;
}

/* 「前へ」「次へ」 */
.pagination .nav-links .prev,
.pagination .nav-links .next {
    padding: 0 18px;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 14px;
}

@media (max-width: 768px) {
    .pagination {
        margin-top: 40px;
    }

    .pagination .nav-links {
        gap: 6px;
    }

    .pagination .nav-links .page-numbers {
        min-width: 38px;
        height: 38px;
        padding: 0 10px;
        font-size: 14px;
    }

    .pagination .nav-links .prev,
    .pagination .nav-links .next {
        padding: 0 12px;
        font-size: 13px;
    }
}


/* ==========================================================================
   記事ページ：「一覧に戻る」（COMPANYの「ごあいさつ」と同じ、下線付きの形）
   ========================================================================== */
.back_to_list {
    display: flex;
    justify-content: center;
    margin-top: 60px;
}

.btn_back_list {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 172px;
    padding-bottom: 18px;
    border-bottom: 1px solid #cfcfcf;
    font-size: 18px;
    letter-spacing: 0.06em;
    color: #333;
    text-decoration: none;
}

.btn_back_list:hover {
    color: #333;
}

.btn_back_list .circle_arrow {
    width: 42px;
    height: 42px;
    color: #9a9a9a;
}

.btn_back_list .circle_arrow svg {
    width: 12px;
    color: #555;
}

/* ホバー時：丸が青く塗りつぶされる（大きくなるのは共通の指定） */
.btn_back_list:hover .circle_arrow {
    background-color: var(--main_color);
    border-color: var(--main_color);
}

.btn_back_list:hover .circle_arrow svg {
    color: #fff;
}

@media (max-width: 768px) {
    .back_to_list {
        margin-top: 40px;
    }

    .btn_back_list {
        gap: 8px;
        padding-bottom: 14px;
        font-size: 16px;
    }

    .btn_back_list .circle_arrow {
        width: 34px;
        height: 34px;
    }
}


/* ==========================================================================
   タブレット（769〜1199px）の調整
   ========================================================================== */
/* タブレットのときだけ改行する <br class="br_tb"> */
.br_tb {
    display: none;
}

@media (min-width: 769px) and (max-width: 1199px) {
    .br_tb {
        display: inline;
    }

    /* KVのメインメッセージを大きく */
    .top_mv_catch {
        font-size: clamp(60px, 7.5vw, 88px);
    }

    /* 英語の見出し */
    .sec_ttl_en {
        font-size: 60px;
    }

    /* グループ概要のカード：高さを出す（会社概要は2段） */
    .group_cards a {
        aspect-ratio: 4 / 3;
    }

    .group_cards_ttl {
        font-size: 20px;
        line-height: 1.6;
    }

    /* 会社沿革：年の数字を小さく */
    body:not(.home) .entry-content .wp-block-table.history td:nth-child(1) {
        font-size: 28px;
    }
}


/* TOP 企業情報：スマホ時の会社表示順を入れ替え */
@media (max-width: 785px) {
  .group_diagram { display: flex; flex-direction: column; }
  .group_diagram_circles { order: 0; }
  .gd_info--design      { order: 1; } /* 日本理化工業 */
  .gd_info--maintenance { order: 2; } /* 日本理化サービス */
  .gd_info--analysis    { order: 3; } /* 日本環境分析サンター */
}