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

@font-face {
    font-family: 'GenEiLateMin_v2';
    src: url( "fonts/GenEiLateMin_v2.woff") format('woff'); /* medium */
    font-weight: normal;
    font-style: normal;
   }


.roboto-<uniquifier> {
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
}

.font-style-din{
	font-family: "din-2014-narrow", sans-serif;
	font-weight: 700;
	font-style: normal;
	margin-top:-10px;
}  

html {
    font-size: 62.5%;
} 

.h2-japanese{
	margin-bottom: -24px!important;
	font-weight: 400!important;
	font-size: 18px!important;
}


/* お困りの方ボタン */

.my-chatbox-show-btn-area img {
    width: 46px !important;
    margin-bottom: 0px;
    background-color: #fff;
    padding: 7px;
    border-radius: 30px;
}
div#js_chatbox_show_btn_area{
	right: 0;
	display: flex !important;
}
.my-chatbox-header{
	background-color: #F6042D!important;
}
.botui-actions-buttons-button{
	color: rgb(246 4 46)!important;
	    border: 1px solid rgb(246 4 46)!important;
}
.my-container-fluid{
	background-color: #F6042D!important;
}

.fixed-help-btn {
	position: fixed;
    right: 0;
    top: 70%;
    transform: translate(20px, -50%);
    z-index: 9999;
    width: 74px;
    height: 280px;
    background: #f6042d;
    color: #fff;
    border-radius: 14px 0 0 14px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    text-decoration: none;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .12);
    overflow: hidden;
    transition: transform .3s ease, opacity .3s ease;
    padding-right: 20px;
}

.fixed-help-btn__text {
  writing-mode: vertical-rl;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.4;
}

.fixed-help-btn__icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.fixed-help-btn__icon img {
  width: 30px;
  height: auto;
  display: block;
}

.fixed-help-btn:hover {
  transform: translate(0px, -50%);
  opacity: .95;
}

/* top__header */

.c-gnav{
	align-items: center;
}
.top__header_area{
    position: absolute;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--swl-pad_container, 0);
    padding-right: var(--swl-pad_container, 0);
}

.top__header_inner{
    display: flex;
    justify-content: space-between;
    padding: 16px 0;

}

.top__header_left{
    max-width:280px;

}
.top__header_rigth{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.top__header_rigth > a > img{
    padding: 0 16px;
    max-height: 48px;
}



@media not all and (min-width: 960px){
    .top__header_area{
        display: none;
    }
}
/* top__cv */
.top__cv,.page__cv{
    position: fixed;
    z-index:10;
    right: 0;
    top: 60%;
}
.top__cv > a >img,.page__cv > a > img{
    max-height: 240px;
    width: auto;
    opacity: 0.9;
}

.home .page__cv{
    display: none;
}

.page .page__cv{
    display: block;
}

/* bottom__header */

.l-header{
    position: sticky;
    top: 0;
}

.l-header__inner{
    display: flex;
    justify-content: space-between;
    align-items: center;
	max-width: none;
    width: 100%;
    height: 80px;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--swl-pad_container, 0);
    padding-right: var(--swl-pad_container, 0);
}

@media not all and (min-width: 960px){
    .l-header__inner{
        height: 56px;
    }
    
    
}
.w-header__inner{
    display: flex;
    justify-content: space-between;
}

.w-header__inner > div >a>img{
    max-height: 40px;
    width: auto;
    padding-left: 8px;
}

/* bottom__header */
.c-gnav>.menu-item{
	height: 24px;
}

.c-gnav>.menu-item>a{
    padding: 0 16px;
    font-weight: 400;
}

.menu-item>a{
    font-size: 1.4rem;
    padding-bottom: 4px;
}
.c-gnav>.menu-item:nth-of-type(1),.c-gnav>.menu-item:nth-of-type(2),.c-gnav>.menu-item:nth-of-type(3){
	border-right: solid 1px #333;
}


.c-gnav > .menu-item:nth-of-type(5), .c-gnav>.menu-item:nth-of-type(6){
	color:  #ffffff;
	letter-spacing: 1px;
    padding: 10px 20px;
    margin-left: 12px;
    font-size: 16px!important;
    box-shadow: none;
	font-family: "Roboto", sans-serif;
	font-optical-sizing: auto;
	font-weight: 200;
	font-style: normal;
	font-variation-settings: "wdth" 100;
}


.c-gnav > .menu-item:nth-of-type(5),.c-gnav > .menu-item:nth-of-type(6) {
  position: relative;
  overflow: hidden;
  background-color: #45aeda;
  border: 1px solid #45aeda;
  border-radius: 30px;
  letter-spacing: 1px;
  padding: 20px 24px;
  margin-left: 12px;
  box-shadow: none;
  transition: border-color 0.3s ease;
}

.c-gnav > .menu-item:nth-of-type(6) {
	background-color: #F6042D;
	border: 1px solid #F6042D;
}

/* 左から出てくる反転背景 */
.c-gnav > .menu-item:nth-of-type(5)::before,.c-gnav > .menu-item:nth-of-type(6)::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #ffffff;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s ease;
  z-index: 0;
}

.c-gnav > .menu-item:nth-of-type(5)::before,.c-gnav > .menu-item:nth-of-type(6)::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #ffffff;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s ease;
  z-index: 0;
}

/* ホバー時：白背景が左から広がる */
.c-gnav > .menu-item:nth-of-type(5):hover::before,.c-gnav > .menu-item:nth-of-type(6):hover::before {
  transform: scaleX(1);
}

/* 中のリンクを前面に */
.c-gnav > .menu-item:nth-of-type(5) > a,.c-gnav > .menu-item:nth-of-type(6) > a {
  position: relative;
  z-index: 1;
  color: #ffffff;
  transition: color 0.3s ease;
}

/* ホバー時：文字を青に */
.c-gnav > .menu-item:nth-of-type(5):hover > a {
  color: #45aeda;
}

.c-gnav > .menu-item:nth-of-type(6):hover > a {
  color: #F6042D;
}

.menu-item-28>a>span::after,.menu-item-29>a>span::after,.menu-item-31>a>span::after,.menu-item-32>a>span::after,.menu-item-33>a>span::after{
    position: absolute;
    top:20px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 1.0rem;
    font-weight: 300;

}
.menu-item-28>a>span::after{
    /* サービス */
    content: "Service";
}

.menu-item-29>a>span::after{
    /* プラン */
    content: "Plan";
}

.menu-item-31>a>span::after{
    /* 客室 */
    content: "Room";
}
.menu-item-32>a>span::after{
    /* 観光紹介 */
    content: "Sigheseeing";
}
.menu-item-33>a>span::after{
    /* 質問 */
    content: "Q&A";
}

.c-gnav > li:hover > a, .c-gnav > .-current > a{
    /* hover */
    background: inherit;
    opacity: 0.8;

}

/* midashi */
.h2-midashi-red,.h2-midashi-black {
  display: block;
  width: fit-content;
  max-width: 100%;
  background: #f7062f;
  color: #fff;
  font-size: clamp(24px, 3vw, 40px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
  padding: 16px 56px 16px 32px!important;
  margin: 0 auto;
  clip-path: polygon(0 0, 100% 0, calc(100% - 24px) 100%, 0 100%);
  font-size: 50px!important;
}

.home .h2-midashi-red{
	padding: 16px 36px 16px 32px!important;
}

.wp-block-heading.h2-midashi-red{
  display: block !important;
  width: fit-content !important;
  max-width: calc(100% - 40px);
  margin-left: auto !important;
  margin-right: auto !important;
}
	.home .wp-block-heading.h2-midashi-red {
	 font-size: 2.9vw !important;
  }

.wp-block-heading.h2-midashi-black{
  display: block !important;
  width: fit-content !important;
  max-width: calc(100% - 40px);
  margin-left: 0px !important;
  margin-right: auto !important;
	font-size: 50px !important;
}

/* mv */

.mv-svg {
  width: 100%;
  height: 100%;
  display: block;
	margin-top: 10%;
}

.mv-design-layer {
  position: absolute;
  inset: 0;
  z-index: 20;
  pointer-events: none;
}

.mv-deco-svg {
  position: absolute;
  top: 50%;
  left: 0;
	transform: translatey(25%);
  width: 60vw;
  height: auto;
  display: block;
	max-width:880px;
}

@media screen and (max-width: 782px){
	.mv-deco-svg {
		position: relative;
        width: 75vw;
        top: inherit;
        transform: inherit;
        height: auto;
        display: block;
        max-width: 880px;
        margin-top: -70px;
	}
}



/* img_slider */
.p-mainVisual__slide {
  position: relative;
  overflow: hidden;
 z-index: -1;
}
.p-mainVisual__slide {
  position: relative !important;
  overflow: hidden !important;
}

.p-mainVisual__slide .p-mainVisual__imgLayer {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: auto !important;
  width: 90% !important;
  height: 100% !important;
  margin: 0 !important;
}

.p-mainVisual__slide .p-mainVisual__img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}


@media screen and (min-width: 960px) {
    .p-mainVisual__inner {
        height:50vw;
    }
}

	
/* mv-text */
.p-mainVisual__inner {
  position: relative;
}

.p-mainVisual__inner .swiper-wrapper {
  position: relative;
  z-index: 1;
}

.mv-design-layer {
  position: absolute;
  inset: 0;
  z-index: 999;
  pointer-events: none;
}

.mv-test-text {
  position: absolute;
  left: 40px;
  top: 160px;
  z-index: 1000;
  color: red;
  background: #fff;
  font-size: 40px;
  font-weight: 700;
  padding: 20px;
}
/* mv-text */

.p-mainVisual__inner::before{
	/* left */
    content: " ";
    position: absolute;
    width: 360px;
    height: 400px;
    top: 20px;
    left: 0px;
    background-image: url(http://shibata-bosai.co.jp/wp-content/uploads/2026/04/yoko_koushi.png);
    background-position: -5% 0px;
    background-repeat: no-repeat;
    background-size: contain;
	opacity: 0;
    transform: translateX(-40px);
    animation: mvGridLeftFadeIn 1.2s ease forwards;
    animation-delay: 0.8s;
}
@keyframes mvGridLeftFadeIn {
  from {
    opacity: 0;
    transform: translateX(-40px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.p-mainVisual__inner::after{
	/* right */
	content: " ";
    position: absolute;
    width: 120px;
    height: 400px;
    top: 20px;
    right: 0px;
    background-image: url(http://shibata-bosai.co.jp/wp-content/uploads/2026/04/tate_logo.png);
    background-position: -5% 0px;
    background-repeat: no-repeat;
    background-size: contain;
	z-index: 2;
}

.p-mainVisual__slideTitle{
    font-family: serif;
    letter-spacing: 0.04em;
}

/* svg */
	.mv-building-svg {
  width: 100%;
  height: auto;
  display: block;
}

/* top__content */
.top #content{
	z-index:2;
}
.l-content{
    margin-top: 80px;
}

	.strength-inner{
		padding:20px 4%!important;
	}
	
	.top__strength_inner{
		background-position: 50% 400px!important;
	}

	figure.wp-block-image.size-full.strength-img>img{
		width:90%!important;
		margin-left: 20px;
		
	}

.strength-inner{
	position: relative;
	z-index: 1;
}

.swell-block-columns__inner{
	z-index: 1;
}
.strength-inner .swell-block-columns__inner::after{
    position: absolute;
    content: "";
    bottom: 20px;
    left: 20px;
    margin-left: 0;
    margin-bottom: 10px;
    width: 33.2vw;
    height: 18vw;
	max-width: 452px;
    background-image: url(http://shibata-bosai.co.jp/wp-content/uploads/2026/04/koushi-long.png);
    background-size: cover;
    background-repeat: no-repeat;
    z-index: -1;
	
}

/* PC-number */

.top__strength_inner {
  counter-reset: strength-num;
}

.strength-inner-number {
  position: relative;
  overflow: hidden;
}

.strength-inner-number::after {
  counter-increment: strength-num;
  content: counter(strength-num, decimal-leading-zero);
  position: absolute;
  right: 0px;
  top: -28px;
  z-index: 1;
  font-family: "din-2014-narrow", sans-serif;
  font-size: clamp(110px, 14vw, 190px);
  font-weight: 700;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px #45aeda;
  pointer-events: none;
}

.strength-inner-number > * {
  position: relative;
  z-index: 2;
}

/* strength_img */
.clip-title{
	width: 100%;
}

.clip-title__inner{
	position: relative;

}


.clip-title__inner svg{
	height: 200px;
	position: absolute;
    margin-top: -100px;
	    left: 50%;
	transform: translatex(-50%);
    z-index: -1;
}


.top-catch-area {
  position: relative;
  overflow: visible;
  z-index: 3;
}

.top-catch-area .swell-block-fullWide__inner {
  position: relative;
  z-index: 2;
}

.page-id-231 .swell-block-fullWide__inner{
	z-index: 3;
}

/* 装飾レイヤー */
.top-catch-deco {
  position: absolute;
  inset: 0;
  z-index: 2 !important;
  pointer-events: none;
}

/* 装飾の各パーツ */
.top-catch-deco__item {
  position: absolute;
  pointer-events: none;
  z-index: 2;
}

.top-catch-deco__item svg {
  display: block;
  width: 100%;
  height: auto;
}

/* 本文・見出しは装飾より前 */
.top-catch-area h3,
.top-catch-area p {
  position: relative;
  z-index: 4;
}

/* 下の建物SVGは一番奥 */
.top-catch-area .mv-building-svg {
  position: relative;
  z-index: 1;
}

.top-catch-deco__helmet {
    left: -80px;
    top: -160px;
    width: clamp(180px, 30vw, 420px);
    z-index: 3;
}

.top-catch-deco__grid-left {
  left: -110px;
  top: 40%;
  width: 177px;
  height: 430px;
}

.top-catch-deco__grid-right {
  right: -110px;
  top: 8%;
  width: 300px;
  height: 243px;
}

.top-catch-deco__driver {
  right: 1vw;
  top: 36%;
  width: clamp(100px, 12vw, 200px)
}

.top-catch-deco__grid {
  background-image:
    linear-gradient(rgba(69,174,218,.35) 1px, transparent 1px),
    linear-gradient(90deg, rgba(69,174,218,.35) 1px, transparent 1px);
  background-size: 22px 22px;
  opacity: .9;
}
/* innerdesign */

.innerdesign-naname {
  background: #fff;
  padding: clamp(32px, 6vw, 80px) clamp(24px, 7vw, 90px);
  clip-path: polygon(
    4% 0,
    100% 0,
    96% 100%,
    0 100%
  );
	width: 360px;
	height: 216px;
}

.w-text-center{
	margin: auto;
	max-width: 600px;
	margin-bottom: -20px !important;
}


.top__helmet_inner{
	display: flex;
	
}

.top-3pont__top {
    display: flex;
    justify-content: center;
}
.top-din-red-layout{
	margin-bottom: -30px!important;
}
.top-din-red-layout-japanese{
	margin-top: -20px!important;
}

.wp-block-group.is-row.top-3point {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    margin-right: 10px;
	margin-top: -16px!important;
}

@media screen and (max-width: 782px) {
	.wp-block-group.is-row.top-3point {
		margin-top: -26px!important;
	}
}

.top-3point__icon{
	width: 54px;
    margin-top: 2px !important;
    margin-right: -8px !important;
}

.top-padding-small{
	margin-bottom: -20px;
	padding-top: 20px;
}
@media screen and (max-width: 782px){
	.top-padding-small{
		padding-top: 10px;
	}
}



.c-scrollHint{
	display: none;
}
.top-service-scroll .swell-block-columns__inner{
	width: 100%;
}

.top-service-scroll.swell-block-columns[data-scrollable="1"] > .swell-block-columns__inner {
  flex-wrap: nowrap;
  margin-left: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* IE/Edge旧 */
}

.top-service-scroll.swell-block-columns[data-scrollable="1"] > .swell-block-columns__inner::-webkit-scrollbar {
  display: none; /* Chrome / Safari */
}

.top-service__caption_text{
	margin-top: -24px !important;
}

/* top-flow */
.top__flow_inner{
	margin-top: -620px !important;
	pointer-events: none;
}
.top__flow_inner::after {
  content: "";
  position: absolute;
  top: 70px;
  left: -10px;
  width: 240px;
  height: 489px;
  z-index: 0;
  pointer-events: none;
  transform: rotate(90deg);

  background-image:
    linear-gradient(rgba(255,255,255,0.65) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.65) 1px, transparent 1px);
  background-size: 23.9px 22px;
  background-position: 0 0;
}

.flow-hex-section,.top-news-area,.top-carrier-area{
	pointer-events: auto;
}
.top-news-area, .top-carrier-area{
	padding: 60px 20px !important;
}

.top-carrier-area{
	margin-bottom: 0px!important;
}
/* top-flow-tile */

.flow-hex-section {
  padding: 240px 20px 0px;
  overflow: hidden;
}

.flow-hex-wrap {
  position: relative;
  width: 960px;
  max-width: 100%;
  height: 520px;
  margin: 0 auto 160px;
}

.flow-hex {
  position: absolute;
  width: 220px;
  height: 190px;
  clip-path: polygon(
    25% 0,
    75% 0,
    100% 50%,
    75% 100%,
    25% 100%,
    0 50%
  );
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.flow-hex__content {
  width: 64%;
  max-width: 150px;
  text-align: center;
  box-sizing: border-box;
}

.flow-hex--white {
  background: #ffffff;
}

.flow-hex--blue {
  background: #51add7;
}

.flow-hex__num {
    margin: 0 0 10px;
    font-size: 54px;
    margin-bottom: 0px;
    margin-top: -20px;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    -webkit-text-stroke: 1px #51add7;
}

.flow-hex__title {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.35;
  color: #0d7a9f;
}

.flow-hex__text {
	margin: 8px 0 0;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.55;
    color: #0d7a9f;
}

.flow-hex__icon {
  display: inline-block;
  font-size: 58px;
  line-height: 1;
  color: #fff;
}

.flow-hex--blue .flow-hex__title,
.flow-hex--blue .flow-hex__text {
  color: #fff;
}

/* 配置 */
.flow-hex--01 {
  left: 0;
  top: 0;
}

.flow-hex--02 {
  left: 0;
  top: 194px;
}

.flow-hex--03 {
  left: 170px;
  top: 96px;
}

.flow-hex--04 {
  left: 340px;
  top: 0;
}

.flow-hex--05 {
  left: 338px;
  top: 195px;
}

.flow-hex--06 {
  left: 508px;
  top: 98px;
}

.flow-hex--07 {
  left: 508px;
  top: 292px;
}

.flow-hex--08 {
  left: 678px;
  top: 195px;
}


/* top-flow-tileここまで */

.flow-helmet{
    position: absolute;
    bottom: 920px;
    left: -120px;
    width: 500px;
}

/* top-news */

.alignwide{
	left: 0px!important;
}
.top-news-area,.top-carrier-area{
    max-width: 1200px;
    margin: auto;
    z-index: 1 !important;
    position: relative;
}

.news-outline-text>span>span {
    color: #ffffff00 !important;
    -webkit-text-stroke: 1px #45aeda;
    font-size: clamp(64px, 10vw, 110px);
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.02em;
}

.top-news-title__inner{
	margin-right: 24px;
	align-items: flex-start;
}

.top-news-title__inner .h2-japanese{
	margin-bottom: -24px!important;
}
/* news-btn */

.more-link-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 28px;
  color: #45aeda;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  letter-spacing: 0.08em;
  transform: skewX(-8deg);
  transition:
    transform .4s cubic-bezier(.22, 1, .36, 1),
    color .35s ease;
	margin-left: 16px !important;
}

.more-link-btn::before,
.more-link-btn::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background: #45aeda;
  transition:
    transform .4s cubic-bezier(.22, 1, .36, 1),
    background-color .35s ease,
    opacity .35s ease;
}

.more-link-btn::before {
  top: 0;
  transform: translateX(-10px);
}

.more-link-btn::after {
  bottom: 0;
  transform: translateX(10px);
}

.more-link-btn__text,
.more-link-btn__icon {
  transform: skewX(8deg);
}

.more-link-btn__text {
  transition: transform .4s cubic-bezier(.22, 1, .36, 1);
}

.more-link-btn__icon {
  width: 34px;
  height: 22px;
  border-radius: 999px;
  background: #45aeda;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  transition:
    transform .4s cubic-bezier(.22, 1, .36, 1),
    background-color .35s ease,
    color .35s ease,
    box-shadow .35s ease;
}

.more-link-btn:hover {
  transform: skewX(0deg) translateX(4px);
  color: #f7062f;
}

.more-link-btn:hover::before,
.more-link-btn:hover::after {
  transform: translateX(0);
  background: #f7062f;
  opacity: .9;
}

.more-link-btn:hover .more-link-btn__text,
.more-link-btn:hover .more-link-btn__icon {
  transform: skewX(0deg);
}

.more-link-btn:hover .more-link-btn__icon {
  background: #f7062f;
  color: #fff;
  box-shadow: 0 8px 18px rgba(247, 6, 47, .25);
}

/* news-btnここまで */



/* top-carrier */


.top-ceareer-item .font-style-din{
	font-weight: 700;
}

.top-carrier-area> .wp-block-group__inner-container{
	padding-top: 120px;
}
.top-ceareer-item{
	margin-top: -140px!important;
}

.point-section {
  padding: 40px 20px 200px;
}

.point-grid {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
  align-items: stretch;
}

/* 共通パネル */
.point-card {
  position: relative;
  min-height: 255px;
  transform: skewX(-10deg);
  overflow: hidden;
}

.point-card__inner {
  width: 100%;
  height: 100%;
  transform: skewX(10deg);
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
}

/* 色違い */
.point-card--filled {
  background: #51add7;
  color: #fff;
}

.point-card--outline {
  background: #f7f7f7;
  border: 2px solid #51add7;
  color: #51add7;
}

.point-card--image {
  overflow: hidden;
  background: #ddd;
}


.point-card--image .point-card__inner {
  transform: skewX(10deg) scale(1);
  width: 120%;
  height: 100%;
  margin-left: -10%;
}

.point-card--image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

/* テキスト */
.point-card__label {
  margin: 0 0 32px;
  font-size: clamp(18px, 2vw, 28px);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.01em;
}

.point-card--filled .point-card__label {
  color: #fff;
}

.point-card--outline .point-card__label {
  color: #51add7;
}

.point-card__value-wrap {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 10px;
  line-height: 1;
}

.point-card__value-wrap--smalllead {
  gap: 12px;
}

.point-card__lead {
  font-size: clamp(28px, 3vw, 52px);
  font-weight: 700;
  line-height: 1.1;
}

.point-card--filled .point-card__lead {
  color: #fff;
}

.point-card--outline .point-card__lead {
  color: #51add7;
}

.point-card__value {
  font-size: clamp(92px, 10vw, 150px);
  font-weight: 800;
  line-height: 0.9;
  letter-spacing: -0.03em;
}

.point-card--filled .point-card__value {
  color: #fff;
}

.point-card--outline .point-card__value {
  color: #51add7;
}

.point-card__unit {
  font-size: clamp(32px, 3.3vw, 56px);
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 12px;
}

.point-card--filled .point-card__unit {
  color: #fff;
}

.point-card--outline .point-card__unit {
  color: #51add7;
}

/* 各カードの余白感 */
.point-card--p1 .point-card__inner,
.point-card--p2 .point-card__inner,
.point-card--p3 .point-card__inner,
.point-card--p4 .point-card__inner,
.point-card--p5 .point-card__inner {
  padding: 26px 32px;
  text-align: center;
}

/* Grid配置 */
.point-card--img1 {
  grid-column: 1 / span 2;
  grid-row: 1;
}

.point-card--p1 {
  grid-column: 3 / span 2;
  grid-row: 1;
}

.point-card--p2 {
  grid-column: 5 / span 2;
  grid-row: 1;
}

.point-card--p3 {
  grid-column: 2 / span 2;
  grid-row: 2;
}

.point-card--img2 {
  grid-column: 4 / span 2;
  grid-row: 2;
}

.point-card--p4 {
  grid-column: 1 / span 2;
  grid-row: 3;
}

.point-card--p5 {
  grid-column: 3 / span 2;
  grid-row: 3;
}

.point-card--img3 {
  grid-column: 5 / span 2;
  grid-row: 3;
}

/* 画像カードだけ高さ少し調整 */
.point-card--img1,
.point-card--img2,
.point-card--img3 {
  min-height: 255px;
}

/* 微調整 */
.point-card--p4 .point-card__value-wrap {
  align-items: flex-end;
}

.point-card--p4 .point-card__lead {
  margin-bottom: 8px;
}

.point-card--p4 .point-card__unit,
.point-card--p5 .point-card__unit {
  margin-bottom: 18px;
}

/* SP */
@media screen and (max-width: 980px) {
  .point-grid {
    grid-template-columns: repeat(2, 0fr);
  }

  .point-card {
    grid-column: auto !important;
    grid-row: auto !important;
    min-height: 220px;
  }

  .point-card--image {
    min-height: 220px;
  }

  .point-card__value {
    font-size: clamp(72px, 16vw, 120px);
  }

  .point-card__unit {
    font-size: clamp(24px, 5vw, 42px);
    margin-bottom: 10px;
  }

  .point-card__lead {
    font-size: clamp(22px, 5vw, 36px);
  }
}

@media screen and (max-width: 640px) {
  .point-grid {
    grid-template-columns: 0fr;
  }

  .point-card {
    min-height: 200px;
  }

  .point-card__label {
    font-size: 20px;
  }

  .point-card__value {
    font-size: 84px;
  }

  .point-card__unit {
    font-size: 30px;
  }
}

/* top-carrierここまで */





/* この下アーカイブ */




@media not all and (min-width: 960px){
    .top__news_detail::before{
        width: 100%;
        height: 190px;
        top: 0;
        background-position: top left;
        transform: translate(-5%,-50%);
    }
    .top__feature_detail::before{
        width: 100%;
        height: 190px;
        top: 0;
        background-position: top left;
        transform: translate(-5%,-50%);
    }

}

/* news */

/* page-head調整 */

.page-id-241 .l-mainContent__inner>.post_content,
.page-id-239 .l-mainContent__inner>.post_content,
.page-id-237 .l-mainContent__inner>.post_content,
.page-id-391 .l-mainContent__inner>.post_content{
	margin-top: 0!important;
}




.p-postList.-type-simple{
    border-top:none;
}
.-type-simple .p-postList__link{
    border-bottom: none;
}
.p-postList .p-postList__title{
    font-weight: 400;
	font-size: 16px;
}
.-type-simple .p-postList__link:hover{
    background-color:inherit;
}
@media screen and (max-width: 782px){
    .p-postListWrap .top_news_c{
        width: 100%;

    }
}

.flow-hex-section .wp-block-group__inner-container{
	width: auto;
    max-width: 1200px;
}
.top-news__list{
	width: 100%;
}
.top-news-area >.wp-block-columns{
	width: 26%;
}

.top-news-area >.p-postListWrap{
	width: 60%;
}


.top-news-area >.p-postListWrap>.p-postList{
	border-top: 1px solid #45AEDA;
	margin-top: 20px;
}

.top-news-area > .p-postListWrap > ul >li {
    width: 100% !important;
    display: inline-block;
}




.p-postList__body{
    display: flex;
    width: auto;
    margin: auto;
    align-items: flex-start;
    flex-direction: column;
}
.p-postList__item{
	border-bottom: 1px solid #45AEDA;
}

.top_news_c .c-postTimes__posted{
    font-size: 12px;
}
@media screen and (max-width: 782px){
.p-postList__body{
    display: inline-block;
    width: 90%;
    margin: auto;
    align-items: center;      
}
/* .top_news_c .p-postList__title{
    margin-left: 10px;
} */
}

.icon-posted:before{
    display: none;
}
.icon-folder:before{
    display: none;
}

.p-postList__cat{
    background-color: #45AEDA;
    color: #fff;
    padding: 4px 6px;
    font-size: 1.4rem;
    margin-right: 10px;
    min-width: 50px;
    text-align: center;
    border-radius: 2px;
}

.-type-simple .p-postList__meta{
    font-size: 12px;
    margin:0;
	color: #939393;
}


.post_content li{
    font-size: 1.8rem;
}


/* news-listbtn */

.top-news-area a.p-postList__link {
  position: relative;
  display: block;
  padding-right: 90px;
}

.top-news-area a.p-postList__link::after {
  content: "→";
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 56px;
  height: 34px;
  border: 1px solid #45aeda;
  border-radius: 999px;
  color: #45aeda;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition:
    transform .35s ease,
    background-color .35s ease,
    color .35s ease,
    border-color .35s ease;
}

.top-news-area a.p-postList__link:hover::after {
  transform: translate(8px, -50%);
  background: #45aeda;
  color: #fff;
  border-color: #45aeda;
}

/* news btn */
.p-postList.-type-simple+.is-style-more_btn{
    max-width: 500px;
    font-family: sans-serif;
    font-weight: 400;
}

.p-postList.-type-simple+.is-style-more_btn a{
    color: #7A682A;
    border: solid 1px #7A682A;
    box-shadow: 2px 2px 6px 1px rgb(63 69 91 / 13%);
}

.p-postList.-type-simple+.is-style-more_btn a:hover{
    box-shadow: none;
    background-color: #fff;
}

.is-style-more_btn a:hover:after {
    margin-right: 4px;
}

/* btn */
.btn_inner{
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
}

.is-style-btn_normal a{
	font-weight: 500;
}

.btn-more-white{
	
}




/* btn-line */

.detail-link-btn {
  position: relative;
  display: flex;
  width: fit-content;
  margin-left: auto;
  margin-right: 0;
  align-items: center;
  gap: 18px;
  padding: 24px 20px;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: clamp(16px, 1.5vw, 24px);
  line-height: 1;
  transform: skewX(-8deg);
  transition: transform .4s cubic-bezier(.22, 1, .36, 1), opacity .35s ease;
	pointer-events: auto;
}

.detail-link-btn::before,
.detail-link-btn::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background: #fff;
  transition: transform .4s cubic-bezier(.22, 1, .36, 1), opacity .35s ease;
}

.detail-link-btn::before {
  top: 0;
  transform: translateX(-14px);
}

.detail-link-btn::after {
  bottom: 0;
  transform: translateX(14px);
}

.detail-link-btn__text,
.detail-link-btn__icon {
  transform: skewX(8deg);
}

.detail-link-btn__text {
  transition: transform .4s cubic-bezier(.22, 1, .36, 1);
}

.detail-link-btn__icon {
  width: clamp(64px, 6vw, 88px);
  height: clamp(38px, 3.8vw, 52px);
  border-radius: 999px;
  background: #fff;
  color: #f7062f;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1;
  transition:
    transform .4s cubic-bezier(.22, 1, .36, 1),
    background-color .35s ease,
    color .35s ease,
    box-shadow .35s ease;
}

.detail-link-btn:hover {
  transform: skewX(0deg) translateX(4px);
}

.detail-link-btn:hover::before,
.detail-link-btn:hover::after {
  transform: translateX(0);
  opacity: .9;
}

.detail-link-btn:hover .detail-link-btn__text,
.detail-link-btn:hover .detail-link-btn__icon {
  transform: skewX(0deg);
}

.detail-link-btn:hover .detail-link-btn__icon {
  background: #f7062f;
  color: #fff;
  box-shadow: 0 8px 18px rgba(247, 6, 47, .25);
}


/* btn-lineここまで */

/* btn red */
a.detail-link-btn.btn-red {
    color: #F6042D;
}

a.detail-link-btn.btn-red::before , a.detail-link-btn.btn-red::after{
    background:#F6042D;
}

a.detail-link-btn.btn-red .detail-link-btn__icon{
	background: #fafafa;
	    border: solid 2px #F7062f;
}

.detail-link-btn.btn-red:hover .detail-link-btn__icon {
  background: #f7062f;
  box-shadow: 0 8px 18px rgba(247, 6, 47, .25);
}


/* footer-btn */

.swl-inline-btn{
	  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
}

span.swl-inline-btn.is-style-btn_normal.blue_ > a{
	letter-spacing: 1px;
	padding: 10px 32px;
	margin-left: 12px;
	font-size: 14px;
	box-shadow: none;
}

/* =========================
  Inline blue button hover animation
========================= */

span.swl-inline-btn.is-style-btn_normal.blue_ > a,span.swl-inline-btn.is-style-btn_normal.green_ > a {
  position: relative;
  overflow: hidden;
  z-index: 0;
  background-color: #45aeda !important;
  border: 1px solid #45aeda;
  color: #ffffff !important;
  transition: color 0.3s ease, border-color 0.3s ease;
	letter-spacing: 1px;
	padding: 10px 32px;
	margin-left: 12px;
	font-size: 14px;
}

span.swl-inline-btn.is-style-btn_normal.green_ > a{
	background-color: #F6042D !important;
  border: 1px solid #F6042D;
	font-size: 12px;
	letter-spacing: 1;
	padding: 10px 60px;
}
/* 左から広がる白背景 */
span.swl-inline-btn.is-style-btn_normal.blue_ > a::before,span.swl-inline-btn.is-style-btn_normal.green_ > a::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #ffffff;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s ease;
  z-index: -1;
}

/* ホバー時：白背景が左から出る */
span.swl-inline-btn.is-style-btn_normal.blue_ > a:hover::before,span.swl-inline-btn.is-style-btn_normal.green_ > a:hover::before {
  transform: scaleX(1);
}

/* ホバー時：文字を青に */
span.swl-inline-btn.is-style-btn_normal.blue_ > a:hover,
span.swl-inline-btn.is-style-btn_normal.blue_ > a:hover span {
  color: #45aeda !important;
}

/* ホバー時：文字を赤に */
span.swl-inline-btn.is-style-btn_normal.green_ > a:hover,
span.swl-inline-btn.is-style-btn_normal.green_ > a:hover span {
  color: #F6042D !important;
}

/* icon*/
.fa-solid{
	margin-right: 8px;
	margin-bottom: 2px;
	transform: rotate(-45deg);
}

.fa-solid.fa-mobile-screen-button{
	transform: rotate(0deg);
}

.fa-solid.fa-toolbox{
	transform: rotate(0deg);
}

.fa-solid.fa-building{
	transform: rotate(0deg);
}

.fa-solid.fa-location-dot{
	transform: rotate(-0deg);
	color: #F6042D;
}

.fa-envelope:before{
	padding: 10px;
    border: solid 1px #F6042D;
    border-radius: 20px;
	color: #F6042D;
	font-size: 20px;
}


/* top__feature */

.top__feature_detail{
    z-index: -1;
}

.top__w-2column{
    max-width: 400px;
}

.top__w_right{
    justify-content: flex-end;
}

.top__space_left{
    margin-left: 64px!important;
}

.top__space_right{
    margin-right: 64px!important;
}

.top__margin_left{
    margin-right: -64px!important;
}
@media not all and (min-width: 960px){
    .top__space_left{
        margin-left: 0px!important;
    }
    
    .top__space_right{
        margin-right: 0px!important;
    }
    
    .top__margin_left{
        margin-right: 0px!important;
    }

}




.top__feature_inner_l{
    position: relative;
    left: 0;
    width: 80%;
    border-radius: 0 9999px 9999px 0;
}
@media not all and (min-width: 960px){
    .top__feature_inner_l{
        width: 100%;
        height: 800px;
    }
}


.top__feature_inner_r{
    position: relative;
    right: 0px;
    margin: 0 0 0 auto;
    width: 80%;
    border-radius: 9999px 0 0 9999px;
}
@media not all and (min-width: 960px){
    .top__feature_inner_r{
        width: 100%;
        height: 800px;
    }
}
.top__feature_inner_r > .wp-block-group__inner-container > .swell-block-columns > .swell-block-columns__inner{
    justify-content: flex-start;
    margin-left: 10%;
}

.top__feature_inner_l > .wp-block-group__inner-container > .swell-block-columns > .swell-block-columns__inner{
    justify-content: flex-end;
    margin-right: 10%;
}
@media not all and (min-width: 960px){
    .top__feature_inner_r > .wp-block-group__inner-container > .swell-block-columns > .swell-block-columns__inner{
        display: flex;
        flex-direction: column-reverse;
    }

}

.top__feature_head{
    font-family: 'GenEiLateMin_v2';
    font-size: 3.6rem;
    line-height: 1;
    padding-bottom: 16px;
    
}

.top__feature_en{
    font-family: 'GenEiLateMin_v2';
    padding-top: 24px;
    padding-right: 8px;

}

.top__feature_no{
    font-family: 'GenEiLateMin_v2';
    font-size: 4.0rem;

}

/* footer */

.w-footer{
	display: block;
}
.l-footer::after{
    position: absolute;
    content: "";
    bottom: 0px;
    right: 0;
    margin-left: 8px;
	margin-bottom:10px;
    width: 220px;
    height: 138px;
    background-image: url(http://shibata-bosai.co.jp/wp-content/uploads/2026/04/logo-header.png);
    background-size: contain;
    background-repeat: no-repeat;
}

@media screen and (max-width: 782px){
    .footer_access_btn .swell-block-button .swell-block-button__link[data-has-icon] {
        width: 40%;
        margin-top: 0px;
    }
}

.footer__3column_area{
    font-size: 1.6rem;
}
.footer__3column_area > .wp-block-column > figure > img{
    width: 200px;

}

.is-style-btn_normal > a >svg{
    color: #7A682A;


}

@media screen and (max-width: 782px){
    .wp-image-209{
        width: 120px;

    }
}


/*      */
/* page */
/*      */


.page > .l-content{
    margin: 0 auto 0;
    padding: 0;
    z-index: -1;
}

.page .l-mainContent__inner{
    position: relative;

}

.page .l-mainContent__inner .p-articleThumb{
    width: 100vw;
    margin: 0 calc(50% - 50vw);

}
@media screen and (max-width: 782px){
    .page .l-mainContent__inner .p-articleThumb > img{
        width: 100%;
        height: 300px;
        object-fit: cover;
    }
    
}
.page .l-header{
    width: 100vw;
    margin: 0 calc(50% - 50vw);
    margin-top: -4px;
}

.p-articleThumb{

}
.c-pageTitle{
	display: none;
}
.page .c-pageTitle,.category .c-pageTitle{
    position: absolute;
    z-index: 1;
    top: 32vw;
    left: 0;
    font-size: 5.8rem;
    color: #ffffff;
}
.c-pageTitle[data-style=b_bottom] .c-pageTitle__inner{
    border: none;
}
.c-pageTitle[data-style=b_bottom]{
    border: none;
}


.c-pageTitle:after{
    content: none;
}

.c-pageTitle__subTitle{
    font-style:normal;
    top: -12px
    

}

.page__cv_bottom{
    margin: 120px auto 120px;
}

.page__cv_bottom >a {
    font-size: 1.6rem;
    
}

/* plan */
.plan__list_inner{
    padding:0px 10px
}
.plan__list_title{
    border: 1px solid #7A682A;
    border-radius: 4px;
}

/*     */
/* simgle */
/*     */

.single .top__header_area{
    display: none;
}

/*          */
/* category */
/*          */

.category .top__header_area{
    display: none;
}


/* =========================
  SP調整：TOP共通
========================= */
@media screen and (max-width: 768px) {

  html {
    font-size: 62.5%;
  }

  body {
    overflow-x: hidden;
  }

  .l-content {
    margin-top: 56px;
  }

  .l-container,
  .swell-block-fullWide__inner {
    max-width: 100%;
  }

  .pc-py-60,
  .pc-py-40 {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

  .sp-py-40 {
    padding-top: 0px !important;
    padding-bottom: 40px !important;
  }

  p {
    font-size: 1.4rem;
    line-height: 1.9;
  }

  p[style*="font-size:20px"] {
    font-size: 1.4rem !important;
    line-height: 1.6;
  }

  p[style*="font-size:24px"] {
    font-size: 1.7rem !important;
    line-height: 1.8;
  }
	.w-text-center{
	margin-bottom: 0px !important;
	}
	.detail-link-btn{
		margin-top: 0px;
	}
}

/* =========================
  SP調整：見出し
========================= */
@media screen and (max-width: 768px) {

  .h2-japanese {
    font-size: 1.4rem !important;
    margin-bottom: 0px !important;
  }

  .swl-format-1 {
    font-size: clamp(5.6rem, 18vw, 8.8rem) !important;
    line-height: 1 !important;
  }

  .h2-midashi-red,
  .h2-midashi-black {
    font-size: clamp(1.8rem, 5.3vw, 2.4rem) !important;
    line-height: 1.5;
    padding: 12px 28px 12px 18px !important;
    max-width: calc(100% - 32px) !important;
    clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%);
  }

  .wp-block-heading.h2-midashi-red {
    margin-left: 0px!important;
    margin-right: 0px!important;
	  margin-top: 0px!important;
	  font-size: 16px !important;
	  padding: 12px !important;
	  letter-spacing: 0!important;
	  max-width: 100% !important;
	  width: auto !important;
  }
	
	.home .wp-block-heading.h2-midashi-red {
	 font-size: 4.9vw !important;
        padding: 12px 18px 12px 20px !important;
        width: fit-content !important;
        margin: 0 auto 20px !important;
  }


  .wp-block-heading.h2-midashi-black {
    margin-left: 0px!important;
    margin-right: 0px!important;
	  margin: 0 auto 16px!important;
	  font-size: 17px !important;
	  padding: 12px !important;
	  letter-spacing: normal;
	  max-width: 100% !important;
	  width: auto !important;

  }
}

@media screen and (max-width: 768px) {
  .recruit-page p,
  .service-page p,
  .partners-page p,
  .outline-page p {
    word-break: normal;
    line-break: strict;
    overflow-wrap: break-word;
    letter-spacing: 0.02em;
  }
}


/* =========================
  SP調整：見出し
========================= */
@media screen and (max-width: 768px) {
	.top #content{
		padding-top:0;
		z-index: 2;
		margin-top: -120px;
	}

	.sp-font-20 span{
		font-size: 19px!important;
	}
	.mv-deco-svg-sp{
		width: 90vw;
	}
	.post_content > .mv-text__sp{
		margin-top: -40px!important;
	}
	.p-mainVisual__inner::after{
		content: none;
	}
	
	.top-catch-area{
		margin-top: 0px!important;
	}
	

}
/* =========================
  SP調整：ボタン
========================= */
@media screen and (max-width: 768px) {
	
	.more-link-btn{
		font-size: 13px;
	}
	.sp-more-link-btn{
		width: 100%;
		display: flex;
		justify-content: flex-end;
	}
	.more-link-btn:hover .more-link-btn__icon{
		box-shadow: 0 2px 4px rgba(247, 6, 47, .25);
	}
	/* お困りの方ボタン */
	.fixed-help-btn{
		scale: 0.8;
		transform: translate(30px,-50%);
	}
	
	.fixed-help-btn:hover{
		scale: 0.8;
		transform: translate(10px,-50%);
	}
	
}
/* =========================
  SP調整：画像
========================= */
@media screen and (max-width: 768px) {
	.mv-building-svg{
		width: 120%;
		margin: auto;
		transform: translateX(-50px);
	}
	
	.strength-img{
		text-align: left;
	}
	figure.wp-block-image.size-full.strength-img>img{
		margin-left: 0;
	}
	
	.strength-inner{
		position: relative;
	}
	.strength-inner-number{
		overflow: visible;
	}
	.strength-inner-number:after{
		display: none;
	}
	.strength-inner:nth-of-type(1){
		margin-top:0px;
	}
	.strength-inner{
		margin-bottom:40px!important;
	}
	.strength-inner{
		overflow: visible;
	}
	.strength-inner::before{
        content: '';
        z-index: 5;
        top: -85px;
        position: absolute;
        width: 300px;
        height: 100px;
        background-position: center;
        background-size: contain;
        background-repeat: no-repeat;
	}
	.strength-inner01{
		margin-top: 0px;
	}
	.strength-inner03{
		margin-bottom: 0px!important;
	}

	.strength-inner .swell-block-columns__inner::after{
	height: 183px;
        width: 80%;
        right: 0px;
        top: 90px;
	}
	.top__flow_inner::after{
		content: none;
	}
	.flow-helmet{
		scale: 0.5;
        left: -170px;
        z-index: -1;
		bottom: 710px;
	}
	
}
/* =========================
  SP調整：ブロック
========================= */
@media screen and (max-width: 768px) {
	.top-service-scroll.swell-block-columns[data-scrollable="1"] > .swell-block-columns__inner{
		flex-wrap: wrap;
        padding-left: 0;
        width: 100%;
        max-width: 100%;
		
	}
	.top-news-area, .top-carrier-area{
		width:90%;
		margin: auto!important;
	}
	.top-news-area{
		flex-direction: column;
		padding: 40px 10px !important;

	}
	.top-carrier-area{
		padding: 40px 10px  0px!important;
	}
	.top-news-area >.wp-block-columns,.top-news-area >.p-postListWrap{
		width: 100%;
		margin-left: 0px;
	}
	.top-news-area a.p-postList__link{
		padding-right: 0px;
		padding-bottom: 60px;
	}
	.top-news-area a.p-postList__link::after{
		    transform: translateY(40%);
	}
	
	.top-news-title__inner .h2-japanese{
		margin-bottom: -14px !important;
	}
	.p-postList__body{
		width: 100%;
	}
	.top-ceareer-item{
		margin-top: -50px;
	}
	.top-carrier-area> .wp-block-group__inner-container{
		padding-top: 24px;
	}
	

	.top-catch-deco__grid-left,.top-catch-deco__driver,.top-catch-deco__helmet {
		display: none;
	}

	.top-catch-deco__grid-right {
		right: -110px;
        top: -10%;
        width: 221px;
        height: 112px;
	}
}

/* =========================
  SP：FLOW 六角形タイル調整
========================= */
@media screen and (max-width: 768px) {

  .top__flow_inner {
    padding-top: 190px !important;
    pointer-events: none;
  }

  .flow-hex-section {
    padding: 24px 0 56px;
    overflow: hidden;
  }

  .flow-hex-wrap {
    position: relative;
    width: 100%;
    max-width: 430px;
    height: auto;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .flow-hex {
	 width: 280px;
	 height: 240px;
    position: relative !important;
    left: auto !important;
    top: auto !important;
    margin: 0 auto;
    clip-path: polygon(
      25% 0,
      75% 0,
      100% 50%,
      75% 100%,
      25% 100%,
      0 50%
    );
  }

  /* 白タイル同士の縦間隔を詰める */
  .flow-hex--01,
  .flow-hex--03,
  .flow-hex--05,
  .flow-hex--06,
  .flow-hex--08 {
    margin-top: 0;
   margin-bottom: 24px;
  }

  /* 上下を少し接続して見せる */
  .flow-hex--03,
  .flow-hex--05,
  .flow-hex--06,
  .flow-hex--08 {
    margin-top: -18px;
  }

  .flow-hex__content {
    width: 68%;
    max-width: 170px;
    text-align: center;
  }

  .flow-hex__num {
    margin: 0 0 8px;
    font-size: 4.7rem;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    -webkit-text-stroke: 1px #51add7;
  }

  .flow-hex__title {
    margin: 0;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.35;
    color: #0d7a9f;
  }

  .flow-hex__text {
    margin: 8px 0 0;
    font-size: 1.1rem;
    font-weight: 500;
    line-height: 1.55;
    letter-spacing: -0.02em;
    color: #0d7a9f;
  }

  .flow-hex__icon {
    font-size: 5.2rem;
    line-height: 1;
  }

  /* 青アイコンタイルは小さくして左右に散らす */
  .flow-hex--02,
  .flow-hex--04,
  .flow-hex--07 {
    display: none;
  }

  .flow-hex--02 {
        right: 4px !important;
        top: 140px !important;
  }

  .flow-hex--04 {
    left: 4px !important;
    top: 338px !important;
  }

  .flow-hex--07 {
    right: 4px !important;
    top: 728px !important;
  }

  .flow-hex--02 .flow-hex__content,
  .flow-hex--04 .flow-hex__content,
  .flow-hex--07 .flow-hex__content {
    width: 100%;
    max-width: none;
  }

  .flow-hex--02 .flow-hex__icon,
  .flow-hex--04 .flow-hex__icon,
  .flow-hex--07 .flow-hex__icon {
    font-size: 3.8rem;
  }

  /* 白タイルは前面 */
  .flow-hex--01,
  .flow-hex--03,
  .flow-hex--05,
  .flow-hex--06,
  .flow-hex--08 {
    z-index: 2;
  }
}

/* =========================
  SP：CAREER セクション調整
========================= */
@media screen and (max-width: 768px) {

  .point-section {
    padding: 100px 0 32px;
	  margin-top: -200px;
  }

  .point-grid {
    width: calc(100% - 20px);
    max-width: 420px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 0fr);
    gap: 10px;
    align-items: stretch;
	  justify-content: center;
  }

  .point-card {
    min-height: 120px;
    transform: skewX(-10deg);
    overflow: hidden;
  }

  .point-card__inner {
    width: 100%;
    height: 100%;
    transform: skewX(10deg);
    box-sizing: border-box;
	 padding: 0px!important;
  }

  /* 画像の白い余白対策 */
  .point-card--image .point-card__inner {
    transform: skewX(10deg) scale(1.18);
    width: 122%;
    margin-left: -11%;
  }

  .point-card--image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
  }

  /* テキスト系 */
  .point-card__label {
    margin: 0 0 16px;
    font-size: 1.3rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
	  letter-spacing: -0.2px;
  }

  .point-card__value-wrap {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 6px;
    line-height: 1;
  }

  .point-card__lead {
    font-size: 1.4rem;
    font-weight: 700;
    margin-bottom: 4px;
  }

  .point-card__value {
    font-size: clamp(4.8rem, 14vw, 7rem);
    font-weight: 800;
    line-height: .9;
    letter-spacing: -0.03em;
  }

  .point-card__unit {
    font-size: 1.7rem;
    font-weight: 800;
    line-height: 1;
    margin-bottom: 6px;
  }

  /* 内側余白 */
  .point-card--p1 .point-card__inner,
  .point-card--p2 .point-card__inner,
  .point-card--p3 .point-card__inner,
  .point-card--p4 .point-card__inner,
  .point-card--p5 .point-card__inner {

    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
  }

  /* 色 */
  .point-card--filled {
    background: #51add7;
    color: #fff;
  }

  .point-card--outline {
    background: #f7f7f7;
    border: 2px solid #51add7;
    color: #51add7;
  }

  .point-card--filled .point-card__label,
  .point-card--filled .point-card__value,
  .point-card--filled .point-card__unit,
  .point-card--filled .point-card__lead {
    color: #fff;
  }

  .point-card--outline .point-card__label,
  .point-card--outline .point-card__value,
  .point-card--outline .point-card__unit,
  .point-card--outline .point-card__lead {
    color: #51add7;
  }

  /* =========
     レイアウト指定
  ========= */

  /* 1段目 */
  .point-card--img1 {
    grid-column: 1 / span 2 !important;
    grid-row: 1;
	height: 108px;
	width: 160px;
  }

  .point-card--p1 {
    grid-column: 3 / span 2 !important;
    grid-row: 1;
	height: 108px;
	width: 160px;
  }

  /* 2段目：中央寄せ */
  .point-card--p2 {
    grid-column: 2 / span 2 !important;
    grid-row: 2;
	height: 108px;
	width: 160px;
  }

  /* 3段目 */
  .point-card--p3 {
    grid-column: 1 / span 2 !important;
    grid-row: 3;
	height: 108px;
	width: 160px;
  }

  .point-card--img2 {
    grid-column: 3 / span 2 !important;
    grid-row: 3;
	height: 108px;
	width: 160px;
  }

  /* 4段目 */
  .point-card--p4 {
    grid-column: 1 / span 2 !important;
    grid-row: 4;
	height: 108px;
	width: 160px;
  }

  .point-card--p5 {
    grid-column: 3 / span 2 !important;
    grid-row: 4;
	height: 108px;
	width: 160px;
  }

  /* 5段目：中央寄せ */
  .point-card--img3 {
    grid-column: 2 / span 2 !important;
    grid-row: 5;
	height: 108px;
	width: 160px;
  }

  /* 個別微調整 */
  .point-card--p1 .point-card__value {
    font-size: clamp(4.6rem, 13vw, 6.4rem);
  }

  .point-card--p2 .point-card__value {
    font-size: clamp(4.2rem, 12vw, 6rem);
  }

  .point-card--p3 .point-card__value {
    font-size: clamp(4.6rem, 13vw, 6.6rem);
  }

  .point-card--p4 .point-card__value {
    font-size: clamp(4.8rem, 13vw, 6.4rem);
  }

  .point-card--p5 .point-card__value {
    font-size: clamp(4.8rem, 13vw, 6.8rem);
  }

  .point-card--p4 .point-card__value-wrap,
  .point-card--p5 .point-card__value-wrap {
    gap: 4px;
  }
}

/* =========================
  SP：FOOTERセクション調整
========================= */
@media screen and (max-width: 768px) {
	.w-footer__box .footer-parts .footer-parts-link{
		font-size: 12px;
		
	}
	p.copyright {
    position: absolute;
    bottom: 120px;
    left: 50%;
    transform: translateX(-50%);
}
}

/* =========================
  SPメニュー：
========================= */
@media screen and (max-width: 959px) {

  /* オーバーレイは薄め */
  .p-spMenu__overlay {
    background: rgba(255, 255, 255, 0.15);
  }

  /* メニュー本体 */
  .p-spMenu.-right .p-spMenu__inner {
    width: calc(100vw - 62px);
    max-width: 680px;
    height: calc(100vh - 90px);
    top: 90px;
    right: 0;
    left: auto;
    background: #45aeda;
    border-radius: 80px 0 0 80px;
    box-shadow: none;
    overflow: hidden;
    padding: 80px 24px 56px;
  }

  /* 中身 */
  .p-spMenu__body {
    position: relative;
    z-index: 2;
    height: 100%;
    padding: 0;
    overflow: visible;
  }

  /* SWELL標準のMENUタイトルは非表示 */
  .c-widget__title.-spmenu {
    display: none;
  }

  /* 閉じるボタン位置 */
  .p-spMenu__closeBtn {
    position: fixed;
    top: 22px;
    right: 24px;
    z-index: 10001;
  }

  .p-spMenu__closeBtn .c-iconBtn {
    color: #45aeda;
    width: 42px;
    height: 42px;
  }

  .p-spMenu__closeBtn .c-iconBtn__icon::before {
    font-size: 34px;
  }

  /* ナビ全体 */
  .p-spMenu__nav {
    position: relative;
    z-index: 2;
    width: 100%;
  }

  .c-spnav.c-listMenu {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    padding: 0;
    margin: 0;
    list-style: none;
    border: none;
  }

  .c-spnav.c-listMenu > li {
    width: 100%;
    border: none !important;
    margin: 0;
    padding: 0;
    text-align: center;
  }

  .c-spnav.c-listMenu > li > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-height: auto;
    padding: 0;
    color: #fff;
    background: transparent;
    border: none;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .04em;
    text-decoration: none;
  }

  .c-spnav.c-listMenu > li > a::before,
  .c-spnav.c-listMenu > li > a::after {
    display: none !important;
  }

  /* RECRUIT ボタン */
  .c-spnav.c-listMenu > li:nth-child(6) > a {
    width: min(60vw, 240px);
    height: 55px;
    border-radius: 999px;
    background: #fff;
    color: #45aeda;
    font-family: "Roboto", sans-serif;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: .12em;
  }

  /* CONTACT ボタン */
  .c-spnav.c-listMenu > li:nth-child(7) > a {
    width: min(60vw, 240px);
    height: 55px;
    border-radius: 999px;
    background: #fff;
    color: #f6042d;
    font-family: "Roboto", sans-serif;
   font-size: 18px;
    font-weight: 800;
    letter-spacing: .12em;
    gap: 0px;
  }

  .c-spnav.c-listMenu > li:nth-child(7) i {
    font-size: .95em;
  }

  /* メールアイコン丸ボタン */
  .c-spnav.c-listMenu > li:nth-child(8) > a {
  }

.fa-envelope:before {
		margin: 0;
        border-radius: 50%;
        background: #fff;
        border: 1px solid #f6042d;
        color: #f6042d;
        font-size: 3rem;
        padding: 10px;
        font-weight: 100;
  }

  /* 右側の方眼 */
  .p-spMenu__inner::before {
		content: "";
        position: absolute;
        top: 70px;
        left: 280px;
        width: 130px;
        height: 240px;
        background: inherit;
        background-image: url(http://shibata-bosai.co.jp/wp-content/uploads/2026/04/sozai_koushi.png);
        background-repeat: no-repeat;
        background-position: right;
        background-size: cover;
        z-index: 1;
        pointer-events: none;

  }
	
	
	
	.p-spMenu__inner::after {
	  content: "";
	  position: absolute;
	  right: 10px;
	  bottom: 28px;
	  width: 260px;
	  height: 120px;
	  background-image: url("http://shibata-bosai.co.jp/wp-content/uploads/2026/04/logo_menu_white.png");
	  background-repeat: no-repeat;
	  background-position: right;
	  background-size: contain;
	  z-index: 1;
	  pointer-events: none;
	}
}

/* 子ページ */
/* 共通ヘッダー */
/* =========================
  Page hero
========================= */

#top_title_area{
	display: none;
}
.page-hero {
  position: relative;
  height: 330px;
  overflow: visible;
}

.page-id-231 .page-hero {
  overflow: visible;
}

.page-hero__image {
  position: absolute;
  top: 0;
  left: 150px;
  right: 0;
  height: 100%;
  z-index: 1;
}

.page-hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-hero__grid {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 260px;
  height: 250px;
  z-index: 0;
  background-image:
    linear-gradient(rgba(69, 174, 218, 0.35) 1px, transparent 1px),
    linear-gradient(90deg, rgba(69, 174, 218, 0.35) 1px, transparent 1px);
  background-size: 22px 22px;
}

.page-hero__label {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 22px;
  min-width: min(560px, 86vw);
  padding: 14px 74px 14px 42px;
  background: #45aeda;
  color: #fff;
  clip-path: polygon(0 0, 100% 0, calc(100% - 34px) 100%, 0 100%);
	transform: translateY(60px);
}

.page-hero__en {
  font-family: "din-2014-narrow", "Roboto", sans-serif;
  font-size: clamp(54px, 7vw, 82px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.06em;
}

.page-hero__ja {
  font-size: clamp(14px, 1.4vw, 18px);
  font-weight: 700;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.page-hero__vertical {
  position: absolute;
  right: 22px;
  top: 24px;
  z-index: 2;
  writing-mode: vertical-rl;
  font-family: "din-2014-narrow", "Roboto", sans-serif;
  font-size: clamp(100px, 13vw, 180px);
  font-weight: 700;
  line-height: 0.8;
  letter-spacing: 0.04em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(69, 174, 218, 0.65);
  opacity: 0.9;
  pointer-events: none;
}

.page-hero__image,
.page-hero__image img,
.page-hero__grid,
.page-hero__label,
.page-hero__vertical,
.page-hero__en,
.page-hero__ja {
  will-change: opacity, transform, clip-path;
}

.page-hero__image {
  overflow: hidden;
}

.page-hero__label {
  transform-origin: left center;
}

.page-hero__en,
.page-hero__ja {
  display: inline-block;
}

/* SP */
@media screen and (max-width: 768px) {
  .page-hero {
    height: 230px;
  }

  .page-hero__image {
    left: 64px;
	  height:80%!important;
  }

  .page-hero__grid {
    width: 140px;
    height: 180px;
    background-size: 18px 18px;
	  top: 20px;
  }

  .page-hero__label {
    min-width: min(360px, 92vw);
    gap: 12px;
    padding: 10px 46px 10px 20px;
	  bottom: 10px;
  }

  .page-hero__en {
    font-size: 44px;
  }

  .page-hero__ja {
    font-size: 13px;
  }

  .page-hero__vertical {
    right: -6px;
    top: 34px;
    font-size: 82px;
  }
}
/* =========================
  Service page
========================= */

.service-page {
  position: relative;
  overflow: hidden;
  color: #111;
}

/* MV */
.service-mv {
  position: relative;
  height: 280px;
  overflow: hidden;
}

.service-mv__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.service-mv__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-mv::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.2);
  z-index: 1;
}

.service-mv__label {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 12px 48px 12px 28px;
  background: #45aeda;
  color: #fff;
  clip-path: polygon(0 0, 100% 0, calc(100% - 28px) 100%, 0 100%);
}

.service-mv__label span {
  font-family: "din-2014-narrow", "Roboto", sans-serif;
  font-size: clamp(44px, 7vw, 74px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1;
}

.service-mv__label small {
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}

.service-mv__vertical {
  position: absolute;
  right: -8px;
  top: 12px;
  z-index: 2;
  writing-mode: vertical-rl;
  font-family: "din-2014-narrow", "Roboto", sans-serif;
  font-size: clamp(90px, 12vw, 170px);
  font-weight: 700;
  line-height: 0.8;
  color: transparent;
  -webkit-text-stroke: 1px rgba(69,174,218,0.45);
  pointer-events: none;
}

/* Lead */
.service-lead {
  padding: 42px 20px 50px;
}

.service-lead__inner {
  max-width: 1000px;
}

.service-lead h1 {
  margin: 0 0 18px;
  color: #45aeda;
  font-size: clamp(22px, 2.4vw, 34px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: normal;
}

.service-lead p {
  margin: 0;
  font-size: 15px;
  line-height: 2;
}

/* Service list */
.service-list {
  position: relative;
}

.service-item {
  position: relative;
  display: grid;
  grid-template-columns: minmax(260px, 50%) 1fr;
  grid-template-areas:
    "head info"
    "images images";
  gap: 28px 48px;
  max-width: 1160px;
  margin: 0 auto 88px;
  padding: 0 20px 0;
}

.service-item__grid {
  position: absolute;
  left: calc(50% - 50vw);
  top: 230px;
	transform: translatey(170px);
  width: 520px;
  height: 260px;
  z-index: -1;
  background-image:
    linear-gradient(rgba(69,174,218,0.28) 1px, transparent 1px),
    linear-gradient(90deg, rgba(69,174,218,0.28) 1px, transparent 1px);
  background-size: 24px 24px;
}

.service-item::after {
    content: "";
    position: absolute;
    right: calc(50% - 50vw);
    bottom: -30px;
    width: 45vw;
    height: 200px;
    background: #45aeda;
    z-index: -1;
}

.service-item__head {
  grid-area: head;
  position: relative;
}

.service-arrow {
  width: 120px;
  margin: 0 0 32px 12px;
  line-height: 0;
  color: #45aeda;
}

.service-arrow svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.service-arrow path {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linejoin: round;
  stroke-linecap: round;
  will-change: stroke-dashoffset, opacity;
}

.service-item__head h2 {
  display: inline-block;
  margin: 0 0 26px;
  padding: 8px 66px 8px 52px;
  background: #333;
  color: #fff;
  font-size: clamp(22px, 2.2vw, 34px);
  font-weight: 700;
  line-height: 1.3;
  clip-path: polygon(0 0, 100% 0, calc(100% - 22px) 100%, 0 100%);
}

.service-item__head p {
  max-width: 560px;
  margin: 0;
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: 0.05em;
}

.service-item__info {
  grid-area: info;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 30px;
  padding-top: 102px;
}

.service-info__label {
  display: inline-block;
  margin: 0 0 10px;
  padding: 5px 22px 5px 12px;
  background: #45aeda;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
	clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%);
}

.service-info__text {
  margin: 0;
  color: #45aeda;
  font-size: clamp(18px, 2vw, 28px);
  line-height: 1;
  letter-spacing: 0.08em;
}

.service-info__number {
  margin: 0;
  color: #45aeda;
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 400;
}
.page .service-info__number{
	line-height: 1!important;
}
  

.service-item__images {
  grid-area: images;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.service-item__images figure {
  margin: 0;
}

.service-item__images img {
  display: block;
  width: 100%;
  height: 320px;
  object-fit: cover;
}

/* =========================
  Service page SP adjustment
========================= */

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

  .service-page {
    overflow: hidden;
  }

  /* MV */
  .service-mv {
    height: 170px;
    margin-bottom: 28px;
  }

  .service-mv__image {
    left: 0;
    height: 150px;
  }

  .service-mv__image img {
    object-fit: cover;
    object-position: center;
  }

  .service-mv__grid,
  .page-hero__grid {
    width: 120px;
    height: 150px;
    background-size: 16px 16px;
  }

  .service-mv__label {
    left: 0;
    bottom: -8px;
    min-width: 230px;
    padding: 8px 42px 8px 14px;
    gap: 10px;
    clip-path: polygon(0 0, 100% 0, calc(100% - 20px) 100%, 0 100%);
  }

  .service-mv__label span{
    font-size: 34px;
    letter-spacing: 0.04em;
  }

  .service-mv__label small {
    font-size: 11px;
  }

  .service-mv__vertical,
  .page-hero__vertical {
    right: -16px;
    top: 32px;
    font-size: 72px;
    opacity: 0.7;
  }

  /* リード */
  .service-lead {
    padding: 24px 0px 36px;
  }

  .service-lead h1 {
    font-size: 18px;
    line-height: 1.7;
    letter-spacing: 0.05em;
    margin-bottom: 16px;
  }

  .service-lead p {
    font-size: 12px;
    line-height: 2;
    letter-spacing: 0.04em;
  }

  /* サービス項目 */
  .service-item {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0 0px;
    margin-bottom: 62px;
  }

  .service-item__grid {
    left: -18px;
    top: 300px;
    width: 330px!important;
    height: 180px;
    background-size: 18px 18px;
  }

  .service-arrow {
    width: 72px;
    margin: 0 0 24px 8px;
  }

  .service-item__head h2,
  .service-item__title.js-heading-reveal {
    margin-bottom: 20px;
    padding: 7px 44px 7px 18px;
    font-size: 18px;
    line-height: 1.35;
    clip-path: polygon(0 0, 100% 0, calc(100% - 18px) 100%, 0 100%);
  }

  .service-item__head p {
    max-width: 100%;
    margin-bottom: 22px;
    font-size: 12px;
    line-height: 1.9;
    letter-spacing: 0.04em;
  }

  .service-item__info {
    padding-top: 0;
    margin-bottom: -16px;
    gap: 16px;
  }

  .service-info__label {
    font-size: 11px;
    padding: 4px 24px 4px 10px;
    margin-bottom: 8px;
    clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 100%, 0 100%);
  }

  .service-info__text {
    font-size: 14px;
    line-height: 1.7;
  }

  .service-info__number {
    font-size: 22px;
  }

  /* 画像 */
  .service-item__images {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin-top: 0px;
  }

  .service-item__images figure {
    margin: 0;
  }

  .service-item__images img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: cover;
  }

  /* 青い背景帯 */
  .service-item::after {
    right: -20px;
    bottom: -14px;
    width: 52vw;
    height: 58px;
  }

  /* お問い合わせ */
  .service-contact {
    padding: 42px 20px 72px;
  }

  .service-contact__title {
    font-size: 17px;
    margin-bottom: 16px;
  }

  .service-contact__btn {
    min-width: 160px;
    padding: 9px 24px;
    font-size: 11px;
  }
}


	
/* Contact */
.service-contact {
  padding: 50px 20px 90px;
  text-align: center;
}

.service-contact__title {
  margin: 0 0 18px;
  color: #f6042d;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.service-contact__btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  padding: 11px 28px;
  border-radius: 999px;
  background: #f6042d;
  color: #fff !important;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-decoration: none;
  overflow: hidden;
}

.service-contact__btn::before {
  content: "☎";
  margin-right: 8px;
}

/* SP */
@media screen and (max-width: 768px) {
  .service-mv {
    height: 220px;
  }

  .service-mv__label {
    padding: 10px 36px 10px 18px;
  }

  .service-mv__label span {
    font-size: 42px;
  }

  .service-mv__vertical {
    font-size: 86px;
    right: -10px;
  }

  .service-lead {
    padding: 32px 0px 44px;
  }

  .service-item {
    display: block;
    margin-bottom: 76px;
    padding: 0 0px;
  }

  .service-item__grid {
    top: 400px;
    width: 70vw;
    height: 260px;
  }

  .service-item::after {
    bottom: 40px;
    width: 78vw;
    height: 120px;
  }

  .service-arrow {
    margin-bottom: 24px;
  }

  .service-item__head h2 {
    margin-bottom: 20px;
    padding: 8px 52px 8px 20px;
    font-size: 24px;
  }

  .service-item__head p {
    max-width: none;
    margin-bottom: 24px;
  }

  .service-item__info {
    padding-top: 0;
    margin-bottom: 0px;
	  margin-top: 24px;
  }

  .service-item__images {
    grid-template-columns: 1fr;
    gap: 0px;
  }

  .service-item__images img {
    height: auto;
    aspect-ratio: 4 / 3;
  }
}

/* =========================
  Outline page PC
========================= */

@media screen and (min-width: 769px) {

  /* -------------------------
    Base
  ------------------------- */

  .outline-page {
    overflow: hidden;
    color: #111;
  }

  .outline-section-ja {
    margin: 0 0 6px;
    color: #45aeda;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0.08em;
  }

  .outline-page .outline-section-en {
    margin: 0;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    color: #45aeda;
    font-family: "din-2014-narrow", "Roboto", sans-serif;
    font-size: clamp(64px, 7vw, 92px);
    font-weight: 700;
    line-height: 0.9;
    letter-spacing: 0.06em;
  }

  .outline-page .outline-section-en::before,
  .outline-page .outline-section-en::after {
    display: none !important;
    content: none !important;
  }

  .outline-page .outline-section-en--white {
    color: #fff !important;
  }


  /* -------------------------
    GREETING
  ------------------------- */

  .outline-greeting {
    position: relative;
    padding: 58px 20px 120px;
  }

  .outline-greeting::before {
    content: "";
    position: absolute;
    left: 0;
    top: 100px;
    width: 430px;
    height: 360px;
    background-image:
      linear-gradient(rgba(69, 174, 218, 0.28) 1px, transparent 1px),
      linear-gradient(90deg, rgba(69, 174, 218, 0.28) 1px, transparent 1px);
    background-size: 24px 24px;
    z-index: 0;
    transform: translateY(20px);
    pointer-events: none;
  }

  .outline-greeting__inner {
    position: relative;
    z-index: 1;
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 44% 1fr;
    grid-template-areas:
      "title message"
      "visual message";
    column-gap: 68px;
    row-gap: 8px;
    align-items: start;
  }

  .outline-greeting__title {
    grid-area: title;
    padding-top: 0;
  }

  .outline-greeting__visual {
    grid-area: visual;
    position: relative;
  }

  .outline-greeting__photo {
    position: relative;
    z-index: 2;
    max-width: 480px;
    margin: 0;
  }

  .outline-greeting__photo img {
    display: block;
    width: 100%;
    aspect-ratio: 430 / 300;
    object-fit: cover;
  }

  .outline-greeting__name {
    position: relative;
    z-index: 3;
    display: inline-block;
    margin: -38px 0 0 0;
    padding: 8px 42px 8px 22px;
    background: #333;
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0.04em;
    clip-path: polygon(0 0, 100% 0, calc(100% - 20px) 100%, 0 100%);
    transform: translate(20px, -20px);
  }

  .outline-greeting__deco {
    width: 380px;
    margin-top: -16px;
    opacity: 0.9;
  }

  .outline-greeting__deco img {
    display: block;
    width: 100%;
    height: auto;
  }

  .outline-greeting__message {
    grid-area: message;
    position: relative;
    margin-top: 48px;
    padding: 54px 62px 48px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 0 0 1px rgba(69, 174, 218, 0.08);
  }

  .outline-greeting__message p {
    margin: 0 0 24px;
    font-size: 15px;
    line-height: 1.8;
    letter-spacing: 0.01em;
  }

  .outline-greeting__message strong {
    color: #45aeda;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: 0.04em;
  }

  .outline-greeting__sign {
    margin-top: 32px !important;
    text-align: right;
    color: #45aeda;
    font-weight: 700;
  }


  /* -------------------------
    OUTLINE
  ------------------------- */

  .outline-company {
    position: relative;
        padding: 240px 20px 160px;
        margin-top: -320px;
        background: #45aeda;
        color: #fff;
        clip-path: none;
        overflow: hidden;
        clip-path: polygon(0 200px, 100% 0, 100% 100%, 0 100%);
  }

  .outline-company::after {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    width: 280px;
    height: 200px;
    background-image:
      linear-gradient(rgba(255, 255, 255, 0.35) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255, 255, 255, 0.35) 1px, transparent 1px);
    background-size: 20px 20px;
    z-index: 0;
    pointer-events: none;
  }

  .outline-company::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 34px;
    width: 112px;
    height: 180px;
    background-image:
      linear-gradient(rgba(255, 255, 255, 0.35) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255, 255, 255, 0.35) 1px, transparent 1px);
    background-size: 20px 20px;
    z-index: 0;
    pointer-events: none;
  }

  .outline-company__inner {
    position: relative;
    z-index: 1;
    max-width: 1060px;
    margin: 0 auto;
  }

  .outline-company__title {
    margin-bottom: 54px;
  }

  .outline-company__title .outline-section-ja {
    color: #fff;
    margin-bottom: 10px;
    font-size: 15px;
  }

  .outline-company__title .outline-section-en {
    color: #fff;
    font-size: clamp(64px, 6vw, 92px);
    letter-spacing: 0.08em;
  }

  .outline-company__group {
    margin: 36px 0 0;
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
  }


  /* -------------------------
    OUTLINE rows
    左ラベル・中央・右を1行ごとに揃える構造
  ------------------------- */

  .outline-company__rows {
    max-width: 1060px;
    margin: 0 auto;
  }

  .outline-company__row {
    display: grid;
    grid-template-columns: 180px 1fr 1fr;
    column-gap: 46px;
    align-items: stretch;
  }

  .outline-company__label {
    display: flex;
    align-items: center;
    min-height: 36px;
    margin-bottom: 14px;
    padding: 5px 18px;
    background: #fff;
    color: #45aeda;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.08em;
  }

  .post_content .outline-page .outline-company__value {
    min-height: 36px;
    margin-bottom: 14px!important;
    padding: 5px 0 13px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.72);
    color: #fff;
    font-size: 16px;
    line-height: 1.85;
    letter-spacing: 0.04em;
  }

  .outline-company__row--tall .outline-company__label,
  .outline-company__row--tall .outline-company__value {
    min-height: 178px;
  }

  .outline-company__row--middle .outline-company__label,
  .outline-company__row--middle .outline-company__value {
    min-height: 118px;
  }


  /* -------------------------
    ACCESS
  ------------------------- */

  .outline-access {
    position: relative;
    z-index: 2;
    margin-top: -80px;
    padding: 0 20px 0px;
  }

  .outline-access__inner {
    max-width: 1120px;
    margin: 0 auto;
    padding: 78px 64px;
    background: #fff;
    text-align: center;
  }

  .outline-access__title {
    margin-bottom: 36px;
  }

  .outline-access__map {
    height: auto;
    margin: 0 auto 34px;
  }

  .outline-access__info {
    margin-bottom: 34px;
    font-size: 14px;
    line-height: 1.9;
    letter-spacing: 0.04em;
  }

  .outline-access__address {
    margin: 0 0 12px;
    font-weight: 400;
  }

  .outline-access__photos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    max-width: 640px;
    margin: 0 auto;
  }

  .outline-access__photos figure {
    margin: 0;
  }

  .outline-access__photos img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
  }

}

.page-id-231 .swell-block-fullWide.pc-py-60.sp-py-0.alignfull.u-mb-ctrl.u-mb-0{
	padding-bottom: 0!important;
}
.page-id-237 .swell-block-fullWide.pc-py-60.sp-py-0.alignfull.u-mb-ctrl.u-mb-0{
	padding-bottom: 0!important;
}


/* =========================
  Outline page SP
========================= */

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

  .outline-page {
    overflow: hidden;
  }

  /* -------------------------
    Common title
  ------------------------- */

  .outline-section-ja {
    margin: 0 0 4px;
    color: #45aeda;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0.08em;
  }

  .outline-page .outline-section-en {
    margin: 0;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    color: #45aeda;
    font-family: "din-2014-narrow", "Roboto", sans-serif;
    font-size: 44px;
    font-weight: 700;
    line-height: 0.9;
    letter-spacing: 0.08em;
  }

  .outline-page .outline-section-en::before,
  .outline-page .outline-section-en::after {
    display: none !important;
    content: none !important;
  }

  .outline-page .outline-section-en--white {
    color: #fff !important;
  }

  /* -------------------------
    GREETING
  ------------------------- */

  .outline-greeting {
    position: relative;
    padding: 42px 18px 64px;
  }

  .outline-greeting::before {
    content: "";
    position: absolute;
    left: 0;
    top: 190px;
    width: 150px;
    height: 260px;
    background-image:
      linear-gradient(rgba(69, 174, 218, 0.28) 1px, transparent 1px),
      linear-gradient(90deg, rgba(69, 174, 218, 0.28) 1px, transparent 1px);
    background-size: 16px 16px;
    z-index: 0;
    pointer-events: none;
  }

  .outline-greeting__inner {
    position: relative;
    z-index: 1;
    display: block;
    max-width: none;
    margin: 0;
  }

  .outline-greeting__title {
    margin-bottom: 24px;
  }

  .outline-greeting__photo {
    position: relative;
    z-index: 2;
    max-width: none;
    margin: 0;
  }

  .outline-greeting__photo img {
    display: block;
    width: 100%;
    aspect-ratio: 330 / 230;
    object-fit: cover;
  }

  .outline-greeting__name {
    position: relative;
    z-index: 3;
    display: inline-block;
    margin: -28px 0 0 0;
    padding: 7px 28px 7px 14px;
    background: #333;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%);
    transform: translate(10px, -4px);
  }

  .outline-greeting__deco {
    display: none;
  }

  .outline-greeting__message {
    margin-top: 0;
    padding: 10px;
    background: #fff;
    box-shadow: none;
  }

  .outline-greeting__message p {
    margin: 0 0 20px;
    font-size: 12px;
    line-height: 2;
    letter-spacing: 0.02em;
  }

  .outline-greeting__message strong {
    color: #45aeda;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.7;
    letter-spacing: 0.04em;
  }

  .outline-greeting__sign {
    margin-top: 28px !important;
    text-align: right;
    color: #45aeda;
    font-size: 12px;
    font-weight: 700;
  }

  /* -------------------------
    OUTLINE
  ------------------------- */

  .outline-company {
    position: relative;
    padding: 68px 18px 76px;
    background: #45aeda;
    color: #fff;
    overflow: hidden;
    clip-path: polygon(0 38px, 100% 0, 100% 100%, 0 100%);
  }

  .outline-company::after {
    content: "";
    position: absolute;
    right: -8px;
    top: 92px;
    width: 110px;
    height: 110px;
    background-image:
      linear-gradient(rgba(255, 255, 255, 0.34) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255, 255, 255, 0.34) 1px, transparent 1px);
    background-size: 16px 16px;
    z-index: 0;
    pointer-events: none;
  }

  .outline-company::before {
    content: "";
    position: absolute;
    left: -10px;
    bottom: 360px;
    width: 92px;
    height: 130px;
    background-image:
      linear-gradient(rgba(255, 255, 255, 0.34) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255, 255, 255, 0.34) 1px, transparent 1px);
    background-size: 16px 16px;
    z-index: 0;
    pointer-events: none;
  }

  .outline-company__inner {
    position: relative;
    z-index: 1;
    max-width: none;
    margin: 0;
  }

  .outline-company__title {
    margin-bottom: 34px;
  }

  .outline-company__title .outline-section-ja {
    color: #fff;
    font-size: 12px;
    margin-bottom: 6px;
  }

  .outline-company__title .outline-section-en {
    color: #fff;
    font-size: 44px;
    letter-spacing: 0.08em;
  }

  .outline-company__group {
    margin: 22px 0 0;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.05em;
  }

}

 /* -------------------------
    OUTLINE rows SP
  ------------------------- */
@media screen and (max-width: 768px)  {

  .outline-company__rows {
    display: none !important;
  }

  .outline-company__sp {
    display: block;
  }

  .outline-company__sp-block {
    margin-top: 30px;
  }

  .outline-company__sp-block:first-child {
    margin-top: 0;
  }

  .outline-company__sp-block h3 {
    margin: 0 0 18px;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }

  .outline-sp-row {
    display: grid;
    grid-template-columns: 84px 1fr;
    gap: 12px;
    align-items: stretch;
    margin-bottom: 9px;
  }

  .outline-sp-label,
  .outline-sp-value {
    margin: 0 !important;
  }

  .outline-sp-label {
    display: flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 9px;
    background: #fff;
    color: #45aeda;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.05em;
  }

  .outline-sp-value {
    min-height: 28px;
    padding: 4px 0 9px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.72);
    color: #fff;
    font-size: 12px;
    line-height: 1.75;
    letter-spacing: 0.03em;
  }

  .outline-sp-row--multi .outline-sp-label {
    align-items: flex-start;
    padding-top: 7px;
  }

  .outline-company__sp-logo {
    width: 145px;
    margin: 34px auto auto;
    opacity: 0.95;
  }

  .outline-company__sp-logo img {
    display: block;
    width: 100%;
    height: auto;
  }
}

@media screen and (min-width: 769px) {
  .outline-company__sp {
    display: none !important;
  }
  /* SWELLのlast-child対策 */
  .post_content .outline-page .outline-company__row > .outline-company__value,
  .post_content .outline-page .outline-company__row > .outline-company__label {
    margin-bottom: 10px !important;
  }
}

  /* -------------------------
    ACCESS
  ------------------------- */
@media screen and (max-width: 768px) {
 .outline-access {
    position: relative;
    z-index: 2;
    margin-top: -34px;
    padding: 0 18px 70px;
    background: #fff;
  }

  .outline-access__inner {
    max-width: none;
    margin: 0 auto;
    padding: 48px 18px 54px;
    background: #fff;
    text-align: center;
  }

  .outline-access__title {
    margin-bottom: 26px;
  }

  .outline-access__map {
    margin: 0 auto 28px;
  }

  .outline-access__info {
    margin-bottom: 24px;
    font-size: 12px;
    line-height: 1.9;
    letter-spacing: 0.04em;
  }

  .outline-access__address {
    margin: 0 0 10px;
    font-weight: 700;
  }


  .outline-access__photos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    max-width: 640px;
    margin: 0 auto;
  }

  .outline-access__photos figure {
    margin: 0;
  }

  .outline-access__photos img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
  }
}

/* =========================
  Partners page PC
========================= */

@media screen and (min-width: 769px) {

  .partners-page {
    color: #111;
  }

  /* =========================
    Lead
  ========================= */

  .partners-lead {
    position: relative;
    padding: 62px 20px 80px;
  }

  .partners-lead__inner {
    max-width: 1180px;
    margin: 0 auto;
  }

  .partners-lead h1 {
    margin: 0 0 30px;
    color: #45aeda;
    font-size: clamp(28px, 2.4vw, 38px);
    font-weight: 700;
    line-height: 1.65;
  }

  .partners-lead p {
    margin: 0;
    font-size: 17px;
    line-height: 2;
  }

  /* =========================
    Detail
  ========================= */

  .partners-detail {
    position: relative;
    padding: 34px 20px 0px;
  }

  .partners-detail__inner {
    position: relative;
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 420px;
    column-gap: 70px;
    align-items: start;
  }

  .partners-detail__content {
    position: relative;
    z-index: 2;
    min-height: 820px;
    padding: 42px 54px 60px;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(69, 174, 218, 0.04);
	  min-width: 1000px;
  }

  .partners-detail__list {
    max-width: 540px;
  }

  .partners-detail__item {
    margin-bottom: 20px;
  }

  .partners-detail__label {
    position: relative;
    display: inline-block;
    width: fit-content;
    margin: 0;
    padding: 6px 34px 6px 16px;
    background: #45aeda;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.08em;
    clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%);
  }
	.js-heading-reveal.partners-detail__label::before{
		  background: #45aeda!important;
	}

  .partners-detail__label span {
    position: relative;
    z-index: 1;
  }

  .partners-detail__text {
    margin: 0;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.06em;
  }

  .partners-detail__note {
    margin: 0;
    font-size: 12px;
    line-height: 1.8;
    letter-spacing: 0.04em;
  }

 /* =========================
  Partners detail contact button
========================= */

.partners-detail__contact {
  position: absolute;
  left: 60px;
  bottom: 54px;
  width: 300px;
}

/* 上下の赤線 */
.partners-detail__contact::before,
.partners-detail__contact::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background: #f6042d;
}

/* ボタン全体 */
.partners-detail__contact-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 26px;
  padding: 22px 0;
  color: #f6042d !important;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-decoration: none;
}

/* テキスト */
.partners-detail__contact-btn span {
  color: #f6042d;
  transition: color 0.3s ease;
}
/* 矢印の丸ボタン */
.partners-detail__contact-btn em {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 78px;
  height: 48px;
  border: 2px solid #f6042d;
  border-radius: 999px;
  color: #f6042d;
  font-style: normal;
  line-height: 1;
  overflow: hidden;
  font-size: 0;
  transition:
    color 0.35s ease,
    box-shadow 0.35s ease,
    transform 0.35s ease;
}

/* 赤背景を左から出す */
.partners-detail__contact-btn em::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #f6042d;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s ease;
  z-index: 0;
}

/* 矢印を疑似要素で表示 */
.partners-detail__contact-btn em::after {
  content: "→";
  position: relative;
  z-index: 1;
  color: #f6042d;
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
  transition: color 0.35s ease;
}

/* ホバー時：背景が赤くなる */
.partners-detail__contact:hover .partners-detail__contact-btn em::before {
  transform: scaleX(1);
}

/* ホバー時：矢印を白に */
.partners-detail__contact:hover .partners-detail__contact-btn em::after {
  color: #fff;
}

.partners-detail__contact:hover .partners-detail__contact-btn em {
  box-shadow: 0 14px 28px rgba(246, 4, 45, 0.18);
  transform: translateX(4px);
}
	
  /* =========================
    Visual
  ========================= */

  .partners-detail__visual {
           position: absolute;
        z-index: 2;
        min-height: 840px;
        right: 0;
        top: 0;
  }

  .partners-detail__photo {
    position: relative;
    z-index: 2;
    margin: 0;
    width: 420px;
  }

  .partners-detail__photo img {
    display: block;
    width: 100%;
    height: 245px;
    object-fit: cover;
  }

  .partners-detail__photo--01 {
    margin-top: 60px;
  }

  .partners-detail__photo--02 {
    margin-top: 24px;
    transform: translateX(-18px);
  }

  .partners-detail__grid {
    position: absolute;
    z-index: 0;
    background-image:
      linear-gradient(rgba(69, 174, 218, 0.35) 1px, transparent 1px),
      linear-gradient(90deg, rgba(69, 174, 218, 0.35) 1px, transparent 1px);
    background-size: 20px 20px;
    pointer-events: none;
  }

  .partners-detail__grid--top {
    right: -22px;
    top: 100px;
    width: 360px;
    height: 210px;
  }

  .partners-detail__grid--bottom {
    right: -4px;
    top: 400px;
    width: 340px;
    height: 210px;
  }

    .partners-detail__driver {
        position: relative;
        right: 50%;
        bottom: 80px;
        width: 250px;
        opacity: 0.75;
        z-index: 2;
    }

  .partners-detail__driver img {
    display: block;
    width: 100%;
    height: auto;
  }

}


/* =========================
  Partners page SP
========================= */

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

  .partners-page {
    overflow: hidden;
  }

  /* =========================
    Lead
  ========================= */

  .partners-lead {
    padding: 34px 22px 44px;
  }

  .partners-lead__inner {
    max-width: none;
    margin: 0;
  }

  .partners-lead h1 {
    margin: 0 0 24px;
    color: #45aeda;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.75;
  }

  .partners-lead p {
    margin: 0;
    font-size: 13px;
    line-height: 2;
  }


  /* =========================
    Detail
  ========================= */

  .partners-detail {
    position: relative;
    padding: 28px 20px 78px;
    background: #fff;
  }

  .partners-detail__inner {
    display: block;
    max-width: none;
    margin: 0;
  }

  .partners-detail__content {
    position: relative;
    z-index: 2;
    min-height: auto;
    padding: 0;
    background: #fff;
    box-shadow: none;
  }

  .partners-detail__list {
    max-width: none;
  }

  .partners-detail__item {
    margin-bottom: 24px;
  }

  .partners-detail__label {
    position: relative;
    display: inline-block;
    width: fit-content;
    margin: 0 0 0px;
    padding: 5px 28px 5px 12px;
    background: #45aeda;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.06em;
    clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 100%, 0 100%);
  }

  .partners-detail__label span {
    position: relative;
    z-index: 1;
  }

  .partners-detail__text {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.85;
    letter-spacing: 0.05em;
  }

  .partners-detail__note {
    margin: 8px 0 0;
    font-size: 12px;
    line-height: 1.8;
    letter-spacing: 0.04em;
  }


  /* =========================
    Contact button
  ========================= */

  .partners-detail__contact {
    position: relative;
    right: auto;
    bottom: auto;
    width: min(260px, 78vw);
    margin: 34px 0 56px auto;
  }

  .partners-detail__contact::before,
  .partners-detail__contact::after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: #f6042d;
  }

  .partners-detail__contact-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 16px 0;
    color: #f6042d !important;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-decoration: none;
  }

  .partners-detail__contact-btn span {
    color: #f6042d;
  }

  .partners-detail__contact-btn em {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 34px;
    border: 1px solid #f6042d;
    border-radius: 999px;
    color: #f6042d;
    font-size: 0;
    font-style: normal;
    line-height: 1;
    overflow: hidden;
  }

  .partners-detail__contact-btn em::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #f6042d;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.35s ease;
    z-index: 0;
  }

  .partners-detail__contact-btn em::after {
    content: "→";
    position: relative;
    z-index: 1;
    color: #f6042d;
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    transition: color 0.35s ease;
  }

  .partners-detail__contact:hover .partners-detail__contact-btn em::before {
    transform: scaleX(1);
  }

  .partners-detail__contact:hover .partners-detail__contact-btn em::after {
    color: #fff;
  }


  /* =========================
    Visual
  ========================= */

  .partners-detail__visual {
    position: relative;
    z-index: 1;
    min-height: auto;
	 padding-top: 20px;
    margin-left: -20px;
    margin-right: -20px;
    padding-bottom: 26px;
  }

  .partners-detail__photo {
    position: relative;
    z-index: 2;
    width: 78vw;
    margin: 0;
  }

  .partners-detail__photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: cover;
  }

  .partners-detail__photo--01 {
    margin-top: 0;
    margin-left: 0;
  }

  .partners-detail__photo--02 {
    margin-top: 28px;
    margin-left: auto;
    transform: none;
  }

  .partners-detail__grid {
    position: absolute;
    z-index: 0;
    background-image:
      linear-gradient(rgba(69, 174, 218, 0.35) 1px, transparent 1px),
      linear-gradient(90deg, rgba(69, 174, 218, 0.35) 1px, transparent 1px);
    background-size: 16px 16px;
    pointer-events: none;
  }

  .partners-detail__grid--top {
    right: 0;
    top: 32px;
    width: 120px;
    height: 150px;
  }

  .partners-detail__grid--bottom {
    right: 42px;
    bottom: 0;
    top: auto;
    width: 160px;
    height: 130px;
  }

  .partners-detail__driver {
    display: none;
  }
}

@media screen and (max-width: 769px) {
	.js-heading-reveal.partners-detail__label::before{
		background: #45aeda!important;
	}
}

/* =========================
  Recruit page PC
========================= */

@media screen and (min-width: 769px) {

  .recruit-page {
    overflow: hidden;
    color: #111;
  }

  /* 共通：黒斜め見出し */
  .recruit-section-title {
    display: inline-block;
    width: fit-content;
    margin: 0 0 34px;
    padding: 8px 54px 8px 22px;
    background: #333;
    color: #fff;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: 0.05em;
    clip-path: polygon(0 0, 100% 0, calc(100% - 20px) 100%, 0 100%);
  }

  .recruit-section-title span {
    position: relative;
    z-index: 1;
  }

  /* =========================
    LEAD
  ========================= */

  .recruit-lead {
    padding: 54px 20px 48px;
  }

  .recruit-lead__inner {
    max-width: 1180px;
    margin: 0 auto;
  }

  .recruit-lead h1 {
    margin: 0 0 20px;
    color: #45aeda;
    font-size: clamp(40px, 4vw, 54px);
    font-weight: 700;
    line-height: 1.6;
  }

  .recruit-lead p {
    margin: 0;
    font-size: 26px;
    line-height: 1.9;
  }
}
  /* =========================
    DAY
  ========================= */
/* =========================
  Recruit day section refine - PC
========================= */

@media screen and (min-width: 769px) {

  .recruit-day {
    position: relative;
    padding: 46px 20px 70px;
  }

  .recruit-day__inner {
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(520px, 1fr) 430px;
    column-gap: 82px;
    align-items: start;
  }

  /* 黒帯見出し */
  .recruit-day .recruit-section-title {
    margin: 0 0 58px;
    padding: 10px 64px 10px 24px;
    background: #333;
    color: #fff;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: 0.05em;
    clip-path: polygon(0 0, 100% 0, calc(100% - 22px) 100%, 0 100%);
  }

  /* タイムライン全体 */
  .recruit-timeline {
    position: relative;
    max-width: 560px;
    padding-left: 0;
  }

  .recruit-timeline__row {
    position: relative;
    display: grid;
    grid-template-columns: 86px 1fr;
    column-gap: 22px;
    align-items: start;
    margin-bottom: 26px;
  }

  /* 08:00〜17:30 */
  .recruit-timeline__time {
    position: relative;
    margin: 0;
    color: #45aeda;
    font-family: "din-2014-narrow", "Roboto", sans-serif;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: 0.02em;
	  padding-left: 10px;
  }

  /* 時間の下に薄い縦線 */
  .recruit-timeline__row:not(:last-child) .recruit-timeline__time::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 42px;
    width: 1px;
	  height: 16px;
    background: rgba(69, 174, 218, 0.45);
    transform: translateX(-50%);
  }
  /* 時間の下に薄い縦線 */
  .recruit-timeline__row:nth-child(1) .recruit-timeline__time::after {
	  height: 56px;
  }

	
  .recruit-timeline__text {
    margin: 0;
    color: #222;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.65;
    letter-spacing: 0.05em;
  }

  .recruit-timeline__text small,
  .recruit-timeline__text span {
    font-size: 13px;
    font-weight: 400;
  }

  /* 08:00横の注釈を小さくしたい場合 */
  .recruit-timeline__text .note {
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.02em;
  }

  .recruit-day__note {
    max-width: 1180px;
    margin: 34px auto 0;
    padding: 18px 26px;
    border: 1px solid rgba(69, 174, 218, 0.55);
    color: #333;
    font-size: 13px;
    line-height: 1.8;
    letter-spacing: 0.04em;
  }

  /* 右側画像 */
  .recruit-day__visual {
    position: relative;
    min-height: 500px;
    padding-top: 60px;
  }

  .recruit-day__photo {
    position: relative;
    z-index: 2;
    margin: 0;
    width: 420px;
  }

  .recruit-day__photo img {
    display: block;
    width: 100%;
    height: 235px;
    object-fit: cover;
  }

  .recruit-day__photo--01 {
    margin-top: 0;
    margin-left: 0;
  }

  .recruit-day__photo--02 {
    margin-top: 28px;
    margin-left: 34px;
    transform: none;
  }

  /* 右下の格子 */
  .recruit-day__grid {
    position: absolute;
    right: -34px;
    bottom: -20px;
    width: 360px;
    height: 250px;
    background-image:
      linear-gradient(rgba(69, 174, 218, 0.35) 1px, transparent 1px),
      linear-gradient(90deg, rgba(69, 174, 218, 0.35) 1px, transparent 1px);
    background-size: 20px 20px;
    z-index: 0;
    pointer-events: none;
  }
  .recruit-day__grid.recruit-day__grid__top{
		 bottom: 240px;
	}
	.recruit-timeline__text p {
  margin: 0 0 12px;
  }

  .recruit-timeline__text p:last-child {
    margin-bottom: 0;
  }

  .recruit-day__small-note {
    margin: 30px 0 0;
    font-size: 13px;
    line-height: 1.8;
    letter-spacing: 0.04em;
  }

  .recruit-day__note p {
    margin: 0;
    line-height: 1.8;
  }
  /* =========================
    BENEFIT
  ========================= */

  .recruit-benefit {
    padding: 34px 20px 0;
  }

  .recruit-benefit__inner {
    max-width: 1180px;
    margin: 0 auto;
  }

  .recruit-benefit__box {
    max-width: 100%;
    padding: 36px 46px 42px;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(69, 174, 218, 0.05);
  }

  .recruit-benefit__row {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 24px;
    align-items: center;
    margin-bottom: 14px;
  }

  .recruit-benefit__label {
    margin: 0;
    padding: 6px 18px;
    background: #45aeda;
    color: #fff;
    font-size: 16px;
    font-weight: 400;
    clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 100%, 0 100%);
  }

  .recruit-benefit__text {
    margin: 0;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.04em;
  }
  .recruit-benefit__text>span {
    font-size: 12px;
  }
  /* =========================
    ENVIRONMENT
  ========================= */

  .recruit-env {
    position: relative;
    margin-top: -120px;
    padding: 228px 20px 120px;
    background: #45aeda;
    color: #fff;
    clip-path: polygon(0 200px, 100% 0, 100% 100%, 0 100%);
	  z-index: -1;
  }
  .recruit-env h2 span>span{
    font-size: 12px;
    font-weight: 400;
  }

  .recruit-env::before {
    content: "";
    position: absolute;
    left: 0;
    top: 270px;
    width: 180px;
    height: 232px;
    background-image:
      linear-gradient(rgba(255,255,255,0.34) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.34) 1px, transparent 1px);
    background-size: 20px 20px;
  }

  .recruit-env__inner {
    position: relative;
    z-index: 1;
    max-width: 1180px;
    margin: 0 auto;
  }

  .recruit-env .recruit-section-title {
    margin-bottom: 36px;
  }

  .recruit-env__numbers {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 62px;
  }

  .recruit-number-card {
    padding: 20px 18px;
    background: #fff;
    color: #45aeda;
    text-align: center;
    transform: skewX(-8deg);
  }

  .recruit-number-card > * {
    transform: skewX(8deg);
  }

  .recruit-number-card__label {
    margin: 0 auto 10px 0;
    font-size: 20px;
    font-weight: 700;
	  text-align: left;
  }

  .recruit-number-card__num {
    margin: 0;
    font-family: "din-2014-narrow", "Roboto", sans-serif;
    font-size: 100px;
    font-weight: 700;
    line-height: 1;
  }

  .recruit-number-card__num span {
    font-size: 18px;
    margin-left: 4px;
  }

  .recruit-env__data {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px 90px;
    max-width: 100%;
  }
/* =========================
  Recruit environment charts
========================= */

  .recruit-env__data {
    display: grid;
    grid-template-columns: minmax(620px, 1fr) 360px;
    gap: 70px;
    align-items: start;
    max-width: 1080px;
  }

  .recruit-env__charts {
    display: flex;
    flex-direction: column;
    gap: 90px;
  }

  .recruit-donut {
    position: relative;
    width: 620px;
    height: 380px;
  }

  .recruit-donut__circle {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 300px;
    height: 300px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
  }

  .recruit-donut__circle::after {
    content: "";
    position: absolute;
    inset: 76px;
    border-radius: 50%;
    background: #45aeda;
    z-index: 1;
  }

  .recruit-donut__center {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 30px;
    font-weight: 700;
    letter-spacing: 0.08em;
  }

  /* 年齢割合 */
  .recruit-donut--age .recruit-donut__circle {
	  background: conic-gradient(
		from 0deg,
		#ffffff 0deg 90deg,
		#bfe8fb 90deg 137deg,
		#91d1f3 137deg 236deg,
		#5cb7e8 213deg 360deg
	  );
  }

	.recruit-donut__circle {
	  overflow: hidden;
	}

	/* 分割線 */
	.recruit-donut__circle .donut-separator {
	  position: absolute;
	  left: 50%;
	  top: 50%;
	  width: 4px; /* 隙間の太さ */
	  height: 50%;
	  background: #45aeda; /* 背景の青と同じ色 */
	  transform-origin: center bottom;
	  z-index: 3;
	  pointer-events: none;
	}
	.recruit-donut--age .donut-separator--age-01 {
	  transform: translate(-50%, -100%) rotate(0deg);
	}

	.recruit-donut--age .donut-separator--age-02 {
	  transform: translate(-50%, -100%) rotate(90deg);
	}

	.recruit-donut--age .donut-separator--age-03 {
	  transform: translate(-50%, -100%) rotate(137deg);
	}

	.recruit-donut--age .donut-separator--age-04 {
	  transform: translate(-50%, -100%) rotate(236deg);
	}

	.recruit-donut__circle::after {
	  z-index: 4;
	}

	.recruit-donut__center {
	  z-index: 5;
	}
  /* 男女比 */
  .recruit-donut--gender .recruit-donut__circle {
  background: conic-gradient(
    from 0deg,
    #ffffff 0deg 144deg,
    #9bd4f3 144deg 360deg
  );
  }
	.recruit-donut--gender .donut-separator--gender-01 {
	  transform: translate(-50%, -100%) rotate(0deg);
	}

	.recruit-donut--gender .donut-separator--gender-02 {
	  transform: translate(-50%, -100%) rotate(144deg);
	}
  /* ラベル共通 */
  .recruit-donut__label {
    position: absolute;
    z-index: 3;
    color: #fff;
    opacity: 0;
    transform: translateY(16px);
  }

  .recruit-donut__label span {
    display: block;
    margin-bottom: 4px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
  }

  .recruit-donut__label strong {
    display: block;
    font-family: "din-2014-narrow", "Roboto", sans-serif;
    font-size: 54px;
    font-weight: 700;
    line-height: 1;
  }

  .recruit-donut__label em {
    margin-left: 3px;
    font-size: 32px;
    font-style: normal;
  }

  /* ラベル位置：年齢 */
  .recruit-donut__label--age-50 {
    left: 0;
    top: 32px;
  }

  .recruit-donut__label--age-20 {
    right: 0;
    top: 32px;
  }

  .recruit-donut__label--age-40 {
    left: 8px;
    bottom: 56px;
  }

  .recruit-donut__label--age-30 {
    right: -10px;
    bottom: 86px;
  }

  /* ラベル位置：男女 */
  .recruit-donut__label--gender-male {
    left: 8px;
    top: 40px;
  }

  .recruit-donut__label--gender-female {
    right: 8px;
    top: 40px;
  }

  /* 横線 */
  .recruit-donut__label::after {
    content: "";
    position: absolute;
    top: 56px;
    width: 80px;
    height: 1px;
    background: rgba(255,255,255,0.55);
  }

  /* 斜め線 */
  .recruit-donut__label::before {
    content: "";
    position: absolute;
    top: 56px;
    width: 40px;
    height: 1px;
    background: rgba(255,255,255,0.55);
  }

  .recruit-donut__label--age-50::after,
  .recruit-donut__label--age-40::after,
  .recruit-donut__label--gender-male::after {
    left: 118px;
  }

  .recruit-donut__label--age-20::after,
  .recruit-donut__label--age-30::after,
  .recruit-donut__label--gender-female::after {
    right: 112px;
  }

  .recruit-donut__label--age-50::before,
  .recruit-donut__label--gender-male::before {
    left: 194px;
    transform: rotate(42deg);
    transform-origin: left center;
  }

  .recruit-donut__label--age-40::before {
    left: 194px;
    transform: rotate(-42deg);
    transform-origin: left center;
  }

  .recruit-donut__label--age-20::before,
  .recruit-donut__label--gender-female::before {
    right: 188px;
    transform: rotate(-42deg);
    transform-origin: right center;
  }

  .recruit-donut__label--age-30::before {
    right: 188px;
    transform: rotate(42deg);
    transform-origin: right center;
  }

  /* 活躍している人 */
  .recruit-env__people {
    padding-top: 60px;
  }
  .recruit-env__people {
    grid-row: span 2;
  }

  .recruit-env__people h3 {
    display: inline-block;
    margin: 0 0 24px -16px;
    padding: 7px 38px 7px 24px;
    background: #fff;
    color: #45aeda;
    font-size: 22px;
    font-weight: 700;
    clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%);
  }

  .recruit-env__people ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .recruit-env__people li {
    padding: 12px 0;
    border-bottom: 1px solid rgba(255,255,255,0.65);
    font-size: 15px;
    line-height: 1.7;
  }

  .recruit-env__helmet {
    position: absolute;
    right: 50px;
    bottom: 90px;
    width: 260px;
    opacity: 0.75;
  }

  .recruit-env__helmet img {
    width: 100%;
    display: block;
  }

  /* =========================
    CAREER
  ========================= */
  .recruit-career {
    position: relative;
    padding: 92px 20px 96px;
    background: #fafafa;
    overflow: hidden;
  }

  .recruit-career__inner {
    position: relative;
    z-index: 1;
    max-width: 1120px;
    margin: 0 auto;
  }

  /* 右上グリッド */
  .recruit-career::after {
    content: "";
    position: absolute;
    right: 0;
    top: 24px;
    width: 310px;
    height: 205px;
    background-image:
      linear-gradient(rgba(69, 174, 218, 0.28) 1px, transparent 1px),
      linear-gradient(90deg, rgba(69, 174, 218, 0.28) 1px, transparent 1px);
    background-size: 18px 18px;
    z-index: 0;
    pointer-events: none;
  }

  /* 左下グリッド */
  .recruit-career::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 70px;
    width: 250px;
    height: 205px;
    background-image:
      linear-gradient(rgba(69, 174, 218, 0.28) 1px, transparent 1px),
      linear-gradient(90deg, rgba(69, 174, 218, 0.28) 1px, transparent 1px);
    background-size: 18px 18px;
    z-index: 0;
    pointer-events: none;
  }

  /* 黒帯タイトル */
  .recruit-career .recruit-section-title {
    margin: 0 0 70px;
    padding: 10px 68px 10px 24px;
    font-size: 28px;
    line-height: 1.35;
    clip-path: polygon(0 0, 100% 0, calc(100% - 22px) 100%, 0 100%);
  }

  .recruit-career__block {
    position: relative;
    margin-top: 0;
  }

  .recruit-career__block + .recruit-career__block {
    margin-top: 62px;
  }

  /* 「未経験入社の場合」「経験者入社の場合」 */
  .recruit-career__caption {
    margin: 0 0 46px 28px;
    color: #45aeda;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.06em;
  }

  .recruit-career__cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 380px));
    gap: 84px;
    align-items: stretch;
  }

  /* 1段目は左寄せ */
  .recruit-career__block:first-of-type .recruit-career__cards {
    justify-content: start;
  }

  /* 2段目は少し右寄せ */
  .recruit-career__block:nth-of-type(2) .recruit-career__cards {
    justify-content: flex-end;
  }

  .recruit-career__block:nth-of-type(2) .recruit-career__caption{
    margin-left: 294px;
  }
  .recruit-career-card {
    position: relative;
    min-height: 320px;
    padding: 74px 32px 42px;
    background: #fff;
    border: 1.5px solid #45aeda;
    text-align: left;
    transform: skewX(-5deg);
    box-sizing: border-box;
  }

  .recruit-career-card > * {
    transform: skewX(5deg);
  }

  /* 上の青ラベル */
  .recruit-career-card__label {
    position: absolute;
    left: -2px;
    top: -28px;
    transform: none;
    min-width: 150px;
    margin: 0;
    padding: 9px 36px 9px 24px;
    background: #45aeda;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
    letter-spacing: 0.06em;
    clip-path: polygon(0 0, 100% 0, calc(100% - 16px) 100%, 0 100%);
    z-index: 2;
  }

  .recruit-career-card__label {
    transform: skewX(5deg);
  }

  .recruit-career-card img {
    display: block;
    width: 126px;
    height: 126px;
    object-fit: contain;
    margin: 0 auto 32px;
  }

  .recruit-career-card p:last-child {
    margin: 0;
    color: #222;
    font-size: 15px;
    line-height: 2;
  }

  /* カード間の横線 */
  .recruit-career__cards::before {
    content: "";
    position: absolute;
    left: 400px;
    top: 50%;
    width: 46px;
    height: 1px;
    background: #45aeda;
    transform: translateY(-50%);
  }



  .recruit-career__cards {
    position: relative;
  }

  /* 2段目の線位置を調整 */
  .recruit-career__block:nth-of-type(2) .recruit-career__cards::before {
    left: calc(50%  - -112px);
  }

  /* =========================
    MESSAGE
  ========================= */
  .recruit-message {
    padding: 78px 20px 0px;
  }

  .recruit-message__inner {
    position: relative;
    max-width: 1120px;
    margin: 0 auto;
    padding: 0px 0px 50px;
    background: #45aeda;
    color: #fff;
    box-sizing: border-box;
  }

  /* 黒帯タイトル */
  .recruit-message__title {
    position: absolute;
    left: -8px;
    top: 48px;
    display: inline-block;
    width: fit-content;
    margin: 0;
    padding: 10px 68px 10px 24px;
    background: #333;
    color: #fff;
    font-size: 28px!important;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: 0.05em;
    clip-path: polygon(0 0, 100% 0, calc(100% - 22px) 100%, 0 100%);
    z-index: 2;
  }

  /* 白い本文カード */
  .recruit-message__box {
    max-width: 960px;
    margin: 16px auto 28px;
    padding: 28px 34px 30px;
    background: #fff;
    color: #111;
    box-sizing: border-box;
  }

  .recruit-message__box h3 {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0 0 20px;
    color: #45aeda;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.06em;
  }

  /* 左の人アイコンっぽい装飾 */
  .recruit-message__box h3::before {
    content: "";
    display: inline-block;
    flex: 0 0 auto;
    width: 48px;
    height: 38px;
    background-color: #45aeda;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='58' height='44' viewBox='0 0 58 44' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='17' cy='12' r='10' fill='black'/%3E%3Cpath d='M2 39c0-10 7-17 15-17s15 7 15 17v3H2v-3z' fill='black'/%3E%3Cpath d='M39 29L54 14l-4-4-11 11-6-6-4 4 10 10z' fill='black'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg width='58' height='44' viewBox='0 0 58 44' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='17' cy='12' r='10' fill='black'/%3E%3Cpath d='M2 39c0-10 7-17 15-17s15 7 15 17v3H2v-3z' fill='black'/%3E%3Cpath d='M39 29L54 14l-4-4-11 11-6-6-4 4 10 10z' fill='black'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-position: center;
    mask-position: center;
  }

  .recruit-message__box h3 span {
    color: #45aeda;
	  margin-left: 52px;
  }

  .recruit-message__box p {
    margin: 0;
    color: #333;
    font-size: 15px;
    line-height: 2;
    letter-spacing: 0.05em;
  }

  /* 下の注意っぽいテキスト */
  .recruit-message__note {
    max-width: 960px;
    margin: 22px 0 0 28px;
    color: #fff;
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.05em;
	  padding-left: 56px;
  }

  .recruit-message__note>span{
    display: block;
    font-size: 12px;
    
  }
  .recruit-message__note strong {
    display: block;
    margin-bottom: 8px;
    font-size: 16px;
    font-weight: 700;
  }
  .recruit-message__note>span.recruit-message__warning-icon{
    display: inline-flex;
	  font-size: 18px;
	  margin-right: 4px;
  }
	.recruit-bottom-contact{
		padding: 78px 20px 78px;
        position: relative;
        display: flex;
        justify-content: flex-end;
	}
	.recruit-bottom-contact > .partners-detail__contact{
		max-width: 1120px;
		position: relative;
		left: inherit;
		bottom: inherit;
		right: 100px;
		
	}

}


/* =========================
  Recruit page SP refine
========================= */

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

  .recruit-page {
    overflow: hidden;
    color: #111;
  }

  /* 共通：黒帯見出し */
  .recruit-page .recruit-section-title {
    display: inline-block;
    width: fit-content;
    max-width: 100%;
    margin: 0 0 22px;
    padding: 7px 34px 7px 12px;
    background: transparent !important;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: 0.04em;
    clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 100%, 0 100%);
  }

  .recruit-page .recruit-section-title span {
    position: relative;
    z-index: 1;
  }

  .recruit-page .js-heading-reveal--black::before {
    background: #333;
  }


  /* =========================
    LEAD
  ========================= */

  .recruit-lead {
	padding: 0 20px 30px;
  }

  .recruit-lead__inner {
    max-width: none;
    margin: 0;
  }

  .recruit-lead h1 {
    margin: 0 0 12px;
    color: #45aeda;
    font-size: 7.0vw;
    font-weight: 700;
    line-height: 1.65;
  }

  .recruit-lead p {
    margin: 0;
    font-size: 12px;
    line-height: 1.9;
    letter-spacing: 0.03em;
  }


  /* =========================
    DAY
  ========================= */

  .recruit-day {
    position: relative;
    padding: 0 20px 42px;
  }

  .recruit-day__inner {
    display: block;
    max-width: none;
    margin: 0;
  }

  .recruit-day__content {
    position: relative;
    z-index: 2;
  }

  .recruit-day .recruit-section-title {
    margin-bottom: 22px;
  }

  .recruit-timeline {
    max-width: none;
  }

  .recruit-timeline__row {
    position: relative;
    display: grid;
    grid-template-columns: 54px 1fr;
    column-gap: 10px;
    align-items: start;
    margin-bottom: 18px;
  }

  .recruit-timeline__time {
    position: relative;
    margin: 0;
    padding-left: 0;
    color: #45aeda;
    font-family: "din-2014-narrow", "Roboto", sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.6;
  }

  .recruit-timeline__row:not(:last-child) .recruit-timeline__time::after {
    content: "";
    position: absolute;
    left: 40%;
    top: 30px;
    width: 1px;
    height: 14px;
    background: rgba(69, 174, 218, 0.45);
    transform: translateX(-50%);
  }

  .recruit-timeline__row:nth-child(1) .recruit-timeline__time::after {
    height: 42px;
  }

  .recruit-timeline__text {
    margin: 0;
    color: #222;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.8;
    letter-spacing: 0.03em;
  }

  .recruit-timeline__text p {
    margin: 0 0 8px;
  }

  .recruit-timeline__text p:last-child {
    margin-bottom: 0;
  }

  .recruit-timeline__text .note {
    display: inline;
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0;
  }

  .recruit-day__small-note {
    margin: 18px 0 0;
    font-size: 10px;
    line-height: 1.8;
    letter-spacing: 0.03em;
  }

  .recruit-day__note {
    max-width: none;
    margin: 20px 0 0;
    padding: 12px 14px;
    border: 1px solid rgba(69, 174, 218, 0.55);
    color: #333;
    font-size: 10px;
    line-height: 1.8;
    letter-spacing: 0.02em;
  }


  .recruit-day__note p {
    margin: 0;
    line-height: 1.8;
  font-size: 12px;
  }

  .recruit-day__visual {
    position: relative;
    z-index: 1;
    min-height: auto;
    margin: 24px -20px 0;
    padding: 0 0 20px;
  }

  .recruit-day__photo {
    position: relative;
    z-index: 2;
    width: 78vw;
    margin: 0;
  }

  .recruit-day__photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: cover;
  }

  .recruit-day__photo--01 {
    margin-left: 0;
  }

  .recruit-day__photo--02 {
    margin-top: 22px;
    margin-left: auto;
    transform: none;
  }

  .recruit-day__grid {
    position: absolute;
    z-index: 0;
    width: 140px;
    height: 120px;
    background-image:
      linear-gradient(rgba(69,174,218,0.32) 1px, transparent 1px),
      linear-gradient(90deg, rgba(69,174,218,0.32) 1px, transparent 1px);
    background-size: 16px 16px;
    pointer-events: none;
  }

  .recruit-day__grid__top {
    right: 6px;
    top: 28px;
    bottom: auto;
  }

  .recruit-day__visual > .recruit-day__grid:not(.recruit-day__grid__top) {
    right: 30px;
    bottom: 0;
  }


  /* =========================
    BENEFIT
  ========================= */

  .recruit-benefit {
    padding: 34px 20px 0;
  }

  .recruit-benefit__inner {
    max-width: none;
    margin: 0;
  }

  .recruit-benefit__box {
    max-width: none;
    padding: 18px 16px 20px;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(69,174,218,0.05);
  }

  .recruit-benefit__row {
    display: flex;
    grid-template-columns: 82px 1fr;
    gap: 4px;
    align-items: start;
    margin-bottom: 10px;
	  flex-direction: column;
  }

  .recruit-benefit__row:last-child {
    margin-bottom: 0;
  }

  .recruit-benefit__label {
    margin: 0;
    padding: 4px 10px 4px 8px;
    background: #45aeda;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.45;
    clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
  }

  .recruit-benefit__text {
    margin: 0;
    color: #222;
    font-size: 11px;
    line-height: 1.75;
    letter-spacing: 0.02em;
  }

  .recruit-benefit__text > span {
    display: inline;
    font-size: 9px;
  }


  /* =========================
    ENVIRONMENT
  ========================= */

  .recruit-env {
		position: relative;
        z-index: -1;
        margin-top: -58px;
        padding: 116px 20px 62px;
        background: #45aeda;
        color: #fff;
        clip-path: polygon(0 90px, 100% 0, 100% 100%, 0 100%);
        overflow: hidden;
  }

  .recruit-env::before {
    content: "";
    position: absolute;
    left: -12px;
    top: 96px;
    width: 86px;
    height: 120px;
    background-image:
      linear-gradient(rgba(255,255,255,0.34) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.34) 1px, transparent 1px);
    background-size: 16px 16px;
    pointer-events: none;
  }

  .recruit-env__inner {
    position: relative;
    z-index: 1;
    max-width: none;
    margin: 0;
  }

  .recruit-env h2 span > span {
    display: inline-block;
    margin-left: 4px;
    font-size: 9px;
    font-weight: 400;
  }

  .recruit-env__numbers {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin: 0px -2px 38px;
  }

  .recruit-number-card {
    padding: 9px 4px 10px;
    background: #fff;
    color: #45aeda;
    text-align: center;
    transform: skewX(-8deg);
  }

  .recruit-number-card > * {
    transform: skewX(8deg);
  }

  .recruit-number-card__label {
		margin: 0 0 4px;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.3;
        padding-left: 10px;
        text-align: left;
  }

  .recruit-number-card__num {
    margin: 0;
    font-family: "din-2014-narrow", "Roboto", sans-serif;
    font-size: 52px;
    font-weight: 700;
    line-height: .95;
  }

  .recruit-number-card__num span {
    margin-left: 2px;
    font-size: 9px;
  }

  .recruit-number-card:nth-child(3) .recruit-number-card__num span:first-child {
    margin: 0 0 2px;
    font-size: 8px;
  }

  .recruit-env__data {
    display: block;
    max-width: none;
  }

  .recruit-env__charts {
    display: flex;
    flex-direction: column;
    gap: 46px;
  }

  .recruit-donut {
    position: relative;
    width: 100%;
    height: 250px;
    margin: 0 auto;
  }

  .recruit-donut__circle {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 170px;
    height: 170px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
  }

  .recruit-donut__circle::after {
    content: "";
    position: absolute;
    inset: 44px;
    border-radius: 50%;
    background: #45aeda;
    z-index: 4;
  }

  .recruit-donut__center {
    position: absolute;
    inset: 0;
    z-index: 5;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.06em;
  }

  .recruit-donut__circle .donut-separator {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 3px;
    height: 50%;
    background: #45aeda;
    transform-origin: center bottom;
    z-index: 3;
    pointer-events: none;
  }

  .recruit-donut__label {
    position: absolute;
    z-index: 6;
    color: #fff;
  }

  .recruit-donut__label span {
    display: block;
    margin-bottom: 2px;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.2;
  }

  .recruit-donut__label strong {
    display: block;
    font-family: "din-2014-narrow", "Roboto", sans-serif;
    font-size: 31px;
    font-weight: 700;
    line-height: 1;
  }

  .recruit-donut__label em {
    margin-left: 2px;
    font-size: 17px;
    font-style: normal;
  }

  .recruit-donut__label::after {
    content: "";
    position: absolute;
    top: 32px;
    width: 38px;
    height: 1px;
    background: rgba(255,255,255,0.55);
  }

  .recruit-donut__label::before {
    content: "";
    position: absolute;
    top: 32px;
    width: 18px;
    height: 1px;
    background: rgba(255,255,255,0.55);
  }

  .recruit-donut__label--age-50 {
    left: 0;
    top: 18px;
  }

  .recruit-donut__label--age-20 {
    right: 0;
    top: 18px;
  }

  .recruit-donut__label--age-40 {
    left: 0;
    bottom: 36px;
  }

  .recruit-donut__label--age-30 {
    right: 0;
    bottom: 44px;
  }

  .recruit-donut__label--gender-male {
    left: 2px;
    top: 24px;
  }

  .recruit-donut__label--gender-female {
    right: 2px;
    top: 24px;
  }

  .recruit-donut__label--age-50::after,
  .recruit-donut__label--age-40::after,
  .recruit-donut__label--gender-male::after {
    left: 58px;
  }

  .recruit-donut__label--age-20::after,
  .recruit-donut__label--age-30::after,
  .recruit-donut__label--gender-female::after {
    right: 56px;
  }

  .recruit-donut__label--age-50::before,
  .recruit-donut__label--gender-male::before {
    left: 94px;
    transform: rotate(42deg);
    transform-origin: left center;
  }

  .recruit-donut__label--age-40::before {
    left: 94px;
    transform: rotate(-42deg);
    transform-origin: left center;
  }

  .recruit-donut__label--age-20::before,
  .recruit-donut__label--gender-female::before {
    right: 92px;
    transform: rotate(-42deg);
    transform-origin: right center;
  }

  .recruit-donut__label--age-30::before {
    right: 92px;
    transform: rotate(42deg);
    transform-origin: right center;
  }

  .recruit-env__people {
    position: relative;
    margin-top: 28px;
    padding-top: 0;
  }

  .recruit-env__people h3 {
    display: inline-block;
    margin: 0 0 16px -6px;
    padding: 5px 28px 5px 12px;
    background: #fff;
    color: #45aeda;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4;
    clip-path: polygon(0 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
  }

  .recruit-env__people ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .page-id-237 .recruit-env__people li {
    padding: 8px 0;
    border-bottom: 1px solid rgba(255,255,255,0.65);
	font-size: 16px!important;
    line-height: 1.7;
  }

  .recruit-env__helmet-line {
    width: 180px;
    margin: 30px 0 0 auto;
    opacity: .75;
    transform: rotate(-10deg);
  }
	
	.recruit-env__helmet-line{
		width: 260px;
	}


  /* =========================
    CAREER
  ========================= */

  .recruit-career {
    position: relative;
    padding: 46px 20px 48px;
    background: #fafafa;
    overflow: hidden;
  }

  .recruit-career::after {
    content: "";
    position: absolute;
    right: -10px;
    top: 28px;
    width: 110px;
    height: 150px;
    background-image:
      linear-gradient(rgba(69,174,218,0.28) 1px, transparent 1px),
      linear-gradient(90deg, rgba(69,174,218,0.28) 1px, transparent 1px);
    background-size: 16px 16px;
    pointer-events: none;
  }

  .recruit-career::before {
    content: "";
    position: absolute;
    left: -20px;
    bottom: 280px;
    width: 96px;
    height: 140px;
    background-image:
      linear-gradient(rgba(69,174,218,0.28) 1px, transparent 1px),
      linear-gradient(90deg, rgba(69,174,218,0.28) 1px, transparent 1px);
    background-size: 16px 16px;
    pointer-events: none;
  }

  .recruit-career__inner {
    position: relative;
    z-index: 1;
    max-width: none;
    margin: 0;
  }

  .recruit-career .recruit-section-title {
    margin-bottom: 26px;
  }

  .recruit-career__block {
    margin-top: 0;
  }

  .recruit-career__block + .recruit-career__block {
    margin-top: 36px;
  }

  .recruit-career__caption {
    margin: 0 0 42px;
    color: #45aeda;
    font-size: 16px;
    font-weight: 700;
    text-align: center;
    line-height: 1.4;
  }

  .recruit-career__cards {
    position: relative;
    display: block;
  }

  .recruit-career__cards::before {
    content: "";
    position: absolute;
    left: 50%;
    top: calc(50% - 10px);
    width: 1px;
    height: 28px;
    background: #45aeda;
    transform: translateX(-50%);
    z-index: 0;
  }

  .recruit-career-card {
    position: relative;
    z-index: 1;
    width: min(260px, 82vw);
    min-height: 0;
    margin: 0 auto 44px;
    padding: 42px 22px 24px;
    background: #fff;
    border: 1px solid #45aeda;
    text-align: left;
    transform: skewX(-4deg);
    box-sizing: border-box;
  }

  .recruit-career-card:last-child {
    margin-bottom: 0;
  }

  .recruit-career-card > * {
    transform: skewX(4deg);
  }

  .recruit-career-card__label {
    position: absolute;
    left: -1px;
    top: -20px;
    min-width: 86px;
    margin: 0;
    padding: 5px 22px 5px 12px;
    background: #45aeda;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
    clip-path: polygon(0 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
    z-index: 2;
  }

  .recruit-career-card img {
    display: block;
    width: 70px;
    height: 70px;
    object-fit: contain;
    margin: 0 auto 18px;
  }

  .recruit-career-card p:last-child {
    margin: 0;
    color: #222;
    font-size: 10px;
    line-height: 1.9;
    letter-spacing: 0.02em;
  }

  /* 年齢割合：円グラフの色 */
  .recruit-donut--age .recruit-donut__circle {
    opacity: 1;
    background: conic-gradient(
      from 0deg,
      #ffffff 0deg 90deg,
      #bfe8fb 90deg 137deg,
      #91d1f3 137deg 236deg,
      #5cb7e8 236deg 360deg
    );
  }

  /* 男女比：円グラフの色 */
  .recruit-donut--gender .recruit-donut__circle {
    opacity: 1;
    background: conic-gradient(
      from 0deg,
      #ffffff 0deg 144deg,
      #9bd4f3 144deg 360deg
    );
  }

  /* 中央の穴 */
  .recruit-donut__circle::after {
    background: #45aeda;
  }

  /* 分割線 */
  .recruit-donut__circle .donut-separator {
	  display: none;
  }
	
  /* =========================
    MESSAGE
  ========================= */

  .recruit-message {
    position: relative;
    padding: 0px 0px 50px;
    background: #fff;
  }

  .recruit-message__inner {
    position: relative;
    max-width: none;
    margin: 0;
    padding: 38px 16px 22px;
    background: #45aeda;
    color: #fff;
    box-sizing: border-box;
  }

  .recruit-message__title {
    position: absolute;
    left: -6px;
    top: -18px;
    display: inline-block;
    width: fit-content;
    margin: 0;
	margin-bottom: 0px!important;
    padding: 7px 34px 7px 12px;
    background: transparent !important;
    color: #fff;
    font-size: 15px !important;
    font-weight: 700;
    line-height: 1.4;
    clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 100%, 0 100%);
    z-index: 2;
  }

  .recruit-message__box {
    margin: 0 0 18px;
    padding: 16px 14px;
    background: #fff;
    color: #111;
  }

  .recruit-message__box h3 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px;
    color: #45aeda;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
  }

  .recruit-message__box h3::before {
    content: "";
    display: inline-block;
    flex: 0 0 auto;
    width: 28px;
    height: 24px;
    background-color: #45aeda;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='58' height='44' viewBox='0 0 58 44' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='17' cy='12' r='10' fill='black'/%3E%3Cpath d='M2 39c0-10 7-17 15-17s15 7 15 17v3H2v-3z' fill='black'/%3E%3Cpath d='M39 29L54 14l-4-4-11 11-6-6-4 4 10 10z' fill='black'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg width='58' height='44' viewBox='0 0 58 44' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='17' cy='12' r='10' fill='black'/%3E%3Cpath d='M2 39c0-10 7-17 15-17s15 7 15 17v3H2v-3z' fill='black'/%3E%3Cpath d='M39 29L54 14l-4-4-11 11-6-6-4 4 10 10z' fill='black'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-position: center;
    mask-position: center;
  }

  .recruit-message__box h3 span {
    margin-left: 30px;
    color: #45aeda;
  }

  .recruit-message__box p {
    margin: 0;
    color: #333;
    font-size: 10px;
    line-height: 1.9;
    letter-spacing: 0.02em;
  }

  .recruit-message__note {
    margin: 0;
    padding: 0;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.6;
  }

  .recruit-message__note > span.recruit-message__warning-icon {
    display: inline-flex;
    margin-right: 4px;
    font-size: 14px;
  }

  .recruit-message__note > span:not(.recruit-message__warning-icon) {
    display: block;
    margin-top: 8px;
    font-size: 10px;
    font-weight: 400;
    line-height: 1.8;
  }

  .recruit-bottom-contact {
    display: flex;
    justify-content: flex-end;
    margin: 34px 0 0;
    padding: 0;
  }

  .recruit-bottom-contact .partners-detail__contact {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    width: min(230px, 74vw);
    margin: 0 0 0 auto;
  }

  .recruit-bottom-contact .partners-detail__contact::before,
  .recruit-bottom-contact .partners-detail__contact::after {
    height: 1px;
  }

  .recruit-bottom-contact .partners-detail__contact-btn {
    gap: 14px;
    padding: 14px 0;
    font-size: 13px;
  }

  .recruit-bottom-contact .partners-detail__contact-btn em {
    width: 46px;
    height: 28px;
    border-width: 1px;
  }

  .recruit-bottom-contact .partners-detail__contact-btn em::after {
    font-size: 19px;
  }
}


/* フォーム送信後 */

div.wpforms-container-full .wpforms-confirmation-container-full, div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) {
    background: #f0fbff;
    border: 1px solid #45aeda;
    box-sizing: border-box;
}

/* アニメーション */
/* =========================
  MV animation
========================= */

.p-mainVisual__inner.is-mv-ready {
  opacity: 1;
}

.mv-deco-svg {
  overflow: visible;
}

.p-mainVisual__img,
.mv-deco-svg,
.mv-deco-svg path,
.mv-deco-svg line,
.mv-deco-svg text,
.mv-deco-svg g {
  will-change: transform, opacity;
}

/* =========================
  TOP catch line SVG
========================= */

.top-catch-deco__helmet svg,
.top-catch-deco__driver svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.top-catch-deco__helmet svg path,
.top-catch-deco__driver svg path {
  fill: none;
  stroke: #45aeda;
  stroke-width: 1.8 !important;
  stroke-linecap: round;
  stroke-linejoin: round;
  will-change: stroke-dashoffset, opacity;
}

/* =========================
  Grid line animation
========================= */

.top-catch-deco__grid-left,
.top-catch-deco__grid-right {
  opacity: 0;
  overflow: hidden;
  will-change: clip-path, opacity, background-position;
}

/* 左グリッド：左から線が伸びる感じ */
.top-catch-deco__grid-left {
  clip-path: inset(0 100% 0 0);
}

/* 右グリッド：上から線が伸びる感じ */
.top-catch-deco__grid-right {
  clip-path: inset(0 0 100% 0);
}

/* =========================
  Heading reveal animation
========================= */

.js-heading-reveal {
  position: relative;
  overflow: hidden;
  background: transparent !important;
}

.js-heading-reveal::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: #f6042d;
  transform: scaleX(0);
  transform-origin: left center;
}

.js-heading-reveal--black::before {
  background: #333333;
}

.js-heading-reveal span {
  position: relative;
  z-index: 1;
  opacity: 0;
  transform: translateY(8px);
  display: inline-block;
}

.js-heading-reveal.is-active::before {
  animation: headingBgReveal 0.75s ease forwards;
}

.js-heading-reveal.is-active span {
  animation: headingTextFade 0.65s ease forwards;
  animation-delay: 0.45s;
	letter-spacing: normal;
}

@keyframes headingBgReveal {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}

@keyframes headingTextFade {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* =========================
  SVG line animation 汎用
========================= */

.js-line-svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.js-line-svg path,
.js-line-svg line {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  will-change: stroke-dashoffset, opacity;
}

/* 青線にしたい場合 */
.js-line-svg--blue path,
.js-line-svg--blue line {
  stroke: #45aeda;
}

/* 白線にしたい場合 */
.js-line-svg--white path,
.js-line-svg--white line {
  stroke: #fff;
}

/* =========================
  Fade heading animation
========================= */

.js-fade-heading {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.85s ease,
    transform 0.85s ease;
  will-change: opacity, transform;
}

.js-fade-heading.is-active {
  opacity: 1;
  transform: translateY(0);
}

/* 中のspanだけ動かしたい構造にも対応 */
.js-fade-heading > span {
  display: inline-block;
}

/* =========================
  Strength image fade animation
========================= */

figure.wp-block-image.size-full.strength-img > img {
  width: 90% !important;
  margin-left: 20px;
  will-change: opacity, transform;
}

/* =========================
  PC horizontal scroll section
========================= */

@media screen and (min-width: 769px) {
  .js-horizontal-scroll-wrap {
    overflow: visible;
    width: 100%;
  }

  .js-horizontal-scroll-stage {
    overflow: hidden;
    width: 100%;
    min-height: clamp(560px, 72vh, 760px);
    display: flex;
    align-items: center;
  }

  .js-horizontal-scroll-stage .swell-block-columns__inner {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: flex-start;
    gap: 56px;
    width: max-content;
    min-width: max-content;
    transform: translate3d(0, 0, 0);
    backface-visibility: hidden;
    will-change: transform;
  }

  .js-horizontal-scroll-stage .swell-block-column {
    flex: 0 0 500px !important;
    width: 500px !important;
    max-width: 500px !important;
  }

  .js-horizontal-scroll-stage figure,
  .js-horizontal-scroll-stage img {
    width: 500px !important;
    max-width: 500px !important;
  }

  .js-horizontal-scroll-stage img {
    display: block;
    height: auto;
  }
}

/* =========================
  PC horizontal scroll section
========================= */

@media screen and (min-width: 769px) {
  .js-horizontal-scroll-wrap {
    overflow: visible;
    width: 100%;
  }

  .js-horizontal-scroll-stage {
    overflow: hidden;
    width: 100%;
    min-height: clamp(560px, 72vh, 760px);
    display: flex;
    align-items: center;
  }

  .js-horizontal-scroll-stage .swell-block-columns__inner {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: flex-start;
    gap: 56px;
    width: max-content;
    min-width: max-content;
    transform: translate3d(0, 0, 0);
    backface-visibility: hidden;
    will-change: transform;
  }

  .js-horizontal-scroll-stage .swell-block-column {
    flex: 0 0 500px !important;
    width: 500px !important;
    max-width: 500px !important;
  }

  .js-horizontal-scroll-stage figure,
  .js-horizontal-scroll-stage img {
    width: 500px !important;
    max-width: 500px !important;
  }

  .js-horizontal-scroll-stage img {
    display: block;
    height: auto;
  }
}

/* =========================
  Flow hex panel animation
========================= */

.flow-hex {
  opacity: 0;
  transform: translateY(28px) scale(0.96);
  will-change: opacity, transform;
}

.flow-hex.is-active {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* =========================
  Point card animation
========================= */

.point-card {
  opacity: 0;
  will-change: opacity;
}

.point-card__inner {
  opacity: 0;
  transform: translateY(24px) scale(0.96);
  will-change: opacity, transform;
}

/* 子ページ */
/* =========================
  Service title reveal
========================= */

.service-item__title.js-heading-reveal {
  position: relative;
  overflow: hidden;
  display: inline-block;
  width: fit-content;
  margin: 0 0 10px;
  padding: 8px 60px 8px 42px;
  background: transparent !important;
  color: #fff;
  font-size: clamp(22px, 2.2vw, 34px);
  font-weight: 700;
  line-height: 1.3;
  clip-path: polygon(0 0, 100% 0, calc(100% - 22px) 100%, 0 100%);
}

.service-item__title.js-heading-reveal::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: #333333;
  transform: scaleX(0);
  transform-origin: left center;
}

.service-item__title.js-heading-reveal span {
  position: relative;
  z-index: 1;
  display: inline-block;
  opacity: 0;
  transform: translateY(8px);
}

.service-item__title.js-heading-reveal.is-active::before {
  animation: headingBgReveal 0.75s ease forwards;
}

.service-item__title.js-heading-reveal.is-active span {
  animation: headingTextFade 0.65s ease forwards;
  animation-delay: 0.45s;
}

/* =========================
  Service info label reveal
========================= */

.service-info__label.js-heading-reveal {
  position: relative;
  overflow: hidden;
  display: inline-block;
  width: fit-content;
  margin: 0 0 0px;
  padding: 5px 28px 5px 12px;
  background: transparent !important;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%);
}

.service-info__label.js-heading-reveal::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: #45aeda;
  transform: scaleX(0);
  transform-origin: left center;
}

.service-info__label.js-heading-reveal span {
  position: relative;
  z-index: 1;
  display: inline-block;
  opacity: 0;
  transform: translateY(6px);
}

.service-info__label.js-heading-reveal.is-active::before {
  animation: headingBgReveal 0.65s ease forwards;
}

.service-info__label.js-heading-reveal.is-active span {
  animation: headingTextFade 0.55s ease forwards;
  animation-delay: 0.35s;
}

/* =========================
  Service images fade animation
========================= */

.service-item__images figure {
  overflow: hidden;
}

.service-item__images img {
  opacity: 0;
  transform: translateY(28px) scale(0.98);
  will-change: opacity, transform;
}
/* =========================
  Greeting name reveal
========================= */

.outline-greeting__name.js-heading-reveal {
  position: relative;
  overflow: hidden;
  background: transparent !important;
  color: #fff;
}

.outline-greeting__name.js-heading-reveal::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: #333333;
  transform: scaleX(0);
  transform-origin: left center;
}

.outline-greeting__name.js-heading-reveal span {
  position: relative;
  z-index: 1;
  display: inline-block;
  opacity: 0;
  transform: translateY(6px);
}

.outline-greeting__name.js-heading-reveal.is-active::before {
  animation: headingBgReveal 0.75s ease forwards;
}

.outline-greeting__name.js-heading-reveal.is-active span {
  animation: headingTextFade 0.6s ease forwards;
  animation-delay: 0.42s;
}

/* =========================
  Donut animation
========================= */

.js-donut-chart .recruit-donut__circle {
  transform: translate(-50%, -50%) scale(0.9) rotate(-20deg);
  transition:
    opacity 0.8s ease,
    transform 1.05s cubic-bezier(.22, 1, .36, 1);
}

.js-donut-chart .recruit-donut__label {
  transition:
    opacity 0.7s ease,
    transform 0.7s ease;
}

.js-donut-chart.is-active .recruit-donut__circle {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1) rotate(0deg);
}

.js-donut-chart.is-active .recruit-donut__label {
  opacity: 1;
  transform: translateY(0);
}

.js-donut-chart.is-active .recruit-donut__label:nth-of-type(2) {
  transition-delay: 0.35s;
}

.js-donut-chart.is-active .recruit-donut__label:nth-of-type(3) {
  transition-delay: 0.45s;
}

.js-donut-chart.is-active .recruit-donut__label:nth-of-type(4) {
  transition-delay: 0.55s;
}

.js-donut-chart.is-active .recruit-donut__label:nth-of-type(5) {
  transition-delay: 0.65s;
}

/* =========================
  Recruit environment helmet line
========================= */

.recruit-env__people {
  position: relative;
}

.recruit-env__helmet-line {
  width: 320px;
  margin: 56px 0 0 auto;
  opacity: 0.8;
  pointer-events: none;
  transform: rotate(-15deg);
}

.recruit-env__helmet-line svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.recruit-env__helmet-line svg path {
  fill: none;
  stroke: #fff;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

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

	p{
		font-size: 12px !important;
	}	
	.sp-font-20 span{
		font-size: 14px !important;
	}
  .top-message-area p,
  .top-message-area .top-message-text {
    font-size: 12px !important;
    letter-spacing: 0 !important;
    line-height: 1.95;
  }

  .top-message-area h2,
  .top-message-area .top-catch-copy {
    font-size: 16px !important;
    letter-spacing: 0.02em !important;
    line-height: 1.7;
  }
}