@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
*/

.ta_c {
	text-align: center;
}
.ta_l {
	text-align: left;
}
.ta_r {
	text-align: right;
}
.br5 {
	border-radius: 5px;
}
.wm {
	writing-mode: vertical-rl;
	display: inline-block;
}
.wm_vr {
	writing-mode: vertical-rl;
	vertical-align: top;
    display: inline-block;
	text-align: left;
	margin-left: 10px;
}
@media(max-width: 781px){
	.wm_vr {
		margin: 0 20px;	
		writing-mode: initial;
		vertical-align: initial;
		text-align: center;
	}
	.fdirection_re {
		flex-direction:column-reverse;
		flex-wrap: initial !important;
	}
}
.cgap {
	gap: 0.2em !important;
}
.ml-5 {
	position: relative;
	left: -5px;
}
.mlr10 {
	margin: 0 10px;
}
.pb0 {
	padding-bottom: 0;
}
.position-re {
	position: relative;
}
.w100vw {
	width: 100vw;
}

/* ブログカテゴリ */
.c-categoryList__link {
	border-radius: 20px;
}
.c-categoryList__link, .c-tagList__link, .c-taxList__link {
	margin: 5px 5px 5px 0;
    padding: 8px 1.5em;
}
.p-termNavigation {
	font-size: 12px;
}

/* 見出し */
/* =========================================== */
/* トップページh2 */
.top__h2 {
	margin-bottom: 3em !important;
}
.top__h2 p {
	text-align: center;
	font-weight: bold;
	color: var(--color_main);
	letter-spacing: 0.06em;
	font-size: 18px;
}
.top__h2 h2 {
	text-align: center !important;
	margin: 0;
	background: none;
	color: black;
	padding: 0;
	letter-spacing: 0.1em;
	margin-bottom: 5px;
}
.top__h2 h2:before {
	display: none;
}
/*@media (min-width: 600px){*/
	.top__h2  h2 {
		font-size: 2.5em;
	}
/*}*/
@media(max-width: 781px){
	.top__h2 {
		margin-bottom: 1.5em !important;
	}
}
/* 各固定ページh2 */
.page__h2 p {
color: var(--color_main);
font-size: 1.2em;
font-weight: bold;
}
.page__h2 h2 {
background-color: initial !important;
padding: 0 !important;
color: black !important;
margin-top: 0.2em;
font-size: 2rem;
letter-spacing: 0.1em;
}
.page__h2 h2:before {
display: none;
}
/* 施工実績h3 */
.blog_work__h3 {
	margin-top: 80px;
	color: var(--color_main);
}
.blog_work__h3 h3 {
	padding: 0;
}
.blog_work__h3 h3:before {
	content: initial !important;
}
@media (min-width: 600px){
	.blog_work__h3 h3 {
		font-size: 1.5em !important;
	}
}
.page-child h1 {
	color: black !important;
}
.h2_head {
	margin-top: 120px !important;
}
.h2_under {
text-align: left !important;
}
.h2-flex {
display: flex;
gap: 7px;
}
.h2-flex-left {
height: 2px;
width: 60px;
background-color: var(--color_main);
}
.h2-flex-right {
height: 1px;
width: 100%;
background-color: #bbb;
}

/* テーブル */
.wp-block-table td, .wp-block-table th {
    padding: 1.5em 1.75em;
}
th {
	background-color: var(--color_main_thin) !important;
}
@media(max-width: 781px){
	.wp-block-table td, .wp-block-table th {
		padding: 1em 1em;
	}
	th:not(.shikaku-tbl th, .sch-tbl th) {
		border-bottom: none !important;
	}
	td:not(.shikaku-tbl td, .sch-tbl td) {
		border-top: none !important;
	}
}

/* ========================================================================= */
/* 背景 */
/* ========================================================================= */
.l-mainContent__inner > .post_content {
  padding: 0 !important;
}
.bg-line {
  /*max-width: 1200px;
	width: 60vw;*/
	/*width: 1200px;*/
	position: absolute;
  height: 100%;
  margin: auto;
  border-left: 1px solid #b3b3b34d;
  z-index: 1;
  border-right: 1px solid #b3b3b34d;
  top: 50%;
  left: 50%;
	inset: 0;
	
	max-width: calc((var(--container_size, 0px) + var(--swl-pad_container, 0px)*2) - var(--swl-pad_container,0)*2);
	
}
.bg-line:before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 1px;
  border-right: 1px solid #b3b3b34d;
  margin: auto;
}
@media(max-width:1313px){
	.bg-line {
		margin-left: var(--swl-pad_container,0);
    margin-right: var(--swl-pad_container,0);
	}
}

/* スライドショー */
.eb-slider-wrapper.eb-slider-dthl5pf .slick-dots li {
	margin-right: 5px;
}
.slick-dots li {
	width: 30px !important;
    height: 2px !important;
}
.slick-dots li button {
	width: 35px !important;
    height: 2px !important;
	padding: 3px !important;
}
.slick-dots li button:before {
	width: 35px !important;
    height: 2px !important;
	content: "" !important;
	background: black;
}
.eb-slider-wrapper.eb-slider-dthl5pf .slick-dots {
	bottom: -20px !important;
}

/* バナー */
.c-bannerLink__img {
	transition: transform .4s,-webkit-transform .4s;
}

/* ボタン */
/* =========================================== */
.page-all a.swell-block-button__link {
	padding: 40px 35px;
	border-radius: 5px;
	font-weight: bold;
}

/* KV */
/* =========================================== */
.p-mainVisual__textLayer {
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: center;
    left: 50%;
    position: absolute;
    top: 0;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 100%;
    z-index: 3;
}
.p-mainVisual__textLayer:before {
    content: "";
    display: inline-block;
	width: 220px;
    height: 100%;
	background: url(/wp-content/uploads/2023/10/logo_top.png) no-repeat;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    align-self: center;
}
@media(max-width: 781px){
	.p-mainVisual__textLayer:before {
		width: 150px;
		padding: 20px 0;
	}
}

/* 各ページKV */
@media (min-width: 600px){
	.l-topTitleArea {
		min-height: 320px;
		padding: 1em 0;
	}
}

/* 横幅いっぱいのおまじない */
.full-width {
    position: relative;
    width: 100vw;
    left: 50%;
    transform: translateX(-50%);
}
.full-content {
    max-width: 1200px;
    margin: auto !important;
}

/* swiper_js */
.swiper, .swiper-wrapper {
	overflow: visible;
}
.swiper-button-prev, .swiper-button-next, .swiper-pagination-bullets.swiper-pagination-horizontal {
	display: none;
}
.swiper-pagination-bullet {
	background: #b0040e;
}
#drag {
	cursor: url(/wp-content/uploads/2023/10/cursor.png),auto;
}

/* トップページ */
/* ====================================================== */

/* 企業案内へ */
/* a link */
.yorokobi {
	color: var(--color_main);
	font-size: 1.1em;
}
.company__contents {
	position: relative;
	border-radius: 10px;
}
.company__contents a {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    z-index: 3;
}
.company__head img {
	display: grid;
	width: 100%;
	border-radius: 10px;
    height: 200px;
    object-fit: cover;
}
.company__body {
	margin-top: 10px;
}
.company__item .c-bannerLink__title {
	font-size: 1.7em !important;
    font-weight: bold;
    letter-spacing: 0.08em;
}
.company__item .c-bannerLink__description {
	border: 1px solid white;
    padding: 8px 50px;
    border-radius: 5px;
    width: auto;
	margin-top: 1.5em;
	font-weight: bold;
	font-size: .7em;
}
.company__item .c-bannerLink {
	transition: all 0.4s ease;
}
.company__item .swell-block-bannerLink:hover .c-bannerLink {
	background-color: rgb(22 22 22 / 50%) !important;
	opacity: 1 !important;
	transition: all 0.4s ease;
}
.company__item .swell-block-bannerLink:hover .c-bannerLink__description {
	background: white !important;
	color: var(--color_main);
	transition: all 0.4s ease;
}
	
/* 会社概要 */
h1.about-area {
    font-size: 2.5em;
	margin-bottom: 1.5em;
}
.company_slider .eb-slider-wrapper.eb-slider-dthl5pf .slick-slide > * {
	padding: 0 5px 0 0;
}
.company_slider .eb-slider-wrapper.eb-slider-dthl5pf .slick-slider .eb-slider-item img {
	border-radius: 5px;
}
.company-mes {
	max-height: 450px;
    margin: 0 20px;
}

/* 施工実績 */
.works-area .c-postThumb__figure {
	min-height: 450px;
}
.nishino-area {
	padding: 0 40px;
}
.m-m {
	margin-bottom: -250px;
    z-index: 1;
}
.icon-folder:before {
	display: none;
}
.p-postList__cat {
	background: #b0040e;
	padding: 3px 15px;
	border-radius: 30px;
	color: white;
}
.l-footer {
    background-color: #2d2929;
	color: white;align-content
}
.w-footer__box img {
	width: 100px;
}

/* 施工実績（一覧） */
.category h1 {
	padding-bottom: 20px;
}
.category .c-pageTitle[data-style=b_bottom] {
	border-bottom: none;
	text-align: center;
}
.category .c-pageTitle[data-style=b_bottom] .c-pageTitle__inner {
	float: initial;
	border-bottom: none;
}
.category .c-pageTitle__subTitle {
	display: none;
}
.category-2 h1:before {
	content: "WORKS";
}
/*.category-9 h1:before {
	content: "SEAWALL";
}
.category-10 h1:before {
	content: "BRIDGE"	;
}
.category-11 h1:before {
	content: "DRILLING"	;
}
.category-12 h1:before {
	content: "CONTROL"	;
}
.category-13 h1:before {
	content: "ROAD"	;
}
.category-18 h1:before {
	content: "FOREST PATH"	;
}*/
.category h1:before {
    position: absolute;
    font-size: 4rem;
    color: #d9d9d9;
    z-index: -1;
    bottom: 0;
    width: 100%;
    left: 0;
}

/* 西の郷産業 */
.nishi__item .c-bannerLink__title {
	font-size: 1.7em !important;
    font-weight: bold;
    letter-spacing: 0.08em;
}
.nishi__item .c-bannerLink__description {
	border: 1px solid white;
    padding: 8px 50px;
    border-radius: 5px;
    width: auto;
	margin-top: 1.5em;
	font-weight: bold;
	font-size: .7em;
}
.nishi__item .c-bannerLink {
	transition: all 0.4s ease;
}
.nishi__item:hover .c-bannerLink {
	background-color: rgb(22 22 22 / 50%) !important;
	opacity: 1 !important;
	transition: all 0.4s ease;
}
.nishi__item:hover .c-bannerLink__description {
	background: white !important;
	color: var(--color_main);
	transition: all 0.4s ease;
}
.nishi-mes {
	max-height: 350px;
    margin: 0 20px;
}
.pb0 .eb-slider-wrapper {
	padding-bottom: 0;
}
.nishi-img .eb-slider-image {
	border-radius: 5px;
}

/* お知らせ */
.news__h2 {
	display: flex;
}
.news-jp {
	margin: 0 20px 0 0 !important;
	line-height: 1 !important;
}
.news-eg {
	align-self: flex-end;
}
.category__item .swell-block-linkList__link {
	padding: 8px 33px;
	border: 0 !important;
	color: var(--color_main) !important;
	font-weight: bold;
}
.category__item .swell-block-linkList__link:hover {
	color: white !important;
	background: var(--color_main) !important;
}
.news-width {
	max-width: 800px;
	margin: 0 auto;
}
@media(max-width:847px){
	.news__content {
		display: grid;
	}
}

.p-postList.-type-simple {
	border: none;
}
.-type-simple .p-postList__item {
	border: 1px solid var(--color_border);
	margin-bottom: 15px;
	border-radius: 5px;
}
.-type-simple .p-postList__link {
	padding: 1em 2em;
	border: none;
	background: white !important;
	transition: all 0.4s ease;
}
.-type-simple .p-postList__link, .-type-simple .p-postList__link {
	border-radius: 5px;
}
.-type-simple .p-postList__link:hover {
	box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.3);
	transition: all 0.4s ease;
}
.-type-simple .p-postList__item:hover {
	border: 1px solid white;
}

/* 会社概要 */
/* ================================================================= */
.com-link-border {
	margin: 2.5em 0 1.5em;
}
.com-link {
    --the-gap: .5em 1em;
    justify-content: right;
}
.com-link span.swell-block-linkList__text {
	font-size: 14px;
    font-weight: bold;
}
.com-link a:hover {
	text-decoration: none !important;
}
.com-link .swell-block-linkList__link {
	gap: 0.4em;
}

/* 施工実績（ブログ詳細） */
/* ================================================================= */
.work_b_info dl {
	margin-bottom: 20px;
}
.work_b_info dt {
	color: var(--color_main);
}
.sticky {
	position: sticky !important;
	top: 110px;
}

/* フッター */
/* ================================================================= */
.footer-left p {
	color: #b5b5b5;
	font-size: 12px;
}
.footer-left p:not(:last-child) {
	margin-bottom: 5px;
}
.footer-left p a:hover {
	text-decoration: underline;
}
.w-footer .w-footer__box:not(:first-child) {
	align-self: flex-end;
}
#media_image-3 {
	text-align: right;
}
#media_image-3 img {
	background: white;
	border-radius: 3px;
	width: 125px;
}
@media(max-width: 959px) {
	.l-container.w-footer.-col3 {
		position: relative;
	}
	.w-footer__box:last-child {
		position: absolute;
		bottom: 0;
		right: 20px;
	}
	#media_image-3 img {
		width: 95px;
	}
}
.footer-menu li {
	color: #b5b5b5;
	margin-bottom: 5px;
}
.footer-menu li:last-child {
	margin-bottom: 0;
}
.footer-menu li a:hover {
	color: white;
}

/* 文字・アニメーションループ */
.home article {
	overflow: hidden;
	line-height: 1;
	font-weight: bold;
	color: #f0f0f0b3;
}

.loop_wrap {
	display: flex;
	width: 100%;
	height: auto;
	overflow: hidden;
}

.loop_wrap div {
	flex: 0 0 auto;
	white-space: nowrap;
	font-size: 180px;
	overflow: hidden;
}

.loop_wrap div:nth-child(odd) {
	animation: loop 80s -40s linear infinite;
}

.loop_wrap div:nth-child(even) {
	animation: loop2 80s linear infinite;
}

@keyframes loop {
	0% {
		transform: translateX(-100%);
	}

	to {
		transform: translateX(100%);
	}
}

@keyframes loop2 {
	0% {
		transform: translateX(-200%);
	}

	to {
		transform: translateX(0);
	}
}
@media(max-width: 781px){
	.loop_wrap div {
		font-size: 80px;
	}
}

#before_footer_widget {
	margin-bottom: 0;
}