/* ========== 変数 ========== */
:root {
    --_color-text: #0E0E10;
    --_global--background-color: #FCFCFC;
    --_margin1: var(--margin-basic);
    --_global--transition-duration: .4s;
    /* カスタマイズ */
    --font-family_serif: "Noto serif JP", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
    --font-size_body: 1rem;
    --font-size_lg-heading: 2.441em;
    --font-size_md-heading: 1.563em;
    --font-size_sm-heading: 1.25em;
    --white: #ffffff;
    --skyblue: #00B8EE;
    --navy: #003893;
    --blue: #5B8CFF;
    --yellow: #F0C402;
    --btn-gradient: linear-gradient(270deg, var(--blue) 0%, var(--navy) 50%, var(--blue) 100%);
    --cta-gradient: linear-gradient(270deg, var(--skyblue) 0%, var(--accent-color) 50%, var(--skyblue) 100%);
    --column-gap: max(2.5%, 24px);
    --row-gap: 32px;
    --row-gap_lg: 64px;
    --margin-basic: 32px;
    --margin_sm: 16px;
    --margin_md: 48px;
    --margin_lg: 80px;
    --section-padding_lg: 160px;
}

/* ========== 基本設定 ========== */
body {
    font-size: var(--font-size_body);
    letter-spacing: 0.01em;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-family_serif);
}

:where(h2).wp-block-heading {
    color: var(--accent-color);
    font-size: var(--font-size_lg-heading);
}

:where(h3).wp-block-heading {
    font-size: var(--font-size_md-heading);
    line-height: 1.375;
}

ul {
    padding-left: 0;
}

li {
    list-style: none;
}

.d_flex li {
    margin-top: 0;
}

.z_0 {
    z-index: 0;
}

.z_1 {
    z-index: 1;
}

.z_10 {
    z-index: 10;
}

.p_ab {
    position: absolute;
}

.p_rel {
    position: relative;
}

.inline_b {
    display: inline-block;
}

.d_flex {
    display: flex;
}

.d_grid {
    display: grid;
}

.pc_none {
    display: none;
}

.mincho {
    font-family: var(--font-family_serif);
}

.tate {
    writing-mode: vertical-rl;
}

/* ========== 共通設定 ========== */
/* セクション */
.smb-section {
    --smb-section--padding: 80px;
}

/* ボタン */
.smb-buttons:not(:first-child) {
    margin-top: var(--margin_md);
}

.smb-buttons:has(.btn-cta):not(:first-child) {
    margin-top: var(--margin-basic);
}

.smb-btn {
    padding-block: 16px;
    padding-inline: 32px 64px;
    background-image: var(--btn-gradient);
    background-position: 100% 50%;
    background-size: 200% auto;
    border-radius: 1000px;
    width: 100%;
    min-width: 240px;
    font-weight: 700;
    position: relative;
    transition: background-position var(--_global--transition-duration) ease-in-out;
}

.smb-btn:is(:active, :focus, :hover) {
    filter: brightness(1.0);
    background-position: 0% 50%;
}

.btn-cta .smb-btn {
    padding-inline: 32px;
    background-image: var(--cta-gradient);
    border: solid 1px currentColor;
}

.btn-cta .smb-btn__label {
    display: flex;
    align-items: center;
    gap: 8px;
}

.smb-btn .fa-angle-right {
    position: absolute;
    right: 32px;
    top: 50%;
    translate: 0 -50%;
    transition: translate var(--_global--transition-duration) ease-in-out;
}

.smb-btn:hover .fa-angle-right {
    translate: 8px -50%;
}

/* カラム */
.wp-block-columns {
    gap: var(--row-gap) var(--column-gap);
}

/* テーブル */
table,
tbody {
    display: block;
    width: 100%;
}

.wp-block-table tr {
    display: flex;
    flex-wrap: wrap;
    border-bottom: solid 1px var(--accent-color);
}

.wp-block-table tr:first-child {
    border-top: solid 1px var(--accent-color);
}

.wp-block-table tr td {
    display: block;
    padding: 1rem;
    border: none;
}

.wp-block-table tr td:first-child {
    width: 30%;
    padding-right: 1.5rem;
    font-weight: 500;
    text-align: center;
    vertical-align: middle;
    background-color: var(--sub-accent-color);
}

.wp-block-table tr td:last-child {
    width: 70%;
    padding-left: 1.5rem;
}

.wp-block-table a[href^="tel:"] {
    color: inherit;
    text-decoration: none;
    pointer-events: none;
}

/* スライダー */
.spider__dots:not([data-thumbnails=true]) .spider__dot[aria-current=true] {
    background: var(--accent-color);
}

.spider__arrow:before,
.spider__arrow:after {
    border-color: var(--accent-color);
}

/* 投稿 */
.c-entries--simple,
.c-entries--text,
.c-entries--text2 {
    border-top: none;
}

.c-entries--rich-media {
    row-gap: var(--row-gap);
}

.c-entries-carousel {
    --entries--carousel--gap: var(--column-gap);
}

:is(.c-entries--simple, .c-entries--text, .c-entries--text2) .c-entries__item {
    border-color: var(--navy);
}

.c-entry-summary__title {
    font-size: var(--font-size_body);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    position: relative;
}

:is(.c-entries-carousel__item, .c-entries__item)>a .c-entry-summary__figure>img {
    transition: scale var(--_global--transition-duration) ease-in-out;
}

:is(.c-entries-carousel__item, .c-entries__item)>a:hover .c-entry-summary__figure img {
    scale: 1.1;
    filter: none;
}

.c-entry-summary__title::after {
    content: "";
    display: block;
    width: 0.5rem;
    height: 0.5rem;
    border-top: solid 2px var(--accent-color);
    border-right: solid 2px var(--accent-color);
    rotate: 45deg;
    margin-right: 8px;
    transition: margin-right var(--_global--transition-duration) ease-in-out;
}

.c-entries__item>a:hover .c-entry-summary__title::after {
    margin-right: 0;
}

.c-entry-summary__term {
    font-size: 0.875rem !important;
}

.c-entry-summary__meta {
    justify-content: flex-start;
    font-weight: inherit;
    margin-top: 8px;
}

.c-meta__item--modified,
.c-meta__item--author {
    display: none;
}

.c-entry-summary--type-projects .c-entry-summary__content {
    display: none;
}

/* ヘッダー */
.l-header {
    box-shadow: 0px 4px 5px 0px rgba(37, 72, 156, 0.1);
}

/* ロゴ */
header .l-1row-header__branding {
    padding-top: 0;
    padding-bottom: 0;
    position: absolute;
    top: 50%;
    left: var(--_container-margin-left);
    translate: 0 -50%;
}

header .c-site-branding__title {
    line-height: 1;
}

header .c-site-branding__title>a.custom-logo-link {
    display: block;
    width: clamp(216px, calc(174.85714285714286px + 12.857142857142856vw), 360px);
}

header .c-site-branding__title>a.custom-logo-link>img {
    width: 100%;
}

/* グローバルナビ */
ul#menu-g_nav {
    padding-block: 12px;
}

.p-global-nav .c-navbar__item>a {
    font-weight: 500;
    font-size: calc(var(--font-size_body) * 0.9375);
    padding-block: 12px;
}

.p-global-nav .g-nav_contact>a {
    font-size: var(--font-size_body);
    color: var(--white);
    background-image: var(--cta-gradient);
    background-position: 100% 50%;
    background-size: 200% auto;
    border-radius: 1000px;
    padding-inline: 24px;
    padding-block: 12px;
    margin-left: 20px;
    transition: background-position var(--_global--transition-duration) ease-in-out;
}

.p-global-nav .g-nav_contact>a:hover {
    background-position: 0% 50%;
}

.p-global-nav .g-nav_contact span {
    gap: 8px;
}

.menu-item-has-children a>span {
    position: relative;
    align-items: center;
    gap: 0.5rem;
}

.menu-item-has-children a>span::after {
    content: "";
    display: block;
    width: 0.5em;
    height: 0.5em;
    border-right: solid 2px currentColor;
    border-bottom: solid 2px currentColor;
    rotate: 45deg;
    transform-origin: center;
    margin-top: -2px;
    transition: rotate var(--_global--transition-duration) ease-in-out;
}

.menu-item-has-children:hover>a>span::after {
    rotate: 225deg;
}

.c-navbar__submenu {
    border: solid 1px var(--_global--background-color);
    border-top: none;
}

.p-global-nav .c-navbar__subitem:hover>a {
    background: var(--skyblue);
}

/* サブナビゲーション */
.c-sub-nav {
    padding-block: 8px 0;
}

#menu-sub-nav-1 a {
    border: solid 1px var(--accent-color);
    padding-inline: 16px;
    padding-block: 4px;
    font-size: 0.75rem;
    font-weight: 500;
    border-radius: 1000px;
}

.c-sub-nav .sub-nav_en>a {
    background-color: var(--accent-color);
    color: var(--white);
}

.c-sub-nav .sub-nav_jpn>a {
    color: var(--accent-color);
}

/* ドロワーメニュー */
.c-hamburger-btn__label {
    font-family: var(--_global--font-family);
}

.c-drawer__inner {
    padding-inline: 0;
    display: flex;
    flex-direction: column-reverse;
    justify-content: flex-end;
}

#menu-sp_nav>.c-drawer__item {
    padding-inline: 24px;
    padding-block: 20px;
    border-bottom: solid 1px currentColor;
}

#menu-sp_nav>.drawer_cta {
    text-align: center;
    background-image: var(--cta-gradient);
    background-position: 100% 50%;
    background-size: 200% auto;
    border: solid 1px currentColor;
    border-radius: 1000px;
    margin-inline: 8px;
    margin-top: 24px;
}

.c-drawer__item .fa-envelope {
    margin-right: 8px;
}

#menu-sub-nav {
    display: flex;
    gap: 12px;
    padding-inline: 24px;
}

#menu-sub-nav .c-drawer__item>a {
    padding-inline: 16px;
    padding-block: 4px;
    border: solid 1px var(--white);
    border-radius: 100px;
}

#menu-sub-nav .sub-nav_en>a {
    color: var(--accent-color);
    background: var(--white);
}


/* ページトップ */
#page-top {
    background: linear-gradient(225deg, var(--skyblue) 0%, var(--accent-color) 100%);
    box-shadow: 0px 0px 10px 0px rgba(0, 56, 147, 0.25);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    right: 20px;
    bottom: 20px;
}

/* フッター */
.l-footer {
    border-color: var(--accent-color);
}

.l-footer .c-row>.c-row__col {
    margin-bottom: var(--margin-basic);
}

.l-footer [data-is-slim-widget-area=true] .c-widget {
    font-size: var(--font-size_body);
}

.l-footer--footer-2 .l-footer__body {
    color: var(--white);
    background-color: var(--accent-color);
}

.l-footer--footer-2 .l-footer__widget-area {
    padding-block: 32px;
}

.l-footer--footer-2 .l-footer__header {
    padding-block: 12px;
}

.c-site-branding__title .custom-logo {
    width: 320px;
}

.l-footer__widget-area .footer_menu {
    gap: 16px 24px;
}

#menu-footer1,
#menu-footer2 {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 32px;
    justify-content: flex-end;
}

.menu .menu-item {
    margin-top: 0;
}

.l-footer--footer-2 .l-footer__footer {
    color: var(--white);
    background-color: var(--accent-color);
    padding-block: 8px;
}

.l-footer__footer .c-row {
    justify-content: center;
}

.footer_name {
    font-size: var(--font-size_md-heading);
    font-weight: 600;
}

.c-copyright {
    text-align: center;
}

/* ========== パターン ========== */
/* pattern_message */
.pattern_message__copy {
    font-weight: 700;
}

.pattern_message__sub-copy {
    font-size: 1.5em;
}

.pattern_message__main-copy {
    font-size: var(--font-size_lg-heading);
    margin-top: 0;
}

.pattern_message_text p:not(:first-child) {
    margin-top: var(--margin_sm);
}

.pattern_message__name {
    font-size: 1.25em;
}

/* pattern_contact */
.pattern_contact__inner {
    padding-block: 64px;
}

.pattern_contact__body {
    gap: var(--row-gap_lg) 0;
}

.pattern_contact__body>div {
    padding-inline: var(--margin_sm);
}

.pattern_contact__content {
    display: grid;
    place-items: center;
    gap: var(--margin-basic);
    font-weight: 500;
    border-right: solid 1px var(--accent-color);
}

.pattern_contact__list li {
    position: relative;
    padding-left: 1.5em;
    font-size: 1.125em;
}

.pattern_contact__list li>.heighlight {
    background: linear-gradient(transparent 65%, rgba(240, 196, 2, 0.5) 0%);
    padding-inline: 4px;
    padding-block: 8px 4px;
    line-height: 2;
}

.pattern_contact__list .fa-check {
    font-size: 1.25em;
    position: absolute;
    top: calc(1em * 1.65 / 2);
    left: 0;
    translate: 0 -50%;
}

.pettern_contact__call {
    font-size: 1.5em;
    margin-top: 0;
}

.pattern_contact__body .pattern_contact__btn {
    flex-basis: 100%;
}

.pattern_contact__btn .smb-btn {
    padding-block: 40px;
    padding-inline: 32px;
    font-size: 1.5em;
}

.pattern_contact__btn .smb-btn__label {
    gap: 8px 24px;
    flex-wrap: wrap;
    justify-content: center;
}

.pattern_contact__btn .smb-btn .fa-angle-right {
    right: 56px;
}

/* ========== トップページ ========== */
/* home_hero */
.home_hero {
    padding-bottom: 56px;
}

.home_hero .smb-section__background {
    background: linear-gradient(75deg, #25489c, #0f68b8, #0088d1, #00a8e5, #00c3e2, #00d3a4, #7dd54f, #f0c402);
    background-size: 160% 160%;
    margin-top: 56px;
    width: 88.889%;
    clip-path: polygon(0 0, 100% 0, 85% 100%, 0% 100%);
    animation: gradient-animation 10s ease infinite;
}

@keyframes gradient-animation {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

.home_hero .smb-section__background::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: url(images/hero_deco.png) no-repeat center center / cover;
    position: absolute;
    inset: 0;
}

.home_hero__mv {
    width: 73%;
    margin-right: 0 !important;
}

.home_hero__mv .spider {
    background: var(--accent-color);
}

.home_hero__mv .spider__slide {
    position: relative;
}

.home_hero__mv .spider__slide[data-active="true"] {
    animation: mvClip .5s linear forwards;
}

@keyframes mvClip {
    0% {
        clip-path: inset(0 100% 0 0);
    }

    100% {
        clip-path: inset(0 0 0 0);
    }
}

.home_hero__copy-wrap {
    width: 100%;
    margin-top: 0;
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 1;
}

.home_hero__copy-wrap .smb-container__body {
    box-sizing: initial;
    max-width: max(88.889%, 1280px);
    padding-left: var(--_container-margin-left);
    padding-right: var(--_container-margin-right);
}

.home_hero__main-copy {
    font-size: clamp( 1.5rem, calc( 1.3571428571428572rem + 0.7142857142857143vw ), 2rem );
    font-weight: 700;
    line-height: 1.5;
    color: var(--white);
    width: fit-content;
    max-width: 95svw;
    padding-inline: 0.5rem;
    margin-left: 0 !important;
    background: linear-gradient(270deg, var(--skyblue) 0%, var(--navy) 100%);
}

.home_hero__sub-copy {
    font-size: clamp( 1rem, calc( 0.8571428571428572rem + 0.7142857142857143vw ), 1.5rem );
    font-weight: 700;
    color: var(--white);
    gap: 0.5rem;
    text-shadow: 0px 0px 15px rgba(0, 56, 147, 0.25);
    margin-top: 24px;
}

.home_hero__list {
    flex-direction: column;
    gap: 12px;
    max-width: 95svw;
}

.home_hero__list li {
    color: var(--accent-color);
    background-color: var(--white);
    padding-inline: 0.5rem;
    width: fit-content;
    text-shadow: none;
    position: relative;
    animation: listClip .5s forwards;
}

@keyframes listClip {
    0% {
        clip-path: inset(0 100% 0 0);
    }

    100% {
        clip-path: inset(0 0 0 0);
    }
}

.home_hero__list li::before {
    content: "";
    display: block;
    background: var(--white);
    position: absolute;
    inset: 0;
    animation: listCover .5s forwards;
    animation-delay: .5s;
}

@keyframes listCover {
    0% {
        clip-path: inset(0 0 0 0);
    }

    100% {
        clip-path: inset(0 0 0 100%);
    }
}

.home_hero__company {
    font-size: 4.875em;
    line-height: 1;
    font-weight: 900;
}


/* home_service */
.home_service-main__text p:not(:first-child) {
    margin-top: var(--margin_sm);
}

.home_service-main__image::before {
    content: "";
    display: block;
    width: 72%;
    aspect-ratio: 1;
    position: absolute;
    top: 60%;
    left: 50%;
    translate: -50% -50%;
    border-radius: 50%;
    border: 2px solid transparent;
    background: linear-gradient(90deg, var(--accent-color) 90%, var(--white) 100%) border-box;
    mask-image: linear-gradient(var(--_global--background-color) 0 0), linear-gradient(var(--_global--background-color) 0 0);
    mask-clip: padding-box, border-box;
    mask-composite: exclude;
    z-index: -1;
    animation: gradientRotate 3s infinite linear;
}

@keyframes gradientRotate {
    100% {
        rotate: 360deg;
    }
}

.home_service-cards {
    margin-top: var(--margin_lg);
    row-gap: var(--row-gap_lg);
}

.home_service-cards__item {
    grid-template-rows: subgrid;
    grid-row: span 2;
    justify-items: center;
    position: relative;
}

.home_service-cards__item.--full {
    grid-template-rows: none;
}

.home_service-cards__item:first-child {
    z-index: 1;
}

.home_service-cards__for {
    color: var(--accent-color);
    border-bottom: solid 1px currentColor;
    width: calc(100% - 16px);
    padding-bottom: 8px;
    position: relative;
    display: grid;
    place-items: center;
}

.home_service-cards__for::before {
    content: "";
    display: inline-block;
    width: 16px;
    aspect-ratio: 1/cos(30deg);
    clip-path: polygon(50% 100%, 100% 0, 0 0);
    background: var(--accent-color);
    position: absolute;
    left: 50%;
    bottom: 0;
    translate: -50% 100%;
}

.home_service-cards__body {
    margin-bottom: var(--margin-basic);
}

.home_service-cards__image {
    overflow: hidden;
    border-left: solid 1px var(--white);
}

.home_service-cards__item:first-child .home_service-cards__image {
    border-color: transparent;
}

.home_service-cards__image a {
    display: block;
    position: relative;
    transition: scale var(--_global--transition-duration) ease-in-out;
}

.home_service-cards__image a:hover {
    scale: 1.1;
}

.home_service-cards__image a::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: rgba(22, 22, 22, 0.5);
    mix-blend-mode: multiply;
    position: absolute;
    inset: 0;
}

.home_service-cards__title {
    color: var(--white);
    text-align: center;
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    padding-inline: 8px;
    margin-top: 0;
}

.home_service-cards__arrow {
    color: var(--white);
    position: absolute;
    right: 8px;
    bottom: 8px;
    background: var(--btn-gradient);
    background-position: 100% 50%;
    background-size: 200% auto;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    margin-top: 0;
}

.home_service-caads__balloon {
    background: var(--sub-accent-color);
    padding-inline: 24px;
    padding-block: 24px;
    box-shadow: 0px 4px 10px 0px rgba(2, 9, 51, 0.25);
    display: grid;
    place-items: center;
    position: absolute;
    bottom: 0;
    left: 50%;
    translate: -50% 100%;
    width: calc(100% - 24px);
    margin-top: 0;
    opacity: 0;
    z-index: 1;
    transition: opacity .4s ease-in-out;
}

.home_service-cards__body:hover+.home_service-caads__balloon {
    opacity: 1;
}

.home_service-caads__balloon::before {
    content: "";
    display: block;
    width: 24px;
    background-color: var(--sub-accent-color);
    aspect-ratio: 1/cos(30deg);
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    position: absolute;
    top: 0;
    left: 50%;
    translate: -50% -100%;
}

.home_service__copy {
    font-size: clamp(3.625rem, calc(0.5480769230769229rem + 4.807692307692308vw), 4.875rem);
    color: var(--sub-accent-color);
    font-weight: 700;
    line-height: 1;
    text-align: center;
    letter-spacing: 0;
    align-self: center;
    z-index: -1;
}

/* home_project */
.home_project {
    padding-bottom: var(--section-padding_lg);
}

.home_project__inner {
    display: flex;
    flex-direction: column;
    gap: var(--row-gap_lg);
}

.home_project__posts {
    width: 100%;
    margin-top: 0;
}

/* home_reason */
.home_reason {
    padding-block: var(--section-padding_lg);
}

.home_reason__lead {
    max-width: 960px;
}

.home_reason__cards {
    margin-top: var(--margin_lg);
    gap: var(--row-gap_lg) var(--column-gap);
}

.home_reason__item {
    padding-top: calc(45% / 2);
}

.home_reason__icon {
    width: 45%;
    padding: 9.877%;
    background: var(--accent-color);
    aspect-ratio: 1;
    border-radius: 50%;
    position: absolute;
    top: 0;
    left: 50%;
    translate: -50% 0;
    z-index: 1;
}

.home_reason__inner {
    padding-inline: 32px;
    padding-block: calc(45% / 2) 64px;
    background-color: var(--white);
    box-shadow: 0px 0px 8px 0px rgba(0, 56, 147, 0.25);
    gap: var(--margin-basic);
}

.home_reason__title {
    color: var(--accent-color);
    display: grid;
    place-items: center;
    margin-top: var(--margin_sm) !important;
}

/* home_area */
.home_area {
    padding-top: var(--section-padding_lg);
}

.home_area::before {
    content: "";
    display: block;
    width: 100%;
    height: 58%;
    background: url(images/area_bg.jpg) no-repeat center top / cover;
    position: absolute;
    bottom: 0;
    left: 0;
}

.home_area__body {
    gap: var(--row-gap_lg) 0;
}

.home_area__item {
    padding-inline: 1.25%;
}

.home_area__map {
    container-type: inline-size;
    box-shadow: 0px 0px 15px 0px rgba(0, 56, 147, 0.25);
}

.home_area__map::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
}

.home_area__map::before {
    background: linear-gradient(0deg, rgba(0, 56, 147, 0.1), rgba(0, 56, 147, 0.1)),
        linear-gradient(180deg, rgba(255, 255, 255, 0.75) 0%, rgba(255, 255, 255, 0) 25%);
    z-index: 1;
}

.home_area__title {
    font-size: max(4.112cqw, 1.125rem);
    color: var(--accent-color);
    position: absolute;
    top: 5.556%;
    left: 0;
    width: 100%;
    display: grid;
    place-items: center;
    margin-top: 0;
    z-index: 1;
}

.home_area__text {
    display: grid;
    place-items: center;
    color: var(--white);
    font-weight: 700;
    font-size: calc(var(--font-size_body) * 1.25);
}

/* home_mesasge */
.home_message {
    padding-top: var(--section-padding_lg);
}

/* ========== 下層ページ ========== */
body.page .l-contents__inner {
    padding-bottom: 0;
    margin-top: 0;
}

/* 下層ページヘッダー */
.c-page-header {
    color: var(--white);
    background-color: var(--accent-color);
    padding-top: var(--margin_lg);
}

.c-page-header[data-has-image=true] {
    height: unset;
}

.c-page-header[data-has-image=true] .c-page-header__content {
    color: unset;
}

.c-page-header__bgimage>img,
.c-page-header__bgimage>picture>img {
    display: none;
}

.c-page-header__title {
    font-size: calc(var(--font-size_lg-heading) * 1.25);
}

.single .c-page-header__title {
    font-size: clamp(1.5em, calc(1.0565714285714285em + 2.217142857142857vw), 3.052em);
}

/* ========== 会社概要 ========== */
/* company_philosophy */
.company_philosophy__lead {
    font-size: var(--font-size_md-heading);
    font-weight: 600;
    line-height: 2;
}

.company_philosophy-block:not(:first-child) {
    margin-top: var(--margin_lg);
}

.company_philosophy__title {
    font-size: var(--font-size_lg-heading);
    line-height: 1;
    color: var(--accent-color);
    display: flex;
    align-items: center;
    gap: 1rem;
}

.company_philosophy__title::after {
    content: "";
    height: 1px;
    background: var(--accent-color);
    flex-grow: 1;
}

.company_philosophy-block__copy {
    font-size: var(--font-size_sm-heading);
    font-weight: 500;
}

.company_values {
    gap: var(--margin_md) var(--margin-basic);
    margin-top: var(--margin_md);
}

.company_values__item {
    justify-items: center;
    gap: var(--row-gap);
    grid-template-rows: subgrid;
    grid-row: span 3;
}

.company_values__item::before {
    content: "";
    display: block;
    width: 65%;
    aspect-ratio: 1;
    background-color: var(--sub-accent-color);
    background-repeat: no-repeat;
    background-size: 65% auto;
    background-position: center center;
    border-radius: 50%;
    box-shadow: 0px 0px 15px 0px rgba(0, 56, 147, 0.25);
}

.company_values__item:nth-child(1)::before {
    background-image: url(images/value1.png);
}

.company_values__item:nth-child(2)::before {
    background-image: url(images/value3.png);
}

.company_values__item:nth-child(3)::before {
    background-image: url(images/value4.png);
}

.company_values__title {
    color: var(--accent-color);
    gap: 0;
    font-weight: 600;
}

.company_values__main-title {
    text-transform: uppercase;
    font-size: var(--font-size_sm-heading);
    padding-right: 0.5rem;
}

.company_values__sub-title {
    padding-left: 0.5rem;
    border-left: solid 1px currentColor;
}

/* company_message */
.company_message__sidebar {
    padding-block: 40px;
    padding-inline: 32px;
    margin-top: 48px;
}

.company_message__sidebar p {
    margin-top: 16px;
}

/* company_profile */
.company_profile__map {
    aspect-ratio: 2/1;
    margin-top: var(--margin_sm);
}

/* company_partner */
.company_partner {
    margin-top: var(--margin_lg);
}

.company_partner__content:not(:first-child) {
    margin-top: var(--margin_md);
}

.company_partner__name {
    font-size: var(--font-size_sm-heading);
    font-weight: 500;
}

.company_partner__table tr,
.company_partner__table tr:first-child {
    border: none;
}

.company_partner__table tr:not(:first-child) {
    margin-top: 8px;
}

.company_partner__table tr td {
    padding-block: 0.75rem;
}

.company_partner__table tr td:first-child {
    width: 25%;
    background: transparent;
    border-right: solid 1px var(--sub-accent-color);
}

/* ========== 事業内容 ========== */
/* service_intro */
.service_intro__buttons .smb-btn-wrapper,
.service_intro__buttons .smb-btn {
    width: 100%;
}

.service_intro__buttons .fa-angle-down {
    position: absolute;
    right: 32px;
    top: 50%;
    translate: 0 -50%;
}

/* service_section */
.service_section#staffing {
    padding-bottom: calc(var(--smb-section--padding) + 32px);
}

.service_section#jig {
    padding-bottom: 0;
}

.service_section__heading {
    color: var(--accent-color);
    font-weight: 700;
    font-family: var(--font-family_serif);
    gap: 0.5rem 0;
}

.service_section__main-title {
    line-height: 1.25;
    padding-right: 1rem;
    border-right: solid 1px currentColor;
    flex-shrink: 0;
}

.service_section__sub-title {
    font-size: var(--font-size_sm-heading);
    padding-left: 1rem;
}

.service_section__content {
    margin-top: var(--margin_md);
}

.service_section__image::before {
    content: "";
    display: block;
    width: 100vw;
    height: 75%;
    background: var(--sub-accent-color);
    position: absolute;
    right: 32px;
    bottom: -32px;
}

#staffing .service_section__image::before {
    background: var(--accent-color);
}

.service_section__image img {
    box-shadow: 0px 0px 15px 0px rgba(0, 56, 147, 0.25);
}

.service_section__body {
    padding-top: var(--margin-basic);
}

.service_section__text {
    margin-top: var(--margin_md);
}

/* service_sct-sidebar */
.service_sct-sidebar {
    margin-top: var(--margin_lg);
}

.service_sct-sidebar__item:not(:first-child) {
    margin-top: var(--margin_lg);
}

.service_sct-sidebar__heading {
    color: var(--accent-color);
    display: flex;
    align-items: center;
    gap: 1rem;
}

.service_sct-sidebar__heading:not(.service_sct-sidebar__map-heading):after {
    content: "";
    height: 1px;
    background: currentColor;
    flex-grow: 1;
}

.service_sect-sidebar__list li {
    position: relative;
    padding-left: 1.5rem;
}

.service_sect-sidebar__list li::before {
    content: "";
    display: inline-block;
    width: 6px;
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--accent-color);
    position: absolute;
    top: calc(1em * 1.65 / 2);
    left: 0;
    translate: 0 -50%;
}

.service_sct-sidebar__map {
    padding-block: 32px;
    border: solid 1px var(--accent-color);
}

.service_sct-sidebar__map-content {
    padding-left: 32px;
}

.service_sct-sidebar__map-image {
    padding-right: 32px;
    align-self: flex-end;
}

.service_sct-sidebar__banners .wp-block-snow-monkey-blocks-items-item-block-link {
    position: relative;
    padding-bottom: 8px;
}

.service_sct-sidebar__banners .wp-block-snow-monkey-blocks-items-item-block-link::before {
    content: "";
    display: block;
    background: var(--accent-color);
    width: 1.5rem;
    aspect-ratio: 1;
    border-radius: 50%;
    position: absolute;
    right: 12px;
    bottom: 0;
    transition: translate var(--_global--transition-duration) ease-in-out;
}

.service_sct-sidebar__banners .wp-block-snow-monkey-blocks-items-item-block-link:hover::before {
    translate: 8px 0;
}

.service_sct-sidebar__banners .wp-block-snow-monkey-blocks-items-item-block-link::after {
    content: "";
    width: 0.5rem;
    aspect-ratio: 1;
    border-top: solid 2px var(--white);
    border-right: solid 2px var(--white);
    rotate: 45deg;
    position: absolute;
    right: calc(1.5rem / 2 - 0.5rem + 12px);
    bottom: calc(1.5rem / 2 - 0.5rem);
    translate: -55% -50%;
    transition: translate var(--_global--transition-duration) ease-in-out;
}

.service_sct-sidebar__banners .wp-block-snow-monkey-blocks-items-item-block-link:hover::after {
    translate: calc(-55% + 8px) -50%;
}

.service_sct-sidebar__banners .smb-items__item__figure:not(:last-child) {
    margin-bottom: var(--margin_sm);
}

.service_sct-sidebar__banners .smb-items__item__title {
    font-size: var(--font-size_sm-heading);
    font-weight: 500;
}

.service_sct-sidebar__banners .smb-items__item__lede {
    display: grid;
    place-items: center;
}

/* ========== 人材派遣 ========== */
/* staffing_intro */
.staffing_intro__text {
    margin-top: var(--margin_md);
}

.staffing_intro__image::before {
    content: "";
    display: block;
    width: 100vw;
    height: 90%;
    background: var(--sub-accent-color);
    position: absolute;
    left: 32px;
    bottom: -48px;
}

.staffing_intro__slider {
    box-shadow: 0px 0px 15px 0px rgba(0, 56, 147, 0.25);
}

/* staffing_support */
.staffing_support__body {
    margin-top: var(--margin_lg);
    row-gap: var(--row-gap_lg);
}

.staffing_support__copy {
    font-size: var(--font-size_sm-heading);
    font-weight: 500;
    text-align: center;
    line-height: 2;
}

.staffing_support__copy::before {
    content: "";
    width: min(50%, 220px);
    aspect-ratio: 1;
    border: solid 1px var(--yellow);
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    border-radius: 50%;
    filter: blur(4px);
}

.staffing_support__copy>span {
    color: var(--accent-color);
}

.staffing_support__content {
    display: grid;
    place-items: center;
}

.staffing_support__list li {
    position: relative;
    padding-left: 1.5rem;
}

.staffing_support__list li::before {
    content: "";
    display: inline-block;
    width: 6px;
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--yellow);
    position: absolute;
    top: calc(1em * 1.65 / 2);
    left: 0;
    translate: 0 -50%;
}

/* staffing_partner */
.staffing_partner__body {
    margin-top: var(--margin_lg);
}

.staffing_partner__cards {
    gap: var(--row-gap_lg) var(--margin-basic);
    margin-top: var(--margin_md);
}

.staffing_partner__card {
    padding-block: 48px 32px;
    padding-inline: 32px;
    background: var(--sub-accent-color);
    box-shadow: 0px 0px 15px 0px rgba(0, 56, 147, 0.25);
}

.staffing_partner__card-title {
    font-size: var(--font-size_sm-heading);
    font-family: var(--font-family_serif);
    font-weight: 600;
    color: var(--accent-color);
    align-self: center;
}

.staffing_partner__card-num {
    position: absolute;
    top: 0;
    left: 16px;
    font-size: 49px;
    font-weight: 500;
    color: var(--yellow);
    translate: 0 -50%;
}

.staffing_partner__status {
    margin-top: var(--margin_lg);
}

.staffing_partner__tabs .smb-tabs__tabs {
    gap: 16px;
}

.staffing_partner__tabs .smb-tabs__tab {
    font-weight: 600;
    color: var(--accent-color);
    background: var(--yellow);
}

.staffing_partner__tabs .smb-tabs__tab[aria-selected=false] {
    opacity: 0.25;
}

.staffing_partner__tabs[data-orientation=horizontal]>.smb-tabs__tabs .smb-tabs__tab {
    border-radius: 0;
}

.staffing_partner__tabs .smb-tab-panel {
    border: none;
    padding-inline: 0;
    background: var(--_global--background-color);
}

/* staffing_flow */
.staffing_flow__body {
    margin-top: var(--margin_lg);
}

.staffing_flow__steps .smb-step__item__title {
    font-size: var(--font-size_sm-heading);
    font-weight: 500;
}

.staffing_flow__steps .smb-step__item__number {
    background: var(--accent-color);
}

.staffing_flow__images {
    display: flex;
    flex-direction: column;
}

.staffing_flow__image {
    flex: 1;
}

.staffing_flow__image:not(:first-child) {
    margin-top: var(--margin_sm);
}

.staffing_flow__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ========== お問い合わせ ========== */
/* お問い合わせフォーム */
.smf-form {
    margin-top: var(--margin_lg);
}

.smf-form--business .smf-item__col--label {
    background: var(--sub-accent-color);
}

.smf-item__description {
    color: var(--accent-color);
    user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
}

.smf-control-description a[href^="tel:"] {
    color: inherit;
    text-decoration: none;
    pointer-events: none;
}

.form_input__address-item {
    width: 100%;
}

#autozip {
    display: none !important;
}


/* プログレスバー */
[data-screen=back] .smf-progress-tracker__item--input .smf-progress-tracker__item__number,
[data-screen=complete] .smf-progress-tracker__item--complete .smf-progress-tracker__item__number,
[data-screen=confirm] .smf-progress-tracker__item--confirm .smf-progress-tracker__item__number,
[data-screen=input] .smf-progress-tracker__item--input .smf-progress-tracker__item__number,
[data-screen=invalid] .smf-progress-tracker__item--input .smf-progress-tracker__item__number {
    background-color: var(--wp--preset--color--sm-accent);
}

/* 送信ボタン */
.smf-action .smf-button-control__control {
    background-image: var(--cta-gradient);
    background-size: 200% auto;
    background-position: 100% 50%;
    border: 2px solid transparent;
    border-radius: 1000px;
    font-family: inherit;
    color: #fff;
    width: 100%;
    max-width: 400px;
    padding-top: 1rem;
    padding-bottom: 1rem;
}

/* 戻るボタン */
.smf-action .smf-button-control__control[data-action="back"] {
    background: #f0f0f0;
    color: var(--accent-color);
    border: solid 2px currentColor;
}

.smf-button-control {
    margin-left: 0 !important;
}

.smf-action .smf-button-control__control {
    margin-top: 24px;
}

/* ========== 投稿ページ ========== */
.c-prev-next-nav__item-title {
    font-family: var(--font-family_serif);
    font-size: var(--font-size_body);
}

/* ~~~~~~~~~~~~~~~~~~~~ large-size ~~~~~~~~~~~~~~~~~~~~ */
@media screen and (max-width: 1023px) {

    /* 投稿 */
    .c-entries-carousel .spider__slide {
        max-width: calc(50% - var(--entries--carousel--gap) / 1.5);
    }

    /* フッター */
    .l-footer__widget-area .footer_menu {
        align-items: flex-start;
    }

    #menu-footer1,
    #menu-footer2 {
        justify-content: flex-start;
    }

    /* ========== HOME ========== */
    .home_hero__mv {
        width: 90%;
    }

    .home_hero__mv .smb-spider-slider__figure-wrapper::before {
        padding-top: calc(3 / 4 * 100%);
    }

    .home_service-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home_service__copy {
        padding-inline: 12px;
        line-height: 1.25;
        font-size: clamp(2.125rem, calc(0.925rem + 3vw), 3.625rem);
    }
}

/* ~~~~~~~~~~~~~~~~~~~~ medium-size ~~~~~~~~~~~~~~~~~~~~ */
@media screen and (max-width: 781px) {
    :root {
        --font-size_body: 0.9375rem;
        --font-size_lg-heading: 2em;
        --font-size_md-heading: 1.5em;
    }

    /* ボタン */
    .smb-buttons {
        justify-content: flex-end;
    }

    .l-footer .smb-buttons {
        justify-content: flex-start;
    }

    /* ========== パターン ========== */
    .pattern_message__content {
        display: contents;
    }

    .pattern_message__heading {
        order: 1;
        flex-basis: 100%;
    }

    .pattern_message__image {
        order: 2;
    }

    .pattern_message__image-item {
        width: 75%;
    }

    .pattern_message__inner {
        order: 3;
    }

    .pattern_contact__inner {
        padding-inline: 16px;
    }

    .pattern_contact__content {
        border-right: none;
    }

    .pattern_contact__inner .pattern_contact__btn {
        flex-basis: 100%;
    }

    .pattern_contact__btn .smb-btn {
        padding-inline: 24px;
        font-size: 1rem;
    }

    .pattern_contact__btn .smb-btn .fa-angle-right {
        right: 24px;
    }

    /* ========== HOME ========== */
    .home_hero {
        padding-bottom: 100px;
    }

    .home_hero__copy-wrap {
        bottom: -88px;
    }

    .home_hero__list {
        flex-basis: 100%;
    }

    .home_service-cards {
        row-gap: var(--row-gap_lg);
    }

    .home_service-cards__item {
        grid-row: span 3;
    }

    .home_service-caads__balloon {
        opacity: 1;
        position: relative;
        inset: unset;
        translate: 0;
    }

    .home_project__header {
        display: contents !important;
    }

    .home_project__inner {
        gap: var(--row-gap);
    }

    .home_project__text {
        order: 1;
    }

    .home_project__posts {
        order: 2;
    }

    .home_project__button {
        order: 3;
    }

    .home_area::before {
        height: 75%;
    }

    .home_news__header {
        display: contents;
    }

    .home_news__heading {
        flex-basis: 100%;
        order: 1;
    }

    .home_news__content {
        order: 2;
    }

    .home_news__button {
        flex-basis: 100%;
        order: 3;
        margin-top: 0 !important;
    }

    /* ========== 事業内容 ========== */
    .service_section__heading {
        flex-direction: column;
        align-items: flex-start !important;
    }

    .service_section__main-title {
        padding-right: 0;
        border-right: none;
    }

    .company_message__sidebar {
        padding-block: 32px;
        padding-inline: 24px;
    }

    .service_sct-sidebar__heading:not(.service_sct-sidebar__map-heading):after {
        content: none;
    }

    .service_sct-sidebar__map {
        padding-inline: 24px;
    }

    .service_sct-sidebar__map-content {
        padding-left: 0;
    }

    .service_sct-sidebar__map-image {
        padding-right: 0;
    }
}

/* ~~~~~~~~~~~~~~~~~~~~ small-size ~~~~~~~~~~~~~~~~~~~~ */
@media screen and (max-width: 639px) {
    :root {
        --margin_lg: 72px;
        --section-padding_lg: 112px;
    }

    body {
        line-height: 1.75;
    }

    .smb-section {
        --smb-section--padding: 72px;
    }

    /* ========== 共通設定 ========== */
    .pc_none {
        display: block;
    }

    /* ボタン */
    .smb-buttons>.smb-btn-wrapper {
        flex: 1;
    }

    /* テーブル */
    .wp-block-table tr td:first-child,
    .wp-block-table tr td:last-child {
        box-sizing: border-box;
        width: 100%;
        padding-inline: 1rem;
    }

    .wp-block-table tr td:first-child {
        text-align: left;
    }

    /* 投稿*/
    .c-entries--simple .c-entry-summary__content {
        display: block;
    }

    .c-entries--simple .c-entry-summary__figure {
        float: inherit;
        width: 100%;
        margin-bottom: 20px;
    }

    .c-entries-carousel .spider__slide {
        max-width: 100%;
    }

    /* ========== HOME ========== */
    .home_hero {
        padding-bottom: 112px;
    }

    .home_hero .smb-section__background {
        margin-top: 32px;
    }

    .home_hero .smb-section__background {
        width: 100%;
        clip-path: polygon(0 0, 100% 0, 88% 100%, 0% 100%);
    }

    .home_hero__mv {
        width: 90.667%;
    }

    .home_hero__mv .smb-spider-slider__figure-wrapper {
        max-height: 75svh;
    }

    .home_hero__mv .smb-spider-slider__figure-wrapper::before {
        padding-top: calc(16 / 9 * 100%);
    }

    .home_hero__copy-wrap {
        bottom: -104px;
    }

    .home_hero__copy-wrap .smb-container__body {
        width: 100%;
        padding-inline: 12px;
    }

    .home_hero__sub-copy {
        row-gap: 0;
    }

    .home_hero__main-copy {
        /* font-size: 1.5rem; */
    }

    .home_service-cards {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .home_reason__inner {
        padding-inline: 24px;
    }

    .home_area__item {
        padding-inline: 0;
    }

    /* ========== 人材派遣 ========== */
    .staffing_partner__tabs.smb-tabs[data-orientation=horizontal]>.smb-tabs__tabs {
        flex-wrap: wrap;
    }

    /* ========== 会社概要 ========== */
    .company_philosophy__heading {
        text-align: left;
    }

    .company_philosophy__lead {
        text-align: left;
    }

    .company_partner__table tr td:first-child {
        padding-block: 0;
        border-right: 0;
    }

    .form_thanks__title,
    .form_thanks__text p {
        text-align: left;
    }
}