@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/*========================================================
 * 共通パーツ
 =======================================================*/

.swell-block-fullWide {
	margin: 0 !important;
  padding: 0 !important;
}
.l-content {
    margin: 0 auto;
}
.w-beforeFooter {
	margin: 0 auto 3em;
}
.pc-only {
		display: block;
}
.sp-only {
		display: none;
	}
.dis-none {
	display: none;
}

@media screen and (max-width:844px) {
	.wp-block-image .alignright {
    margin: 0;
}
.pc-only {
		display: none;
	}
.sp-only {
		display: block;
}
}

/* width */
.width-type01 {
	max-width: 1200px;
    margin: auto;
}
.post_content h2.width-type01 {
	max-width: 1200px;
    margin: auto;
}
.width-type02 {
	max-width: 1200px;
    margin: auto;
	padding-left: 90px !important;
	padding-right: 90px !important;
	padding-bottom: 30px !important;
    border-left: 1px solid #E3E3E3;
	border-right: 1px solid #E3E3E3;
}
.width-type02.bd-top01 {
	border-top: 1px solid #E3E3E3;
}
.width-type02.bd-bottom01 {
	border-bottom: 1px solid #E3E3E3;
}
@media screen and (max-width: 844px) {
	.width-type02 {
    padding-left: 20px !important;
    padding-right: 20px !important;
    padding-bottom: 0px !important;
}
}

/* box */
.box-style01 {
	position: relative;
	top: -260px;
	padding: 450px 130px 130px !important;
	overflow: hidden;
}
.box-style02 {
	position: relative;
    /*top: -550px;*/
	overflow: hidden;
}
.box-style02 img {
	width: 50vw;
}
.box-style03 {
	position: relative;
    top: -260px;
	overflow: hidden;
}
.box-style03 img {
	width: 50vw;
}
.post_content .wp-block-columns .box-style04 {
	margin-bottom: 10px !important;
    border-radius: 24px;
}

@media screen and (max-width: 844px) {
	.box-style01 {
    top: 0;
    padding: 100px 0 !important;
}
	.box-style02 {
    top: 0;
}
	.box-style02 img {
    width: 100%;
}
	.box-style03 {
    top: -110px;
}
	.box-style03 img {
    width: 100%;
}
}

/* flex */
@media (min-width: 782px) {
    .wp-block-columns {
        justify-content: space-between;
    }
}

/* ライン */
.bd-line {
	border-bottom: 7px solid #005709;
}
.bd-type01 {
	border-bottom: 1px solid #707070;
}
.bd-type01::last-child {
	border-bottom: none;
}

/* border */
.post_content h4 {
	padding: 0 0 0 10px;
	border-left: none;
}
.wp-block-table {
    --table-border: 1px solid #262626;
}

/* a */
.is-style-more_btn a {
    color: #000;
    font-size: 16px;
	font-weight: bold;
}
.is-style-more_btn a:hover {
	color: #fff;
	border: 2px solid #fff;
}
[class*=is-style-btn_] .roundness a {
    border-radius: var(--the-btn-radius, 0);
}
 .roundness a {
    border-radius: 30px !important;
}
@media screen and (max-width: 844px) {
	.swell-block-button[data-align=right] {
    text-align: left;
}
}

/* 余白 margin */
.post_content li.margin-none {
	margin: 0;
}
.post_content>* {
    margin-bottom: initial;
}
.mt-type01 {
	margin-top: 105px !important;
}
.mt-type02{
	margin-top: 70px;
}
.swell-block-fullWide.mt-type02{
	margin-top: 70px !important;
}
.mt-type03 {
	margin-top: 10px;
}
.post_content h3.mt-type03 {
	margin-top: 10px;
}
.mt-type04 {
	margin-top: 45px !important;
}
.mt-type05 {
	margin-top: 60px;
}
.swell-block-fullWide.mt-type05 {
	margin-top: 60px !important;
}
.mt-type06 {
	margin-top: 365px;
}
.swell-block-fullWide.mt-type06 {
	margin-top: 365px !important;
}
.mt-type07 {
	margin-top: 0 !important;
}
.mb-type01 {
	margin-bottom: 70px !important;
}
.swell-block-fullWide.mb-type01 {
	margin-bottom: 70px !important;
}
.mb-type02 {
	margin-bottom: 90px;
}
.swell-block-fullWide.mb-type02 {
    margin-bottom: 90px !important;
}
.post_content .swell-block-fullWide__inner .mb-type02 {
    margin-bottom: 90px !important;
}
.mb-type03 {
	margin-bottom: 138px !important;
}
.post_content .mb-type03 {
    margin-bottom: 138px !important;
}
.mb-type04 {
	margin-bottom: 105px;
}
.swell-block-fullWide.mb-type04 {
    margin-bottom: 105px !important;
}
.mb-type05 {
	margin-bottom: 30px !important;
}
.post_content .swell-block-fullWide__inner .mb-type05 {
    margin-bottom: 30px !important;
}
.mb-type06 {
	margin-bottom: 38px !important;
}
.mb-type07 {
	margin-bottom: 25px !important;
}
.mb-type08 {
	margin-bottom: 45px;
}
 .swell-block-fullWide__inner .mb-type08 {
	margin-bottom: 45px;
}
.mb-type09 {
	margin-bottom: 10px;
}
.post_content h3.mb-type09 {
	margin-bottom: 25px;
}
.mb-type10 {
	margin-bottom: 85px;
}
.swell-block-fullWide.mb-type10 {
    margin-bottom: 85px !important;
}
.mb-type11 {
	margin-bottom: 65px;
}
.mb-type12 {
	margin-bottom: 50px;
}
.mb-type13 {
	margin-bottom: 60px !important;
}
.swell-block-fullWide__inner .mb-type13 {
    margin-bottom: 60px;
}
.mb-type14 {
	margin-bottom: 55px !important;
}
.mb-type15 {
	margin-bottom: -23vw !important;
}
.post_content .swell-block-fullWide.mb-type15 {
    margin-bottom: -23vw !important;
}
.mb-type16 {
	margin-bottom: -261px !important;
}
.post_content .swell-block-fullWide.mb-type16 {
    margin-bottom: -261px !important;
}
.mb-type17 {
	margin-bottom: 20px !important;
}
.mb-type18 {
	margin-bottom: 35px !important;
}
/* 19はspのみ */
.mb-type20 {
	margin-bottom: 465px !important;
}
.swell-block-fullWide .mb-type20 {
	margin-bottom: 465px !important;
}
.mb-type21 {
	margin-bottom: 125px !important;
}
.post_content .swell-block-fullWide .mb-type21 {
    margin-bottom: 125px !important;
}
.mb-type22 {
	margin-bottom: 250px !important;
}
.swell-block-fullWide .mb-type22 {
	margin-bottom: 250px !important;
}
.mb-type23 {
	margin-bottom: 170px !important;
}
.swell-block-fullWide .mb-type23 {
	margin-bottom: 170px !important;
}
.mb-type24 {
	margin-bottom: 80px !important;
}
.post_content .swell-block-fullWide .mb-type24 {
	margin-bottom: 80px !important;
}
.mb-type25 {
	margin-bottom: 0 !important;
}

@media (min-width: 600px) {
    .post_content h2.mb-type07 {
        margin-bottom: 25px;
    }
}
.alignfull>.wp-block-cover__inner-container>*, .alignfull>.wp-block-group__inner-container>*, .swell-block-fullWide__inner>* {
    margin-bottom: 0;
}
@media screen and (max-width: 844px) {
.mt-type05 {
    margin-top: 30px !important;
}
.swell-block-fullWide.mt-type05 {
    margin-top: 30px !important;
}
.mt-type06 {
    margin-top: 150px !important;
}
.swell-block-fullWide.mt-type06 {
    margin-top: 150px !important;
}
.mb-type01 {
	margin-bottom: 30px !important;
}
.mb-type02 {
	margin-bottom: 30px;
}
.swell-block-fullWide.mb-type02 {
    margin-bottom: 30px !important;
}
.post_content .swell-block-fullWide__inner .mb-type02 {
    margin-bottom: 30px !important;
}
.mb-type03 {
	margin-bottom: 80px;
}
.post_content .mb-type03 {
    margin-bottom: 80px;
}
.mb-type04 {
	margin-bottom: 105px;
}
	.mb-type06 {
    margin-bottom: 10px !important;
}
	.mb-type10 {
    margin-bottom: 15px;
}
	.swell-block-fullWide.mb-type10 {
    margin-bottom: 15px !important;
}
.mb-type14 {
    margin-bottom: 25px !important;
}
	.mb-type15 {
    margin-bottom: 0 !important;
}
	.post_content .swell-block-fullWide.mb-type15 {
    margin-bottom: 0 !important;
}
	.mb-type16 {
    margin-bottom: -1px !important;
}
	.post_content .swell-block-fullWide.mb-type16 {
    margin-bottom: -1px !important;
}
    .wp-block-columns .mb-type19 {
    margin-bottom: 45px !important;
}
.mb-type22 {
	margin-bottom: 100px;
}
.swell-block-fullWide .mb-type22 {
	margin-bottom: 100px !important;
}
.mb-type24 {
    margin-bottom: 30px !important;
}
	.post_content .swell-block-fullWide .mb-type24 {
    margin-bottom: 0 !important;
}
}

/* 余白 padding */
.paddig-type02 {
	padding: 15px;
}
.pl-type01 {
	padding-left: 15px !important;
}
.pr-type01 {
	padding-right: 15px !important;
}

.paddig-type01 {
	padding-top: 440px;
}
.pt-type02 {
	padding-top: 125px !important;
}
.pt-type03 {
	padding-top: 20px !important;
}
.pt-type04 {
	padding-top: 100px !important;
}
.pt-type05 {
	padding-top: 80px !important;
}
.pt-type06 {
	padding-top: 80px !important;
}
.pt-type07 {
	padding-top: 0 !important;
}
.pt-type08 {
    padding-top: 45px !important;
}
.pt-type09 {
    padding-top: 103px;
}
.pt-type10 {
    padding-top: 450px;
}
.pt-type11 {
    padding-top: 140px;
}
.pt-type11 {
    padding-top: 60px !important;
}
.pt-type12 {
    padding-top: 90px;
}
.swell-block-fullWide.pt-type12 {
    padding-top: 90px !important;
}
.pt-type13 {
    padding-top: 15px;
}

.pb-type01 {
	padding-bottom: 120px !important;
}
.pb-type03 {
	padding-bottom: 20px !important;
}
.pb-type04 {
	padding-bottom: 132px !important;
}
.pb-type05 {
	padding-bottom: 80px !important;
}
.pb-type06 {
    padding-bottom: 45px !important;
}
.pb-type07 {
    padding-bottom: 140px;
}
.pb-type08 {
    padding-bottom: 100px !important;
}
.swell-block-fullWide.pb-type08 {
    padding-bottom: 100px !important;
}
.pb-type09 {
    padding-bottom: 40px !important;
}
.pb-type010 {
    padding-bottom: 70px !important;
}
.pb-type011 {
    padding-bottom: 50px !important;
}
.pb-type012 {
    padding-bottom: 170px !important;
}
.swell-block-fullWide.pb-type012 {
    padding-bottom: 170px !important;
}
.pb-type013 {
    padding-bottom: 110px !important;
}
.swell-block-fullWide.pb-type013 {
    padding-bottom: 110px !important;
}


@media screen and (max-width: 844px) {
.swell-block-fullWide__inner .pl-type01 {
	padding-left: 25px;
}
	.pt-type04 {
	padding-top: 80px !important;
}
	.pb-type01 {
	padding-bottom: 60px !important;
}
	.pb-type04 {
    padding-bottom: 80px !important;
}
	.pt-type06 {
    padding-top: 45px !important;
}
	.pb-type08 {
    padding-bottom: 50px !important;
}
	.swell-block-fullWide.pb-type08 {
    padding-bottom: 50px !important;
}
.swell-block-fullWide.pb-type012 {
    padding-bottom: 80px !important;
}
}

@media (min-width: 960px) {
    .pc-py-60 {
        padding-bottom: initial;
        padding-top: initial;
    }
	 .pc-py-60.pt-type04 {
	padding-top: 100px !important;
}
	.pc-py-0.pt-type04 {
	padding-top: 100px !important;
}
	 
	 .pc-py-0.pt-type05 {
	padding-top: 80px !important;
}
	.pb-type02 {
	padding-bottom: 125px !important;
}
.pc-py-0.pb-type05 {
	padding-top: 80px !important;
}
}
/*@media not all and (min-width: 960px) {
    .sp-py-0.pt-type04 {
	padding-top: 100px !important;
}
}
@media screen and (max-width:844px) {
	
}*/
@media screen and (max-width: 844px) {
	.pt-type02 {
    padding-top: 70px !important;
}
	    .pt-type04 {
        padding-top: 30px !important;
    }
	.pt-type09 {
    padding-top: 45px;
}
	.pt-type11 {
    padding-top: 70px;
}
	.pb-type05 {
    padding-bottom: 50px !important;
}
	.pb-type07 {
    padding-bottom: 70px;
}
	.pb-type09 {
	padding-bottom: 25px !important;
}
}

/* 背景画像付きタイトル */
.title-style01 {
	background: url(https://2025test44.twowayztest.com/wp-content/uploads/2025/08/bg-homei.png) no-repeat center bottom 30px;
	background-size: 50%;
}
@media screen and (max-width: 884px) {
	.title-style01 {
	background-size: 100%;
}
}

/* メインテキスト用 */
* {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: normal;
  font-style: normal;
	font-size: 17px;
}
/* h2 */
.post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
	background: #E3E3E3;
    padding: 0;
    color: #000;
}
.post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::before {
    border-top: none;
    border-bottom: none;
}
@media (min-width: 600px) {
    .post_content h2 {
        font-size: 3.2em;
		line-height: 1.45em;
        margin: 0;
    }
}

@media screen and (max-width: 884px) {
	.post_content h2 {
    font-size: 1.7em;
	margin: 0;
}
}

/* h3 */
.post_content h3.h3-type01 {
	font-size: 2.4em;
	margin: 0 !important;
    padding: 0;
}
.post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::before {
    content: "";
    width: 100%;
    height: 2px;
    background: none;
}
.post_content h3.h3-type02 {
	font-size: 1.3em;
	margin: 0 !important;
    padding: 0;
}
@media (max-width: 600px) {
	.post_content h3.h3-type01 {
	font-size: 1.3em;
	margin: 0 !important;
    padding: 0;
}
}
@media screen and (max-width: 844px) {
	.post_content h3 {
    font-size: 1.2em;
    margin: 0.5em 0 0em;
}
}

/* テキスト */
.font-style01 {
	font-size: 40px;
    font-weight: bolder;
}
.post_content .font-style01 {
	font-size: 40px;
    font-weight: bolder;
}
.wp-block-column .font-style01 {
    margin: 0;
}
.post_content h2.font-style01 {
	font-size: 40px;
    font-weight: bolder;
}
.font-style02 {
	font-size: 25px;
    font-weight: bold;
}
.font-style03 {
	font-family: "Open Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-size: 79px;
  font-variation-settings: "wdth" 100;
	line-height: 1.075em;
}
.font-style04 {
	font-size: 17px;
	line-height: 2.647em;
}
.font-style05 {
	font-family: "Open Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 800;
  font-variation-settings: "wdth" 100;
	line-height: 1.075em;
	font-size: 129px;
}
.font-style06 {
	font-size: 30px;
	font-weight: bolder;
	line-height: 2.647em;
}
.font-style07 {
	padding-left: 15px;
    border-left: 7px solid #005709;
}
.font-style08 {
	margin: 0;
    padding-bottom: 0;
}
.post_content h3.font-style08 {
	margin: 0;
    padding-bottom: 0;
}
.font-style09 {
		text-align: center;
	}
.font-style10 {
	position: relative;
    bottom: -300px;
	}
.font-style11 {
	line-height: 2.6;
}

@media screen and (max-width: 844px) {
	.font-style01 {
	font-size: 18px;
}
.post_content .font-style01 {
	font-size: 22px;
	}
	.post_content h2.font-style01 {
    font-size: 29px;
}
.font-style02 {
    font-size: 18px;
}
	.font-style03 {
  font-size: 37px;
}
.font-style04 {
	line-height: 1.875em;
}
.font-style05 {
		font-size: 38px;
	
}
.font-style06 {
	font-size: 22px;
	line-height: 1.647em;
}
.font-style11 {
	line-height: 1.8;
}
}
/* ボタン */
[class*=is-style-btn_] a {
    border-radius: 0;
	padding: 0.75em 3.5em;
}

/* h2飾り文字 */
p.decoration {
	color: #fff;
    display: inline;
    font-size: 34px;
	font-weight: bold;
    padding: 0.125em 0.25em 0;
    background: #048211;
    line-height: 2;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}
@media screen and (max-width: 844px){
	p.decoration {
	font-size: 16px;
}
}

/*========================================================
 * menu
 =======================================================*/
.c-gnav>.menu-item>a .ttl {
    font-size: 17px;
}
	
/*========================================================
 * TOPページ
 =======================================================*/
.work-referral {
	height: 800px;
	position: relative;
    top: -170px;
	margin-bottom: -355px !important;
}
.location {
	position: relative;
    bottom: -320px;
}
.location01 {
	position: relative;
    top: -5px;
}
.top #content {
    padding-top: 0;
}
.page-id-53 div.has-background {
	padding: 0;
}
.top-font01 {
	position: relative;
	bottom: -300px;
}

.top-pt01 {
	padding-top: 80px !important;
}
.top-mb01 {
	margin-bottom: 15px !important;
}
.post_content h3.top-mb02 {
    margin-bottom: 25px;
}
.top-pd01 {
	padding-bottom: 80px !important;
}
.top-parent01 {
  display: flex;
  flex-direction: column;
}

@media screen and (max-width: 844px){
	.work-referral {
	height: 430px;
	top: -80px;
	margin-bottom: -140px !important;
}
	.location {
    bottom: -170px;
}
	.swell-block-fullWide.has-bg-img.size-type01 {
		background-size: contain;
	}
	.img-box01 {
	padding-bottom: 50px !important;
    background-position: bottom !important;
	}
	.swell-block-fullWide.has-bg-img.img-box01 {
    background-size: contain;
}
.top-box-style01_sp {
	margin: 35px 0 0;
    text-align: center !important;
}
	/* youtube */
.top-yt-box_sp {
	height: 185px;
}
.top-font01 {
	bottom: -170px;
}
.top-font010sp {
	font-size: 19px !important;
}
.top-font011sp {
	font-size: 35px !important;
}
.post_content div .top-box-mg01 {
		margin: 30px 0 40px !important;
}
.top-mb01 {
	margin-bottom: 5px !important;
}
.post_content div .wp-block-column.top-parent01 {
		margin-bottom: 50px !important;
}
.top-child01 {
    order: 2;
}
.top-child02 {
    order: 1;
}
.top-child03 {
    order: 3;
	margin-top: 5px !important;
  }
.post_content h3.top-mb02 {
    margin-bottom: 10px;
}
}
@media screen and (max-width: 330px){
	.p-mainVisual__inner {
		width: 80vw;
	}
	.p-mainVisual {
		background: #000;
	}
}

/*========================================================
 * 会社概要
 =======================================================*/
.about-mb01 {
	margin-bottom: 30px !important;
}
.about-parent01 {
  display: flex;
  flex-direction: column;
}
.post_content h3.about-mb02 {
    margin-bottom: 25px;
}

@media screen and (max-width: 844px) {
.page-id-12 [class*=is-style-btn_] a {
    padding: 0.75em 1.3em;
}
.about-box01 {
	min-height: 57px;		
	}
.text-left_sp {
		text-align: left
	}
.post_content div .about-mb01sp {
	margin-bottom: 30px !important;
}
.wp-block-column.about-parent01 {
	margin-bottom: 30px !important;
	max-width: 46.3% !important;
}
.about-child01 {
    order: 2;
}
.about-child02 {
    order: 1;
}
.about-child03 {
    order: 3;
	margin-top: 5px !important;
  }
.post_content h3.about-mb02 {
    margin-bottom: 10px;
}
}

/*========================================================
 * 事業紹介
 =======================================================*/
@media screen and (max-width: 844px) {
.page-id-473 [class*=is-style-btn_] a {
    padding: 0.75em 1.3em;
}
}

/*========================================================
 * 施工実績
 =======================================================*/
@media screen and (max-width: 844px) {
.page-id-510 [class*=is-style-btn_] a {
    padding: 0.75em 1.3em;
}
}

/*========================================================
 * 建築
 =======================================================*/
@media screen and (max-width: 844px) {
.page-id-503 [class*=is-style-btn_] a {
    padding: 0.75em 1.3em;
}
}

/*========================================================
 * 土木・インフラ
 =======================================================*/
@media screen and (max-width: 844px) {
.page-id-482 [class*=is-style-btn_] a {
    padding: 0.75em 1.3em;
}
}

/*========================================================
 * CSR 社会的責任
 =======================================================*/
@media screen and (max-width: 844px) {
.wp-block-columns .wp-block-column.contribution-mt01sp {
	margin-top: 50px !important;
}
.wp-block-column.contribution-mb01sp {
	margin-bottom: 30px !important;
}
.wp-block-column.contribution-mb02sp {
	margin-bottom: 30px !important;
}
.page-id-484 [class*=is-style-btn_] a {
    padding: 0.75em 1.3em;
}
}

/*========================================================
 * 持続可能な社会つくり
 =======================================================*/
@media screen and (max-width: 844px) {
.page-id-486 [class*=is-style-btn_] a {
    padding: 0.75em 1.3em;
}
}
/*========================================================
 * 数字で見る
 =======================================================*/
@media screen and (max-width: 844px) {
.page-id-638 [class*=is-style-btn_] a {
    padding: 0.75em 1.3em;
}
}

/*========================================================
 * 数字で見る
 =======================================================*/
@media screen and (max-width: 844px) {
.page-id-683 [class*=is-style-btn_] a {
    padding: 0.75em 1.3em;
}
}

/*========================================================
 * 私たちの強み
 =======================================================*/
@media screen and (max-width: 844px) {
.post_content div .strengths-mb01sp {
	margin-bottom: -25px !important;
}
.strengths-pb01sp {
	padding-bottom: 50px !important;
}
.page-id-488 [class*=is-style-btn_] a {
    padding: 0.75em 1.3em;
}
}


/*========================================================
 * footerパーツ
 =======================================================*/
.l-footer__widgetArea {
    border-top: 7px solid #048211;
}
.w-beforeFooter .wp-block-column {
	margin-bottom: 0;
}

/*========================================================
 * アニメーション
 =======================================================*/
/*文字が横に流れる*/
/*ul*/
.flows-text {
  display: flex;
  list-style: none;
  overflow: hidden;
}
/*li*/
.flows-text li {
  color:#000;
	font-size: 90px;
	font-weight: bolder;
  white-space: nowrap;
  animation: flows-left 47s linear infinite;/*秒数を変えて流れるスピードを変更*/
}
/*PCの時のフォントサイズ*/
@media (min-width: 600px) {
  .flows-text li {
    font-size: 90px;
  }
}
/*アニメーション*/
@keyframes flows-left {
  100% {
    transform: translateX(-100%);
  }
}

@media screen and (max-width: 844px) {
.flows-text li {
    font-size: 50px;
}
}