@charset "utf-8";

body {
    /* font-family: "Noto Sans JP", sans-serif; */
    letter-spacing: 1px;
}

.l-contents__inner:last-child {
    padding-bottom: 0;
}

/*======================= 共通クラス =======================*/
html {
    scroll-behavior: smooth;
    scroll-padding-top: 120px;
}
p,
a,
li,
td {
    /* font-family: "Noto Sans JP", sans-serif; */
    font-weight: 400;
}

p {
    margin-top: 0 !important;
}

h2 {
    margin-top: 0 !important;
    margin-bottom: 30px !important;
    font-size: 2.8rem;
    line-height: 1.5 !important;
    color: #001D3D!important;
}

a {
    text-decoration: none !important;
}

/* padding・margin左右上下リセット */
.p_0 {
    padding: 0 !important;
}

.m_0 {
    margin: 0 !important;
}

.p_20 {
    padding: 20px !important;
}

.pt_0 {
    padding-top: 0 !important;
}

.pb_0 {
    padding-bottom: 0 !important;
}

.pb_0 {
    padding-bottom: 0 !important;
}

.pl_0 {
    padding-left: 0 !important;
}

.pr_0 {
    padding-right: 0 !important;
}

.mt_0 {
    margin-top: 0 !important;
}

.mb_0 {
    margin-bottom: 0 !important;
}

.ml_0 {
    margin-left: 0 !important;
}

.mr_0 {
    margin-right: 0 !important;
}

/* padding・margin 10px・20px */
.pt_10 {
    padding-top: 10px !important;
}

.pb_10 {
    padding-bottom: 10px !important;
}

.pt_20 {
    padding-top: 20px !important;
}

.pb_20 {
    padding-bottom: 20px !important;
}

.pt_30 {
    padding-top: 30px !important;
}

.pb_30 {
    padding-bottom: 30px !important;
}

.mt_10 {
    margin-top: 10px !important;
}

.mb_10 {
    margin-bottom: 10px !important;
}

.mt_20 {
    margin-top: 20px !important;
}

.mb_20 {
    margin-bottom: 20px !important;
}

/* FLEX関連 */
.d_flex {
    display: flex;
}

.d_flex.f_wrap {
    flex-wrap: wrap;
}

.inline_b {
    display: inline-block;
}

.jc_ct {
    justify-content: center;
}

.jc_fs {
    justify-content: flex-start !important;
}

.jc_fe {
    justify-content: flex-end !important;
}

.ai_ct {
    align-items: center;
}

.fd_cm {
    flex-direction: column;
}

.fd_rr {
    flex-direction: row-reverse;
}

.gap_0 {
    gap: 0 !important;
}

.gap_10 {
    gap: 10px !important;
}

.gap_20 {
    gap: 20px !important;
}

/* Z-INDEX */
.z_0 {
    z-index: 0;
}

.z_1 {
    z-index: 1;
}

.z_999 {
    z-index: 999;
}

/* POSITION */
.p_ab {
    position: absolute;
}

.p_rel {
    position: relative;
}

.o_hidden {
    overflow: hidden;
}

.maru {
    /* font-family: "Zen Maru Gothic", serif; */
}

.mincho {
    /* font-family: "Shippori Mincho B1", serif; */
    font-weight: 500;
}

.br_20 {
    border-radius: 20px !important;
}

/* アイコン */
svg.svg-inline--fa {
    margin-right: 10px;
}

.p-global-nav--hover-extend-underline .c-navbar__item.cta:hover>a:after {
    width: 0;
}
/*======================= ボタン =======================*/
a.smb-btn {
    align-items: center;
    position: relative;
    z-index: 999;
    width: 300px !important;
    height: 50px;
    border: solid 1px var(--wp--preset--color--sm-accent);
    border-radius: 50vh;
    background-color: var(--wp--preset--color--sm-accent);
    color: #ffffff !important;
    font-weight: 500 !important;
}

a.smb-btn:hover {
    background-color: #ffffff;
    color: var(--wp--preset--color--sm-accent) !important;
    filter: brightness(100%);
    transition: .5s;
}

/*======================= ヘッダー =======================*/
/* g_nav */
.l-header {
    padding: 5px 0;
}
#menu-item-2212 {
    width: 158px; 
}
#menu-item-2212 a {
    height: 45px;
    background-color: #ffffff;
    color: var(--wp--preset--color--sm-accent) !important;
    border-radius: 50vh;
}

.c-row--middle {
    justify-content: center;
    align-items: center;
}

.c-navbar__item#menu-item-2212 {
    align-items: center;
}

.p-global-nav .c-navbar__item a:hover {
    color: #f77f00;
}

.p-global-nav .c-navbar__item>a {
    color: #ffffff;
}
.p-global-nav .c-navbar__item a:hover span {
    color: #f77f00;
}
@media (min-width: 1024px) {
    [data-scrolled=true] .l-header--sticky-overlay-colored-lg {
        box-shadow: none;
        background-color: #3c3d4980;
        color: #ffffff;
        backdrop-filter: blur(17px) brightness(.83);
        -webkit-backdrop-filter: blur(17px) brightness(.83);
    }
}

/* 下層ページヘッダー */
.c-page-header__title {
    font-size: 1.8rem !important;
}

.l-contents__inner {
    margin-top: 0 !important;
}

.c-page-header {
    padding: 100px 0 50px;
    background-color: var(--wp--preset--color--sm-accent);
    color: #ffffff;
    /* font-family: "Shippori Mincho B1", serif; */
}

.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;
}

.tel a {
    line-height: 1.1 !important;
}

.tel-num {
    font-size: 1.5rem !important;
}

.tel-num svg {
    font-size: 1.3rem;
}

.l-header span.time {
    padding-top: 10px !important;
    font-size: 14px !important;
    font-weight: 400;
}

/* spヘッダー */
@media (max-width: 1024px) {
    .l-header .c-fluid-container {
        padding: 0 5%;
    }
}

@media not all and (min-width: 1024px) {
    [data-scrolled=true] .l-header--sticky-overlay-colored-sm {
        background: #333333;
    }
}

.c-drawer {
    background-color: #132139f2;
}

.c-drawer__item {
    padding-bottom: 20px;
    font-size: 1rem;
    text-align: center;
}

.sp_contact {
    margin-top: 30px !important;
    padding: 13px 0;
    border: solid 1px #ffffff;
    text-align: center;
}

.l-header .c-hamburger-btn__bar {
    background-color: #ffffff;
}

.c-hamburger-btn__label {
    color: #ffffff !important;
}

.c-drawer__menu {
    padding-top: 50px !important;
}

.sp_contact {
    margin-top: 20px !important;
    border: solid 1px #ffffff;
    text-align: center;
}

/* TOPへ戻るボタン */
#page-top svg.svg-inline--fa {
    margin-right: 0 !important;
}

/*======================= フッター =======================*/
.l-footer {
    border-top: none;
    background-color: var(--wp--preset--color--sm-accent);
    color: #ffffff;
}
.l-footer .c-row__col--lg-1-2 {
    --_item-width: 100%;
}
.l-footer .wp-block-columns {
    gap: 100px;
}
.l-footer .footer_right {
    position: relative;
}
.l-footer .footer_right li {
    padding-bottom: 10px;
}
.l-footer .footer_right .sub-menu {
    display: block;
    border-bottom: none;
    border-top: none;
}
.l-footer .footer_right .sub-menu li {
    padding-bottom: 0;
}
.l-footer .footer_right .sub-menu li:before {
    content: "";
    display: inline-block;
    width: 10px;
    height: 1px;
    background: #fff;
    vertical-align: middle;
    margin-right: 10px;
  }
.l-footer .footer_right figure {
    position: absolute;
    right: 0;
    bottom: 0;
}
.footer-logo {
    width: 70%;
    margin-bottom: 20px !important;
    margin-left: 0 !important;
}
.l-footer .smb-buttons {
    gap: 15px;
}
.l-footer li a:hover {
    color: #F77F00;
}
.l-footer--footer-2 .l-footer__header {
    display: none;
}

.l-footer--footer-2 .l-footer__body {
    border-top: none;
}

.l-footer--footer-2 .l-footer__footer {
    padding: 0 0 20px 0;
    background-color: var(--wp--preset--color--sm-accent);
}

.l-footer-widget-area__item {
    margin-bottom: 0 !important;
}

.l-footer-widget-area__item a,
.l-footer-widget-area__item p {
    font-size: 1rem;
}

#block-7 .footer-btn {
    width: 100% !important;
}

#block-7 .footer-btn a {
    width: 100% !important;
    border: solid 1px #ffffff !important;
}

#block-7 .footer-btn a span {
    color: #ffffff;
}
.l-footer a.smb-btn {
    background-color: #fff;
    color: #001D3D!important;
}
.l-footer a.smb-btn:hover {
    background-color: #fff;
    color: #f77f00!important;
}
/*======================= TOP =======================*/
/* 画面全体を覆うマスク */
#opening-mask {
    margin-left: 0!important;
    margin-right: 0!important;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw!important;
    height: 100vh!important;
    background-color: #001D3D;
    z-index: 99999;
    display: flex;
    justify-content: center;
    align-items: center;
}
#opening-mask figure img {
    width: clamp(100px,300px,60vw);
}
.c-site-branding__title .custom-logo {
    width: 360px !important;
}
/* fv */
#fv video {
    filter: brightness(80%);
}

#fv .c-container.alignfull.c-container--no-padding,
#fv .smb-section__inner {
    position: static
}

.p_m {
    position: absolute;
    bottom: 5%;
    right: 5%;
}

h2 {
    /* font-family: "Shippori Mincho B1", serif; */
    font-weight: 700 !important;
}

#fv .fv-banner:hover {
    transform: scale(1.05);
    transition: .5s;
}
.fv_txt {
    padding-left: 5vw;
    font-size: 2.5rem;
    line-height: 1.4;
    color: #fff;
}
.fv_txt_big {
    font-size: 5rem;
}
.fv_txt_list p {
    padding: 5px 15px;
    font-size: 2.0rem;
    border: 2px solid #fff;
    border-radius: 5px;
}
/* 事業内容 */
.business-column {
    z-index: 999;
    padding: 20px 0;
}

.right-column {
    display: flex;
    justify-content: flex-end;
}

.top-column {
    width: 100% !important;
}

.bottom-column {
    position: absolute;
    top: 50%;
    right: 0;
    z-index: 0;
    transform: translateY(-50%);
    width: 100% !important;
    margin-top: 0 !important;
}

.t-bleft_figure img {
    aspect-ratio: 18/9 !important;
    object-fit: cover;
}

.bottom-column_left {
    position: absolute;
    top: 50%;
    left: 0;
    z-index: 0;
    transform: translateY(-50%);
    width: 100% !important;
    margin-top: 0 !important;
}

.rbusiness-column {
    justify-content: flex-end;
}

.t-bright_column {
    position: absolute;
    top: 50%;
    right: 9%;
    transform: translateY(-50%);
    max-width: 49%;
    min-height: 330px;
    padding: 40px;
    overflow: visible;
}

.t-left_column {
    position: absolute;
    top: 50%;
    left: 9%;
    z-index: 3;
    transform: translateY(-50%);
    max-width: 49%;
    min-height: 330px;
    padding: 40px;
    overflow: visible;
}
.service_inner {
    flex-wrap: wrap;
    gap: 10px;
}
.service_inner .smb-box {
    margin-top: 15px;
    margin-bottom: 30px;
    flex: 0 1 calc(33.333% - 20px);
    min-width: 200px;
}
.service_inner .smb-box__background {
    border: none;
}
.service_txt {
    max-width: 680px;
}
#service .smb-box {
    background: #e0e1dd;
}
#service .smb-box:hover {
    background: #fbceb4;
    transition: transform .6s ease;
}
#service .smb-box figure {
    margin-bottom: 5px;
    cursor: pointer;
    max-width: 500px;
    overflow: hidden;
    width: 100%;
}
#service .smb-box figure img {
    height: auto;
    transition: transform .6s ease;
}
#service .smb-box:hover figure img {
    transform: scale(1.1); /* 拡大 */
  }
#service .smb-box p {
    font-weight: bo;
}
/* 施工実績 */
/* 背景枠線 */
/* #work,
#greeting,
#mm,
#busi-flow {
    background-image: linear-gradient(0deg, transparent calc(100% - 1px), #f5f5f5 calc(100% - 1px)), linear-gradient(90deg, transparent calc(100% - 1px), #f0f0f0 calc(100% - 1px));
    background-position: center center;
    background-size: 60px 60px;
    background-repeat: repeat;
} */

#work .c-entries-carousel .spider__dots {
    margin-top: 0;
}

.spider__dots:not([data-thumbnails=true]) .spider__dot[aria-current=true] {
    background-color: #c6c6c6;
}

#work .c-entry-summary__figure {
    margin-bottom: 0;

    aspect-ratio: 5 / 3;
}

#work .c-entry-summary__title {
    padding: 10px;
    background-color: #565656;
    color: #ffffff;
    text-align: center;
}

/* スライダーの矢印を外に出す */
.wp-block-snow-monkey-blocks-spider-contents-slider {
    overflow: visible !important;
}

.spider__arrow[data-direction="prev"] {
    left: -50px !important;
}

.spider__arrow[data-direction="next"] {
    right: -50px !important;
}

/* スライドの矢印の色・太さ */
.spider__arrow[data-direction="prev"]:before,
.spider__arrow[data-direction="next"]:before {
    border-color: #2e2e2e !important;
}

/* .spider__arrow {
    border: 2px solid #ffffff !important;
    border-radius: 50% !important;
} */

.spider__arrow[data-direction=prev]:before {
    border-bottom: 4px solid var(--spider--arrow-color);
    border-left: 4px solid var(--spider--arrow-color);
}

.spider__arrow[data-direction=next]:before {
    border-top: 4px solid var(--spider--arrow-color);
    border-right: 4px solid var(--spider--arrow-color);
}

@media screen and (max-width: 1250px) {

    /* スライダーの矢印の位置調整 */
    .spider>.spider__arrows {
        top: 33% !important;
    }

    .spider__arrow[data-direction="prev"] {
        left: -8px !important;
    }

    .spider__arrow[data-direction="next"] {
        right: -8px !important;
    }

    .spider__arrow {
        border: none !important;
    }
}

/* 3つの施工 */
#reason .reason_logo {
    width: 180px;
}
#reason h2 .sme-text-color {
    font-size: 3.5rem;
}
#reason h3 {
    margin-top: 0;
    font-size: 2rem;
}
#reason .reason_num {
    font-size: 2.5rem;
}
/* 代表挨拶 */
.greeting_right {
    position: relative;
}
.greeting_right figure {
    width: 80%;
    opacity: .07;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}


/* 採用情報 */
#top-rec .top-rec_group {
    background-size: 180% 180%;
    border-radius: 0 !important;
}
#top-rec h2 {
    margin-bottom: 0 !important;
    font-size: 4.5rem;
    position:relative;
    color: #F77F00!important;
}
#top-rec h3 {
    margin-top: 0 !important;
    margin-bottom: 25px !important;
}
.top-rec_group {
    padding: 85px 50px;
}
.rec_tag-group {
    margin-bottom: 25px;
    gap: 15px;
    text-align: center;
}
.rec_tag {
    margin-bottom: 10px;
    padding: .25em 2em;
    border-radius: 100px;
    background-color: #ffffffe5;
    color: var(--wp--preset--color--sm-sub-accent);
    font-weight: 600;
}
#top-rec .wp-block-cover__image-background {
  filter: blur(10px);
  transform: scale(1.1);
  z-index: -1;
}
/*======================= CTA =======================*/
#cta .smb-panels__item__body {
    padding: 15px 0 !important;
}

#cta .smb-panels__item {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

#cta .panel_left .smb-panels__item {
    box-shadow: none;
    background: transparent;
    border-radius: 10px;
}

#cta .panel_right .smb-panels__item {
    background-color: var(--wp--preset--color--sm-accent);
    color: #ffffff;
    border-radius: 10px;
}

#cta .panel_right .smb-panels__item:hover {
    background-color: #ffffff;
    color: var(--wp--preset--color--sm-accent);
    transition: .5s;
}

#cta .panel_left .smb-panels__item {
    border: solid 1px var(--wp--preset--color--sm-accent);
    color: var(--wp--preset--color--sm-accent);
}

#cta .panel_left .smb-panels__item:hover {
    background-color: var(--wp--preset--color--sm-accent);
    color: #ffffff;
    transition: .5s;
}

#cta .cta_subttl {
    font-size: 1.5rem;
    font-weight: 600 !important;
}

#cta .cta_subttl.cta_subttl-l {
    font-size: 2.3rem !important;
    line-height: 1.3;
}

#cta .cta_icon {
    display: grid;
    position: absolute;
    top: 50%;
    left: 4%;
    transform: translateY(-50%);
    width: 55px;
    height: 55px;
    padding: 5px;
    border-radius: 100px;
    background-color: #ffffff;
    color: var(--wp--preset--color--sm-accent);

    place-items: center;
}

#cta .smb-panels__item:hover .cta_icon {
    background-color: var(--wp--preset--color--sm-accent);
    color: #ffffff;
}

#cta .cta_icon.cta_icon-left {
    background-color: var(--wp--preset--color--sm-accent) !important;
    color: #ffffff !important;
}

#cta .panel_left:hover .cta_icon.cta_icon-left {
    background-color: #ffffff !important;
    color: var(--wp--preset--color--sm-accent) !important;
}

#cta .cta_icon svg {
    margin-right: 3px !important;
    font-size: 1.3rem;
}
#scroll-images .c-container {
    max-width: 100vw!important;
}
/*============================================== TOP追加記載 =============================================*/

/*======================= h2_deco =======================*/
h2 {
    display: flex;
    flex-direction: column; /* 文字と装飾を縦に並べる */
    align-items: center;    /* 中央寄せ */
    gap: 10px;              /* 文字とひし形の間隔 */
    text-align: center;
  }

  h2::after {
    content: "";
    display: block;
    /* Tの横棒のサイズ */
    width: 40px; 
    height: 2px; 
    background-color: #212529; /* 色 */
    position: relative;
    /* Tの縦棒を疑似要素の中でさらに作成 */
    box-shadow: 0 0 0 0; /* 元の横棒を維持 */
    background: 
      /* 縦棒：中央に配置 */
      linear-gradient(#F77F00, #F77F00) no-repeat center bottom / 4px 15px,
      /* 横棒：上に配置 */
      linear-gradient(#F77F00, #F77F00) no-repeat center top / 100% 2px;
    height: 17px; /* 横棒2px + 縦棒15px */
   }
/* h2_deco なし*/
.h2_deco_none {
    display: block;
    text-align: left;
}
.h2_deco_none::after {
    display: none;
}
/*======================= wave =======================*/
#deco_wave .c-container {
    padding: 0;
}

.surf-wave-final {
    width: 100%;
    height: 120px; /* PCでの高さ */
    overflow: hidden;
    background-color: #ffffff; /* 背景色 */
    position: relative;
    line-height: 0;
    font-size: 0;
  }
  
  /* --- SVG本体の設定 --- */
  .surf-wave-final svg {
    display: block;
    width: 100%;
    height: 100%; /* 親の高さ120pxを100%使い切る */
  }
  
  /* --- 波のレイヤー共通設定 --- */
  .wave-layer {
    fill: #001D3D; 
    animation: wave-move-final linear infinite;
    will-change: transform;
  }
  
  /* 各レイヤーの透明度と速度（バラバラにして自然に見せる） */
  .wave-1 { animation-duration: 20s; }
  .wave-2 { opacity: 0.10; animation-duration: 30s; animation-direction: reverse; }
  .wave-3 { opacity: 0.05; animation-duration: 15s; }
  
  /* --- 無限ループアニメーション --- */
  @keyframes wave-move-final {
    0% { transform: translateX(0); }
    100% { transform: translateX(-1000px); } /* 1周期分スライド */
  }
/*======================= dotto bg =======================*/
.pattern-bg {
    background-image: radial-gradient(#fac994 1px, transparent 1px);
    background-size: 15px 15px;
    background-color: #ffffff;
}

#reason h2 {
    margin-bottom: 0!important;
}
/*スクロール画像*/
#scroll-images .scroll-wrap_images {
    padding: 0!important;
}
@keyframes scroll-left {
    from {
      transform: translateX(0);
    }
      to {
      transform: translateX(-100%);
    }
}
.scroll-wrap {
    display: flex;
    overflow: hidden;
    margin-top: 40px!important;
}
.scroll-list {
    display: flex;
    list-style: none;
    padding: 0;
}
.scroll-list--left {
    animation: scroll-left 50s infinite linear 0.5s both;
}
.scroll-item {
    margin-top: 0!important;
    width: calc(100vw / 4);
}
.scroll-item>img {
    width: 100%!important;
}
/*======================= 事業内容 =======================*/
.mm_column_l {
    position: relative;
    display: inline-block;
    z-index: 1;
}
.mm_column_l img {
    display: block;
    width: 100%;
    height: auto;
  }
.mm_column_l::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 50%; 
    left: 25%; 
    background-color: #001D3D; 
    opacity: 0.5;
    z-index: -1; 
}
#mm .smb-box h4 {
    font-size: 1.5rem;
}
#mm .smb-box figure img {
    border-radius: 10px;
}
.mm_list ul {
    padding-left: 0;
    list-style: none;
}
.mm_list li {
    padding: 10px 0 20px;
    border-bottom: 1px solid #f77f00;
}
.mm_list li a:hover {
    color: #f77f00;
}
.mm_list li a:hover strong::after {
    border-top: solid 2px #f77f00;
    border-right: solid 2px #f77f00;    
}
.mm_list li a strong {
    position: relative;
    display: block;
    padding-right: 20px;
}

.mm_list li a strong::after {
    content: '';
    width: 6px;
    height: 6px;
    border: 0;
    border-top: solid 2px #333;
    border-right: solid 2px #333;
    transform: rotate(45deg);
    position: absolute;
    top: 0;
    right: 5px;
    bottom: 0;
    margin: auto;
}
.mm_list li a:hover strong::after {
    right: 0;   
}
.mm_equipment {
    padding: 30px;
    background: #f7e8d8;
    border-radius: 10px;
}
.mm_equipment h6 {
    color: #f77f00;
}
.mm_equipment ul {
    margin-top: 15px;
}
.mm_equipment li::marker {
    color: #f77f00;
}
#business_map {
    height: clamp(460px,45vw,600px);
    position: relative;
    overflow: hidden;
}
#business_map .smb-container {
    margin-top: 0;
}
#business_map h2 {
    font-size: 4rem;
}
#business_map h3 {
    font-size: 2rem;
}
#business_map figure {
    width: 100vw;
}
#business_map figure img {
    width: clamp(100px,100vw,960px);
    position: absolute;
    top: -15vw;
    right: -20vw;
}
/*======================= 採用情報 =======================*/

#recruit-top a.smb-btn,
#ctar a.smb-btn {
    height: 55px;
    border: none;
    border-radius: 100px;
    background-color: #ffffffcf;
    color: var(--wp--preset--color--sm-sub-accent) !important;
    font-size: 1.2rem;
}

#recruit-top a.smb-btn:hover,
#ctar a.smb-btn:hover {
    background-color: var(--wp--preset--color--sm-sub-accent);
    color: #ffffff !important;
}

/* 画像付きトピック */
.topic_group {
    display: flex;
    gap: 20px !important;
    margin-top: 40px !important;
}

.rec_topic-group {
    margin: 0 !important;
    padding: 15px 0 15px 0;
    border-radius: 15px;
    box-shadow: 0 6px 16px 0 rgba(234, 234, 234, .234);
    background-color: #ffffff;
    color: var(--wp--preset--color--sm-accent);
}

p.rec_topic {
    color: var(--wp--preset--color--sm-sub-accent);
    font-size: 1.2rem;
    font-weight: 600;
    text-align: center;
}

.rec_topic span {
    width: fit-content;
    background-image: linear-gradient(transparent 60%, #d8ebffa3 30%);
}

.rec-sub {
    width: fit-content;
    margin-top: 20px !important;
    margin-bottom: 20px !important;
    font-size: 1.3rem;
}

.rec-sub strong {
    padding-bottom: 1px !important;
    border-bottom: double 4px;
}

/* ctar */
.ctar_column {
    position: relative;
    border-radius: 5px;
}
/*======================= 会社概要 =======================*/
.company_greeting_name {
    font-size: 1.5rem;
}
#company_greeting img {
    -webkit-mask-image: linear-gradient(to top, black 50%, transparent 75%);
    mask-image: linear-gradient(to top, black 50%, transparent 75%);
}
#company_greeting .smb-section__background-text__text {
    left: -10px;
    bottom: 40px;
    line-height: 0.85;
}
#company_greeting h3 {
    font-size: 2rem;
}
#company_greeting ul {
    margin-top: 10px;
}
#company_greeting li {
    font-weight: bold;
}
#company_staff .smb-container {
    border: 1px solid #001D3D;
    border-radius: 10px;
}
#company_staff figure {
    border-radius: 10px;
    background-color: #ccc;
}
#company_staff figure img {
    width: 80%;
    margin: 0 auto;
}
#company_staff ul {
    margin-top: 10px;
}
#company_staff .staff_name {
    margin-top: 10px;
    padding-bottom: 15px;
}
#company_staff .staff_name p:first-child {
    font-size: 1.5rem;
}
#company_staff .staff_name p:nth-child(2) {
    color: #b3b2b2;
}
#company_overview .wp-block-table td {
    padding: 30px 15px;
    border: none;
    border-bottom: 1px solid #001D3D;
}
#company_overview .wp-block-table td:nth-child(2){
    border-bottom: 1px solid #f77f00;
}
@media screen and (max-width: 435px) {

    figure.wp-block-table tr td:first-child,
    figure.wp-block-table tr td:first-child {
        width: 32%;
        font-size: 1rem !important;
    }
}

/* ページトップボタン */
.page-btn {
    padding: 30px;
}

.page-btn .wp-block-cover__inner-container {
    width: 400px;
}
/*======================= 施工実績 =======================*/
/* 一覧 */
.archive h2::after {
    display: none;
}
/* 投稿ページ */
.single-works .smb-container__body {
    padding: clamp(20px, 10%, 60px);
    border-radius: 10px;
    background: #f7f7f7;
}
.single-works .smb-container__body ul {
    display: flex;
    gap: 10px;
}
.single-works .smb-container__body li {
    margin-top: 0;
    padding: 10px 20px;
    border-radius: 5px;
    background: #fff;
    border: 1px solid #001D3D;
}
.single-works .smb-container__body li a {
    font-weight: bold;
    color: #001D3D;
}
.single-works .smb-container__body li a:hover {
    color: #f77f00;
}
.single-works .wp-block-table td {
    padding: 15px;
    border: none;
    border-bottom: 1px solid #f77f00;
}
.single-works .wp-block-table td:first-child {
    width: 150px;
    font-weight: bold;
}
/*======================= お問い合わせ =======================*/
#tel-cta .cta_subttl {
    font-size: 2.5rem;
}
#contact-form h2::after {
    display: none;
}
/* placeholder */
.smf-text-control__control::placeholder {
    color: #cccccc !important;
}

.smf-form--letter .smf-item {
    padding: 1.5rem 0;
}

/* 必須の文字 */
.smf-form--letter .smf-item__col--label {
    display: flex;
    gap: 10px;
    align-items: center;
    padding-bottom: 10px;
}

.smf-item__description {
    width: fit-content;
    margin-bottom: 7px;
    padding: .1em .8em;
    border-radius: 20px;
    background-color: #cd2b43;
    color: #ffffff !important;
    font-size: 14px;
    font-weight: 600;
}

.smf-item__label {
    color: var(--wp--preset--color--sm-accent);
    font-weight: 600;
}

.smf-form .smf-text-control__control,
.smf-form .smf-textarea-control__control {
    border: none !important;
}

/* 確認ボタン */
.smf-action .smf-button-control__control {
    position: relative;
    width: 100%;
    max-width: 400px;
    margin-top: 20px;
    padding-top: 1rem;
    padding-bottom: 1rem;
    border: solid 2px #2d2d2d !important;
    border-radius: 0;
    background: #333333;
    color: #ffffff;
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: 3px;
}

.smf-action .smf-button-control__control:hover {
    border: solid 2px #2d2d2d !important;
    background: #ffffff;
    color: #2d2d2d;
}

.smf-action .smf-button-control+.smf-button-control {
    margin-left: 0 !important;
}

.smf-action .smf-button-control__control {
    margin-bottom: 20px;
}

#autozip {
    display: none !important;
}

/* プライバシーポリシー */
#privacy h3 {
    margin-bottom: 10px !important;
    padding-left: 10px;
    border-left: solid 3px var(--wp--preset--color--sm-accent);
    font-weight: 700;
}

/*===================================== お知らせ =====================================*/
/* 一覧 */
.blog h2 {
    display: block;
    text-align: left;
    margin-bottom: 15px!important;
}
.blog h2::after {
    display: none;
}
/* 投稿 */
.single-post .c-page-header[data-align=center] .c-page-header__content {
    align-items: start;
}
.single-post .c-fluid-container {
    padding-top: 30px;
}
.c-meta__item--author {
    display: none;
}
.c-meta__item--modified {
    display: none;
}
/* 投稿(シンプル)のSPレスポンシブ */
@media screen and (max-width: 639px) {
    .c-entries--simple .c-entry-summary__content {
        display: block;
    }

    .c-entries--simple .c-entry-summary__figure {
        float: inherit;
        width: 100%;
        margin-bottom: 20px;
    }
}

/*=================================================================================*/
/*=================================== レスポンシブ ===================================*/
/*=================================================================================*/
@media screen and (max-width: 1180px) {
}

@media screen and (max-width: 1065px) {
    #recruit2 .rec2-column {
        display: block;
    }

    .rec2_child {
        margin: 0 10% 30px 10% !important;
    }
}

@media screen and (max-width: 1023px) {
    .c-page-header {
        padding: 130px 0 50px !important;
    }

    .c-widget.widget_block .wp-block-columns {
        margin-top: 30px;
    }

    [data-scrolled=true] .l-header--sticky-overlay-colored-sm {
        box-shadow: none;
        background-color: transparent;
        color: #ffffff;
        backdrop-filter: blur(17px) brightness(.53);
        -webkit-backdrop-filter: blur(17px) brightness(.53);
    }

    .l-header {
        box-shadow: none;
        background-color: transparent;
        color: #ffffff;
        backdrop-filter: blur(17px) brightness(.53);
    }

    /* TOP */
    #fv .fv-banner {
        width: 35%;
    }

    .bottom-column {
        top: 30%;
    }

    .t-bleft_figure img {
        aspect-ratio: 12/9 !important;
    }

    .l-header .c-hamburger-btn__bar {
        background-color: #ffffff;
    }

    .busi-logo {
        top: -3%;
        width: 53%;
    }
}


@media screen and (max-width: 910px) {
    .rec_arrow {
        top: inherit;
        right: 4%;
        bottom: 8%;
        transform: inherit;
        padding: 24px;
    }

    .reason_ttl-group {
        gap: 20px;
    }

    #reason h3 {
        z-index: 1;
        font-size: 1.7rem;
    }

    #reason .reason_num {
        font-size: 2.1rem;
    }
}

@media screen and (max-width: 850px) {
}

@media screen and (max-width: 800px) {
    .rec_arrow {
        padding: 20px;
    }

    .top-rec_group {
        padding: 65px 30px;
    }

}

@media screen and (max-width: 781px) {
    .c-widget.widget_block .wp-block-columns {
        gap: var(--_margin-2);
    }
    .l-footer  .widget_block .wp-block-columns {
        gap: 30px;
    }
    .l-footer .footer_right li {
        margin-bottom: 5px;
    }
    #page-btn {
        padding-bottom: 0 !important;
    }
    #page-btn .btn_column {
        gap: 0;
    }
    .page-btn {
        margin-top: 0 !important;
    }
    body #reason .rea_column:nth-child(even){
        flex-direction: column-reverse;
    }
    #mm .wp-block-spacer:first-child {
        display: none;
    }
    #company_greeting .wp-block-spacer {
        display: none;
    }
}
@media screen and (max-width: 768px) {
    .fv_txt {
        font-size: 1.5rem;
    }
    .fv_txt_big {
        font-size: 3rem;
    }
    body .fv_txt_list {
        flex-direction: column;
        align-items: start;
        gap: 10px;
    }
    .fv_txt_list p {
        font-size: 1.5rem;  
    }
    .service_inner .smb-box {
        flex: 0 1 calc(50% - 20px);
    }
    .service_inner .smb-box {
        margin-bottom: 0px;
    }
    .scroll-item {
        width: calc(100vw / 2);
    }
    #greeting {
        position: relative;
    }
    #greeting figure {
        position: absolute;
        right: 0;
        left: 0;
        width: 80%;
        opacity: 0.1;
    }
    #mm .smb-box .wp-block-group {
        flex-direction: column;
        gap: 10px;
    }
    #business_map h2 {
        font-size: 3rem;
    }
    #business_map h3 {
        font-size: 1.5rem;
    }
    #business_map figure img {
        right: -30vw;
        opacity: 0.5;
    }
    #company_staff .staff_name {
        flex-direction: column;
        align-items: start;
        gap: 5px;
    }

}
@media screen and (max-width: 720px) {
}

@media screen and (max-width: 700px) {
    .p_m {
        width: 30%;
    }

    .p_m img {
        width: 100%;
    }

    #top-rec h2 {
        font-size: 4rem;
    }

    .rec_arrow {
        bottom: 5%;
        width: 15%;
        padding: 28px;
    }

    .top-rec_group {
        padding: 85px 30px;
    }

    .c-row[data-md-columns="2"] {
        --_item-width: 100%;
    }
}

@media screen and (max-width: 650px) {
    h2 {
        font-size: 2.5rem;
    }

    .l-header.l-header--1row {
        padding: 0;
    }

    .l-header .c-fluid-container {
        padding-right: 15px;
        padding-left: 15px;
    }

    .l-footer--footer-2 .l-footer__widget-area {
        padding-top: 20px !important;
    }

    .l-footer--footer-2 .l-footer__widget-area a,
    .l-footer--footer-2 .l-footer__widget-area p {
        font-size: 15px;
    }

    #fv .fv-banner {
        bottom: -12%;
        width: 55%;
    }
    body #reason .smb-container .wp-block-group figure {
        width: 50vw;
    }
}

@media screen and (max-width: 550px) {
    .rec_arrow {
        bottom: 4%;
        width: 15%;
        padding: 22px;
    }

    .busi-logo {
        top: -1%;
        width: 75%;
    }

    #reason .reason_num {
        position: absolute;
        bottom: -35%;
        z-index: 0;
        color: #b8b8b8a2;
        font-size: 4.5rem;
    }
    body #reason .smb-container .wp-block-group {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
}

@media screen and (max-width: 500px) {
    .btn-center.smb-buttons {
        justify-content: center;
    }
    .service_inner .smb-box {
        flex: 0 1 calc(100% - 10px);
    }
    #recruit-top .wp-block-snow-monkey-blocks-buttons.smb-buttons {
        justify-content: center;
    }

    #recruit-top a.smb-btn,
    #ctar a.smb-btn {
        height: 48px;
    }

    .rec2_child {
        margin: 0 0 35px 0 !important;
    }

    /* CTA */
    #cta .cta_subttl.cta_subttl-l {
        font-size: 1.8rem !important;
    }

    #cta .cta_subttl {
        font-size: 1.2rem;
    }

    .rea_column {
        gap: 10px;
    }
}

/*=================================== SPレスポンシブ ===================================*/
@media screen and (max-width: 435px) {
    .c-container {
        padding: 0 5%;
    }

    h2 {
        font-size: 2rem;
    }

    .sp_none {
        display: none;
    }

    .c-page-header__title {
        font-size: 2rem !important;
    }

    .c-page-header {
        padding: 90px 0 40px !important;
    }

    /* TOP */
    .c-site-branding__title .custom-logo {
        width: 170px !important;
    }

    #fv .fv-banner {
        bottom: -8%;
        width: 63%;
    }
    .fv_txt,
    .fv_txt_list p {
        font-size: 1.2rem;
    }
    .fv_txt_big {
        font-size: 2.0rem;
    }
    .bottom-column {
        top: 20%;
    }
    #service .smb-buttons {
        justify-content: center;
    }
    .rec_img-ttl {
        top: -35%;
        width: 80%;
    }

    #top-rec h2 {
        font-size: 3.5rem;
    }

    .top-rec_group {
        padding: 0 20px;
    }

    .rec_tag {
        padding: .1em 1em;
    }

    .rec_arrow {
        bottom: 3%;
        width: 17%;
        padding: 17px;
    }
    /* ボタン */
    .smb-btn-wrapper,
    .s-btn {
        width: 100%;
    }
    a.smb-btn {
        width: 100% !important;
    }

    /* 事業内容 */
    .page-id-21 .c-page-header {
        background-position: 40% 11%;
    }

    .busi-logo {
        top: -1%;
        width: 85%;
    }
    #reason h3 {
        font-size: 1.3rem;
    }

    /* 会社概要 */
    .page-id-19 .c-page-header {
        background-position: 88% 24%;
    }
    #company_overview tr {
        display: flex;
        flex-direction: column;
    }
    #company_overview .wp-block-table td {
        width: 100%;
        padding: 15px;
        border-bottom: none;
    }
    #company_overview .wp-block-table td:first-child {
        font-weight: bold;
        background: #f7e8d8;
    }
    #company_overview .wp-block-table td:nth-child(2) {
        border-bottom: none;
    }
    /* 施工実績 */
    .single-works tr {
        display: flex;
        flex-direction: column;
    }
    .single-works .wp-block-table td,
    .single-works .wp-block-table td:first-child  {
        width: 100%;
        border-bottom: none;
    }
    .single-works .wp-block-table td:first-child {
        background: #f7e8d8;
    }
    /* お問い合わせ */
    .smf-form--letter .smf-item {
        padding: 1rem 0;
    }

    #cta .cta_icon {
        width: 35px;
        height: 35px;
    }

    #cta .cta_icon svg {
        font-size: 1rem;
    }

    #cta .cta_subttl.cta_subttl-l {
        font-size: 1.7rem !important;
    }

    #cta .cta_subttl {
        font-size: 1.1rem;
    }

    #cta .cta_txt {
        font-size: 15px;
    }

    /* フッター */
    .l-footer .c-container {
        padding: 0 5%;
    }

    .footer-logo {
        width: 70%;
        margin-bottom: 10px !important;
        margin-top: 15px !important;
    }

    .c-row__col.c-row__col--1-1.c-row__col--lg-fit {
        margin-bottom: 10px;
    }

    .l-footer--footer-2 .c-copyright {
        font-size: 12px;
        text-align: center;
    }

    .banner-e {
        width: 25%;
    }
    /* --- wave --- */
    surf-wave-final {
        height: 75px; /* 高さ*/
      }
    
      .surf-wave-final svg {
        /* 高さを維持したまま、波のうねりだけを横にゆったりさせる */
        transform: scaleX(2.5); 
        transform-origin: center;
      }
      
      /* 動きをさらにゆったり */
      .wave-1 { animation-duration: 30s; }
      .wave-2 { animation-duration: 45s; }
      .wave-3 { animation-duration: 25s; }
}

@media screen and (max-width: 350px) {
}

