@charset "utf-8";
/*
Theme Name: easti-themes-solution
Theme URI: http://www.solution-sy.com/
Author: solution.STC
Author URI: http://www.crossdesign-company.co.jp  
Description: This is a default wordpress themes
Version: 1.0
License: GNU General Public License v2 or later
License URI: LICENSE
*/


* {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  background: 0 0;
  box-sizing: border-box; }

:after, :before {
  box-sizing: border-box; }

html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  overflow-x: hidden; }

body {
  font-size: 18px;
  color: #333333;
  width: 100%;
  overflow-x: hidden;
  --themecolor:#005bac;
}

@media screen and (max-width: 1320px) {
  body {font-size: 16px;}
}
@media screen and (max-width: 1080px) {
  body {font-size: 14px;}
}
address, caption, code, figcaption, pre, th {
  font-size: 1em;
  font-weight: normal;
  font-style: normal; }

blockquote, q {
  quotes: none; }

blockquote:after, blockquote:before, q:after, q:before {
  content: '';
  content: none; }

fieldset, iframe, img {
  border: 0; }

ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none; }

caption, th {
  text-align: left; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

article, aside, details, figcaption, figure, footer, header, hgroup, nav, section {
  display: block; }

audio, canvas, progress, video {
  display: inline-block;
  vertical-align: baseline; }

sup {
  vertical-align: text-top; }

sub {
  vertical-align: text-bottom; }

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0; }

input, select {
  vertical-align: middle; }

button {
  background: 0 0;
  border: 0;
  box-sizing: content-box;
  color: inherit;
  cursor: pointer;
  font: inherit;
  line-height: inherit;
  overflow: visible;
  vertical-align: inherit; }

button:disabled {
  cursor: default; }

audio:not([controls]) {
  display: none; }

:focus[data-focus-method=mouse]:not(input):not(textarea):not(select), :focus[data-focus-method=touch]:not(input):not(textarea):not(select) {
  outline: 0; }

::-moz-focus-inner {
  border: 0;
  padding: 0; }

a, a:link, a:visited {
  text-decoration: none; }

a:hover {
  text-decoration: underline; }

a:active {
  text-decoration: none; }

ul {
  list-style: none; }

img {
  display: block;
  height: auto;
  max-width: 100%; }

:-moz-placeholder {
  /* Mozilla Firefox 4 to 18 */
  color: #ccc;
  opacity: 1; }

::-moz-placeholder {
  /* Mozilla Firefox 19+ */
  color: #ccc;
  opacity: 1; }

input:-ms-input-placeholder {
  color: #ccc;
  opacity: 1; }

input::-webkit-input-placeholder {
  color: #ccc;
  opacity: 1; }

::-webkit-scrollbar {
  width: 10px;
  height: 15px;
  background-color: #f3f3f3;
  border-left: 1px solid #dddddd; }

::-webkit-scrollbar:hover {
  background-color: transparent; }

::-webkit-scrollbar-thumb {
  cursor: pointer;
  border-radius: 15px;
  background-color: var(--themecolor); }

::-webkit-scrollbar-thumb:hover {
  background-color: #333; }

::-webkit-scrollbar-button:start:decrement, ::-webkit-scrollbar-button:end:increment {
  display: none; }

.ftfminchao{font-family: "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", "MS Mincho", "MS 明朝", "Meiryo", serif;}
.ftfPGothic{font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;}
.ftfMeiryo{font-family: メイリオ, Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;}

/*hasbg*/
.hasbg{background-repeat:no-repeat;background-size:cover;background-position:center center;}
.hasbg:after{display:block;content:"";padding-top:100%;}
.hasbg>img{display:none;}


@font-face {
  font-family: 'iconfont';
  src: url('iconfont/iconfont.woff2?t=1666238971337') format('woff2'),
       url('iconfont/iconfont.woff?t=1666238971337') format('woff'),
       url('iconfont/iconfont.ttf?t=1666238971337') format('truetype');
}

.iconfont {
  font-family: "iconfont" !important;
  font-size: 16px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}


/*sp mobile-btn*/
/* sp mobile-btn and nav css */

.spscreen {
  display: none; }
.mobilebtn{
  display: none;
}
@media screen and (max-width: 860px) {
  .logged-in .mobilebtn{
    top:60px;
  }
  .mobilebtn {
    position: fixed;
    z-index: 110;
    top: 20px;
    right: 20px;
    display: block; }

  .mobilebtn div {
    width: 30px;
    height: 20px;
    background: none;
    cursor: pointer;
    display: block;
    position: relative;
    right: 0;
    top: 0;
    transition: all 500ms cubic-bezier(0.86, 0, 0.07, 1); }

  .mobilebtn div span {
    width: 30px;
    height: 2px;
    top: 9px;
    background: var(--blue);
    display: block;
    position: absolute;
    z-index: 5;
    left: 50%;
    margin: 0 0 0 -15px;
    transform-origin: center;
    -webkit-transform-origin: center;
    -moz-transform-origin: center;
    -o-transform-origin: center;
    -ms-transform-origin: center;
    -webkit-transition: all 0.4s;
    -moz-transition: all 0.4s;
    -o-transition: all 0.4s;
    -ms-transition: all 0.4s; }

  .mobilebtn div span:nth-child(1) {
    -moz-transform: translateY(-9px);
    -webkit-transform: translateY(-9px);
    -o-transform: translateY(-9px);
    -ms-transform: translateY(-9px);
    transform: translateY(-9px); }

  .mobilebtn div span:nth-child(3) {
    -moz-transform: translateY(9px);
    -webkit-transform: translateY(9px);
    -o-transform: translateY(9px);
    -ms-transform: translateY(9px);
    transform: translateY(9px); }

  .mobilebtn .active {
    transform: translateX(-200px) rotate(180deg);}

  .mobilebtn .active span:nth-child(1) {
    transform: rotate3d(0, 0, 1, -45deg) !important;
    transform-origin: center center !important;/*0.71429px*/
    width: 30px !important; }

  .mobilebtn .active span:nth-child(2) {
    transform: rotate3d(0, 1, 0, -90deg) !important;
    width: 0!important;
  }

  .mobilebtn .active span:nth-child(3) {
    transform: rotate3d(0, 0, 1, 45deg) !important;
    transform-origin: center center !important;/*0.71429px */
    width: 30px !important; }

  .sp-wrapper-move {
    transform: translateX(0px) !important; }

  .spscreen {
    width: 200px;
    height: 100vh;
    position: fixed;
    z-index: 100;
    background: #333;
    right: 0;
    top: 0;
    transform: translateX(200px);
    transition: all 500ms cubic-bezier(0.86, 0, 0.07, 1);
    display: block; }

  .spscreen .sp-heading {
    width: 100%;
    text-align: center;
    margin-top: 50px;
    margin-bottom: 30px;
    font-size: 24px;
    text-transform: uppercase;
    color: #fff; }

  .spscreen nav ul {
    padding: 0 15px; }

  .spscreen nav ul li:first-child {
    border-top: 1px solid #5d5d5d; }

  .spscreen nav ul li {
    border-bottom: 1px solid #5d5d5d; }

  .spscreen nav ul li a {
    color: #fff;
    display: block;
    text-align: center;
    text-decoration: none;
    padding: 15px 0;
    text-transform: uppercase;
    transition: .3s; }

  .spscreen nav ul li a:hover {
    background: #f2f2f2;
    color: #000; } 

  .spscreen nav ul li ul{
    display:none;
  }
  .spscreen nav ul li a.current{position:relative;}
  .spscreen nav ul li a.current:after{content:"";border-top:5px solid #fff;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;top:50%;right:0;transform:translateY(-50%);transform-origin:center;}
  .spscreen nav ul li a.current.active:after{transform:rotate(180deg);}
  .spscreen nav ul li a:hover{background:#f2f2f2;color:#000;}
  .spscreen nav ul li ul{display:none;padding:0;}
  .spscreen nav ul li ul li a{font-size:12px;}
}

.spscreenmask{position:fixed;top:0;right:0;z-index:99;background:rgba(0,0,0,0.6);width:0%;height:100%;transition: all 500ms cubic-bezier(0.86, 0, 0.07, 1);}
.spscreenmask.spscreenmaskmove{width:100%;}


/*headerfixed*/
.headerfixed{position:fixed;top:0;left:0;z-index:90;width:100%;background:#fff;box-shadow: 0 0 5px 5px rgba(0,0,0,0.3);-webkit-animation: headeranimation .5s linear  0s 1;animation: headeranimation .5s linear  0s 1; }
.logged-in .headerfixed{top:32px;}
@keyframes headeranimation {
  0% {
    transform:translateY(-100%);
    opacity:0;
  }
  100% {
    transform:translateY(0);
    opacity:1;
  }
}
@-webkit-keyframes headeranimation {
  0% {
    transform:translateY(-100%);
    opacity:0;
  }
  100% {
    transform:translateY(0);
    opacity:1;
  }
}


header{position:relative;z-index:90;left:0;top:0; width:100%;display:flex;justify-content:space-between;transition: all 500ms cubic-bezier(0.86, 0, 0.07, 1);}


.sitelogo{width:300px;padding:15px 20px 15px 40px;display:flex;justify-content:center;align-items:center;}

.headmain{ display:flex;}


.mainnavigation{display:flex;}
.mainnavigation ul{display:flex;align-items:center;}
.mainnavigation ul li{position:relative;padding:10px 20px;}
.mainnavigation ul li a{width:100%;font-size:18px;color:#000;font-weight:bolder;display:flex;text-decoration:none;position:relative;z-index:1;transition:.4s ease-in-out;}
.mainnavigation ul li a:hover{color:var(--blue);}
.mainnavigation ul li > a:before{content:"+";display:block;font-weight:bolder;color:var(--blue);margin-right:15px;}
.mainnavigation ul li > a:after{content: "";position: absolute;left:0%;bottom: -5px;width: 100%;transform: scale(0) ;height: 2px;background: var(--blue);opacity: 0;visibility: hidden;transition: .4s ease-in-out;}
.mainnavigation ul li > a:hover:after{opacity: 1;visibility: visible;transform:scale(1);}
.mainnavigation ul li ul{display:none;position:absolute;left:50%;transform:translateX(-50%);background:var(--grey);}
.mainnavigation ul li:hover ul{display:block;}
.mainnavigation ul li ul li a{text-align:center;padding:5px 10px;}
.mainnavigation ul li ul li a:after{display:none;}

.speciallinks{}
.speciallinks ul{display:flex;height:100%;}
.speciallinks ul li{width:50%;height:100%;}
.speciallinks ul li a{width:100%;height:100%;padding:20px 30px;font-size:16px;color:#fff;font-weight:bolder;letter-spacing:1px;white-space:nowrap;display:flex;flex-direction:column;justify-content:center;align-items:center;text-decoration:none;position:relative;overflow:hidden;transition:.3s;}
.speciallinks ul li a:hover{filter:brightness(80%);}
.speciallinks ul li a.bgyellow{color:var(--blue);}
.speciallinks ul li a span{position:relative;z-index:1;}
.speciallinks ul li a i{width:35px;height:35px;margin-top:5px;}
/*.speciallinks ul li a:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;transform:translateY(-101%);background:#00a0ea;transition:.3s;}*/
/*.speciallinks ul li a:hover:after{transform:translateY(0);}*/
@media screen and (max-width: 1620px) {
  .sitelogo{width:240px;padding:10px 15px 10px 30px;}
  .mainnavigation ul li{padding:5px 15px;}
  .mainnavigation ul li a{font-size:16px;}
  .mainnavigation ul li > a:before{margin-right:6px;}
  .speciallinks ul li a{padding:15px 20px;font-size:14px;}
  .speciallinks ul li a i{width:26px;height:26px;}
}
@media screen and (max-width: 1320px) {
  .sitelogo{width:160px;}
  .mainnavigation{margin-right:15px;}
  .mainnavigation ul li{padding:5px 15px;}
  .speciallinks ul li a{padding:15px;}
}
@media screen and (max-width: 1180px) {
  .sitelogo{width:130px;}
  .mainnavigation ul li a{font-size:14px;}
  .mainnavigation ul li > a:before{margin-right:5px;}
  .speciallinks ul li a{padding:10px 15px;font-size:12px;}
  .speciallinks ul li a i{width:20px;height:20px;}
}
@media screen and (max-width: 1080px) {
  .sitelogo{width:120px;padding:10px 20px;}
  .mainnavigation{margin-right:0px;}
  .mainnavigation ul li a{font-size:12px;}
  .mainnavigation ul li > a:before{margin-right:3px;}
  .speciallinks ul li a{padding:20px;}
  .speciallinks ul li a span{display:none;}
  .speciallinks ul li a i{margin-top:0;}
}
@media screen and (max-width: 860px) {
  .sitelogo{width:100px;}
  .headmain{margin-right:70px;}
  .mainnavigation{display:none;}
  .speciallinks ul li a{padding:15px 20px;}

}
/* /header css */
/*banner*/
.bannerbg{background:url(img/bannerbg.png) no-repeat;background-size:100% auto;background-position:center top;}
.banner{position:relative;}
.banner .bannertext{position:relative;z-index:20;width:100%;padding:70px 100px;color:#565656;text-align:center;}
.banner .bannertext h1{font-size:120px;letter-spacing:0.1em; margin-bottom:30px;}
.banner .bannertext h1 .small{font-size:70%;}
.banner .bannertext p{display:inline-block;font-size:24px;font-weight:bolder;color: transparent;background: linear-gradient(to right, #b5b0c6 0%, #a7abc3 10%, #abb4ca 25% , #849ebc 75%, #3c82ad 100%);-webkit-background-clip: text; -webkit-text-fill-color: transparent;}
.banner .bannermain{width:100%;max-width:1720px;margin:0 auto;overflow:hidden;border-radius:30px;}
.banner .bannermain figure{position:relative;-webkit-animation: picmove1 50s linear infinite 0s;
      -moz-animation: picmove1 50s linear infinite 0s;
      -ms-animation: picmove1 50s linear infinite 0s;
      -o-animation: picmove1 50s linear infinite 0s;
      animation: picmove1 50s linear infinite 0s;}
.banner .bannermain figure.hasbg:after{padding-top:38%;}
@keyframes picmove1 {
 0% {
 -webkit-transform:scale(1, 1);
transform:scale(1, 1);
}
 50% {
 -webkit-transform:scale(1.2, 1.2);
transform:scale(1.2, 1.2);
}
 100% {
 -webkit-transform:scale(1, 1);
transform:scale(1, 1);
}
}
@media screen and (max-width: 1520px) {
  .banner{padding:0 50px;}
  .banner .bannermain{border-radius:25px;}
  .banner .bannermain figure.hasbg:after{padding-top:45%;}
  .banner .bannertext{padding:60px 0px;}
  .banner .bannertext h1{font-size:90px; margin-bottom:20px;}
  .banner .bannertext p{font-size:20px;}
}
@media screen and (max-width: 1080px) {
  .banner{padding:0 20px;}
  .banner .bannermain{border-radius:20px;}
  .banner .bannermain figure.hasbg:after{padding-top:50%;}
  .banner .bannertext{padding:30px 0;}
  .banner .bannertext h1{font-size:60px;margin-bottom:15px;}
  .banner .bannertext p{font-size:16px;}
}
@media screen and (max-width: 768px) {
  .banner .bannermain{border-radius:15px;}
  .banner .bannermain figure.hasbg:after{padding-top:70%;}
  .banner .bannertext h1{font-size:30px;margin-bottom:10px;}
  .banner .bannertext p{font-size:14px;}
}

/*/banner*/

.homegreeting{}
.homegreeting .twocolumn{align-items:center;}
.homegreeting .twocolumn .text{width:calc(50% + 100px);margin-right:-100px;}
.homegreeting .twocolumn .text .t2{margin-bottom:50px;}
.homegreeting .twocolumn .text p{font-size:20px;line-height:1.8;margin-bottom:30px;}
.homegreeting .twocolumn .text .btngroup{}
.homegreeting .twocolumn .text .btngroup .button{width:280px;padding:20px;border-radius:100px;}
.homegreeting .twocolumn .pic{width:calc(50% + 100px);margin-left:-100px;}
@media screen and (max-width: 1520px) {
  .homegreeting .twocolumn .text{width:calc(50% + 60px);margin-right:-60px;}
  .homegreeting .twocolumn .text .t2{margin-bottom:30px;}
  .homegreeting .twocolumn .text p{font-size:16px;margin-bottom:20px;}
  .homegreeting .twocolumn .text .btngroup .button{width:240px;padding:15px 20px;}
  .homegreeting .twocolumn .pic{width:calc(50% + 60px);margin-left:-60px;}
}
@media screen and (max-width: 1080px) {
  .homegreeting .twocolumn .text{width:calc(50% + 30px);margin-right:-30px;}
  .homegreeting .twocolumn .text .t2{margin-bottom:20px;}
  .homegreeting .twocolumn .text p{font-size:14px;margin-bottom:15px;}
  .homegreeting .twocolumn .text .btngroup .button{width:200px;padding:15px;}
  .homegreeting .twocolumn .pic{width:calc(50% + 30px);margin-left:-30px;}
}
@media screen and (max-width: 768px) {
  .homegreeting .twocolumn .text{width:100%;max-width:520px;margin:0 auto 20px;}
  .homegreeting .twocolumn .text .btngroup .button{display:block;margin:0 auto;}
  .homegreeting .twocolumn .pic{width:100%;max-width:520px;margin:0 auto;}
}



/* ==================================================
   TOP Recommended Products
   PC：4列 / SP：2列
================================================== */

.homeproducts {
	background: #f6f6f6;
}

.homeproducts .titlegroup {
	align-items: center;
	justify-content: center;
}

/* 商品一覧 */
.homeproducts .productslist {
	width: 100%;
	padding: 0 40px;
	position: relative;
	overflow: visible;
}

.productgrid {
	width: 100%;
}

.productgrid-list {
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;

	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 40px;
	align-items: start;
}

.productgrid-list > li {
	width: 100%;
	min-width: 0;
}


/* 商品 */
.productitem {
	width: 100%;
	color: #000;

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

.productitem:hover {
	text-decoration: none;
}


/* 商品画像 */
.productitempic {
	width: 100%;
	aspect-ratio: 1 / 1;
	height: auto;

	margin-bottom: 18px;

	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}

.productitempic figure {
	width: 100%;
	height: 100%;

	display: flex;
	justify-content: center;
	align-items: center;

	transition: .3s;
}

.productitempic figure img {
	display: block;

	width: 100%;
	height: 100%;

	object-fit: contain;
}

.productitem:hover .productitempic figure {
	transform: scale(1.04);
}


/* 商品情報 */
.productitemtext {
	width: 100%;
	text-align: center;
}

.productitemtext div {
	height: auto;
	min-height: 72px;
	margin-bottom: 12px;
}

.productitemtitle {
	margin-bottom: 6px;

	font-size: 20px;
	line-height: 1.5;
}

.productitemtext span {
	display: block;

	font-size: 14px;
	line-height: 1.6;
}

.productitemprice {
	display: block;

	font-size: 30px;
	line-height: 1.3;
}


/* ==================================================
   Tablet
================================================== */

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

	.homeproducts .productslist {
		padding: 0 25px;
	}

	.productgrid-list {
		gap: 25px;
	}

	.productitemtitle {
		font-size: 17px;
	}

	.productitemprice {
		font-size: 25px;
	}

	.productitemtext span {
		font-size: 13px;
	}

}


/* ==================================================
   Smartphone
================================================== */

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

	.homeproducts .productslist {
		padding: 0 15px;
	}

	.productgrid-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 30px 15px;
	}

	.productitempic {
		margin-bottom: 10px;
		border-radius: 7px;
	}

	.productitemtext div {
		min-height: 58px;
		margin-bottom: 8px;
	}

	.productitemtitle {
		font-size: 14px;
		line-height: 1.45;
	}

	.productitemtext span {
		font-size: 11px;
		line-height: 1.5;
	}

	.productitemprice {
		font-size: 20px;
	}

}



.homeservice{}
.homeservice .layout{margin-right:-60px;margin-bottom:-60px;}
.homeservice .layout .avcol3{padding-right:60px;margin-bottom:60px;}
@media screen and (max-width: 1520px) {
.homeservice .layout{margin-right:-30px;margin-bottom:-30px;}
.homeservice .layout .avcol3{padding-right:30px;margin-bottom:30px;}
}
@media screen and (max-width: 1080px) {
.homeservice .layout{margin-right:-20px;margin-bottom:-20px;}
.homeservice .layout .avcol3{padding-right:20px;margin-bottom:20px;}
}
@media screen and (max-width: 860px) {
  .homeservice .layout .avcol3{width:50%;}
}
@media screen and (max-width: 568px) {
  .homeservice .layout .avcol3{width:100%;}
  .homeservice .layout .avcol3 .card{max-width:360px;margin:0 auto;}
}




.homenews{margin:60px auto;background:#f6f6f6;}
.homenews .titlegroup{justify-content:center;align-items:center;margin-bottom:30px;}
.homenews .newslist{max-width:1000px;margin:20px auto 30px;}
.homenews .btngroup{display:flex;justify-content:center;}
.homenews .btngroup .button{width:280px;border-radius:100px;font-weight:bolder;padding:20px;}
@media screen and (max-width: 1520px) {
  .homenews .titlegroup{margin-bottom:25px;}
  .homenews .newslist{margin:15px auto 20px;}
  .homenews .btngroup .button{width:240px;}
}
@media screen and (max-width: 1080px) {
  .homenews{margin:30px auto;}
  .homenews .titlegroup{margin-bottom:20px;}
  .homenews .newslist{margin:15px auto;}
  .homenews .btngroup .button{width:200px;padding:15px;}
}
@media screen and (max-width: 768px) {

}

.newslist{}
.newsitem{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;color:#000;padding:15px 3px;transition:.3s;}
.newsitem:hover{text-decoration:none;background:#c9e5fd;}
.newsitem span{width:120px;}
.newsitem p{width:calc(100% - 150px);}
@media screen and (max-width: 1520px) {
  .newsitem{padding:10px 2px;}
  .newsitem span{width:100px;}
  .newsitem p{width:calc(100% - 130px);}
}
@media screen and (max-width: 1080px) {
  .newsitem span{width:90px;}
  .newsitem p{width:calc(100% - 110px);}
}
@media screen and (max-width: 768px) {
  .newsitem span{width:100%;}
  .newsitem p{width:100%;}
}

.homeabout{width:100%;display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;}
.homeabout .pic{width:calc(42% + 300px);margin-right:-300px;}
.homeabout .pic:after{padding-top:80%;}
.homeabout .text{width:58%;background:var(--white);padding:80px 120px;}
.homeabout .text .inner{width:100%;max-width:600px;font-weight:bolder;}
.homeabout .text .titlegroup{margin-bottom:50px;}
.homeabout .text .btngroup{width:100%;display:flex;justify-content:flex-end;margin-top:50px;}
.homeabout .text .btngroup .button{width:240px;padding:18px 20px;border-radius:100px;}
@media screen and (max-width: 1520px) {
  .homeabout .pic{width:calc(45% + 240px);margin-right:-240px;}
  .homeabout .text{width:55%;padding:50px 60px;}
  .homeabout .text .titlegroup{margin-bottom:30px;}
  .homeabout .text .btngroup{margin-top:30px;}
}
@media screen and (max-width: 1080px) {
  .homeabout .pic{width:calc(45% + 180px);margin-right:-180px;}
  .homeabout .text{width:55%;padding:30px 20px;}
  .homeabout .text .titlegroup{margin-bottom:20px;}
  .homeabout .text .btngroup{margin-top:20px;}
  .homeabout .text .btngroup .button{width:200px;padding:15px 20px;}
}
@media screen and (max-width: 768px) {
  .homeabout .pic{width:100%;margin-right:0;/*order:1;*/}
  .homeabout .pic:after{padding-top:70%;}
  .homeabout .text{width:100%;}
  .homeabout .text .inner{margin:0 auto;}
  .homeabout .text .tablelist{}
  .homeabout .text .tablelist dt{width:70px;}
  .homeabout .text .tablelist dd{width:calc(100% - 70px);}
  .homeabout .text .btngroup{justify-content:center;}
}

.homerecruit{padding:100px 0 60px;background-position:left 50% bottom;}
.homerecruit:after{padding-top:0;}
.homerecruit .titlegroup{width:50%;margin-bottom:50px;}
.homerecruit .titlegroup.hasline:before{width:50px;}
.homerecruit h2{font-size:70px;margin-bottom:15px;}
.homerecruit p{margin-bottom:25px;font-size:20px;}
.homerecruit .btngroup{}
.homerecruit .button{width:320px;padding:20px;font-weight:bolder;border-radius:100px;display:flex;justify-content:center;align-items:center;letter-spacing:0.1em;}
.homerecruit .button i{display:flex;justify-content:center;align-items:center;margin-left:20px;}
.homerecruit .button i:before{content:"";display:block;width:30px;border-top:1px solid #FFF;margin-right:-7px;}
.homerecruit .button i:after{content:"";display:block;width:12px;height:12px;border:solid #FFF;border-width:1px 1px 0 0;transform:rotate(45deg);margin-left:-7px;}
.homerecruit .button:hover i:before{border-top:1px solid var(--blue);}
.homerecruit .button:hover i:after{border:solid var(--blue);border-width:1px 1px 0 0;}
@media screen and (max-width: 1520px) {
  .homerecruit{padding:80px 0 60px;}
  .homerecruit .titlegroup{margin-bottom:30px;}
  .homerecruit h2{font-size:56px;margin-bottom:10px;}
  .homerecruit p{margin-bottom:20px;font-size:16px;}
  .homerecruit .button{width:240px;padding:15px;}
}
@media screen and (max-width: 1080px) {
  .homerecruit{padding:60px 0 30px;}
  .homerecruit .titlegroup{margin-bottom:20px;}
  .homerecruit h2{font-size:45px;margin-bottom:5px;}
  .homerecruit p{margin-bottom:15px;font-size:14px;}
  .homerecruit .button{width:200px;padding:15px 10px;}
  .homerecruit .button i:before{width:20px;margin-right:-5px;}
  .homerecruit .button i:after{width:10px;height:10px;margin-left:-5px;}
}
@media screen and (max-width: 768px) {
  .homerecruit .titlegroup{width:70%;}
}
@media screen and (max-width: 568px) {
  .homerecruit .btngroup{display:flex;justify-content:center;}
}


.homeshare{margin:50px auto;padding:0 40px;}
.sharelist{width:100%;max-width:600px;margin:0 auto;display:flex;justify-content:center;}
.sharelist li{padding:5px;margin:0 20px;}
.sharelist li a{display:flex;justify-content:center;align-items:center;width:80px;height:80px;transition:.3s;}
.sharelist li a:hover{opacity:0.7;}
.sharelist li a .icon{width:100px;height:100px;}
.footershare{display:none;}
@media screen and (max-width: 1520px) {
  .sharelist li{margin:0 10px;}
  .sharelist li a{width:60px;height:60px;}
}
@media screen and (max-width: 1080px) {
  .homeshare{margin:30px auto;padding:0 20px;}
  .sharelist li{margin:0 5px;}
  .sharelist li a{width:50px;height:50px;}
}
@media screen and (max-width: 768px) {
  .footershare{padding:10px 20px;display:block;width:100%;position:fixed;left:0;bottom:0;z-index:90;background:#c9e5fd;}
  .footershare .sharelist{justify-content:space-around;}
}
@media screen and (max-width: 568px) {
  .homeshare{margin:20px auto;}
  .footershare{padding:5px;}
  .sharelist{justify-content:space-around;}
  .sharelist li{margin:0;}
  .sharelist li a{width:30px;height:30px;}
}



/*footcontact*/
.footcontactlink{width:100%;max-width:750px;margin:0 auto;display:flex;justify-content:center;align-items:center;padding:30px 20px;border-radius:7px;font-size:}
.footcontactlink i{width:46px;height:46px;margin-right:20px;}
.footcontactlink span{font-size:38px;font-weight:bolder;letter-spacing:0.2em;}
@media screen and (max-width: 1520px) {
  .footcontactlink{max-width:600px;padding:20px;}
  .footcontactlink i{width:38px;height:38px;}
  .footcontactlink span{font-size:32px;}
}
@media screen and (max-width: 1080px) {
  .footcontactlink{max-width:380px;padding:20px;}
  .footcontactlink i{width:32px;height:32px;}
  .footcontactlink span{font-size:26px;}
}
@media screen and (max-width: 768px) {
  .footcontactlink{max-width:300px;padding:15px;}
  .footcontactlink i{width:22px;height:22px;}
  .footcontactlink span{font-size:20px;}
}




/*/footcontact*/

/* footer css */
.footer{background:#2d2d2d;}
.footmain{width:100%;max-width:1400px;margin:0 auto;padding:50px 40px;}
.footlogo{width:100%;max-width:150px;margin:0 auto 50px;display:flex;justify-content:center;transition:.3s;}
.footlogo:hover{opacity:0.7;}
.footmenu{margin:0 auto;}
.footmenu ul{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;}
.footmenu ul li{}
.footmenu ul li a{text-decoration:none;font-size:17px;color:#FFF;font-weight:bolder;display:block;width:100%;padding:10px 20px;text-align:center;transition:.3s;}
.footmenu ul li a:hover{color:var(--yellow);}

.copyright{background:var(--black);width:100%;}
.copyright p{width:100%;max-width:1400px;margin:0 auto;padding:10px 40px;font-size:14px;text-align:center;color:#2d2d2d;}

@media screen and (max-width: 1520px) {
  .footlogo{max-width:130px;margin:0 auto 30px;}
  .footmenu ul li a{font-size:15px;padding:5px 10px;}
}
@media screen and (max-width: 1080px) {
  .footlogo{max-width:110px;margin:0 auto 20px;}
  .footmain{padding:30px 20px;}
  .footmenu ul li a{font-size:13px;padding:5px 7px;}
  .copyright p{padding:10px 20px;font-size:12px;}
}
@media screen and (max-width: 860px) {
  .footmenu ul li{width:33.333333%;}
}
@media screen and (max-width: 768px) {
  .footer{margin-bottom:50px;}
  .copyright p{padding:5px 10px;}
}
@media screen and (max-width: 568px) {
  .footmenu ul li{width:50%;}
  .footmenu ul li:last-child{margin-right:auto;}
}
/* /footer css */

/*public*/
.iconperson{background:url(img/iconperson.png) no-repeat;background-size:contain;display:inline-block;background-position:center center;}
.iconemail{background:url(img/iconemail.png) no-repeat;background-size:contain;display:inline-block;background-position:center center;}
.iconfacebook{background:url(img/iconfacebook.png) no-repeat;background-size:contain;display:inline-block;background-position:center center;}
.iconinstagram{background:url(img/iconinstagram.png) no-repeat;background-size:contain;display:inline-block;background-position:center center;}
.iconxcorp{background:url(img/iconxcorp.png) no-repeat;background-size:contain;display:inline-block;background-position:center center;}
.iconline{background:url(img/iconline.png) no-repeat;background-size:contain;display:inline-block;background-position:center center;}

/* ==================================================
   会社概要 固定ページ
================================================== */

.companyPage {
  --company-blue: #005bac;
  --company-dark-blue: #004c91;
  --company-text: #222;
  --company-border: #d9e0e7;

  width: 100%;
  overflow: hidden;
  color: var(--company-text);
  background: #fff;
  font-family:
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    Meiryo,
    sans-serif;
}

.companyPage * {
  box-sizing: border-box;
}

.companyPage a {
  text-decoration: none;
}

.companyWrap {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
}

/* HERO
----------------------------------------- */

.companyHero {
  width: 100%;
  background:
    linear-gradient(
      90deg,
      #f8f9fa 0%,
      #fff 42%,
      #fff 100%
    );
}

.companyHero__inner {
  width: 100%;
  max-width: 1600px;
  min-height: 390px;
  margin: 0 auto;

  display: grid;
  grid-template-columns: 42% 58%;
}

.companyHero__text {
  min-width: 0;
  padding: 55px clamp(30px, 5vw, 80px);

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

.companyHero__en {
  margin: 0 0 18px;

  color: var(--company-blue);
  font-size: 15px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.companyHero h1 {
  margin: 0;

  color: #050505;
  font-size: clamp(42px, 4vw, 64px);
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.companyHero__line {
  display: block;
  width: 50px;
  height: 4px;
  margin: 28px 0 24px;

  background: var(--company-blue);
}

.companyHero__lead {
  margin: 0;

  font-size: 15px;
  line-height: 1.9;
  font-weight: 500;
}

.companyHero__image {
  width: 100%;
  min-width: 0;
  height: 390px;
  overflow: hidden;
  background: #edf2f6;
}

.companyHero__image img {
  display: block;
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center center;
}

/* 理念
----------------------------------------- */

.companyConcept {
  padding: 55px 0 38px;
}

.companyConcept__grid {
  display: grid;
  grid-template-columns: 1.05fr 1.95fr;
  gap: 50px;
  align-items: center;
}

.companyConcept__lead h2 {
  margin: 0 0 18px;

  color: var(--company-blue);
  font-size: clamp(28px, 2.8vw, 40px);
  line-height: 1.45;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.companyConcept__lead p {
  margin: 0;

  font-size: 14px;
  line-height: 2;
  font-weight: 500;
}

.companyConcept__points {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.companyPoint {
  min-width: 0;
  padding: 0 26px;

  text-align: center;
  border-left: 1px solid var(--company-border);
}

.companyPoint:last-child {
  border-right: 1px solid var(--company-border);
}

.companyPoint__icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 15px;

  display: flex;
  justify-content: center;
  align-items: center;

  color: var(--company-blue);
}

.companyPoint__icon svg {
  display: block;
  width: 100%;
  height: 100%;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.companyPoint h3 {
  margin: 0 0 10px;

  color: var(--company-blue);
  font-size: 18px;
  line-height: 1.5;
  font-weight: 700;
}

.companyPoint p {
  margin: 0;

  font-size: 13px;
  line-height: 1.9;
}

/* ごあいさつ
----------------------------------------- */

.companyMessage {
  padding: 10px 0 28px;
}

.companyMessage__box {
  padding: 28px clamp(25px, 7vw, 90px);

  border-radius: 5px;
  background:
    linear-gradient(
      135deg,
      #f0f2f4 0%,
      #fafafa 52%,
      #eef1f3 100%
    );

  text-align: center;
}

.companyMessage__en {
  margin: 0 0 5px;

  color: var(--company-blue);
  font-size: 11px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.companyMessage h2 {
  margin: 0 0 18px;

  font-size: 25px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.companyMessage__text {
  width: min(720px, 100%);
  margin: 0 auto;

  text-align: left;
}

.companyMessage__text p {
  margin: 0 0 14px;

  font-size: 13px;
  line-height: 1.8;
}

.companyMessage__name {
  width: min(720px, 100%);
  margin: 5px auto 0;

  text-align: right;
  font-size: 14px;
  font-weight: 700;
}

/* 共通見出し
----------------------------------------- */

.companySectionTitle {
  margin: 0 0 12px;

  color: #111;
  font-size: 26px;
  line-height: 1.4;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.12em;
}

/* 会社概要
----------------------------------------- */

.companyOverview {
  padding: 0 0 28px;
}

.companyOverview__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));

  border-top: 1px solid var(--company-border);
  border-left: 1px solid var(--company-border);
}

.companyOverview__col {
  min-width: 0;
}

.companyInfoItem {
  display: grid;
  grid-template-columns: 38% 62%;
  min-height: 52px;

  border-right: 1px solid var(--company-border);
  border-bottom: 1px solid var(--company-border);
}

.companyInfoItem__head,
.companyInfoItem__body {
  min-width: 0;
  padding: 13px 18px;

  display: flex;
  align-items: center;

  font-size: 13px;
  line-height: 1.5;
}

.companyInfoItem__head {
  background: #fafbfd;
  border-right: 1px solid var(--company-border);
  font-weight: 700;
}

.companyInfoItem__head::before {
  content: "";

  flex: 0 0 9px;
  width: 9px;
  height: 9px;
  margin-right: 12px;

  border-radius: 50%;
  background: var(--company-blue);
}

/* タブレット
----------------------------------------- */

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

  .companyHero__inner {
    grid-template-columns: 44% 56%;
    min-height: 320px;
  }

  .companyHero__image {
    height: 320px;
  }

  .companyHero__text {
    padding: 40px 25px;
  }

  .companyConcept__grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .companyConcept__lead {
    text-align: center;
  }
}

/* スマートフォン
----------------------------------------- */

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

  .companyWrap {
    width: min(100% - 30px, 620px);
  }

  .companyHero__inner {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .companyHero__text {
    width: 100%;
    padding: 32px 22px;
  }

  .companyHero__image {
    width: 100%;
    height: 250px;
  }

  .companyHero h1 {
    font-size: 38px;
  }

  .companyHero__line {
    width: 42px;
    height: 3px;
    margin: 20px 0;
  }

  .companyHero__lead {
    font-size: 14px;
  }

  .companyConcept {
    padding: 38px 0 25px;
  }

  .companyConcept__lead h2 {
    font-size: 27px;
    letter-spacing: 0.04em;
  }

  .companyConcept__lead p {
    font-size: 14px;
  }

  .companyConcept__lead p br {
    display: none;
  }

  .companyConcept__points {
    grid-template-columns: 1fr;
  }

  .companyPoint,
  .companyPoint:last-child {
    padding: 24px 12px;

    border-right: 0;
    border-left: 0;
    border-top: 1px solid var(--company-border);
  }

  .companyPoint:last-child {
    border-bottom: 1px solid var(--company-border);
  }

  .companyMessage__box {
    padding: 24px 19px;
  }

  .companyMessage__text br {
    display: none;
  }

  .companyOverview__grid {
    grid-template-columns: 1fr;
  }

  .companyInfoItem {
    grid-template-columns: 38% 62%;
  }

  .companyInfoItem__head,
  .companyInfoItem__body {
    padding: 12px 10px;
    font-size: 12px;
  }

  .companyAccess__map {
    height: auto;
    overflow: visible;
    background: none;
  }

  .companyAccess__map iframe {
    height: 280px;
    border-radius: 7px;
  }

  .companyAccess__card {
    position: relative;
    top: auto;
    left: auto;

    width: 100%;
    margin-top: 12px;

    border: 1px solid var(--company-border);
    box-shadow: none;
  }

 } /* ← @media screen and (max-width: 767px) を閉じる */

/* ==================================================
   会社概要：アクセス
================================================== */

.companyPage .companyAccess {
  padding: 0 0 14px;
}

.companyPage .companyAccess__map {
  position: relative;
  width: 100%;
  height: 330px;
  overflow: hidden;
  border-radius: 7px;
  background: #e7eef2;
}

.companyPage .companyAccess__map iframe {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  height: 100% !important;
  min-height: 330px !important;
  margin: 0 !important;
  border: 0 !important;
}

.companyPage .companyAccess__card {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 3;

  width: 320px;
  max-width: calc(100% - 32px);
  padding: 18px 18px 16px;

  background: rgba(255, 255, 255, 0.97);
  border-radius: 7px;
  box-shadow: 0 5px 18px rgba(0, 0, 0, 0.18);
}

.companyPage .companyAccess__card h3 {
  margin: 0 0 6px;
  color: #222;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 700;
}

.companyPage .companyAccess__address {
  margin: 0 0 10px;
  color: #444;
  font-size: 12px;
  line-height: 1.7;
}

.companyPage .companyAccess__card dl {
  margin: 0 0 13px;
}

.companyPage .companyAccess__card dl div {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: 5px;

  font-size: 12px;
  line-height: 1.6;
}

.companyPage .companyAccess__card dt {
  flex: 0 0 72px;
  color: #005bac;
  font-weight: 700;
}

.companyPage .companyAccess__card dd {
  margin: 0;
  color: #333;
}

.companyPage .companyAccess__button {
  width: 100%;
  min-height: 42px;
  padding: 9px 14px;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;

  color: #fff !important;
  background: linear-gradient(90deg, #0870c5, #00519a);
  border-radius: 5px;

  font-size: 12px;
  line-height: 1.4;
  font-weight: 700;
  text-decoration: none !important;

  transition: opacity 0.25s ease;
}

.companyPage .companyAccess__button span:last-child {
  margin-left: auto;
}

.companyPage .companyAccess__button:hover {
  opacity: 0.85;
}


/* ==================================================
   会社概要：お問い合わせ・採用情報
================================================== */

.companyPage .companyBottomLinks {
  padding: 0 0 40px;
}

.companyPage .companyBottomLinks__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.companyPage .companyBottomCard {
  position: relative;
  min-width: 0;
  min-height: 160px;
  overflow: hidden;

  border-radius: 7px;
  background-repeat: no-repeat;
  background-position: center right;
  background-size: cover;
}

/* 左側：お問い合わせ */
.companyPage .companyBottomCard--contact {
  background-color: #005bac;
  background-image:
    linear-gradient(
      90deg,
      rgba(0, 77, 148, 0.98) 0%,
      rgba(0, 91, 172, 0.9) 45%,
      rgba(0, 91, 172, 0.54) 66%,
      rgba(0, 91, 172, 0.08) 100%
    ),
    url("/easti/wp-content/themes/easti-themes/img/company-contact.png");
}

/* 右側：採用情報 */
.companyPage .companyBottomCard--recruit {
  background-color: #dff1fc;
  background-image:
    linear-gradient(
      90deg,
      rgba(222, 242, 253, 0.98) 0%,
      rgba(222, 242, 253, 0.9) 44%,
      rgba(222, 242, 253, 0.48) 66%,
      rgba(222, 242, 253, 0.05) 100%
    ),
    url("/easti/wp-content/themes/easti-themes/img/company-recruit.png");
}

.companyPage .companyBottomCard__content {
  position: relative;
  z-index: 2;

  width: 67%;
  min-height: 160px;
  padding: 22px 24px;

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

.companyPage .companyBottomCard h3 {
  margin: 0 0 5px;

  font-size: 24px;
  line-height: 1.3;
  font-weight: 700;
}

.companyPage .companyBottomCard p {
  margin: 0 0 12px;

  font-size: 12px;
  line-height: 1.6;
}

.companyPage .companyBottomCard--contact h3,
.companyPage .companyBottomCard--contact p {
  color: #fff;
}

.companyPage .companyBottomCard--recruit h3 {
  color: #005bac;
}

.companyPage .companyBottomCard--recruit p {
  color: #225474;
}


/* バナー内ボタン */
.companyPage .companyBottomCard__button {
  width: 245px;
  max-width: 100%;
  min-height: 40px;
  padding: 9px 14px;

  display: flex;
  align-items: center;
  gap: 10px;

  border-radius: 5px;

  font-size: 12px;
  line-height: 1.4;
  font-weight: 700;
  text-decoration: none !important;

  box-shadow: 0 2px 7px rgba(0, 48, 90, 0.12);
  transition:
    opacity 0.25s ease,
    transform 0.25s ease;
}

.companyPage .companyBottomCard__button--white {
  color: #005bac !important;
  background: #fff;
}

.companyPage .companyBottomCard__button--blue {
  color: #fff !important;
  background: linear-gradient(90deg, #0870c5, #00519a);
}

.companyPage .companyBottomCard__icon {
  flex: 0 0 auto;
}

.companyPage .companyBottomCard__buttonText {
  flex: 1;
  text-align: center;
}

.companyPage .companyBottomCard__arrow {
  flex: 0 0 auto;
  margin-left: auto;
}

.companyPage .companyBottomCard__button:hover {
  opacity: 0.86;
  transform: translateY(-1px);
}


/* ==================================================
   タブレット
================================================== */

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

  .companyPage .companyBottomCard__content {
    width: 74%;
  }

  .companyPage .companyBottomCard h3 {
    font-size: 21px;
  }
}


/* ==================================================
   スマートフォン
================================================== */

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

  .companyPage .companyAccess__map {
    height: auto;
    overflow: visible;
    background: none;
  }

  .companyPage .companyAccess__map iframe {
    position: relative;
    inset: auto;

    width: 100% !important;
    height: 270px !important;
    min-height: 270px !important;

    border-radius: 7px;
  }

  .companyPage .companyAccess__card {
    position: relative;
    top: auto;
    left: auto;

    width: 100%;
    max-width: none;
    margin-top: 12px;

    border: 1px solid #d9e0e7;
    box-shadow: none;
  }

  .companyPage .companyBottomLinks {
    padding-bottom: 30px;
  }

  .companyPage .companyBottomLinks__grid {
    grid-template-columns: 1fr;
  }

  .companyPage .companyBottomCard {
    min-height: 175px;
  }

  .companyPage .companyBottomCard__content {
    width: 82%;
    min-height: 175px;
    padding: 22px 18px;
  }

  .companyPage .companyBottomCard h3 {
    font-size: 21px;
  }

  .companyPage .companyBottomCard__button {
    width: 220px;
  }
}

/* 「すべての一歩に安心を。」をPCで1行表示 */
@media screen and (min-width: 901px) {

  .companyConcept__grid {
    grid-template-columns: 1.3fr 1.7fr;
    gap: 45px;
  }

  .companyConcept__lead h2 {
    white-space: nowrap;
    font-size: clamp(28px, 2.4vw, 38px);
    letter-spacing: 0.05em;
  }
}


/* ==================================================
   EAST-I お問い合わせ固定ページ
   対象HTML：.contactPage 以下
================================================== */

.contactPage {
  --contact-blue: #005bac;
  --contact-deep: #00488c;
  --contact-light: #eef6fc;
  --contact-border: #d9e3ec;
  --contact-text: #222;
  --contact-muted: #5b6872;

  width: 100vw !important;
  max-width: none !important;
  margin-right: calc(50% - 50vw) !important;
  margin-left: calc(50% - 50vw) !important;
  overflow: hidden;

  color: var(--contact-text);
  background: #f7f8fa;

  font-family:
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    Meiryo,
    sans-serif;
}

.contactPage *,
.contactPage *::before,
.contactPage *::after {
  box-sizing: border-box;
}

.contactPage img {
  max-width: 100%;
  height: auto;
}

.contactPage a {
  color: inherit;
}

.contactPage .contactWrap {
  width: min(1180px, calc(100% - 48px)) !important;
  max-width: none !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

.contactPage .contactSectionHeading {
  margin-bottom: 28px;
  text-align: center;
}

.contactPage .contactSectionHeading h2 {
  margin: 0 0 8px;
  color: var(--contact-blue);
  font-size: 28px;
  line-height: 1.4;
  letter-spacing: 0.12em;
}

.contactPage .contactSectionHeading p {
  margin: 0;
  color: var(--contact-text);
  font-size: 13px;
  line-height: 1.8;
}


/* ==================================================
   メインビジュアル
================================================== */

.contactPage .contactHero {
  background: #fff;
}

.contactPage .contactHero__inner {
  width: 100%;
  max-width: 1440px;
  min-height: 410px;
  margin: 0 auto;

  display: grid;
  grid-template-columns: 48% 52%;
  align-items: stretch;
}

.contactPage .contactHero__content {
  min-width: 0;
  padding: 55px clamp(36px, 5vw, 78px);

  display: flex;
  flex-direction: column;
  justify-content: center;

  background:
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 1) 0%,
      rgba(255, 255, 255, 0.98) 70%,
      rgba(255, 255, 255, 0.78) 100%
    );
}

.contactPage .contactHero__eyebrow {
  margin: 0 0 14px;
  color: var(--contact-blue);
  font-size: 16px;
  line-height: 1.5;
  font-weight: 700;
}

.contactPage .contactHero h1 {
  margin: 0 0 20px;
  color: #111;
  font-size: clamp(40px, 3.4vw, 58px);
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.contactPage .contactHero h1 span {
  color: var(--contact-blue);
}

.contactPage .contactHero__lead {
  margin: 0 0 28px;
  font-size: 16px;
  line-height: 2;
}

.contactPage .contactHero__points {
  margin: 0;
  padding: 0;

  display: flex;
  flex-wrap: wrap;
  gap: 12px;

  list-style: none;
}

.contactPage .contactHero__points li {
  min-width: 155px;
  padding: 12px 18px;

  display: flex;
  align-items: center;
  gap: 10px;

  border: 1px solid #bdd3e6;
  border-radius: 999px;

  color: #284860;
  background: rgba(255, 255, 255, 0.92);

  font-size: 13px;
  line-height: 1.4;
  font-weight: 700;
}

.contactPage .contactHero__pointIcon {
  color: var(--contact-blue);
  font-size: 18px;
  line-height: 1;
}

.contactPage .contactHero__image {
  min-width: 0;
  height: 410px;
  margin: 0;
  overflow: hidden;
  background: #f1f5f8;
}

.contactPage .contactHero__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}


/* ==================================================
   お問い合わせフォーム全体
================================================== */

.contactPage .contactFormSection {
  padding: 0 0 48px;
}

.contactPage .contactPanel {
  position: relative;
  z-index: 2;

  width: 100%;
  margin-top: -18px;
  padding: 38px 34px 42px;

  border-radius: 8px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 12px 35px rgba(0, 55, 100, 0.08);
}

.contactPage .eastContactForm,
.contactPage .wpcf7,
.contactPage .wpcf7-form {
  width: 100%;
}

.contactPage .eastFormRow {
  width: 100%;

  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);

  border-top: 1px solid #e6ebef;
  background: #fff;
}

.contactPage .eastFormRow:last-of-type {
  border-bottom: 1px solid #e6ebef;
}

.contactPage .eastFormLabel {
  min-height: 60px;
  padding: 14px 18px;

  display: flex;
  align-items: center;
  gap: 12px;

  background: #f3f7fb;

  font-size: 13px;
  line-height: 1.5;
  font-weight: 700;
}

.contactPage .eastFormLabel em,
.contactPage .eastFormLabel small {
  margin-left: auto;
  padding: 2px 5px;

  border-radius: 2px;

  font-size: 10px;
  line-height: 1.3;
  font-style: normal;
  font-weight: 700;
  white-space: nowrap;
}

.contactPage .eastFormLabel em {
  color: #e7473c;
  border: 1px solid #e7473c;
  background: #fff;
}

.contactPage .eastFormLabel small {
  color: #555;
  border: 1px solid #aeb6bd;
  background: #fff;
}

.contactPage .eastFormField {
  width: 100%;
  min-width: 0;
  padding: 11px 20px;

  display: flex;
  align-items: center;
  gap: 10px;
}

.contactPage .eastFormField .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
  max-width: none;
  min-width: 0;
}

.contactPage .eastFormField input[type="text"],
.contactPage .eastFormField input[type="email"],
.contactPage .eastFormField input[type="tel"],
.contactPage .eastFormField select,
.contactPage .eastFormField textarea {
  display: block;
  width: 100% !important;
  max-width: none !important;
  padding: 11px 13px;

  border: 1px solid #dce4ea;
  border-radius: 3px;
  outline: none;

  color: #222;
  background: #fff;

  font-family: inherit;
  font-size: 13px;
  line-height: 1.5;

  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.contactPage .eastFormField input[type="text"]:focus,
.contactPage .eastFormField input[type="email"]:focus,
.contactPage .eastFormField input[type="tel"]:focus,
.contactPage .eastFormField select:focus,
.contactPage .eastFormField textarea:focus {
  border-color: #70a8d2;
  box-shadow: 0 0 0 3px rgba(0, 91, 172, 0.1);
}

.contactPage .eastFormField input::placeholder,
.contactPage .eastFormField textarea::placeholder {
  color: #b0b8bf;
}


/* 姓・名／せい・めい */
.contactPage .eastFormField--split {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 20px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}

.contactPage .eastFormField--split .wpcf7-form-control-wrap {
  width: 100% !important;
}

.contactPage .eastFormSeparator {
  display: block;
  color: #a6adb4;
  font-size: 12px;
  line-height: 1;
  text-align: center;
}


/* 住所 */
.contactPage .eastFormField--address {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 10px;
}

.contactPage .eastFormField--address .wpcf7-form-control-wrap:last-child {
  grid-column: 1 / -1;
}


/* チェックボックス */
.contactPage .eastFormField--checks {
  align-items: flex-start;
}

.contactPage .eastFormField--checks .wpcf7-checkbox {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
}

.contactPage .eastFormField--checks .wpcf7-list-item {
  margin: 0;
}

.contactPage .eastFormField--checks label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  font-size: 13px;
  line-height: 1.5;
}


/* お問い合わせ内容 */
.contactPage .eastFormRow--textarea {
  grid-template-columns: 180px minmax(0, 1fr) !important;
}

.contactPage .eastFormRow--textarea .eastFormField {
  width: 100% !important;
  min-width: 0 !important;
  align-items: stretch;
}

.contactPage .eastFormRow--textarea .wpcf7-form-control-wrap {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
}

.contactPage .eastFormRow--textarea textarea {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 180px !important;
  resize: vertical;
}


/* プライバシー */
.contactPage .eastFormPrivacy {
  padding: 20px 15px 0;
  text-align: center;
  font-size: 12px;
  line-height: 1.8;
}

.contactPage .eastFormPrivacy .wpcf7-list-item {
  margin: 0;
}

.contactPage .eastFormPrivacy label {
  display: inline;
}

.contactPage .eastFormPrivacy a {
  color: var(--contact-blue);
  font-weight: 700;
}


/* ==================================================
   確認画面・ボタン
================================================== */

.contactPage .eastFormConfirm[hidden],
.contactPage .eastFormEdit[hidden] {
  display: none !important;
}

.contactPage .eastFormActions,
.contactPage .eastFormConfirm__actions {
  margin-top: 22px;

  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
}

.contactPage .eastConfirmButton,
.contactPage .eastActualSubmit,
.contactPage .eastBackButton {
  min-width: 310px;
  min-height: 52px;
  padding: 13px 28px;

  border: 0;
  border-radius: 999px;
  cursor: pointer;

  font-family: inherit;
  font-size: 15px;
  line-height: 1.4;
  font-weight: 700;

  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
}

.contactPage .eastConfirmButton,
.contactPage .eastActualSubmit {
  color: #fff;
  background: linear-gradient(90deg, #0670c8, #00529b);
}

.contactPage .eastBackButton {
  color: var(--contact-blue);
  background: #eef4f8;
  border: 1px solid #b9cfdf;
}

.contactPage .eastConfirmButton:hover,
.contactPage .eastActualSubmit:hover,
.contactPage .eastBackButton:hover {
  opacity: 0.86;
  transform: translateY(-1px);
}


/* 確認画面へボタン：文字中央・矢印右端 */
.contactPage .eastConfirmButton {
  position: relative;

  width: min(360px, 100%);
  min-width: 0;
  padding: 13px 50px;

  display: flex !important;
  align-items: center;
  justify-content: center;

  text-align: center;
}

.contactPage .eastConfirmButton span {
  position: absolute;
  top: 50%;
  right: 24px;

  margin: 0 !important;
  line-height: 1;

  transform: translateY(-50%);
}


/* 確認内容 */
.contactPage .eastFormConfirm__lead {
  margin: 0 0 20px;
  text-align: center;
  font-size: 14px;
  line-height: 1.8;
}

.contactPage .eastConfirmList {
  margin: 0;
  border-top: 1px solid var(--contact-border);
  border-left: 1px solid var(--contact-border);
}

.contactPage .eastConfirmList > div {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);

  border-right: 1px solid var(--contact-border);
  border-bottom: 1px solid var(--contact-border);
}

.contactPage .eastConfirmList dt,
.contactPage .eastConfirmList dd {
  margin: 0;
  padding: 14px 18px;

  font-size: 13px;
  line-height: 1.7;
}

.contactPage .eastConfirmList dt {
  background: #f3f7fb;
  font-weight: 700;
}

.contactPage .eastConfirmList dd {
  min-width: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}


/* Contact Form 7 */
.contactPage .wpcf7-not-valid-tip {
  margin-top: 5px;
  color: #d9342b;
  font-size: 11px;
  line-height: 1.5;
}

.contactPage .wpcf7-response-output {
  margin: 18px 0 0 !important;
  padding: 12px !important;

  border-radius: 4px;

  font-size: 13px;
  line-height: 1.7;
}


/* ==================================================
   お問い合わせからご回答までの流れ
================================================== */

.contactPage .contactFlow {
  padding: 0 0 45px;
}

.contactPage .contactFlow__list {
  width: 100%;
  margin: 0;
  padding: 30px 24px;

  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));

  list-style: none;
  border-radius: 8px;

  background: #fff;
  box-shadow: 0 8px 24px rgba(0, 55, 100, 0.05);
}

.contactPage .contactFlow__item {
  min-width: 0;
  padding: 0 24px;

  position: relative;
  text-align: center;
}

.contactPage .contactFlow__item:not(:last-child)::after {
  content: "›";

  position: absolute;
  top: 48%;
  right: -5px;

  color: var(--contact-blue);
  font-size: 34px;
  line-height: 1;

  transform: translateY(-50%);
}

.contactPage .contactFlow__number {
  width: 24px;
  height: 24px;
  margin: 0 auto 8px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  color: #fff;
  background: var(--contact-blue);

  font-size: 12px;
  line-height: 1;
  font-weight: 700;
}

.contactPage .contactFlow__icon {
  display: block;
  margin-bottom: 8px;

  color: var(--contact-blue);
  font-size: 42px;
  line-height: 1;
}

.contactPage .contactFlow__item h3 {
  margin: 0 0 6px;
  color: var(--contact-blue);
  font-size: 17px;
  line-height: 1.4;
}

.contactPage .contactFlow__item p {
  margin: 0;
  font-size: 12px;
  line-height: 1.7;
}

.contactPage .contactFlow__notice {
  margin: 14px 0 0;
  padding: 10px 18px;

  border: 1px solid #8fb9da;
  border-radius: 4px;

  color: #496373;
  background: #f8fcff;

  text-align: center;
  font-size: 12px;
  line-height: 1.7;
}


/* ==================================================
   メール・電話
================================================== */

.contactPage .contactDirect {
  padding: 0 0 45px;
}

.contactPage .contactDirect__grid {
  width: 100%;

  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.contactPage .contactDirectCard {
  min-width: 0;
  min-height: 190px;
  padding: 26px 30px;

  display: flex;
  align-items: center;
  gap: 24px;

  border: 1px solid #e1e7ec;
  border-radius: 8px;
  background: #fff;
}

.contactPage .contactDirectCard__icon {
  flex: 0 0 86px;
  width: 86px;
  height: 86px;

  display: grid;
  place-items: center;

  border: 1px solid #78aacf;
  border-radius: 50%;

  color: var(--contact-blue);

  font-size: 43px;
  line-height: 1;
}

.contactPage .contactDirectCard__body {
  min-width: 0;
}

.contactPage .contactDirectCard__label {
  display: inline-block;
  margin-bottom: 7px;
  padding: 3px 8px;

  color: #fff;
  background: var(--contact-blue);

  font-size: 11px;
  line-height: 1.4;
  font-weight: 700;
}

.contactPage .contactDirectCard p {
  margin: 0 0 10px;
  font-size: 12px;
  line-height: 1.7;
}

.contactPage .contactDirectCard a:not(.contactDirectCard__tel) {
  min-width: 230px;
  padding: 10px 16px;

  display: inline-flex;
  justify-content: center;
  align-items: center;

  border-radius: 999px;

  color: #fff;
  background: linear-gradient(90deg, #0670c8, #00529b);

  font-size: 12px;
  line-height: 1.4;
  font-weight: 700;
  text-decoration: none;
}

.contactPage .contactDirectCard__tel {
  display: block;

  color: var(--contact-blue);

  font-size: 30px;
  line-height: 1.2;
  font-weight: 800;
  text-decoration: none;
}

.contactPage .contactDirectCard small {
  display: block;
  margin-top: 5px;

  color: var(--contact-muted);

  font-size: 11px;
  line-height: 1.6;
}


/* ==================================================
   FAQ・サポート
================================================== */

.contactPage .contactSupport {
  padding: 0 0 50px;
}

.contactPage .contactSupport__grid {
  width: 100%;

  display: grid;
  grid-template-columns: 1.35fr 0.85fr;
  gap: 18px;
}

.contactPage .contactFaq,
.contactPage .contactSupportCard {
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0, 55, 100, 0.05);
}

.contactPage .contactFaq {
  padding: 20px 24px;
}

.contactPage .contactFaq__heading {
  margin-bottom: 10px;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.contactPage .contactFaq__heading h2 {
  margin: 0;
  color: var(--contact-blue);
  font-size: 21px;
  line-height: 1.4;
  letter-spacing: 0.08em;
}

.contactPage .contactFaq__heading a {
  color: var(--contact-blue);
  font-size: 11px;
  line-height: 1.5;
  text-decoration: none;
}

.contactPage .contactFaq details {
  border-top: 1px solid #dfe7ed;
}

.contactPage .contactFaq details:last-child {
  border-bottom: 1px solid #dfe7ed;
}

.contactPage .contactFaq summary {
  padding: 12px 32px 12px 30px;

  position: relative;
  cursor: pointer;
  list-style: none;

  font-size: 12px;
  line-height: 1.6;
  font-weight: 700;
}

.contactPage .contactFaq summary::-webkit-details-marker {
  display: none;
}

.contactPage .contactFaq summary::before {
  content: "Q";

  position: absolute;
  left: 6px;

  color: var(--contact-blue);
  font-weight: 800;
}

.contactPage .contactFaq summary::after {
  content: "⌄";

  position: absolute;
  right: 8px;

  color: var(--contact-blue);
}

.contactPage .contactFaq details[open] summary::after {
  transform: rotate(180deg);
}

.contactPage .contactFaq details p {
  margin: 0;
  padding: 0 30px 14px;

  color: #555;

  font-size: 12px;
  line-height: 1.8;
}

.contactPage .contactSupportCard {
  padding: 26px;

  display: flex;
  align-items: center;
  gap: 22px;

  background: linear-gradient(135deg, #f4f9fd, #e9f3fb);
}

.contactPage .contactSupportCard__icon {
  flex: 0 0 90px;
  width: 90px;
  height: 90px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  color: #76a5cc;
  background: #fff;

  font-size: 48px;
  line-height: 1;
}

.contactPage .contactSupportCard h2 {
  margin: 0 0 8px;
  color: var(--contact-blue);
  font-size: 21px;
  line-height: 1.4;
}

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

.contactPage .contactSupportCard a {
  min-width: 260px;
  padding: 10px 16px;

  display: inline-flex;
  justify-content: center;
  align-items: center;

  border-radius: 999px;

  color: #fff;
  background: linear-gradient(90deg, #0670c8, #00529b);

  font-size: 12px;
  line-height: 1.4;
  font-weight: 700;
  text-decoration: none;
}


/* ==================================================
   下部CTA
================================================== */

.contactPage .contactBottomCta {
  padding: 32px 0;

  color: #fff;
  background: linear-gradient(90deg, #00529b, #0074c9);
}

.contactPage .contactBottomCta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}

.contactPage .contactBottomCta h2 {
  margin: 0 0 6px;

  font-size: 27px;
  line-height: 1.4;
  letter-spacing: 0.08em;
}

.contactPage .contactBottomCta p {
  margin: 0;
  font-size: 12px;
  line-height: 1.7;
}

.contactPage .contactBottomCta a {
  min-width: 330px;
  padding: 16px 24px;

  display: inline-flex;
  justify-content: center;
  align-items: center;

  border-radius: 5px;

  color: var(--contact-blue);
  background: #fff;

  font-size: 17px;
  line-height: 1.4;
  font-weight: 700;
  text-decoration: none;
}


/* ==================================================
   お問い合わせページではテーマ標準CTAを非表示
================================================== */

body:has(.contactPage) .footcontact {
  display: none !important;
}

body:has(.contactPage) section:has(.footcontactlink) {
  display: none !important;
}


/* ==================================================
   タブレット
================================================== */

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

  .contactPage .contactWrap {
    width: min(100% - 36px, 1000px) !important;
  }

  .contactPage .contactHero__inner {
    grid-template-columns: 52% 48%;
  }

  .contactPage .contactHero__content {
    padding: 44px 28px;
  }

  .contactPage .contactHero h1 {
    font-size: 40px;
  }

  .contactPage .eastFormRow {
    grid-template-columns: 185px minmax(0, 1fr);
  }

  .contactPage .eastFormRow--textarea {
    grid-template-columns: 170px minmax(0, 1fr) !important;
  }

  .contactPage .contactFlow__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 0;
  }

  .contactPage .contactFlow__item:nth-child(2)::after {
    display: none;
  }

  .contactPage .contactDirectCard {
    align-items: flex-start;
  }

  .contactPage .contactSupport__grid {
    grid-template-columns: 1fr;
  }
}


/* ==================================================
   スマートフォン
================================================== */

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

  .contactPage .contactWrap {
    width: min(100% - 28px, 620px) !important;
  }

  .contactPage .contactHero__inner {
    display: flex;
    flex-direction: column-reverse;
    min-height: 0;
  }

  .contactPage .contactHero__content {
    width: 100%;
    padding: 32px 20px;
  }

  .contactPage .contactHero__image {
    width: 100%;
    height: 230px;
  }

  .contactPage .contactHero h1 {
    white-space: normal;
    font-size: 34px;
  }

  .contactPage .contactHero__lead br {
    display: none;
  }

  .contactPage .contactHero__points {
    display: grid;
    grid-template-columns: 1fr;
  }

  .contactPage .contactHero__points li {
    min-width: 0;
  }

  .contactPage .contactPanel {
    margin-top: 0;
    padding: 28px 14px;
  }

  .contactPage .contactSectionHeading h2 {
    font-size: 23px;
  }

  .contactPage .eastFormRow,
  .contactPage .eastFormRow--textarea {
    display: block;
    width: 100%;

    border: 1px solid #e6ebef;
    border-bottom: 0;
  }

  .contactPage .eastFormRow:last-of-type {
    border-bottom: 1px solid #e6ebef;
  }

  .contactPage .eastFormLabel {
    min-height: 0;
    padding: 11px 12px;
  }

  .contactPage .eastFormField {
    padding: 11px 12px 14px;
  }

  .contactPage .eastFormField--split,
  .contactPage .eastFormField--address {
    display: grid !important;
    grid-template-columns: 1fr;
  }

  .contactPage .eastFormSeparator {
    display: none;
  }

  .contactPage .eastFormRow--textarea textarea {
    min-height: 160px !important;
  }

  .contactPage .eastConfirmButton,
  .contactPage .eastActualSubmit,
  .contactPage .eastBackButton {
    width: 100%;
    min-width: 0;
  }

  .contactPage .eastFormConfirm__actions {
    flex-direction: column-reverse;
  }

  .contactPage .eastConfirmList > div {
    grid-template-columns: 1fr;
  }

  .contactPage .eastConfirmList dt {
    border-bottom: 1px solid var(--contact-border);
  }

  .contactPage .contactFlow__list {
    grid-template-columns: 1fr;
  }

  .contactPage .contactFlow__item {
    padding: 20px 10px;
    border-bottom: 1px solid #e4eaf0;
  }

  .contactPage .contactFlow__item::after {
    display: none !important;
  }

  .contactPage .contactDirect__grid {
    grid-template-columns: 1fr;
  }

  .contactPage .contactDirectCard {
    min-height: 0;
    padding: 22px 18px;

    display: block;
    text-align: center;
  }

  .contactPage .contactDirectCard__icon {
    margin: 0 auto 15px;
  }

  .contactPage .contactDirectCard a:not(.contactDirectCard__tel),
  .contactPage .contactSupportCard a {
    width: 100%;
    min-width: 0;
  }

  .contactPage .contactSupportCard {
    display: block;
    text-align: center;
  }

  .contactPage .contactSupportCard__icon {
    margin: 0 auto 15px;
  }

  .contactPage .contactFaq__heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }

  .contactPage .contactBottomCta__inner {
    display: block;
    text-align: center;
  }

  .contactPage .contactBottomCta h2 {
    font-size: 22px;
  }

  .contactPage .contactBottomCta p {
    margin-bottom: 18px;
  }

  .contactPage .contactBottomCta a {
    width: 100%;
    min-width: 0;
  }
}

/* ==================================================
   お問い合わせ内容欄の位置ずれ修正
================================================== */
.contactPage .eastFormRow--textarea {
	grid-template-columns: 220px minmax(0, 1fr) !important;
	align-items: flex-start !important;
}

/* ラベル位置 */
.contactPage .eastFormRow--textarea .eastFormLabel {
	align-self: flex-start !important;
	padding-top: 14px !important;
}

/* 入力欄側を横幅いっぱいにする */
.contactPage .eastFormRow--textarea .eastFormField {
	display: block !important;
	width: 100% !important;
	min-width: 0 !important;
}

/* Contact Form 7のラッパー */
.contactPage .eastFormRow--textarea .wpcf7-form-control-wrap {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

/* テキストエリア */
.contactPage .eastFormRow--textarea textarea {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	min-height: 180px !important;
	margin: 0 !important;
	box-sizing: border-box !important;
	resize: vertical;
}

/* CF7が自動生成する余白対策 */
.contactPage .eastFormRow--textarea p {
	width: 100% !important;
	margin: 0 !important;
}

/* ==================================================
   「確認画面へ」ボタン・文字位置修正
================================================== */

/* ボタンを囲むエリア */
.contactPage .eastFormActions {
	width: 100% !important;
	margin: 28px 0 0 !important;
	padding: 0 !important;

	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
}

/* CF7などが自動生成するpタグ対策 */
.contactPage .eastFormActions > p {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;

	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
}

/* 確認画面へボタン */
.contactPage .eastConfirmButton {
	position: relative !important;

	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 360px !important;
	max-width: 100% !important;
	height: 56px !important;
	min-height: 56px !important;

	margin: 0 auto !important;
	padding: 0 56px !important;

	border: 0 !important;
	box-sizing: border-box !important;

	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	letter-spacing: 0.04em !important;
	text-align: center !important;
	text-indent: 0 !important;
	vertical-align: middle !important;
}

/* 右側の矢印 */
.contactPage .eastConfirmButton span {
	position: absolute !important;
	top: 50% !important;
	right: 24px !important;

	margin: 0 !important;
	padding: 0 !important;

	line-height: 1 !important;

	transform: translateY(-50%) !important;
}

/* ==================================================
   EAST-I 電子カタログ固定ページ
   対象HTML：.eastCatalogPage 以下
================================================== */

.eastCatalogPage {
  --catalog-blue: #005bac;
  --catalog-deep: #004b91;
  --catalog-light: #edf4fa;
  --catalog-border: #d8e1e9;
  --catalog-text: #222;
  --catalog-muted: #55636e;

  width: 100vw !important;
  max-width: none !important;
  margin-right: calc(50% - 50vw) !important;
  margin-left: calc(50% - 50vw) !important;
  overflow: hidden;

  color: var(--catalog-text);
  background: linear-gradient(180deg, #fff 0%, #f8fafc 36%, #edf3f8 100%);
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}

.eastCatalogPage *,
.eastCatalogPage *::before,
.eastCatalogPage *::after {
  box-sizing: border-box;
}

.eastCatalogPage img {
  display: block;
  max-width: 100%;
  height: auto;
}

.eastCatalogPage a {
  text-decoration: none;
}

.eastCatalogWrap {
  width: min(1120px, calc(100% - 48px));
  margin-right: auto;
  margin-left: auto;
}

/* 共通見出し */
.eastCatalogHeading {
  margin-bottom: 30px;
  text-align: center;
}

.eastCatalogHeading__en {
  margin: 0 0 7px;
  color: var(--catalog-blue);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .18em;
}

.eastCatalogHeading__ja {
  margin: 0;
  color: #111;
  font-size: 30px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .12em;
}

/* HERO */
.eastCatalogHero {
  background:
    radial-gradient(circle at 80% 30%, rgba(224,239,249,.85), rgba(255,255,255,0) 40%),
    linear-gradient(90deg, #fff 0%, #fafafa 49%, #f4f7f9 100%);
}

.eastCatalogHero__inner {
  width: min(1440px, 100%);
  min-height: 430px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 45% 55%;
  align-items: stretch;
}

.eastCatalogHero__content {
  min-width: 0;
  padding: 56px clamp(30px, 6vw, 95px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.eastCatalogHero__eyebrow {
  margin: 0 0 10px;
  color: var(--catalog-blue);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .13em;
}

.eastCatalogHero__title {
  margin: 0 0 14px;
  color: #222;
  font-size: clamp(42px, 4.1vw, 64px);
  line-height: 1.35;
  font-weight: 800;
  letter-spacing: .06em;
}

.eastCatalogHero__title span {
  color: var(--catalog-blue);
}

.eastCatalogHero__subtitle {
  margin: 0 0 18px;
  color: var(--catalog-blue);
  font-size: 21px;
  line-height: 1.5;
  font-weight: 700;
}

.eastCatalogHero__lead {
  margin: 0 0 28px;
  color: #333;
  font-size: 16px;
  line-height: 1.9;
  font-weight: 500;
}

.eastCatalogHero__visual {
  min-width: 0;
  height: 430px;
  margin: 0;
  overflow: hidden;
}

.eastCatalogHero__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.eastCatalogButton {
  min-height: 52px;
  padding: 12px 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  border-radius: 999px;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 700;
  transition: opacity .2s ease, transform .2s ease;
}

.eastCatalogButton--hero {
  align-self: flex-start;
  min-width: 270px;
  color: #fff !important;
  background: linear-gradient(90deg, #0872c7, var(--catalog-blue));
}

.eastCatalogButton svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.eastCatalogButton:hover {
  opacity: .86;
  transform: translateY(-1px);
}

/* 最新カタログ */
.eastCatalogLatest {
  padding: 48px 0 34px;
}

.eastCatalogLatest__grid {
  display: grid;
  grid-template-columns: repeat(2, 280px);
  justify-content: center;
  gap: 80px;
}

.eastCatalogBook {
  min-width: 0;
}

.eastCatalogBook__cover {
  display: block;
  margin-bottom: 14px;
  transition: opacity .2s ease, transform .2s ease;
}

.eastCatalogBook__cover img {
  width: 100%;
  aspect-ratio: 3 / 4.05;
  object-fit: cover;
  border: 1px solid #aeb8c0;
  background: #fff;
  box-shadow: 0 10px 25px rgba(0,45,85,.12);
}

.eastCatalogBook__cover:hover {
  opacity: .9;
  transform: translateY(-3px);
}

.eastCatalogBook__download {
  width: 100%;
  min-height: 50px;
  padding: 9px 13px;
  display: flex;
  align-items: center;
  gap: 9px;
  border-radius: 5px;
  color: #fff !important;
  background: linear-gradient(90deg, #0874ca, #0057a4);
  font-size: 14px;
  line-height: 1.4;
  font-weight: 700;
  box-shadow: 0 5px 14px rgba(0,70,130,.16);
  transition: opacity .2s ease, transform .2s ease;
}

.eastCatalogBook__pdf {
  flex: 0 0 31px;
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  border-radius: 3px;
  color: #e73c36;
  background: #fff;
  font-size: 9px;
  line-height: 1;
  font-weight: 800;
}

.eastCatalogBook__name {
  flex: 1;
  min-width: 0;
}

.eastCatalogBook__download svg {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.eastCatalogBook__download:hover {
  opacity: .86;
  transform: translateY(-1px);
}

.eastCatalogLatest__note {
  margin: 20px 0 0;
  color: #444;
  text-align: center;
  font-size: 12px;
  line-height: 1.8;
}


/* ご利用方法 */
.eastCatalogHowto {
  padding: 28px 0 48px;
}

.eastCatalogHowto__list {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  list-style: none;
  border: 1px solid var(--catalog-border);
  border-radius: 7px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 8px 22px rgba(0,45,85,.06);
}

.eastCatalogStep {
  min-width: 0;
  padding: 24px;
  display: flex;
  align-items: center;
  gap: 17px;
  position: relative;
}

.eastCatalogStep:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 18%;
  right: 0;
  bottom: 18%;
  width: 1px;
  background: var(--catalog-border);
}

.eastCatalogStep__icon {
  flex: 0 0 76px;
  width: 76px;
  height: 76px;
}

.eastCatalogStep__icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: #1e3344;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.eastCatalogStep__body {
  min-width: 0;
}

.eastCatalogStep__number {
  display: block;
  margin-bottom: 4px;
  color: var(--catalog-blue);
  font-size: 24px;
  line-height: 1;
  font-weight: 800;
}

.eastCatalogStep h3 {
  margin: 0 0 5px;
  color: #111;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 700;
}

.eastCatalogStep p {
  margin: 0;
  color: #333;
  font-size: 11px;
  line-height: 1.7;
}

/* お問い合わせCTA */
.eastCatalogContact {
  color: #fff;
  background: linear-gradient(90deg, #0055a0 0%, #0069bb 100%);
}

.eastCatalogContact__inner {
  width: min(1120px, calc(100% - 48px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 360px minmax(0, 1fr);
  align-items: stretch;
}

.eastCatalogContact__image {
  min-width: 0;
  min-height: 210px;
  margin: 0;
  overflow: hidden;
}

.eastCatalogContact__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.eastCatalogContact__content {
  min-width: 0;
  padding: 30px 38px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.eastCatalogContact__content h2 {
  margin: 0 0 9px;
  color: #fff;
  font-size: 27px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .05em;
}

.eastCatalogContact__content p {
  margin: 0 0 18px;
  color: #fff;
  font-size: 12px;
  line-height: 1.8;
}

.eastCatalogContact__buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.eastCatalogContact__button {
  min-height: 48px;
  padding: 10px 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  border: 1px solid #fff;
  border-radius: 5px;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 700;
  transition: opacity .2s ease, transform .2s ease;
}

.eastCatalogContact__button svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.eastCatalogContact__button--white {
  color: var(--catalog-blue) !important;
  background: #fff;
}

.eastCatalogContact__button--outline {
  color: #fff !important;
  background: transparent;
}

.eastCatalogContact__button:hover {
  opacity: .86;
  transform: translateY(-1px);
}

/* テーマ標準CTAをこのページだけ非表示 */
body:has(.eastCatalogPage) .footcontact {
  display: none !important;
}

body:has(.eastCatalogPage) section:has(.footcontactlink) {
  display: none !important;
}

/* タブレット */
@media screen and (max-width: 1080px) {
  .eastCatalogHero__inner {
    grid-template-columns: 48% 52%;
  }

  .eastCatalogHero__content {
    padding: 44px 28px;
  }

  .eastCatalogHero__title {
    font-size: 43px;
  }

  .eastCatalogLatest__grid {
    grid-template-columns: repeat(2, 260px);
    gap: 45px;
  }

  .eastCatalogHowto__list {
    grid-template-columns: 1fr;
  }

  .eastCatalogStep {
    padding: 22px 28px;
  }

  .eastCatalogStep:not(:last-child)::after {
    top: auto;
    right: 24px;
    bottom: 0;
    left: 24px;
    width: auto;
    height: 1px;
  }

  .eastCatalogContact__inner {
    grid-template-columns: 300px minmax(0, 1fr);
  }
}

/* スマートフォン */
@media screen and (max-width: 767px) {
  .eastCatalogWrap,
  .eastCatalogContact__inner {
    width: min(100% - 28px, 620px);
  }

  .eastCatalogHeading {
    margin-bottom: 22px;
  }

  .eastCatalogHeading__ja {
    font-size: 25px;
  }

  .eastCatalogHero__inner {
    display: flex;
    flex-direction: column-reverse;
    min-height: 0;
  }

  .eastCatalogHero__visual {
    width: 100%;
    height: 260px;
  }

  .eastCatalogHero__content {
    width: 100%;
    padding: 30px 20px 38px;
  }

  .eastCatalogHero__title {
    font-size: 37px;
  }

  .eastCatalogHero__subtitle {
    font-size: 18px;
  }

  .eastCatalogHero__lead {
    font-size: 14px;
  }

  .eastCatalogButton--hero {
    width: 100%;
    min-width: 0;
  }

  .eastCatalogLatest {
    padding-top: 42px;
  }

  .eastCatalogLatest__grid {
    grid-template-columns: 1fr;
    gap: 38px;
  }

  .eastCatalogBook {
    width: min(100%, 310px);
    margin: 0 auto;
  }

  .eastCatalogLatest__note br {
    display: none;
  }

  .eastCatalogHowto {
    padding-top: 20px;
  }

  .eastCatalogStep {
    padding: 20px 18px;
  }

  .eastCatalogStep__icon {
    flex-basis: 64px;
    width: 64px;
    height: 64px;
  }

  .eastCatalogContact__inner {
    display: block;
  }

  .eastCatalogContact__image {
    min-height: 220px;
  }

  .eastCatalogContact__content {
    padding: 28px 20px 32px;
  }

  .eastCatalogContact__content h2 {
    font-size: 23px;
  }

  .eastCatalogContact__content p br {
    display: none;
  }

  .eastCatalogContact__buttons {
    grid-template-columns: 1fr;
  }
}

/* =========================================
   カタログページ：メインビジュアル見出し修正
========================================= */

/* テキスト側の幅を少し広めに確保 */
.catalogHero__inner {
	display: grid;
	grid-template-columns: minmax(520px, 1.05fr) minmax(540px, 1fr);
	align-items: center;
	gap: 40px;
}

/* 左テキストエリア */
.catalogHero__text {
	width: 100%;
	max-width: 640px;
	min-width: 0;
}

/* 見出し全体 */
.catalogHero__title,
.catalogHero h1 {
	margin: 0 0 24px;
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: 0.01em;
	color: #222;
	overflow: visible !important;
}

/* 1行目 */
.catalogHero__title .jaTop,
.catalogHero h1 .jaTop {
	display: block;
	font-size: 72px;
	line-height: 1.08;
	color: #222;
}

/* 2行目（青文字） */
.catalogHero__title .jaBottom,
.catalogHero h1 .jaBottom {
	display: block;
	font-size: 74px;
	line-height: 1.08;
	color: #005bac;
	white-space: nowrap;      /* 1行表示 */
	overflow: visible !important;
	text-overflow: clip;
	letter-spacing: 0.01em;
	padding-right: 8px;       /* 末尾欠け防止 */
}

/* h1やspanに固定幅がある場合の保険 */
.catalogHero h1,
.catalogHero h1 span,
.catalogHero__title,
.catalogHero__title span {
	max-width: 100%;
	width: auto !important;
}

/* 念のため、親要素が隠している場合の保険 */
.catalogHero,
.catalogHero__text,
.catalogHero__inner {
	overflow: visible;
}

/* 画面幅が少し狭い時は少しだけ縮小 */
@media screen and (max-width: 1500px) {
	.catalogHero__title .jaTop,
	.catalogHero h1 .jaTop {
		font-size: 64px;
	}

	.catalogHero__title .jaBottom,
	.catalogHero h1 .jaBottom {
		font-size: 66px;
	}
}

@media screen and (max-width: 1280px) {
	.catalogHero__inner {
		grid-template-columns: 1fr 1fr;
		gap: 28px;
	}

	.catalogHero__title .jaTop,
	.catalogHero h1 .jaTop {
		font-size: 56px;
	}

	.catalogHero__title .jaBottom,
	.catalogHero h1 .jaBottom {
		font-size: 58px;
	}
}

/* ==================================================
   EAST-I 展示会情報ページ
================================================== */

.exhibitionPage {
  --ex-blue: #005bac;
  --ex-deep: #004d96;
  --ex-border: #dbe3ea;
  --ex-text: #222;

  width: 100vw;
  max-width: none;
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
  overflow: hidden;

  color: var(--ex-text);
  background: #fff;

  font-family:
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    Meiryo,
    sans-serif;
}

.exhibitionPage *,
.exhibitionPage *::before,
.exhibitionPage *::after {
  box-sizing: border-box;
}

.exhibitionPage img {
  display: block;
  max-width: 100%;
  height: auto;
}

.exhibitionPage a {
  text-decoration: none;
}

.exhibitionWrap {
  width: min(1180px, calc(100% - 48px));
  margin-right: auto;
  margin-left: auto;
}


/* ==================================================
   メインビジュアル
================================================== */

.exhibitionHero {
  background:
    linear-gradient(
      90deg,
      #fff 0%,
      #fff 34%,
      #f7f9fa 58%,
      #eef3f6 100%
    );
}

.exhibitionHero__inner {
  min-height: 430px;

  display: grid;
  grid-template-columns: 43% 57%;
  align-items: stretch;
}

.exhibitionHero__content {
  min-width: 0;
  padding: 56px clamp(34px, 6vw, 96px);

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

.exhibitionHero__en {
  margin: 0 0 10px;

  color: var(--ex-blue);

  font-size: 13px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .12em;
}

.exhibitionHero h1 {
  margin: 0 0 20px;

  color: #222;

  font-size: clamp(46px, 4.2vw, 68px);
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: .1em;
}

.exhibitionHero__lead {
  margin: 0 0 28px;

  color: #333;

  font-size: 15px;
  line-height: 1.9;
}

.exhibitionHero__button {
  width: min(320px, 100%);
  min-height: 52px;
  padding: 11px 22px;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;

  border-radius: 999px;

  color: #fff !important;
  background: linear-gradient(90deg, #0874ca, #0058a7);

  font-size: 14px;
  line-height: 1.4;
  font-weight: 700;
}

.exhibitionHero__button span:last-child {
  margin-left: auto;
  font-size: 22px;
}

.exhibitionHero__image {
  min-width: 0;
  height: 430px;
  margin: 0;
  overflow: hidden;
}

.exhibitionHero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}


/* ==================================================
   共通見出し
================================================== */

.exhibitionSectionHeading {
  margin-bottom: 30px;
  text-align: center;
}

.exhibitionSectionHeading h2 {
  margin: 0 0 7px;

  color: var(--ex-blue);

  font-size: 32px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .08em;
}

.exhibitionSectionHeading p {
  margin: 0;

  color: #333;

  font-size: 13px;
  line-height: 1.8;
}


/* ==================================================
   出展予定の展示会
================================================== */

.exhibitionUpcoming {
  padding: 54px 0 48px;
  background: #fff;
}

.exhibitionUpcoming__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.exhibitionUpcomingCard {
  min-width: 0;
  padding: 24px 26px 27px;

  border-radius: 7px;

  background: #fff;
  box-shadow: 0 8px 28px rgba(0, 52, 96, .08);
}

.exhibitionUpcomingCard__category {
  margin: 0 0 22px;
  padding-bottom: 11px;

  border-bottom: 3px solid var(--ex-blue);

  color: var(--ex-blue);

  font-size: 22px;
  line-height: 1.4;
  font-weight: 700;
}

.exhibitionUpcomingCard__body {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.exhibitionUpcomingCard__image {
  width: 100%;
  margin: 0;
  overflow: hidden;
  background: #f2f4f6;
}

.exhibitionUpcomingCard__image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.exhibitionUpcomingCard__content {
  min-width: 0;
}

.exhibitionUpcomingCard__row {
  margin-bottom: 15px;

  display: grid;
  grid-template-columns: 22px 62px minmax(0, 1fr);
  gap: 7px;
  align-items: start;
}

.exhibitionUpcomingCard__row:last-child {
  margin-bottom: 0;
}

.exhibitionUpcomingCard__row--name {
  grid-template-columns: 70px minmax(0, 1fr);
}

.exhibitionUpcomingCard__label {
  color: #333;

  font-size: 12px;
  line-height: 1.7;
  font-weight: 700;
  white-space: nowrap;
}

.exhibitionUpcomingCard__icon {
  width: 20px;
  height: 20px;
  color: var(--ex-blue);
}

.exhibitionUpcomingCard__icon svg {
  width: 100%;
  height: 100%;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.exhibitionUpcomingCard__row p {
  min-width: 0;
  margin: 0;

  color: #222;

  font-size: 13px;
  line-height: 1.75;
  overflow-wrap: anywhere;
}

.exhibitionUpcomingCard__row p strong,
.exhibitionUpcomingCard__row p span {
  display: block;
}


/* ==================================================
   過去に出展した展示会
================================================== */

.exhibitionPast {
  padding: 44px 0 56px;
  background: #fff;
}

.exhibitionPast__years {
  display: grid;
  gap: 42px;
}

.exhibitionPastYear__title {
  margin: 0 0 20px;

  display: flex;
  align-items: center;
  gap: 20px;

  color: #111;

  font-size: 21px;
  line-height: 1.4;
  text-align: center;
}

.exhibitionPastYear__title::before,
.exhibitionPastYear__title::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #aeb8c1;
}

.exhibitionPastYear__title span {
  flex: 0 0 auto;
}

.exhibitionPastYear__items {
  display: grid;
  gap: 28px;
}

.exhibitionPastItem {
  padding: 0 18px 24px;

  border: 1px solid #dfe4e8;
  background: #fff;
}

.exhibitionPastItem__title {
  margin: 0 -18px 9px;
  padding: 12px 18px 8px;

  color: var(--ex-blue);

  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
}

.exhibitionPastItem__venue {
  margin: 0 0 16px;

  font-size: 12px;
  line-height: 1.7;
}

.exhibitionPastItem__venue span {
  margin-right: 14px;
  font-weight: 700;
}

/* ==================================================
   過去の展示会写真：WordPressの空白要素対策
================================================== */

.exhibitionPastItem__photos {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;

  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;

  gap: 15px !important;

  /*
   WordPressが自動挿入した空白文字や&nbsp;の幅を0にする
  */
  font-size: 0 !important;
}

.exhibitionPastItem__photos > br {
  display: none !important;
}

.exhibitionPastItem__photos > p:empty {
  display: none !important;
}

.exhibitionPastPhoto {
  flex: 0 0 calc((100% - 75px) / 6) !important;

  width: calc((100% - 75px) / 6) !important;
  min-width: 0 !important;
  max-width: none !important;

  margin: 0 !important;
  padding: 0 !important;

  font-size: 16px !important;
  text-align: center !important;
}

.exhibitionPastPhoto__image {
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;

  overflow: hidden !important;
  background: #f1f3f5 !important;
}

.exhibitionPastPhoto__image img {
  display: block !important;

  width: 100% !important;
  height: 100% !important;

  object-fit: cover !important;
  object-position: center !important;
}

.exhibitionPastPhoto figcaption {
  margin: 7px 0 0 !important;

  font-size: 11px !important;
  line-height: 1.5 !important;
  font-weight: 700 !important;
}

.exhibitionPastPhoto {
  min-width: 0;
  margin: 0;
  text-align: center;
}

.exhibitionPastPhoto__image {
  width: 100%;
  overflow: hidden;
  background: #f1f3f5;
}

.exhibitionPastPhoto__image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;

  transition: transform .3s ease;
}

.exhibitionPastPhoto:hover img {
  transform: scale(1.04);
}

.exhibitionPastPhoto figcaption {
  margin-top: 7px;

  color: #222;

  font-size: 11px;
  line-height: 1.5;
  font-weight: 700;
}


/* ==================================================
   3つの案内
================================================== */

.exhibitionBenefits {
  padding: 30px 0;
  background: #f7f9fb;
}

.exhibitionBenefits__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.exhibitionBenefit {
  min-width: 0;

  display: flex;
  align-items: center;
  gap: 18px;
}

.exhibitionBenefit__icon {
  flex: 0 0 68px;
  width: 68px;
  height: 68px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  color: #fff;
  background: var(--ex-blue);
}

.exhibitionBenefit__icon svg {
  width: 40px;
  height: 40px;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.exhibitionBenefit h2 {
  margin: 0 0 5px;

  color: var(--ex-blue);

  font-size: 16px;
  line-height: 1.5;
}

.exhibitionBenefit p {
  margin: 0;

  color: #333;

  font-size: 12px;
  line-height: 1.7;
}


/* ==================================================
   お問い合わせCTA
================================================== */

.exhibitionContact {
  padding: 38px 0;

  color: #fff;

  background:
    linear-gradient(
      90deg,
      rgba(0, 71, 139, .98),
      rgba(0, 102, 188, .92)
    ),
    url("/easti/wp-content/themes/easti-themes/img/exhibition-contact.jpg")
      center / cover no-repeat;
}

.exhibitionContact__inner {
  text-align: center;
}

.exhibitionContact h2 {
  margin: 0 0 20px;

  color: #fff;

  font-size: 27px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: .04em;
}

.exhibitionContact__button {
  width: min(380px, 100%);
  min-height: 54px;
  margin: 0 auto;
  padding: 11px 22px;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;

  border-radius: 999px;

  color: var(--ex-blue) !important;
  background: #fff;

  font-size: 15px;
  line-height: 1.4;
  font-weight: 700;
}

.exhibitionContact__button span:last-child {
  margin-left: auto;
  font-size: 22px;
}


/* テーマ標準CTAをこのページだけ非表示 */
body:has(.exhibitionPage) .footcontact {
  display: none !important;
}

body:has(.exhibitionPage) section:has(.footcontactlink) {
  display: none !important;
}


/* ==================================================
   タブレット
================================================== */

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

  .exhibitionHero__inner {
    grid-template-columns: 47% 53%;
  }

  .exhibitionHero__content {
    padding: 44px 28px;
  }

  .exhibitionUpcomingCard__body {
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 18px;
  }

   .exhibitionPastPhoto {
    flex-basis: calc((100% - 30px) / 3) !important;
    width: calc((100% - 30px) / 3) !important;
  }
}

  .exhibitionBenefits__grid {
    grid-template-columns: 1fr;
  }

  .exhibitionBenefit {
    max-width: 620px;
    margin: 0 auto;
  }
}


/* ==================================================
   スマートフォン
================================================== */

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

  .exhibitionWrap {
    width: min(100% - 28px, 620px);
  }

  .exhibitionHero__inner {
    display: flex;
    flex-direction: column-reverse;
    min-height: 0;
  }

  .exhibitionHero__image {
    width: 100%;
    height: 250px;
  }

  .exhibitionHero__content {
    width: 100%;
    padding: 30px 20px 38px;
  }

  .exhibitionHero h1 {
    font-size: 38px;
  }

  .exhibitionHero__lead br {
    display: none;
  }

  .exhibitionSectionHeading h2 {
    font-size: 26px;
  }

  .exhibitionUpcoming {
    padding: 42px 0 36px;
  }

  .exhibitionUpcoming__grid {
    grid-template-columns: 1fr;
  }

  .exhibitionUpcomingCard {
    padding: 22px 18px 24px;
  }

  .exhibitionUpcomingCard__category {
    font-size: 20px;
  }

  .exhibitionUpcomingCard__body {
    grid-template-columns: 1fr;
  }

  .exhibitionUpcomingCard__image {
    max-width: 360px;
    margin: 0 auto;
  }

  .exhibitionPast {
    padding: 38px 0 42px;
  }

  .exhibitionPastYear__title {
    gap: 12px;
    font-size: 19px;
  }

  .exhibitionPastItem {
    padding-right: 12px;
    padding-left: 12px;
  }

  .exhibitionPastItem__title {
    margin-right: -12px;
    margin-left: -12px;
    padding-right: 12px;
    padding-left: 12px;
  }

  .exhibitionPastItem__photos {
    gap: 14px 10px !important;
  }

  .exhibitionPastPhoto {
    flex-basis: calc((100% - 10px) / 2) !important;
    width: calc((100% - 10px) / 2) !important;
  }
}

  .exhibitionBenefit {
    align-items: flex-start;
  }

  .exhibitionContact h2 {
    font-size: 22px;
  }
}

/* 展示会名の改行・長文対応 */
.exhibitionUpcomingCard__row--name p {
  line-height: 1.75;
  overflow-wrap: anywhere;
  word-break: normal;
}

/* ==================================================
   出展予定の展示会：テキスト幅を広げる
================================================== */

/* 画像がないカードは、テキストをカード全幅で表示 */
.exhibitionUpcomingCard__body:not(:has(.exhibitionUpcomingCard__image)) {
  grid-template-columns: minmax(0, 1fr) !important;
}

.exhibitionUpcomingCard__body:not(:has(.exhibitionUpcomingCard__image))
.exhibitionUpcomingCard__content {
  width: 100% !important;
  grid-column: 1 / -1 !important;
}

/* 展示会名 */
.exhibitionUpcomingCard__row--name {
  grid-template-columns: 70px minmax(0, 1fr) !important;
}

/* 会期・会場・入場料 */
.exhibitionUpcomingCard__row:not(.exhibitionUpcomingCard__row--name) {
  grid-template-columns: 22px 55px minmax(0, 1fr) !important;
}

/* 1行あたり約15文字以上入るように調整 */
.exhibitionUpcomingCard__row p {
  width: 100% !important;
  min-width: 0 !important;

  font-size: 14px;
  line-height: 1.75;

  word-break: normal;
  overflow-wrap: anywhere;
  white-space: normal;
}

/* ==================================================
   展示会情報ページ
   スマートフォン最終調整
================================================== */

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

  /* ------------------------------------------
     ページ全体
  ------------------------------------------ */

  .exhibitionPage {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    overflow-x: hidden !important;
  }

  .exhibitionPage .exhibitionWrap {
    width: calc(100% - 30px) !important;
    max-width: 620px !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }


  /* ------------------------------------------
     メインビュー
     会社概要と同じく「文字→画像」の順番
  ------------------------------------------ */

  .exhibitionPage .exhibitionHero {
    width: 100% !important;
    background: #fff !important;
  }

  .exhibitionPage .exhibitionHero__inner {
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;

    display: flex !important;
    flex-direction: column !important;
  }

  .exhibitionPage .exhibitionHero__content {
    order: 1 !important;

    width: 100% !important;
    min-width: 0 !important;
    padding: 32px 22px !important;

    background:
      linear-gradient(
        90deg,
        #f8f9fa 0%,
        #fff 100%
      ) !important;
  }

  .exhibitionPage .exhibitionHero__image {
    order: 2 !important;

    width: 100% !important;
    height: 250px !important;
    min-height: 250px !important;
    margin: 0 !important;

    overflow: hidden !important;
    background: #eef3f6 !important;
  }

  .exhibitionPage .exhibitionHero__image img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    object-fit: cover !important;
    object-position: center center !important;
  }

  .exhibitionPage .exhibitionHero__en {
    margin: 0 0 12px !important;

    font-size: 13px !important;
    line-height: 1.4 !important;
  }

  .exhibitionPage .exhibitionHero h1 {
    margin: 0 0 18px !important;

    font-size: 38px !important;
    line-height: 1.3 !important;
    letter-spacing: 0.06em !important;

    word-break: keep-all !important;
  }

  .exhibitionPage .exhibitionHero__lead {
    margin: 0 0 22px !important;

    font-size: 14px !important;
    line-height: 1.9 !important;
  }

  .exhibitionPage .exhibitionHero__lead br {
    display: none !important;
  }

  .exhibitionPage .exhibitionHero__button {
    width: 100% !important;
    min-height: 48px !important;
    padding: 10px 18px !important;

    font-size: 13px !important;
  }


  /* ------------------------------------------
     セクション見出し
  ------------------------------------------ */

  .exhibitionPage .exhibitionSectionHeading {
    margin-bottom: 22px !important;
  }

  .exhibitionPage .exhibitionSectionHeading h2 {
    margin-bottom: 7px !important;

    font-size: 25px !important;
    line-height: 1.4 !important;
    letter-spacing: 0.06em !important;
  }

  .exhibitionPage .exhibitionSectionHeading p {
    font-size: 13px !important;
    line-height: 1.8 !important;
  }


  /* ------------------------------------------
     出展予定の展示会
  ------------------------------------------ */

  .exhibitionPage .exhibitionUpcoming {
    padding: 36px 0 32px !important;
  }

  .exhibitionPage .exhibitionUpcoming__grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .exhibitionPage .exhibitionUpcomingCard {
    width: 100% !important;
    min-width: 0 !important;
    padding: 20px 15px 22px !important;
  }

  .exhibitionPage .exhibitionUpcomingCard__category {
    margin-bottom: 18px !important;

    font-size: 20px !important;
    line-height: 1.45 !important;
  }

  .exhibitionPage .exhibitionUpcomingCard__body {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .exhibitionPage .exhibitionUpcomingCard__image {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  .exhibitionPage .exhibitionUpcomingCard__content {
    width: 100% !important;
    min-width: 0 !important;
  }

  .exhibitionPage .exhibitionUpcomingCard__row {
    width: 100% !important;
    margin-bottom: 13px !important;

    display: grid !important;
    grid-template-columns: 20px 58px minmax(0, 1fr) !important;
    gap: 6px !important;
  }

  .exhibitionPage .exhibitionUpcomingCard__row--name {
    grid-template-columns: 58px minmax(0, 1fr) !important;
  }

  .exhibitionPage .exhibitionUpcomingCard__label {
    font-size: 11px !important;
    white-space: nowrap !important;
  }

  .exhibitionPage .exhibitionUpcomingCard__row p {
    min-width: 0 !important;

    font-size: 12px !important;
    line-height: 1.75 !important;

    overflow-wrap: anywhere !important;
  }


  /* ------------------------------------------
     過去に出展した展示会
  ------------------------------------------ */

  .exhibitionPage .exhibitionPast {
    padding: 34px 0 38px !important;
  }

  .exhibitionPage .exhibitionPast__years {
    gap: 30px !important;
  }

  .exhibitionPage .exhibitionPastYear__title {
    margin-bottom: 16px !important;
    gap: 10px !important;

    font-size: 19px !important;
  }

  .exhibitionPage .exhibitionPastYear__items {
    gap: 20px !important;
  }

  .exhibitionPage .exhibitionPastItem {
    width: 100% !important;
    min-width: 0 !important;

    padding: 0 12px 18px !important;
  }

  .exhibitionPage .exhibitionPastItem__title {
    margin: 0 -12px 8px !important;
    padding: 11px 12px 8px !important;

    font-size: 16px !important;
    line-height: 1.55 !important;
  }

  .exhibitionPage .exhibitionPastItem__venue {
    margin-bottom: 14px !important;

    font-size: 12px !important;
    line-height: 1.7 !important;
  }

  /*
   WordPressの空白文字に影響されないよう
   スマホではFlexboxで2列表示
  */
  .exhibitionPage .exhibitionPastItem__photos {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;

    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    gap: 14px 10px !important;

    font-size: 0 !important;
  }

  .exhibitionPage .exhibitionPastItem__photos > br,
  .exhibitionPage .exhibitionPastItem__photos > p:empty {
    display: none !important;
  }

  .exhibitionPage .exhibitionPastPhoto {
    flex: 0 0 calc((100% - 10px) / 2) !important;

    width: calc((100% - 10px) / 2) !important;
    min-width: 0 !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;

    font-size: 12px !important;
  }

  .exhibitionPage .exhibitionPastPhoto__image {
    width: 100% !important;
    aspect-ratio: 4 / 3 !important;

    overflow: hidden !important;
  }

  .exhibitionPage .exhibitionPastPhoto__image img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    object-fit: cover !important;
  }

  .exhibitionPage .exhibitionPastPhoto figcaption {
    margin-top: 6px !important;

    font-size: 10px !important;
    line-height: 1.5 !important;
  }


  /* ------------------------------------------
     3つの案内
  ------------------------------------------ */

  .exhibitionPage .exhibitionBenefits {
    padding: 28px 0 !important;
  }

  .exhibitionPage .exhibitionBenefits__grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  .exhibitionPage .exhibitionBenefit {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;

    display: grid !important;
    grid-template-columns: 52px minmax(0, 1fr) !important;
    gap: 14px !important;
    align-items: start !important;
  }

  .exhibitionPage .exhibitionBenefit__icon {
    width: 52px !important;
    height: 52px !important;
    flex-basis: 52px !important;
  }

  .exhibitionPage .exhibitionBenefit__icon svg {
    width: 29px !important;
    height: 29px !important;
  }

  .exhibitionPage .exhibitionBenefit h2 {
    margin-bottom: 4px !important;

    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  .exhibitionPage .exhibitionBenefit p {
    font-size: 12px !important;
    line-height: 1.7 !important;
  }


  /* ------------------------------------------
     お問い合わせ
  ------------------------------------------ */

  .exhibitionPage .exhibitionContact {
    padding: 32px 0 !important;
  }

  .exhibitionPage .exhibitionContact h2 {
    margin-bottom: 18px !important;

    font-size: 20px !important;
    line-height: 1.65 !important;
    letter-spacing: 0.02em !important;
  }

  .exhibitionPage .exhibitionContact__button {
    width: 100% !important;
    min-height: 50px !important;
    padding: 10px 18px !important;

    font-size: 14px !important;
  }
}


/* ==================================================
   小さいスマートフォン
================================================== */

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

  .exhibitionPage .exhibitionHero h1 {
    font-size: 32px !important;
  }

  .exhibitionPage .exhibitionHero__image {
    height: 220px !important;
    min-height: 220px !important;
  }

  .exhibitionPage .exhibitionUpcomingCard__row {
    grid-template-columns: 18px 50px minmax(0, 1fr) !important;
  }

  .exhibitionPage .exhibitionUpcomingCard__row--name {
    grid-template-columns: 50px minmax(0, 1fr) !important;
  }
}

/* ==================================================
   EAST-I 取扱説明書一覧 固定ページ
================================================== */

.manualPage {
  --manual-blue: #005bac;
  --manual-deep: #004c95;
  --manual-light: #eef6fc;
  --manual-border: #d9e5ee;
  --manual-text: #222;

  width: 100vw !important;
  max-width: none !important;
  margin-right: calc(50% - 50vw) !important;
  margin-left: calc(50% - 50vw) !important;
  overflow: hidden;

  color: var(--manual-text);
  background: #fff;

  font-family:
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    Meiryo,
    sans-serif;
}

.manualPage *,
.manualPage *::before,
.manualPage *::after {
  box-sizing: border-box;
}

.manualPage img {
  display: block;
  max-width: 100%;
  height: auto;
}

.manualPage a {
  text-decoration: none;
}

.manualWrap {
  width: min(1180px, calc(100% - 48px));
  margin-right: auto;
  margin-left: auto;
}


/* ==================================================
   メインビジュアル
================================================== */

.manualHero {
  position: relative;

  background:
    radial-gradient(circle at 3px 3px, rgba(0,91,172,.10) 1.3px, transparent 1.4px)
      left center / 12px 12px no-repeat,
    linear-gradient(90deg, #fff 0%, #fff 55%, #f4f8fb 100%);
}

.manualHero::before,
.manualHero::after {
  content: "";
  position: absolute;
  width: 165px;
  height: 165px;
  opacity: .34;
  pointer-events: none;

  background:
    radial-gradient(circle, rgba(0,91,172,.23) 1.2px, transparent 1.4px)
      0 0 / 10px 10px;
}

.manualHero::before {
  left: -55px;
  bottom: -35px;
}

.manualHero::after {
  right: -55px;
  bottom: -30px;
}

.manualHero__inner {
  position: relative;
  z-index: 1;

  width: min(1320px, 100%);
  min-height: 350px;
  margin: 0 auto;

  display: grid;
  grid-template-columns: 53% 47%;
  align-items: stretch;
}

.manualHero__content {
  min-width: 0;
  padding: 32px clamp(28px, 6vw, 86px) 48px;

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

.manualHero__breadcrumb {
  margin: 0 0 34px;

  color: #7e8993;

  font-size: 10px;
  line-height: 1.6;
}

.manualHero__label {
  width: fit-content;
  margin: 0 0 18px;
  padding: 9px 24px;

  border: 2px solid #83bde4;
  border-radius: 6px;

  color: var(--manual-blue);
  background: #fff;

  font-size: 14px;
  line-height: 1.4;
  font-weight: 700;
}

.manualHero h1 {
  margin: 0 0 18px;

  color: #111;

  font-size: clamp(40px, 4.2vw, 60px);
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: .08em;
}

.manualHero h1 span {
  color: var(--manual-blue);
}

.manualHero__lead {
  margin: 0;

  color: #333;

  font-size: 14px;
  line-height: 1.9;
  font-weight: 500;
}

.manualHero__image {
  min-width: 0;
  height: 350px;
  margin: 0;
  overflow: hidden;
}

.manualHero__image img {
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;
}


/* ==================================================
   ご案内
================================================== */

.manualNotice {
  padding: 38px 0 26px;
}

.manualNotice__box {
  padding: 22px 28px;

  display: flex;
  align-items: center;
  gap: 24px;

  border: 1px solid #d8e6f1;
  border-radius: 7px;

  background:
    linear-gradient(
      90deg,
      #edf6fd 0%,
      #f9fcfe 100%
    );
}

.manualNotice__icon {
  flex: 0 0 54px;
  width: 54px;
  height: 54px;

  display: grid;
  place-items: center;

  border: 4px solid var(--manual-blue);
  border-radius: 50%;

  color: var(--manual-blue);

  font-family: Georgia, serif;
  font-size: 34px;
  line-height: 1;
  font-weight: 700;
}

.manualNotice__content h2 {
  margin: 0 0 7px;

  color: var(--manual-blue);

  font-size: 18px;
  line-height: 1.5;
  font-weight: 700;
}

.manualNotice__content p {
  margin: 0;

  color: #44515c;

  font-size: 12px;
  line-height: 1.8;
}


/* ==================================================
   一覧
================================================== */

.manualList {
  padding: 18px 0 38px;
}

.manualList__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 42px 24px;
}

.manualCategory {
  min-width: 0;
}

.manualCategory__heading {
  margin-bottom: 12px;
  padding-bottom: 10px;

  display: flex;
  align-items: center;
  gap: 10px;

  border-bottom: 2px solid #8fc5e8;
}

.manualCategory__icon {
  flex: 0 0 30px;
  width: 30px;
  height: 30px;

  color: #75aede;
}

.manualCategory__icon svg {
  width: 100%;
  height: 100%;

  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.manualCategory__heading h2 {
  margin: 0;

  color: var(--manual-blue);

  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
}

.manualCategory__products {
  display: grid;
}

.manualProduct {
  min-width: 0;
  min-height: 67px;
  padding: 11px 0;

  display: grid;
  grid-template-columns: minmax(0, 1fr) 106px;
  gap: 10px;
  align-items: center;

  border-bottom: 1px solid #e5ebf0;
}

.manualProduct__text {
  min-width: 0;
}

.manualProduct__text h3 {
  margin: 0 0 4px;

  color: #222;

  font-size: 11px;
  line-height: 1.55;
  font-weight: 700;
}

.manualProduct__text p {
  margin: 0;

  color: #555;

  font-size: 10px;
  line-height: 1.5;
}

.manualProduct__button {
  min-height: 31px;
  padding: 7px 10px;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  border-radius: 999px;

  color: #fff !important;
  background: linear-gradient(90deg, #0c78cc, #0059a8);

  font-size: 9px;
  line-height: 1.2;
  font-weight: 700;
  white-space: nowrap;

  box-shadow: 0 3px 8px rgba(0,76,149,.14);

  transition:
    opacity .2s ease,
    transform .2s ease;
}

.manualProduct__button:hover {
  opacity: .84;
  transform: translateY(-1px);
}


/* ==================================================
   サポート窓口
================================================== */

.manualSupport {
  padding: 12px 0 34px;
}

.manualSupport__box {
  padding: 25px 30px;

  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 34px;
  align-items: center;

  border-radius: 7px;

  background:
    linear-gradient(
      90deg,
      #eef7fd 0%,
      #f8fbfd 100%
    );
}

.manualSupport__intro {
  min-width: 0;

  display: flex;
  align-items: center;
  gap: 22px;
}

.manualSupport__icon {
  flex: 0 0 66px;
  width: 66px;
  height: 66px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  color: #fff;
  background: var(--manual-blue);
}

.manualSupport__icon svg {
  width: 42px;
  height: 42px;

  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.manualSupport__intro h2 {
  margin: 0 0 7px;

  color: var(--manual-blue);

  font-size: 18px;
  line-height: 1.5;
}

.manualSupport__intro p {
  margin: 0;

  color: #44515c;

  font-size: 11px;
  line-height: 1.8;
}

.manualSupport__contact {
  min-width: 0;

  display: grid;
  gap: 7px;
}

.manualSupport__department {
  margin: 0 0 3px;

  color: #333;

  font-size: 13px;
  line-height: 1.6;
  font-weight: 700;
}

.manualSupport__department span {
  margin-right: 8px;
  padding: 4px 9px;

  border-radius: 3px;

  color: #fff;
  background: var(--manual-blue);

  font-size: 10px;
}

.manualSupport__tel,
.manualSupport__mail {
  width: fit-content;

  display: flex;
  align-items: center;
  gap: 10px;

  color: #333 !important;

  font-size: 14px;
  line-height: 1.5;
  font-weight: 700;
}

.manualSupport__tel {
  font-size: 20px;
  letter-spacing: .04em;
}


/* テーマ標準CTAをこのページだけ非表示 */
body:has(.manualPage) .footcontact {
  display: none !important;
}

body:has(.manualPage) section:has(.footcontactlink) {
  display: none !important;
}


/* ==================================================
   タブレット
================================================== */

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

  .manualList__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .manualSupport__box {
    grid-template-columns: 1fr;
  }

}


/* ==================================================
   スマートフォン
================================================== */

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

  .manualWrap {
    width: min(100% - 28px, 620px);
  }

  .manualHero__inner {
    display: flex;
    flex-direction: column-reverse;
    min-height: 0;
  }

  .manualHero__image {
    width: 100%;
    height: 230px;
  }

  .manualHero__content {
    width: 100%;
    padding: 26px 20px 36px;
  }

  .manualHero__breadcrumb {
    margin-bottom: 24px;
  }

  .manualHero h1 {
    font-size: 36px;
  }

  .manualHero__lead br,
  .manualNotice__content p br {
    display: none;
  }

  .manualNotice {
    padding-top: 28px;
  }

  .manualNotice__box {
    padding: 20px 18px;

    align-items: flex-start;
    gap: 15px;
  }

  .manualNotice__icon {
    flex-basis: 42px;
    width: 42px;
    height: 42px;

    border-width: 3px;

    font-size: 26px;
  }

  .manualNotice__content h2 {
    font-size: 16px;
  }

  .manualList__grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .manualProduct {
    grid-template-columns: minmax(0, 1fr) 110px;
  }

  .manualSupport__box {
    padding: 22px 18px;
  }

  .manualSupport__intro {
    align-items: flex-start;
    gap: 15px;
  }

  .manualSupport__icon {
    flex-basis: 52px;
    width: 52px;
    height: 52px;
  }

  .manualSupport__icon svg {
    width: 34px;
    height: 34px;
  }
}

/* ==================================================
   取扱説明書ページ：横幅・列数修正
================================================== */

/* テーマ側の同名クラスより優先して横幅を確保 */
.manualPage .manualWrap {
  width: calc(100% - 80px) !important;
  max-width: 1400px !important;
  margin-right: auto !important;
  margin-left: auto !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
}

/* メインビジュアルも横幅を広げる */
.manualPage .manualHero__inner {
  width: 100% !important;
  max-width: 1600px !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

/* PC・ノートPCでは4列表示 */
.manualPage .manualList__grid {
  width: 100% !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  column-gap: 34px !important;
  row-gap: 42px !important;
}

/* 各カテゴリの幅を制限しない */
.manualPage .manualCategory {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}

/* 商品名側の横幅を確保 */
.manualPage .manualProduct {
  grid-template-columns: minmax(0, 1fr) 106px !important;
}

/* 画面幅が狭いタブレットだけ2列 */
@media screen and (max-width: 900px) {
  .manualPage .manualWrap {
    width: calc(100% - 40px) !important;
  }

  .manualPage .manualList__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 24px !important;
  }
}

/* スマホは1列 */
@media screen and (max-width: 600px) {
  .manualPage .manualWrap {
    width: calc(100% - 28px) !important;
  }

  .manualPage .manualList__grid {
    grid-template-columns: 1fr !important;
  }
}

/* ==================================================
   取扱説明書一覧：右ずれ・空のグリッド列を修正
================================================== */

.manualPage .manualList__grid {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;

  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  column-gap: 26px !important;
  row-gap: 42px !important;

  align-items: start !important;
}

/* WordPressが自動挿入したpタグなどを非表示 */
.manualPage .manualList__grid > :not(.manualCategory) {
  display: none !important;
}

/* 各カテゴリーの位置指定をリセット */
.manualPage .manualList__grid > .manualCategory {
  display: block !important;

  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;

  margin: 0 !important;
  padding: 0 !important;

  grid-column: auto !important;
  grid-row: auto !important;

  float: none !important;
  clear: none !important;
  transform: none !important;
}

/* 一覧全体を中央に配置 */
.manualPage .manualList .manualWrap {
  width: calc(100% - 60px) !important;
  max-width: 1360px !important;

  margin-right: auto !important;
  margin-left: auto !important;

  padding-right: 0 !important;
  padding-left: 0 !important;
}


/* タブレット */
@media screen and (min-width: 601px) and (max-width: 860px) {

  .manualPage .manualList__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

}


/* スマートフォン */
@media screen and (max-width: 600px) {

  .manualPage .manualList .manualWrap {
    width: calc(100% - 28px) !important;
  }

  .manualPage .manualList__grid {
    grid-template-columns: 1fr !important;
  }

}

/* ==================================================
   EAST-I 採用情報 固定ページ
   完全作り直し版
   対象ラッパー：.recruitPage
================================================== */

.recruitPage {
  --recruit-blue: #005bac;
  --recruit-blue-dark: #004b91;
  --recruit-blue-light: #6fa4da;
  --recruit-bg: #f4f8fb;
  --recruit-bg-soft: #f8fbfd;
  --recruit-border: #dce6ed;
  --recruit-text: #222;
  --recruit-muted: #4b5560;
  --recruit-shadow: 0 10px 30px rgba(0, 67, 126, 0.10);

  position: relative;
  left: 50%;

  width: 100vw;
  max-width: none;
  margin: 0 0 0 -50vw;
  padding: 0;
  overflow: hidden;

  color: var(--recruit-text);
  background: #fff;

  font-family:
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    Meiryo,
    sans-serif;
}

.recruitPage,
.recruitPage *,
.recruitPage *::before,
.recruitPage *::after {
  box-sizing: border-box;
}

.recruitPage img,
.recruitPage svg {
  display: block;
  max-width: 100%;
}

.recruitPage img {
  height: auto;
}

.recruitPage a {
  color: inherit;
  text-decoration: none;
}

.recruitPage p,
.recruitPage h1,
.recruitPage h2,
.recruitPage h3,
.recruitPage h4,
.recruitPage figure,
.recruitPage dl,
.recruitPage dd {
  margin-top: 0;
}

.recruitWrap {
  width: min(1180px, calc(100% - 48px));
  margin-right: auto;
  margin-left: auto;
}


/* ==================================================
   共通見出し
================================================== */

.recruitHeading {
  margin: 0 0 26px;
  text-align: center;
}

.recruitHeading h2 {
  margin: 0 0 4px;
  color: var(--recruit-blue);
  font-size: clamp(24px, 2.25vw, 31px);
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.10em;
}

.recruitHeading p {
  margin: 0;
  color: var(--recruit-blue);
  font-size: 10px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.16em;
}


/* ==================================================
   メインビジュアル
================================================== */

.recruitHero {
  width: 100%;
  background:
    linear-gradient(
      90deg,
      #fff 0%,
      #fff 39%,
      #f5f8fa 62%,
      #edf3f6 100%
    );
}

.recruitHero__inner {
  width: min(1440px, 100%);
  min-height: 450px;
  margin: 0 auto;

  display: grid;
  grid-template-columns: 43% 57%;
  align-items: stretch;
}

.recruitHero__content {
  position: relative;
  z-index: 2;

  min-width: 0;
  padding: 56px clamp(28px, 5.5vw, 88px);

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

.recruitHero__en {
  margin: 0 0 10px;
  color: var(--recruit-blue);
  font-size: 11px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.recruitHero h1 {
  margin: 0 0 22px;
  color: #111;
  font-size: clamp(40px, 4.1vw, 62px);
  line-height: 1.35;
  font-weight: 800;
  letter-spacing: 0.05em;
}

.recruitHero h1 span {
  color: var(--recruit-blue);
}

.recruitHero__lead {
  margin: 0 0 28px;
  color: #333;
  font-size: 14px;
  line-height: 1.9;
  font-weight: 500;
}

.recruitHero__image {
  position: relative;
  min-width: 0;
  height: 450px;
  margin: 0;
  overflow: hidden;
}

.recruitHero__image::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;

  background:
    linear-gradient(
      90deg,
      #fff 0%,
      rgba(255, 255, 255, 0.78) 10%,
      rgba(255, 255, 255, 0) 35%
    );
}

.recruitHero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.recruitButton {
  width: min(250px, 100%);
  min-height: 48px;
  padding: 10px 18px 10px 24px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;

  border-radius: 999px;
  color: #fff !important;
  background: linear-gradient(90deg, #0874c8 0%, #0054a0 100%);

  font-size: 13px;
  line-height: 1.4;
  font-weight: 700;

  box-shadow: 0 5px 16px rgba(0, 79, 151, 0.16);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.recruitButton span:last-child {
  margin-left: auto;
  font-size: 19px;
}

.recruitButton:hover {
  opacity: 0.86;
  transform: translateY(-1px);
}

.recruitButton--small {
  width: 190px;
  min-height: 42px;
}


/* ==================================================
   メッセージ
================================================== */

.recruitMessage {
  padding: 50px 0 38px;
  background: #fff;
}

.recruitMessage__grid {
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  gap: 60px;
  align-items: center;
}

.recruitSectionLabel {
  margin: 0 0 22px;

  display: flex;
  align-items: center;
  gap: 14px;
}

.recruitSectionLabel h2 {
  margin: 0;
  color: var(--recruit-blue);
  font-size: 25px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.recruitSectionLabel span {
  color: var(--recruit-blue);
  font-size: 10px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.13em;
}

.recruitMessage__content h3 {
  margin: 0 0 18px;
  color: #111;
  font-size: clamp(24px, 2.2vw, 30px);
  line-height: 1.6;
  font-weight: 700;
}

.recruitMessage__content > p {
  margin: 0 0 25px;
  color: #333;
  font-size: 13px;
  line-height: 1.9;
}

.recruitMessage__map {
  margin: 0;
  opacity: 0.94;
}

.recruitMessage__map img {
  width: 100%;
}


/* ==================================================
   募集概要
================================================== */

.recruitOverview {
  padding: 30px 0 34px;
  background: linear-gradient(180deg, #f8fbfd 0%, #f2f7fa 100%);
}

.recruitOverview__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 28px;
}

.recruitOverviewItem {
  min-width: 0;

  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.recruitOverviewItem__icon {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  color: var(--recruit-blue);
}

.recruitOverviewItem__icon svg {
  width: 100%;
  height: 100%;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.recruitOverviewItem h3 {
  margin: 0 0 6px;
  color: var(--recruit-blue);
  font-size: 13px;
  line-height: 1.5;
  font-weight: 700;
}

.recruitOverviewItem p {
  margin: 0;
  color: #333;
  font-size: 11px;
  line-height: 1.7;
}

.recruitOverview__note {
  margin: 24px 0 0;
  color: #333;
  font-size: 11px;
  line-height: 1.7;
}

.recruitOverview__note a {
  margin-left: 8px;
  color: var(--recruit-blue);
  font-weight: 700;
  text-decoration: underline;
}


/* ==================================================
   募集要項詳細
================================================== */

.recruitDetails {
  padding: 36px 0 44px;
  background: #fff;
}

.recruitDetails__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}

.recruitJobCard {
  min-width: 0;
  overflow: hidden;

  border: 1px solid #edf1f4;
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--recruit-shadow);
}

.recruitJobCard > h3 {
  margin: 0;
  padding: 10px 20px;

  color: #fff;
  background: linear-gradient(90deg, #0063b8 0%, #0d78cb 100%);

  font-size: 20px;
  line-height: 1.4;
  font-weight: 700;
  text-align: center;
}

.recruitJobCard--part > h3 {
  background: linear-gradient(90deg, #4a89cc 0%, #6ea5dc 100%);
}

.recruitJobCard dl {
  margin: 0;
  padding: 7px 22px 14px;
}

.recruitJobCard dl > div {
  display: grid;
  grid-template-columns: 135px minmax(0, 1fr);
  gap: 12px;

  border-bottom: 1px solid #e5ebef;
}

.recruitJobCard dl > div:last-child {
  border-bottom: 0;
}

.recruitJobCard dt,
.recruitJobCard dd {
  margin: 0;
  padding: 10px 0;

  font-size: 12px;
  line-height: 1.65;
}

.recruitJobCard dt {
  position: relative;
  padding-left: 18px;

  color: var(--recruit-blue);
  font-weight: 700;
}

.recruitJobCard dt::before {
  content: "";
  position: absolute;
  top: 18px;
  left: 0;

  width: 8px;
  height: 8px;

  border-radius: 50%;
  background: var(--recruit-blue);
}

.recruitJobCard dd {
  color: #222;
}


/* ==================================================
   働く環境
================================================== */

.recruitEnvironment {
  padding: 30px 0 40px;
  background: linear-gradient(180deg, #f8fbfd 0%, #f1f6f9 100%);
}

.recruitEnvironment__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}

.recruitEnvironmentCard {
  min-width: 0;
  text-align: center;
}

.recruitEnvironmentCard figure {
  margin: 0 0 13px;
  overflow: hidden;
  border-radius: 8px;
  background: #eaf0f4;
}

.recruitEnvironmentCard figure img {
  width: 100%;
  aspect-ratio: 1.7 / 1;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.recruitEnvironmentCard:hover figure img {
  transform: scale(1.04);
}

.recruitEnvironmentCard h3 {
  margin: 0 0 6px;
  color: var(--recruit-blue);
  font-size: 16px;
  line-height: 1.5;
  font-weight: 700;
}

.recruitEnvironmentCard p {
  margin: 0;
  color: #333;
  font-size: 11px;
  line-height: 1.7;
}


/* ==================================================
   ご応募・お問い合わせ
   次の3構造に対応します

   1. .recruitApply
   2. .recruitContact
   3. .eastRecruitApply
================================================== */

.recruitPage :is(
  .recruitApply,
  .recruitContact,
  .eastRecruitApply
) {
  width: 100%;
  padding: 40px 0 48px;
  background: #fff;
}

.recruitPage :is(
  .recruitApply,
  .recruitContact,
  .eastRecruitApply
) .recruitHeading {
  margin-bottom: 10px;
}

.recruitPage :is(
  .recruitApply__lead,
  .recruitContact__lead,
  .eastRecruitApply__lead
) {
  margin: 0 0 26px;
  padding: 0;

  color: #222;
  font-size: 12px;
  line-height: 1.8;
  font-weight: 500;
  text-align: center;
}

/* カード2枚の外枠 */
.recruitPage :is(
  .recruitApply__cards,
  .recruitContact__grid,
  .eastRecruitApply__cards
) {
  width: min(790px, 100%);
  margin: 0 auto;
  padding: 0;

  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  align-items: stretch;
}

/* WordPressが自動挿入するp・br対策 */
.recruitPage :is(
  .recruitApply__cards,
  .recruitContact__grid,
  .eastRecruitApply__cards
) > p {
  min-width: 0;
  margin: 0;
  padding: 0;
}

.recruitPage :is(
  .recruitApply__cards,
  .recruitContact__grid,
  .eastRecruitApply__cards
) > p:empty,
.recruitPage :is(
  .recruitApply__cards,
  .recruitContact__grid,
  .eastRecruitApply__cards
) > br {
  display: none;
}

/* 中間ラッパーがあるHTMLへの対応 */
.recruitPage :is(
  .recruitApply__item,
  .eastRecruitApply__item
) {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
}

/* カード共通 */
.recruitPage :is(
  .recruitApplyCard,
  .recruitContactCard,
  .eastRecruitApplyCard
) {
  position: relative;

  width: 100%;
  min-width: 0;
  min-height: 112px;
  height: 112px;
  margin: 0;
  padding: 18px 26px;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;

  border: 2px solid var(--recruit-blue);
  border-radius: 7px;
  overflow: hidden;

  color: var(--recruit-blue);
  background: #fff;
  text-decoration: none;

  writing-mode: horizontal-tb;
}

.recruitPage :is(
  .recruitApplyCard,
  .recruitContactCard,
  .eastRecruitApplyCard
)::before,
.recruitPage :is(
  .recruitApplyCard,
  .recruitContactCard,
  .eastRecruitApplyCard
)::after {
  content: none;
  display: none;
}

/* 青いカード */
.recruitPage :is(
  .recruitApplyCard--form,
  .recruitContactCard--primary,
  .eastRecruitApplyCard--form
) {
  color: #fff;
  background: linear-gradient(90deg, #0874c8 0%, #0055a2 100%);
}

/* 白いカード */
.recruitPage :is(
  .recruitApplyCard--information,
  .recruitContactCard--outline,
  .eastRecruitApplyCard--info
) {
  color: var(--recruit-blue);
  background: #fff;
}

/* アイコン */
.recruitPage :is(
  .recruitApplyCard__icon,
  .recruitContactCard__icon,
  .eastRecruitApplyCard__icon
) {
  position: static;
  flex: 0 0 44px;

  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;

  display: flex;
  align-items: center;
  justify-content: center;

  color: inherit;
  font-size: 27px;
  line-height: 1;
  text-align: center;
}

.recruitPage :is(
  .recruitApplyCard__icon,
  .eastRecruitApplyCard__icon
) svg {
  width: 34px;
  height: 34px;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* テキスト全体 */
.recruitPage :is(
  .recruitApplyCard__body,
  .recruitApplyCard__content,
  .recruitContactCard__body,
  .eastRecruitApplyCard__body,
  .eastRecruitApplyCard__content
) {
  position: static;
  flex: 0 1 auto;
  min-width: 0;
  width: auto;
  margin: 0;
  padding: 0;

  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;

  color: inherit;
  text-align: left;
  writing-mode: horizontal-tb;
}

/* タイトル */
.recruitPage :is(
  .recruitApplyCard__title,
  .recruitContactCard__title,
  .eastRecruitApplyCard__title
) {
  display: block;
  width: 100%;
  margin: 0 0 7px;
  padding: 0;

  color: inherit;
  font-size: 16px;
  line-height: 1.4;
  font-weight: 700;
  text-align: left;
  white-space: nowrap;
  word-break: keep-all;
  writing-mode: horizontal-tb;
}

/* 補足テキスト */
.recruitPage :is(
  .recruitApplyCard__text,
  .recruitApplyCard__sub,
  .recruitContactCard__sub,
  .eastRecruitApplyCard__text,
  .eastRecruitApplyCard__sub
) {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;

  color: inherit;
  font-size: 10px;
  line-height: 1.55;
  font-weight: 500;
  text-align: left;
  white-space: normal;
  writing-mode: horizontal-tb;
}

.recruitPage a:is(
  .recruitApplyCard,
  .recruitContactCard,
  .eastRecruitApplyCard
) {
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.recruitPage a:is(
  .recruitApplyCard,
  .recruitContactCard,
  .eastRecruitApplyCard
):hover {
  opacity: 0.87;
  transform: translateY(-1px);
}


/* ==================================================
   タブレット
================================================== */

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

  .recruitHero__inner {
    grid-template-columns: 46% 54%;
  }

  .recruitHero__content {
    padding: 48px 32px;
  }

  .recruitHero h1 {
    font-size: clamp(36px, 5vw, 50px);
  }

  .recruitMessage__grid {
    gap: 38px;
  }

  .recruitOverview__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .recruitEnvironment__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* ==================================================
   スマートフォン
================================================== */

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

  .recruitWrap {
    width: min(calc(100% - 30px), 620px);
  }

  .recruitHero__inner {
    min-height: 0;
    display: flex;
    flex-direction: column-reverse;
  }

  .recruitHero__content {
    padding: 30px 20px 38px;
  }

  .recruitHero h1 {
    margin-bottom: 18px;
    font-size: 34px;
    letter-spacing: 0.03em;
  }

  .recruitHero__lead {
    margin-bottom: 22px;
    font-size: 13px;
  }

  .recruitHero__image {
    height: 260px;
  }

  .recruitHero__image::before {
    background:
      linear-gradient(
        0deg,
        #fff 0%,
        rgba(255, 255, 255, 0.42) 18%,
        rgba(255, 255, 255, 0) 45%
      );
  }

  .recruitMessage {
    padding: 34px 0 28px;
  }

  .recruitMessage__grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .recruitMessage__content h3 {
    font-size: 23px;
  }

  .recruitHeading {
    margin-bottom: 20px;
  }

  .recruitHeading h2 {
    font-size: 24px;
  }

  .recruitOverview {
    padding: 28px 0;
  }

  .recruitOverview__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .recruitOverviewItem {
    align-items: center;
  }

  .recruitDetails {
    padding: 28px 0 34px;
  }

  .recruitDetails__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .recruitJobCard dl {
    padding-right: 15px;
    padding-left: 15px;
  }

  .recruitJobCard dl > div {
    grid-template-columns: 105px minmax(0, 1fr);
  }

  .recruitEnvironment {
    padding: 28px 0 34px;
  }

  .recruitEnvironment__grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .recruitEnvironmentCard {
    max-width: 520px;
    margin: 0 auto;
  }

  .recruitPage :is(
    .recruitApply,
    .recruitContact,
    .eastRecruitApply
  ) {
    padding: 32px 0 38px;
  }

  .recruitPage :is(
    .recruitApply__lead,
    .recruitContact__lead,
    .eastRecruitApply__lead
  ) {
    margin-bottom: 22px;
  }

  .recruitPage :is(
    .recruitApply__lead,
    .recruitContact__lead,
    .eastRecruitApply__lead
  ) br {
    display: none;
  }

  .recruitPage :is(
    .recruitApply__cards,
    .recruitContact__grid,
    .eastRecruitApply__cards
  ) {
    width: 100%;
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .recruitPage :is(
    .recruitApplyCard,
    .recruitContactCard,
    .eastRecruitApplyCard
  ) {
    height: auto;
    min-height: 100px;
    padding: 17px 20px;
    gap: 15px;
  }

  .recruitPage :is(
    .recruitApplyCard__icon,
    .recruitContactCard__icon,
    .eastRecruitApplyCard__icon
  ) {
    flex-basis: 38px;
    width: 38px;
    height: 38px;
    font-size: 24px;
  }

  .recruitPage :is(
    .recruitApplyCard__icon,
    .eastRecruitApplyCard__icon
  ) svg {
    width: 30px;
    height: 30px;
  }

  .recruitPage :is(
    .recruitApplyCard__title,
    .recruitContactCard__title,
    .eastRecruitApplyCard__title
  ) {
    font-size: 15px;
    white-space: normal;
  }
}


/* ==================================================
   小さいスマートフォン
================================================== */

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

  .recruitHero h1 {
    font-size: 30px;
  }

  .recruitJobCard dl > div {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .recruitJobCard dt {
    padding-bottom: 2px;
  }

  .recruitJobCard dd {
    padding-top: 2px;
  }

  .recruitPage :is(
    .recruitApplyCard,
    .recruitContactCard,
    .eastRecruitApplyCard
  ) {
    justify-content: flex-start;
  }
}

/* ==================================================
   採用情報：ご応募・お問い合わせ
   WordPress自動整形対策版
================================================== */

.recruitPage .eastRecruitEntry {
  width: 100%;
  padding: 40px 0 48px;
  background: #fff;
}

.recruitPage .eastRecruitEntry .recruitHeading {
  margin: 0 0 10px;
  text-align: center;
}

.recruitPage .eastRecruitEntry__lead {
  margin: 0 0 26px;
  padding: 0;

  color: #222;
  font-size: 12px;
  line-height: 1.8;
  font-weight: 500;
  text-align: center;
}

/* カード一覧 */
.recruitPage .eastRecruitEntry__cards {
  width: min(790px, 100%);
  margin: 0 auto;
  padding: 0;

  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  align-items: stretch;
}

/* WordPressが追加する空タグを削除 */
.recruitPage .eastRecruitEntry__cards > p,
.recruitPage .eastRecruitEntry__cards > br {
  display: none !important;
}

/* カード共通 */
.recruitPage .eastRecruitEntryCard {
  position: relative;

  width: 100%;
  min-width: 0;
  min-height: 112px;
  margin: 0;
  padding: 20px 28px;

  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  column-gap: 20px;
  align-items: center;

  border: 2px solid #005bac;
  border-radius: 7px;

  box-sizing: border-box;
  overflow: hidden;

  color: #005bac;
  background: #fff;
  text-decoration: none !important;
}

/* 不要な疑似要素を停止 */
.recruitPage .eastRecruitEntryCard::after {
  content: none;
  display: none;
}

/* アイコン */
.recruitPage .eastRecruitEntryCard::before {
  grid-column: 1;
  grid-row: 1;

  width: 48px;
  height: 48px;

  display: flex;
  align-items: center;
  justify-content: center;

  color: inherit;
  font-size: 28px;
  line-height: 1;
}

/* 左カードの封筒 */
.recruitPage .eastRecruitEntryCard--form::before {
  content: "✉";
}

/* 右カードの電話 */
.recruitPage .eastRecruitEntryCard--info::before {
  content: "☎";
}

/* 左の青カード */
.recruitPage .eastRecruitEntryCard--form {
  color: #fff;
  background: linear-gradient(
    90deg,
    #0874c8 0%,
    #0055a2 100%
  );
}

/* 右の白カード */
.recruitPage .eastRecruitEntryCard--info {
  color: #005bac;
  background: #fff;
}

/* 文字部分 */
.recruitPage .eastRecruitEntryCard__copy {
  grid-column: 2;
  grid-row: 1;

  min-width: 0;
  margin: 0;
  padding: 0;

  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;

  color: inherit;
  text-align: left;
}

/* タイトル */
.recruitPage .eastRecruitEntryCard__copy strong {
  display: block;
  width: 100%;
  margin: 0 0 7px;
  padding: 0;

  color: inherit;
  font-size: 16px;
  line-height: 1.4;
  font-weight: 700;

  white-space: nowrap;
}

/* 補足テキスト */
.recruitPage .eastRecruitEntryCard__copy small {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;

  color: inherit;
  font-size: 10px;
  line-height: 1.55;
  font-weight: 500;
}

/* ホバー */
.recruitPage a.eastRecruitEntryCard:hover {
  opacity: 0.87;
  text-decoration: none !important;
}


/* ==================================================
   スマートフォン
================================================== */

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

  .recruitPage .eastRecruitEntry {
    padding: 32px 0 38px;
  }

  .recruitPage .eastRecruitEntry__lead {
    margin-bottom: 22px;
  }

  .recruitPage .eastRecruitEntry__lead br {
    display: none;
  }

  .recruitPage .eastRecruitEntry__cards {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .recruitPage .eastRecruitEntryCard {
    min-height: 100px;
    padding: 17px 20px;

    grid-template-columns: 40px minmax(0, 1fr);
    column-gap: 15px;
  }

  .recruitPage .eastRecruitEntryCard::before {
    width: 40px;
    height: 40px;
    font-size: 24px;
  }

  .recruitPage .eastRecruitEntryCard__copy strong {
    font-size: 15px;
    white-space: normal;
  }
}

/* ==================================================
   採用情報：お問い合わせカード 最終修正
================================================== */

.recruitPage .eastRecruitEntry__cards {
  width: min(790px, 100%) !important;
  margin: 0 auto !important;
  padding: 0 !important;

  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 28px !important;
  align-items: stretch !important;
}

/* WordPressの自動挿入対策 */
.recruitPage .eastRecruitEntry__cards > p,
.recruitPage .eastRecruitEntry__cards > br {
  display: none !important;
}

/* カード共通 */
.recruitPage .eastRecruitEntryCard {
  position: relative !important;

  width: 100% !important;
  min-width: 0 !important;
  height: 112px !important;
  min-height: 112px !important;

  margin: 0 !important;
  padding: 20px 28px !important;

  display: grid !important;
  grid-template-columns: 48px minmax(0, 1fr) !important;
  column-gap: 20px !important;
  align-items: center !important;

  border: 2px solid #005bac !important;
  border-radius: 7px !important;

  box-sizing: border-box !important;
  overflow: hidden !important;
}

/* 左カード */
.recruitPage .eastRecruitEntryCard--form {
  color: #fff !important;
  background: linear-gradient(
    90deg,
    #0874c8 0%,
    #0055a2 100%
  ) !important;
}

/* 右カード */
.recruitPage .eastRecruitEntryCard--info {
  color: #005bac !important;
  background: #fff !important;
}

/* 左カード全体をリンクにする */
.recruitPage .eastRecruitEntryCard__fullLink {
  position: absolute !important;
  inset: 0 !important;
  z-index: 5 !important;

  display: block !important;
  width: 100% !important;
  height: 100% !important;

  text-decoration: none !important;
}

/* アイコン */
.recruitPage .eastRecruitEntryCard__icon {
  position: relative !important;
  z-index: 2 !important;

  grid-column: 1 !important;
  grid-row: 1 !important;

  width: 48px !important;
  height: 48px !important;

  margin: 0 !important;
  padding: 0 !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  color: inherit !important;
}

.recruitPage .eastRecruitEntryCard__icon svg {
  width: 34px !important;
  height: 34px !important;

  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

/* テキスト */
.recruitPage .eastRecruitEntryCard__copy {
  position: relative !important;
  z-index: 2 !important;

  grid-column: 2 !important;
  grid-row: 1 !important;

  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;

  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;

  color: inherit !important;
  text-align: left !important;
}

.recruitPage .eastRecruitEntryCard__copy strong {
  display: block !important;

  margin: 0 0 7px !important;
  padding: 0 !important;

  color: inherit !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
}

.recruitPage .eastRecruitEntryCard__copy small {
  display: block !important;

  margin: 0 !important;
  padding: 0 !important;

  color: inherit !important;
  font-size: 10px !important;
  line-height: 1.55 !important;
  font-weight: 500 !important;
}

/* ホバー */
.recruitPage .eastRecruitEntryCard--form:hover {
  opacity: 0.87 !important;
}


/* スマートフォン */
@media screen and (max-width: 767px) {

  .recruitPage .eastRecruitEntry__cards {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .recruitPage .eastRecruitEntryCard {
    height: auto !important;
    min-height: 100px !important;

    padding: 17px 20px !important;

    grid-template-columns: 40px minmax(0, 1fr) !important;
    column-gap: 15px !important;
  }

  .recruitPage .eastRecruitEntryCard__icon {
    width: 40px !important;
    height: 40px !important;
  }

  .recruitPage .eastRecruitEntryCard__icon svg {
    width: 30px !important;
    height: 30px !important;
  }

  .recruitPage .eastRecruitEntryCard__copy strong {
    font-size: 15px !important;
    white-space: normal !important;
  }
}

/* ==================================================
   採用情報：お問い合わせカード 最終リセット
================================================== */

/* カード2枚を横並び */
.recruitPage .eastRecruitEntry__cards {
  width: min(790px, calc(100% - 40px)) !important;
  margin: 0 auto !important;
  padding: 0 !important;

  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 28px !important;
  align-items: stretch !important;
}

/* WordPressの自動挿入対策 */
.recruitPage .eastRecruitEntry__cards > p,
.recruitPage .eastRecruitEntry__cards > br {
  display: none !important;
}

/* カード共通 */
.recruitPage .eastRecruitEntryCard {
  position: relative !important;

  width: 100% !important;
  min-width: 0 !important;
  height: 120px !important;
  min-height: 120px !important;
  max-height: none !important;

  margin: 0 !important;
  padding: 22px 30px !important;

  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 22px !important;

  border: 2px solid #005bac !important;
  border-radius: 7px !important;

  box-sizing: border-box !important;
  overflow: hidden !important;
  writing-mode: horizontal-tb !important;
}

/* 古い疑似要素アイコンを完全に消す */
.recruitPage .eastRecruitEntryCard::before,
.recruitPage .eastRecruitEntryCard::after {
  content: none !important;
  display: none !important;
}

/* 左カード */
.recruitPage .eastRecruitEntryCard--form {
  color: #fff !important;
  background: linear-gradient(
    90deg,
    #0874c8 0%,
    #0055a2 100%
  ) !important;
}

/* 右カード */
.recruitPage .eastRecruitEntryCard--info {
  color: #005bac !important;
  background: #fff !important;
}

/* 全体リンク */
.recruitPage .eastRecruitEntryCard__fullLink {
  position: absolute !important;
  inset: 0 !important;
  z-index: 5 !important;

  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

/* 実際のSVGアイコン */
.recruitPage .eastRecruitEntryCard__icon {
  position: static !important;
  z-index: 2 !important;

  flex: 0 0 46px !important;
  width: 46px !important;
  height: 46px !important;

  margin: 0 !important;
  padding: 0 !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  color: inherit !important;
  writing-mode: horizontal-tb !important;
  transform: none !important;
}

.recruitPage .eastRecruitEntryCard__icon svg {
  display: block !important;
  width: 34px !important;
  height: 34px !important;

  margin: 0 !important;

  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

/* 文字ブロック */
.recruitPage .eastRecruitEntryCard__copy {
  position: static !important;
  z-index: 2 !important;

  flex: 0 1 225px !important;
  width: 225px !important;
  min-width: 0 !important;
  height: auto !important;

  margin: 0 !important;
  padding: 0 !important;

  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: 6px !important;

  color: inherit !important;
  text-align: left !important;
  writing-mode: horizontal-tb !important;
  transform: none !important;
}

/* タイトル */
.recruitPage .eastRecruitEntryCard__copy strong {
  display: block !important;
  position: static !important;

  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;

  color: inherit !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  font-weight: 700 !important;
  text-align: left !important;

  white-space: nowrap !important;
  writing-mode: horizontal-tb !important;
  transform: none !important;
}

/* 補足テキスト */
.recruitPage .eastRecruitEntryCard__copy small {
  display: block !important;
  position: static !important;

  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;

  color: inherit !important;
  font-size: 10px !important;
  line-height: 1.55 !important;
  font-weight: 500 !important;
  text-align: left !important;

  white-space: normal !important;
  writing-mode: horizontal-tb !important;
  transform: none !important;
}


/* ==================================================
   スマートフォン
================================================== */

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

  .recruitPage .eastRecruitEntry__cards {
    width: 100% !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .recruitPage .eastRecruitEntryCard {
    height: auto !important;
    min-height: 105px !important;
    padding: 18px 20px !important;
    gap: 16px !important;
  }

  .recruitPage .eastRecruitEntryCard__icon {
    flex-basis: 40px !important;
    width: 40px !important;
    height: 40px !important;
  }

  .recruitPage .eastRecruitEntryCard__icon svg {
    width: 30px !important;
    height: 30px !important;
  }

  .recruitPage .eastRecruitEntryCard__copy {
    flex: 1 1 auto !important;
    width: auto !important;
  }

  .recruitPage .eastRecruitEntryCard__copy strong {
    font-size: 15px !important;
    white-space: normal !important;
  }
}

/* ==================================================
   採用情報：お問い合わせ文字サイズ調整
================================================== */

/* セクションタイトル */
.recruitPage .eastRecruitEntry .recruitHeading h2 {
  font-size: 26px !important;
  line-height: 1.35 !important;
  letter-spacing: 0.08em !important;
}

.recruitPage .eastRecruitEntry .recruitHeading p {
  font-size: 9px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.15em !important;
}

/* 見出し下の説明文 */
.recruitPage .eastRecruitEntry__lead {
  font-size: 11px !important;
  line-height: 1.75 !important;
}

/* カード内のタイトル */
.recruitPage .eastRecruitEntryCard__copy strong {
  margin: 0 0 8px !important;

  font-size: 14px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.02em !important;
  font-weight: 700 !important;
}

/* カード内の補足文字 */
.recruitPage .eastRecruitEntryCard__copy small {
  font-size: 9px !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
}

/* カード内の文字ブロックを中央に整える */
.recruitPage .eastRecruitEntryCard__copy {
  justify-content: center !important;
  gap: 0 !important;
}

/* 左右カードの文字サイズを統一 */
.recruitPage .eastRecruitEntryCard--form
.eastRecruitEntryCard__copy strong,

.recruitPage .eastRecruitEntryCard--info
.eastRecruitEntryCard__copy strong {
  font-size: 14px !important;
}

.recruitPage .eastRecruitEntryCard--form
.eastRecruitEntryCard__copy small,

.recruitPage .eastRecruitEntryCard--info
.eastRecruitEntryCard__copy small {
  font-size: 9px !important;
}


/* スマートフォン */
@media screen and (max-width: 767px) {

  .recruitPage .eastRecruitEntry .recruitHeading h2 {
    font-size: 22px !important;
  }

  .recruitPage .eastRecruitEntryCard__copy strong {
    font-size: 14px !important;
  }

  .recruitPage .eastRecruitEntryCard__copy small {
    font-size: 9px !important;
  }
}


/* ==================================================
   EAST-I レンタル業者様向けページ V2
   既存CSSと競合しにくい専用クラス
================================================== */

.eastiRt2Page {
  --rt2-blue: #005bac;
  --rt2-blue-dark: #004d98;
  --rt2-border: #d8e4ec;
  --rt2-bg: #eff7fd;
  --rt2-text: #222;
  --rt2-shadow: 0 8px 24px rgba(0, 66, 124, 0.09);

  position: relative;
  left: 50%;
  width: 100vw;
  max-width: none;
  margin: 0 0 0 -50vw;
  padding: 0;
  overflow: hidden;

  color: var(--rt2-text);
  background: #fff;

  font-family:
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    Meiryo,
    sans-serif;
}

.eastiRt2Page,
.eastiRt2Page *,
.eastiRt2Page *::before,
.eastiRt2Page *::after {
  box-sizing: border-box;
}

.eastiRt2Page img,
.eastiRt2Page svg {
  display: block;
  max-width: 100%;
}

.eastiRt2Page a {
  color: inherit;
  text-decoration: none;
}

.eastiRt2Page h1,
.eastiRt2Page h2,
.eastiRt2Page h3,
.eastiRt2Page p,
.eastiRt2Page ol {
  margin-top: 0;
}

.eastiRt2Inner {
  width: min(1040px, calc(100% - 48px));
  margin-right: auto;
  margin-left: auto;
}


/* ==================================================
   WordPress自動整形対策
================================================== */

.eastiRt2Page :is(
  .eastiRt2Procedure__grid,
  .eastiRt2Guide__text
) > p:empty,
.eastiRt2Page :is(
  .eastiRt2Procedure__grid,
  .eastiRt2Guide__text
) > br,
.eastiRt2Page > p:empty,
.eastiRt2Page > br {
  display: none !important;
}

.eastiRt2Page .eastiRt2Procedure__grid > p {
  display: contents !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* ==================================================
   パンくず
================================================== */

.eastiRt2Breadcrumb {
  padding: 18px 0 10px;
  background: #fff;
}

.eastiRt2Breadcrumb ol {
  margin-bottom: 0;
  padding: 0;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  list-style: none;
}

.eastiRt2Breadcrumb li {
  color: #77818a;
  font-size: 10px;
  line-height: 1.6;
}

.eastiRt2Breadcrumb li + li::before {
  content: "›";
  margin-right: 8px;
}


/* ==================================================
   メインビジュアル
================================================== */

.eastiRt2Hero {
  background:
    linear-gradient(
      110deg,
      #fff 0%,
      #fff 40%,
      #f3f9fd 66%,
      #eaf5fb 100%
    );
}

.eastiRt2Hero__inner {
  width: min(1220px, 100%);
  min-height: 345px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 43% 57%;
}

.eastiRt2Hero__content {
  position: relative;
  z-index: 2;
  min-width: 0;
  padding: 48px clamp(32px, 7vw, 100px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.eastiRt2Hero__eyebrow {
  margin-bottom: 10px;
  color: #5a646c;
  font-size: 12px;
  line-height: 1.7;
}

.eastiRt2Hero h1 {
  margin-bottom: 17px;
  color: var(--rt2-blue);
  font-size: clamp(45px, 5vw, 67px);
  line-height: 1.17;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.eastiRt2Hero__lead {
  margin-bottom: 0;
  color: #333;
  font-size: 12px;
  line-height: 1.9;
  font-weight: 500;
}

.eastiRt2Hero__visual {
  position: relative;
  min-width: 0;
  min-height: 345px;

  background-image:
    linear-gradient(
      90deg,
      #fff 0%,
      rgba(255, 255, 255, 0.75) 10%,
      rgba(255, 255, 255, 0) 34%
    ),
    url("/easti/wp-content/themes/easti-themes/img/rental-main.png");

  background-repeat: no-repeat;
  background-position: center, center;
  background-size: cover, cover;
}


/* ==================================================
   共通アイコン
================================================== */

.eastiRt2Icon {
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  color: var(--rt2-blue);
}

.eastiRt2Icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.eastiRt2Icon .is-fill {
  fill: currentColor;
  stroke: none;
}


/* ==================================================
   安全利用の案内
================================================== */

.eastiRt2Guide {
  padding: 30px 0 18px;
  background: #fff;
}

.eastiRt2Guide__box {
  padding: 19px 24px 20px;
  border: 1px solid var(--rt2-border);
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 5px 20px rgba(0, 53, 101, 0.05);
}

.eastiRt2Guide__title {
  margin-bottom: 13px;
  display: flex;
  align-items: center;
  gap: 11px;
}

.eastiRt2Guide__title h2 {
  margin: 0;
  color: var(--rt2-blue);
  font-size: 15px;
  line-height: 1.5;
  font-weight: 700;
}

.eastiRt2Guide__text {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 34px;
}

.eastiRt2Guide__text p {
  margin: 0;
  color: #3e4850;
  font-size: 10px;
  line-height: 1.85;
}


/* ==================================================
   セクション見出し
================================================== */

.eastiRt2Heading {
  margin-bottom: 22px;
  text-align: center;
}

.eastiRt2Heading > p {
  margin-bottom: 3px;
  color: var(--rt2-blue);
  font-size: 9px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.eastiRt2Heading h2 {
  margin-bottom: 6px;
  color: var(--rt2-blue);
  font-size: 26px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.eastiRt2Heading > span {
  display: block;
  color: #4a555d;
  font-size: 10px;
  line-height: 1.7;
}


/* ==================================================
   ユーザー登録／各種お手続き
================================================== */

.eastiRt2Procedure {
  padding: 22px 0 16px;
  background: #fff;
}

.eastiRt2Procedure__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px !important;
  align-items: stretch !important;
}

.eastiRt2ProcedureCard {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 190px !important;
  margin: 0 !important;
  padding: 24px 26px 22px !important;

  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;

  border: 1px solid var(--rt2-border) !important;
  border-radius: 7px !important;
  background: #fff !important;
  box-shadow: var(--rt2-shadow) !important;
  text-align: center !important;
}

.eastiRt2ProcedureCard__title {
  width: 100%;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.eastiRt2ProcedureCard__title h3 {
  margin: 0;
  color: var(--rt2-blue);
  font-size: 15px;
  line-height: 1.5;
  font-weight: 700;
}

.eastiRt2ProcedureCard > p {
  flex: 1 1 auto;
  margin: 0 0 16px;
  color: #3e4850;
  font-size: 10px;
  line-height: 1.75;
}

.eastiRt2Button {
  width: min(240px, 100%);
  min-height: 42px;
  padding: 9px 14px 9px 20px;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 13px !important;

  border-radius: 999px;
  color: #fff !important;
  background: linear-gradient(90deg, #0874c8 0%, #0054a0 100%);

  font-size: 11px;
  line-height: 1.4;
  font-weight: 700;
  box-shadow: 0 4px 13px rgba(0, 80, 150, 0.16);
}

.eastiRt2Button span {
  margin-left: auto;
  font-size: 18px;
}

.eastiRt2Button--small {
  width: 200px;
  min-height: 40px;
}

.eastiRt2Notice {
  margin-top: 14px;
  padding: 10px 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  border-radius: 5px;
  background: #edf5fd;
}

.eastiRt2Notice .eastiRt2Icon {
  flex-basis: 25px;
  width: 25px;
  height: 25px;
}

.eastiRt2Notice p {
  margin: 0;
  color: #39434b;
  font-size: 9px;
  line-height: 1.55;
  text-align: center;
}

.eastiRt2Notice strong {
  color: var(--rt2-blue);
}


/* ==================================================
   取扱説明書
================================================== */

.eastiRt2Manual {
  padding: 0 0 16px;
  background: #fff;
}

.eastiRt2ManualCard {
  position: relative;
  width: 100%;
  min-height: 76px;
  padding: 13px 20px;

  display: grid !important;
  grid-template-columns: 56px minmax(0, 1fr) 38px !important;
  gap: 16px !important;
  align-items: center !important;

  border: 3px solid var(--rt2-blue);
  border-radius: 7px;
  color: var(--rt2-blue);
  background: #fff;
  overflow: hidden;
}

.eastiRt2ManualCard__link {
  position: absolute !important;
  inset: 0 !important;
  z-index: 5 !important;
  display: block !important;
}

.eastiRt2ManualCard__icon {
  width: 56px;
  height: 46px;
}

.eastiRt2ManualCard__icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.eastiRt2ManualCard strong {
  font-size: clamp(16px, 2vw, 25px);
  line-height: 1.45;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-align: center;
}

.eastiRt2ManualCard__arrow {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #fff;
  background: var(--rt2-blue);
  font-size: 26px;
  line-height: 1;
}


/* ==================================================
   お問い合わせ
================================================== */

.eastiRt2Support {
  padding: 0 0 20px;
  background: #fff;
}

.eastiRt2Support__box {
  min-height: 170px;
  padding: 24px 30px 0 38px;

  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 24px;
  align-items: end;

  overflow: hidden;
  border-radius: 7px;
  background:
    linear-gradient(
      90deg,
      #edf6fd 0%,
      #f5f9fc 62%,
      #eef6fb 100%
    );
}

.eastiRt2Support__content {
  align-self: center;
  padding-bottom: 24px;
}

.eastiRt2Support__en {
  margin-bottom: 3px;
  color: var(--rt2-blue);
  font-size: 9px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.15em;
}

.eastiRt2Support h2 {
  margin-bottom: 9px;
  color: var(--rt2-blue);
  font-size: 21px;
  line-height: 1.5;
  font-weight: 700;
}

.eastiRt2Support__content > p:not(.eastiRt2Support__en) {
  margin-bottom: 15px;
  color: #3f4951;
  font-size: 10px;
  line-height: 1.75;
}

.eastiRt2Support__visual {
  align-self: end;
  height: 165px;

  background-image:
    url("/easti/wp-content/themes/easti-themes/img/rental-support.png");

  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: contain;
}


/* ==================================================
   タブレット
================================================== */

@media screen and (max-width: 1024px) {
  .eastiRt2Hero__inner {
    grid-template-columns: 46% 54%;
  }

  .eastiRt2Hero__content {
    padding-right: 35px;
    padding-left: 35px;
  }

  .eastiRt2Support__box {
    grid-template-columns: minmax(0, 1fr) 220px;
  }
}


/* ==================================================
   スマートフォン
================================================== */

@media screen and (max-width: 767px) {
  .eastiRt2Inner {
    width: min(calc(100% - 30px), 620px);
  }

  .eastiRt2Hero__inner {
    display: flex;
    flex-direction: column-reverse;
    min-height: 0;
  }

  .eastiRt2Hero__content {
    padding: 28px 20px 36px;
  }

  .eastiRt2Hero h1 {
    font-size: 42px;
  }

  .eastiRt2Hero__lead br {
    display: none;
  }

  .eastiRt2Hero__visual {
    min-height: 250px;
  }

  .eastiRt2Guide__text {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .eastiRt2Heading h2 {
    font-size: 22px;
  }

  .eastiRt2Procedure__grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .eastiRt2ProcedureCard {
    min-height: 0 !important;
    padding: 21px 19px !important;
  }

  .eastiRt2Notice {
    align-items: flex-start;
    padding: 12px 14px;
  }

  .eastiRt2Notice p {
    text-align: left;
  }

  .eastiRt2ManualCard {
    min-height: 70px;
    padding: 11px 13px;
    grid-template-columns: 44px minmax(0, 1fr) 32px !important;
    gap: 9px !important;
  }

  .eastiRt2ManualCard__icon {
    width: 44px;
    height: 38px;
  }

  .eastiRt2ManualCard strong {
    font-size: 15px;
    text-align: left;
  }

  .eastiRt2ManualCard__arrow {
    width: 31px;
    height: 31px;
    font-size: 22px;
  }

  .eastiRt2Support__box {
    min-height: 0;
    padding: 24px 20px 0;
    grid-template-columns: 1fr;
    gap: 0;
  }

  .eastiRt2Support__content {
    padding-bottom: 8px;
  }

  .eastiRt2Support h2 {
    font-size: 19px;
  }

  .eastiRt2Support__visual {
    width: min(230px, 80%);
    height: 150px;
    margin-left: auto;
  }
}

/* ==================================================
   EAST-I レンタル業者様ページ
   会社概要ページの共通要素を使用する差し替え版

   共通で使用：
   .companyPage
   .companyHero
   .companyHero__inner
   .companyHero__text
   .companyHero__en
   .companyHero__line
   .companyHero__lead
   .companyHero__image
   .companyWrap
================================================== */

/* 古いレンタルページのクラスは使用しません。
   以前の .eiRentalFinal / .eastiRt2 などのCSSは削除してください。 */


/* ==================================================
   メインビジュアル：レンタル用の見え方だけ調整
   サイズ・左右幅・高さは会社概要のcompanyHeroを使用
================================================== */

.companyPage.rentalPage .companyHero--rental h1 {
  color: #005bac;
}

.companyPage.rentalPage .companyHero--rental .companyHero__image {
  overflow: hidden;
  background: #edf6fb;
}

.companyPage.rentalPage .companyHero--rental .companyHero__image img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center right;
}

.companyPage.rentalPage .companyHero--rental .companyHero__lead {
  font-weight: 500;
}


/* ==================================================
   共通
================================================== */

.companyPage.rentalPage {
  --rental-blue: #005bac;
  --rental-deep-blue: #004e97;
  --rental-border: #d9e3ea;
  --rental-pale: #eef6fc;
  --rental-text: #222;
}

.companyPage.rentalPage *,
.companyPage.rentalPage *::before,
.companyPage.rentalPage *::after {
  box-sizing: border-box;
}

.companyPage.rentalPage a {
  text-decoration: none;
}

.rentalInfoIcon {
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  color: var(--rental-blue);
}

.rentalInfoIcon svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.rentalInfoIcon .is-fill {
  fill: currentColor;
  stroke: none;
}


/* ==================================================
   安全利用案内
================================================== */

.rentalGuide {
  padding: 42px 0 20px;
}

.rentalGuide__box {
  padding: 25px 30px 27px;
  border: 1px solid var(--rental-border);
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 5px 20px rgba(0, 64, 120, 0.05);
}

.rentalGuide__heading {
  margin-bottom: 17px;
  display: flex;
  align-items: center;
  gap: 13px;
}

.rentalGuide__heading h2 {
  margin: 0;
  color: var(--rental-blue);
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
}

.rentalGuide__columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 50px;
}

.rentalGuide__columns p {
  margin: 0;
  color: #3e4850;
  font-size: 13px;
  line-height: 1.9;
}


/* ==================================================
   セクション見出し
================================================== */

.rentalSectionHeading {
  margin-bottom: 25px;
  text-align: center;
}

.rentalSectionHeading > p {
  margin: 0 0 4px;
  color: var(--rental-blue);
  font-size: 10px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.rentalSectionHeading h2 {
  margin: 0 0 7px;
  color: var(--rental-blue);
  font-size: 27px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.rentalSectionHeading > span {
  display: block;
  color: #4a555d;
  font-size: 11px;
  line-height: 1.7;
}


/* ==================================================
   ユーザー登録／各種お手続き
================================================== */

.rentalProcedure {
  padding: 25px 0 18px;
}

.rentalProcedure__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.rentalProcedure__grid > p,
.rentalProcedure__grid > br {
  display: none !important;
}

.rentalProcedureCard {
  min-width: 0;
  min-height: 195px;
  padding: 28px 30px 26px;

  display: flex;
  flex-direction: column;
  align-items: center;

  border: 1px solid var(--rental-border);
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 8px 25px rgba(0, 64, 120, 0.08);
  text-align: center;
}

.rentalProcedureCard__heading {
  width: 100%;
  margin-bottom: 14px;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
}

.rentalProcedureCard__icon {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  color: var(--rental-blue);
}

.rentalProcedureCard__icon svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.rentalProcedureCard h3 {
  margin: 0;
  color: var(--rental-blue);
  font-size: 16px;
  line-height: 1.5;
  font-weight: 700;
}

.rentalProcedureCard > p {
  flex: 1 1 auto;
  margin: 0 0 19px;
  color: #3e4850;
  font-size: 12px;
  line-height: 1.8;
}

.rentalButton {
  width: min(270px, 100%);
  min-height: 46px;
  padding: 10px 15px 10px 21px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;

  border-radius: 999px;
  color: #fff !important;
  background: linear-gradient(90deg, #0874c8 0%, #0054a0 100%);

  font-size: 12px;
  line-height: 1.4;
  font-weight: 700;

  box-shadow: 0 4px 14px rgba(0, 80, 150, 0.16);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.rentalButton > span:last-child {
  margin-left: auto;
  font-size: 20px;
}

.rentalButton:hover {
  opacity: 0.86;
  transform: translateY(-1px);
}

.rentalNotice {
  min-height: 52px;
  margin-top: 15px;
  padding: 10px 20px;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;

  border-radius: 5px;
  background: var(--rental-pale);
}

.rentalNotice .rentalInfoIcon {
  flex-basis: 27px;
  width: 27px;
  height: 27px;
}

.rentalNotice p {
  margin: 0;
  color: #39434b;
  font-size: 11px;
  line-height: 1.6;
  text-align: center;
}

.rentalNotice strong {
  color: var(--rental-blue);
}


/* ==================================================
   取扱説明書
================================================== */

.rentalManual {
  padding: 0 0 20px;
}

.rentalManual__link {
  width: 100%;
  min-height: 82px;
  padding: 14px 20px;

  display: grid;
  grid-template-columns: 62px minmax(0, 1fr) 42px;
  gap: 18px;
  align-items: center;

  border: 3px solid var(--rental-blue);
  border-radius: 7px;

  color: var(--rental-blue) !important;
  background: #fff;

  transition: color 0.2s ease, background 0.2s ease;
}

.rentalManual__icon {
  width: 58px;
  height: 50px;
}

.rentalManual__icon svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.rentalManual__link strong {
  font-size: 22px;
  line-height: 1.45;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-align: center;
}

.rentalManual__arrow {
  width: 39px;
  height: 39px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;
  color: #fff;
  background: var(--rental-blue);

  font-family: Arial, sans-serif;
  font-size: 28px;
  line-height: 1;
}

.rentalManual__link:hover {
  color: #fff !important;
  background: var(--rental-blue);
}

.rentalManual__link:hover .rentalManual__arrow {
  color: var(--rental-blue);
  background: #fff;
}


/* ==================================================
   サポート
================================================== */

.rentalSupport {
  padding: 0 0 34px;
}

.rentalSupport__box {
  position: relative;
  min-height: 190px;
  padding: 30px 390px 27px 38px;

  overflow: hidden;
  border-radius: 7px;

  background:
    linear-gradient(
      90deg,
      #edf6fd 0%,
      #f7fafc 62%,
      #eef6fb 100%
    );
}

.rentalSupport__content {
  position: relative;
  z-index: 2;
}

.rentalSupport__en {
  margin: 0 0 4px;
  color: var(--rental-blue);
  font-size: 10px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.15em;
}

.rentalSupport h2 {
  margin: 0 0 11px;
  color: var(--rental-blue);
  font-size: 23px;
  line-height: 1.45;
  font-weight: 700;
}

.rentalSupport__text {
  margin: 0 0 18px;
  color: #3f4951;
  font-size: 12px;
  line-height: 1.8;
}

.rentalButton--support {
  width: 230px;
  min-height: 44px;
}

.rentalSupport__image {
  position: absolute;
  top: 0;
  right: 0;

  width: 380px;
  height: 190px;
  margin: 0;

  overflow: hidden;
}

.rentalSupport__image img {
  width: 100%;
  height: 100%;
  max-width: none;
  display: block;
  object-fit: cover;
  object-position: center right;
}


/* ==================================================
   タブレット
================================================== */

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

  .rentalGuide__columns {
    gap: 30px;
  }

  .rentalSupport__box {
    padding-right: 310px;
  }

  .rentalSupport__image {
    width: 300px;
  }

  .rentalSupport h2 {
    font-size: 21px;
  }
}


/* ==================================================
   スマートフォン
================================================== */

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

  .companyPage.rentalPage .companyHero--rental .companyHero__lead br {
    display: none;
  }

  .rentalGuide {
    padding-top: 30px;
  }

  .rentalGuide__box {
    padding: 21px 18px;
  }

  .rentalGuide__heading {
    align-items: flex-start;
  }

  .rentalGuide__heading h2 {
    font-size: 15px;
  }

  .rentalGuide__columns {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .rentalGuide__columns p {
    font-size: 12px;
  }

  .rentalSectionHeading h2 {
    font-size: 22px;
  }

  .rentalProcedure__grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .rentalProcedureCard {
    min-height: 0;
    padding: 24px 19px;
  }

  .rentalProcedureCard__heading {
    align-items: flex-start;
  }

  .rentalProcedureCard h3 {
    font-size: 15px;
    text-align: left;
  }

  .rentalProcedureCard > p {
    font-size: 11px;
  }

  .rentalNotice {
    align-items: flex-start;
    padding: 12px 14px;
  }

  .rentalNotice p {
    text-align: left;
  }

  .rentalManual__link {
    min-height: 74px;
    padding: 12px 12px;

    grid-template-columns: 45px minmax(0, 1fr) 33px;
    gap: 10px;
  }

  .rentalManual__icon {
    width: 43px;
    height: 38px;
  }

  .rentalManual__link strong {
    font-size: 15px;
    text-align: left;
  }

  .rentalManual__arrow {
    width: 32px;
    height: 32px;
    font-size: 23px;
  }

  .rentalSupport__box {
    min-height: 310px;
    padding: 25px 19px 170px;
  }

  .rentalSupport h2 {
    font-size: 19px;
  }

  .rentalSupport__text {
    font-size: 11px;
  }

  .rentalSupport__text br {
    display: none;
  }

  .rentalSupport__image {
    top: auto;
    right: 0;
    bottom: 0;

    width: 270px;
    height: 165px;
  }
}

/* ==================================================
   EAST-I レンタル業者様ページ
   会社概要ページの共通要素を使用する差し替え版

   共通で使用：
   .companyPage
   .companyHero
   .companyHero__inner
   .companyHero__text
   .companyHero__en
   .companyHero__line
   .companyHero__lead
   .companyHero__image
   .companyWrap
================================================== */

/* 古いレンタルページのクラスは使用しません。
   以前の .eiRentalFinal / .eastiRt2 などのCSSは削除してください。 */


/* ==================================================
   メインビジュアル：レンタル用の見え方だけ調整
   サイズ・左右幅・高さは会社概要のcompanyHeroを使用
================================================== */

.companyPage.rentalPage .companyHero--rental h1 {
  color: #005bac;
}

.companyPage.rentalPage .companyHero--rental .companyHero__image {
  overflow: hidden;
  background: #edf6fb;
}

.companyPage.rentalPage .companyHero--rental .companyHero__image img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center right;
}

.companyPage.rentalPage .companyHero--rental .companyHero__lead {
  font-weight: 500;
}


/* ==================================================
   共通
================================================== */

.companyPage.rentalPage {
  --rental-blue: #005bac;
  --rental-deep-blue: #004e97;
  --rental-border: #d9e3ea;
  --rental-pale: #eef6fc;
  --rental-text: #222;
}

.companyPage.rentalPage *,
.companyPage.rentalPage *::before,
.companyPage.rentalPage *::after {
  box-sizing: border-box;
}

.companyPage.rentalPage a {
  text-decoration: none;
}

.rentalInfoIcon {
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  color: var(--rental-blue);
}

.rentalInfoIcon svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.rentalInfoIcon .is-fill {
  fill: currentColor;
  stroke: none;
}


/* ==================================================
   安全利用案内
================================================== */

.rentalGuide {
  padding: 42px 0 20px;
}

.rentalGuide__box {
  padding: 25px 30px 27px;
  border: 1px solid var(--rental-border);
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 5px 20px rgba(0, 64, 120, 0.05);
}

.rentalGuide__heading {
  margin-bottom: 17px;
  display: flex;
  align-items: center;
  gap: 13px;
}

.rentalGuide__heading h2 {
  margin: 0;
  color: var(--rental-blue);
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
}

.rentalGuide__columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 50px;
}

.rentalGuide__columns p {
  margin: 0;
  color: #3e4850;
  font-size: 13px;
  line-height: 1.9;
}


/* ==================================================
   セクション見出し
================================================== */

.rentalSectionHeading {
  margin-bottom: 25px;
  text-align: center;
}

.rentalSectionHeading > p {
  margin: 0 0 4px;
  color: var(--rental-blue);
  font-size: 10px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.rentalSectionHeading h2 {
  margin: 0 0 7px;
  color: var(--rental-blue);
  font-size: 27px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.rentalSectionHeading > span {
  display: block;
  color: #4a555d;
  font-size: 11px;
  line-height: 1.7;
}


/* ==================================================
   ユーザー登録／各種お手続き
================================================== */

.rentalProcedure {
  padding: 25px 0 18px;
}

.rentalProcedure__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.rentalProcedure__grid > p,
.rentalProcedure__grid > br {
  display: none !important;
}

.rentalProcedureCard {
  min-width: 0;
  min-height: 195px;
  padding: 28px 30px 26px;

  display: flex;
  flex-direction: column;
  align-items: center;

  border: 1px solid var(--rental-border);
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 8px 25px rgba(0, 64, 120, 0.08);
  text-align: center;
}

.rentalProcedureCard__heading {
  width: 100%;
  margin-bottom: 14px;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
}

.rentalProcedureCard__icon {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  color: var(--rental-blue);
}

.rentalProcedureCard__icon svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.rentalProcedureCard h3 {
  margin: 0;
  color: var(--rental-blue);
  font-size: 16px;
  line-height: 1.5;
  font-weight: 700;
}

.rentalProcedureCard > p {
  flex: 1 1 auto;
  margin: 0 0 19px;
  color: #3e4850;
  font-size: 12px;
  line-height: 1.8;
}

.rentalButton {
  width: min(270px, 100%);
  min-height: 46px;
  padding: 10px 15px 10px 21px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;

  border-radius: 999px;
  color: #fff !important;
  background: linear-gradient(90deg, #0874c8 0%, #0054a0 100%);

  font-size: 12px;
  line-height: 1.4;
  font-weight: 700;

  box-shadow: 0 4px 14px rgba(0, 80, 150, 0.16);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.rentalButton > span:last-child {
  margin-left: auto;
  font-size: 20px;
}

.rentalButton:hover {
  opacity: 0.86;
  transform: translateY(-1px);
}

.rentalNotice {
  position: relative;
  min-height: 58px;
  margin-top: 15px;
  padding: 11px 22px 11px 64px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 5px;
  background: var(--rental-pale);
}

.rentalNotice::before {
  content: "i";
  position: absolute;
  top: 50%;
  left: 22px;

  width: 28px;
  height: 28px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 2px solid var(--rental-blue);
  border-radius: 50%;

  color: var(--rental-blue);
  background: transparent;

  font-family: Georgia, serif;
  font-size: 17px;
  line-height: 1;
  font-weight: 700;

  transform: translateY(-50%);
}

.rentalNotice p {
  margin: 0;
  color: #39434b;
  font-size: 11px;
  line-height: 1.65;
  text-align: center;
}

.rentalNotice strong {
  color: var(--rental-blue);
}


/* ==================================================
   取扱説明書
   WordPress自動整形対策：リンク要素は1個だけ使用
================================================== */

.rentalManual {
  padding: 0 0 20px;
}

.rentalManual__link {
  position: relative;

  width: 100%;
  min-height: 82px;
  padding: 15px 72px 15px 92px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 3px solid var(--rental-blue);
  border-radius: 7px;

  color: var(--rental-blue) !important;
  background: #fff;

  font-size: 22px;
  line-height: 1.45;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-align: center;

  transition: color 0.2s ease, background 0.2s ease;
}

/* 本のアイコン */
.rentalManual__link::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 22px;

  width: 56px;
  height: 48px;

  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23005bac' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 12c11-3 19-1 24 5v36c-5-6-13-8-24-5z'/%3E%3Cpath d='M56 12c-11-3-19-1-24 5v36c5-6 13-8 24-5z'/%3E%3C/g%3E%3C/svg%3E")
    center / contain no-repeat;

  transform: translateY(-50%);
}

/* 右矢印 */
.rentalManual__link::after {
  content: "›";
  position: absolute;
  top: 50%;
  right: 20px;

  width: 40px;
  height: 40px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  color: #fff;
  background: var(--rental-blue);

  font-family: Arial, sans-serif;
  font-size: 29px;
  line-height: 1;

  transform: translateY(-50%);
}

.rentalManual__link:hover {
  color: #fff !important;
  background: var(--rental-blue);
}

.rentalManual__link:hover::before {
  filter: brightness(0) invert(1);
}

.rentalManual__link:hover::after {
  color: var(--rental-blue);
  background: #fff;
}


/* ==================================================
   サポート
================================================== */

.rentalSupport {
  padding: 0 0 34px;
}

.rentalSupport__box {
  position: relative;
  min-height: 190px;
  padding: 30px 390px 27px 38px;

  overflow: hidden;
  border-radius: 7px;

  background:
    linear-gradient(
      90deg,
      #edf6fd 0%,
      #f7fafc 62%,
      #eef6fb 100%
    );
}

.rentalSupport__content {
  position: relative;
  z-index: 2;
}

.rentalSupport__en {
  margin: 0 0 4px;
  color: var(--rental-blue);
  font-size: 10px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.15em;
}

.rentalSupport h2 {
  margin: 0 0 11px;
  color: var(--rental-blue);
  font-size: 23px;
  line-height: 1.45;
  font-weight: 700;
}

.rentalSupport__text {
  margin: 0 0 18px;
  color: #3f4951;
  font-size: 12px;
  line-height: 1.8;
}

.rentalButton--support {
  width: 230px;
  min-height: 44px;
}

.rentalSupport__image {
  position: absolute;
  top: 0;
  right: 0;

  width: 380px;
  height: 190px;
  margin: 0;

  overflow: hidden;
}

.rentalSupport__image img {
  width: 100%;
  height: 100%;
  max-width: none;
  display: block;
  object-fit: cover;
  object-position: center right;
}


/* ==================================================
   タブレット
================================================== */

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

  .rentalGuide__columns {
    gap: 30px;
  }

  .rentalSupport__box {
    padding-right: 310px;
  }

  .rentalSupport__image {
    width: 300px;
  }

  .rentalSupport h2 {
    font-size: 21px;
  }
}


/* ==================================================
   スマートフォン
================================================== */

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

  .companyPage.rentalPage .companyHero--rental .companyHero__lead br {
    display: none;
  }

  .rentalGuide {
    padding-top: 30px;
  }

  .rentalGuide__box {
    padding: 21px 18px;
  }

  .rentalGuide__heading {
    align-items: flex-start;
  }

  .rentalGuide__heading h2 {
    font-size: 15px;
  }

  .rentalGuide__columns {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .rentalGuide__columns p {
    font-size: 12px;
  }

  .rentalSectionHeading h2 {
    font-size: 22px;
  }

  .rentalProcedure__grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .rentalProcedureCard {
    min-height: 0;
    padding: 24px 19px;
  }

  .rentalProcedureCard__heading {
    align-items: flex-start;
  }

  .rentalProcedureCard h3 {
    font-size: 15px;
    text-align: left;
  }

  .rentalProcedureCard > p {
    font-size: 11px;
  }

  .rentalNotice {
    min-height: 70px;
    padding: 13px 14px 13px 52px;
  }

  .rentalNotice::before {
    left: 14px;
    width: 26px;
    height: 26px;
    font-size: 16px;
  }

  .rentalNotice p {
    text-align: left;
  }

  .rentalManual__link {
    min-height: 74px;
    padding: 12px 48px 12px 62px;

    font-size: 15px;
    text-align: left;
  }

  .rentalManual__link::before {
    left: 12px;
    width: 42px;
    height: 38px;
  }

  .rentalManual__link::after {
    right: 10px;
    width: 32px;
    height: 32px;
    font-size: 23px;
  }

  .rentalSupport__box {
    min-height: 310px;
    padding: 25px 19px 170px;
  }

  .rentalSupport h2 {
    font-size: 19px;
  }

  .rentalSupport__text {
    font-size: 11px;
  }

  .rentalSupport__text br {
    display: none;
  }

  .rentalSupport__image {
    top: auto;
    right: 0;
    bottom: 0;

    width: 270px;
    height: 165px;
  }
}

/* ==================================================
   安全利用案内：アイコン位置をボックス基準で固定
================================================== */

.rentalGuide__box {
  position: relative !important;
}

/* 見出しは配置基準にしない */
.rentalGuide__heading {
  position: static !important;
  display: block !important;

  min-height: 34px !important;
  padding-left: 48px !important;
  margin-bottom: 17px !important;
}

/* アイコンがheadingの外に出ても対象になる */
.rentalGuide__box .rentalInfoIcon {
  position: absolute !important;

  top: 26px !important;
  left: 30px !important;

  width: 34px !important;
  height: 34px !important;
  margin: 0 !important;

  display: block !important;
  transform: none !important;
}

.rentalGuide__box .rentalInfoIcon svg {
  display: block !important;

  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
}

.rentalGuide__heading h2 {
  margin: 0 !important;
  padding: 3px 0 0 !important;
}

/* ==================================================
   安全利用案内：アイコンを非表示
================================================== */

.companyPage.rentalPage
.rentalGuide__box
.rentalInfoIcon {
  display: none !important;
}

.companyPage.rentalPage
.rentalGuide__heading::before,
.companyPage.rentalPage
.rentalGuide__heading::after,
.companyPage.rentalPage
.rentalGuide__heading h2::before,
.companyPage.rentalPage
.rentalGuide__heading h2::after {
  content: none !important;
  display: none !important;
}

/* アイコン分の左余白をなくす */
.companyPage.rentalPage
.rentalGuide__heading {
  padding-left: 0 !important;
}

.companyPage.rentalPage
.rentalGuide__heading h2 {
  margin: 0 !important;
  padding: 0 !important;
}

/* ==================================================
   商品詳細：タイトルをPCで1行表示
================================================== */

.eastiProductSingle .eiProductDetailHero h1 {
  width: 100% !important;
  max-width: none !important;

  font-size: clamp(40px, 3vw, 50px) !important;
  line-height: 1.25 !important;
  letter-spacing: 0.04em !important;

  white-space: nowrap !important;
  word-break: keep-all !important;
}

/* スマートフォンでは通常どおり折り返す */
@media screen and (max-width: 767px) {

  .eastiProductSingle .eiProductDetailHero h1 {
    font-size: 35px !important;
    white-space: normal !important;
    word-break: normal !important;
  }
}


/* ==================================================
   商品紹介 カテゴリー一覧
   PC：4列 / SP：2列
================================================== */

.eiProductCategoryGrid {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 40px 30px;
}

.eiProductCategoryCard__image {
	aspect-ratio: 1 / 1;
}

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

	.eiProductCategoryGrid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 30px 20px;
	}

}

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

	.eiProductCategoryGrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 25px 15px;
	}

}


/* ==================================================
   商品カテゴリー
   福祉用品と災害用品の間隔
================================================== */

.eiProductCategoryGroup + .eiProductCategoryGroup {
	margin-top: 120px !important;
}

@media screen and (max-width: 768px) {
	.eiProductCategoryGroup + .eiProductCategoryGroup {
		margin-top: 70px !important;
	}
}

/* 災害用品：タイトル下の余白 */
.eiProductCategoryGroup--disaster-supplies .eiProductCategoryGrid {
	margin-top: 45px;
}

@media screen and (max-width: 768px) {
	.eiProductCategoryGroup--disaster-supplies .eiProductCategoryGrid {
		margin-top: 30px;
	}
}


/* ==================================================
   商品カテゴリーカード
   画像サイズ統一・デザイン改善
================================================== */

/* カード全体 */
.eiProductCategoryCard {
	background: #fff;
	border: 1px solid #e2e8ed;
	border-radius: 10px;
	overflow: hidden;
	transition:
		transform .3s ease,
		box-shadow .3s ease,
		border-color .3s ease;
}

.eiProductCategoryCard:hover {
	transform: translateY(-5px);
	border-color: #c8d8e5;
	box-shadow: 0 12px 30px rgba(0, 60, 110, .10);
}

.eiProductCategoryCard > a {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none !important;
}


/* ==================================================
   画像
================================================== */

.eiProductCategoryCard__image {
	width: 100%;
	aspect-ratio: 1 / 1;
	padding: 25px;

	display: flex;
	align-items: center;
	justify-content: center;

	overflow: hidden;
	background: #fff;
}

.eiProductCategoryCard__image img {
	display: block;

	width: 100%;
	height: 100%;

	object-fit: contain;
	object-position: center;

	transition: transform .4s ease;
}

.eiProductCategoryCard:hover
.eiProductCategoryCard__image img {
	transform: scale(1.04);
}


/* ==================================================
   テキスト部分
================================================== */

.eiProductCategoryCard__body {
	flex: 1;

	padding: 20px 20px 22px;

	display: flex;
	flex-direction: column;
	align-items: flex-start;

	border-top: 1px solid #edf0f2;
}


/* カテゴリー名 */
.eiProductCategoryCard__body h3 {
	width: 100%;
	min-height: 3em;
	margin: 0 0 18px;

	display: flex;
	align-items: flex-start;

	color: #222;
	font-size: 18px;
	line-height: 1.5;
	font-weight: 700;
	text-align: left;
	letter-spacing: .02em;
}


/* ==================================================
   詳しくはこちら
================================================== */

.eiProductCategoryCard__button {
	width: auto;
	max-width: none;
	min-height: 0;
	margin: auto 0 0;
	padding: 0;

	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;

	color: #005bac;
	background: transparent;
	border-radius: 0;

	font-size: 13px;
	line-height: 1.4;
	font-weight: 700;
	letter-spacing: .04em;

	transition: gap .3s ease;
}

.eiProductCategoryCard__button::before {
	content: "";

	width: 22px;
	height: 1px;

	background: #005bac;
}

.eiProductCategoryCard:hover
.eiProductCategoryCard__button {
	gap: 15px;
	background: transparent;
}


/* 「>」 */
.eiProductCategoryCard__button span:last-child {
	font-size: 18px;
	line-height: 1;
}


/* ==================================================
   タブレット
================================================== */

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

	.eiProductCategoryCard__image {
		padding: 20px;
	}

	.eiProductCategoryCard__body {
		padding: 18px 16px 20px;
	}

	.eiProductCategoryCard__body h3 {
		font-size: 16px;
	}

}


/* ==================================================
   スマートフォン
================================================== */

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

	.eiProductCategoryCard__image {
		aspect-ratio: 1 / 1;
		padding: 15px;
	}

	.eiProductCategoryCard__body {
		padding: 13px 12px 15px;
	}

	.eiProductCategoryCard__body h3 {
		min-height: 3em;
		margin-bottom: 12px;

		font-size: 13px;
		line-height: 1.5;
	}

	.eiProductCategoryCard__button {
		font-size: 11px;
	}

	.eiProductCategoryCard__button::before {
		width: 16px;
	}

}


/* ==================================================
   商品カテゴリ見出し → カードまでの余白を統一
================================================== */

.eiProductCategoryGroup__heading {
	margin-bottom: 45px !important;
}

/* 念のため個別指定も統一 */
.eiProductCategoryGroup--welfare-equipment .eiProductCategoryGrid,
.eiProductCategoryGroup--disaster-supplies .eiProductCategoryGrid {
	margin-top: 0 !important;
}

@media screen and (max-width: 768px) {
	.eiProductCategoryGroup__heading {
		margin-bottom: 30px !important;
	}
}

/* ==================================================
	pagenav
===================================================*/
.pagenav{display:flex;width:100%;justify-content:center;margin:40px auto 0;}
.pagenav>*{padding:5px 10px;border:1px solid #000;text-decoration:none;color:#000;line-height:1.2;}
.pagenav>*:not(:first-child){ margin-left:10px;}
.pagenav>a:hover{background:#000;color:#fff;text-decoration:none;}
.pagenav>span{background:#fff;color:#000!important;}

.newspage .time{width:240px;color:#0f602b;font-weight:bolder;font-size:24px;}
.newspage .title{width:calc(100% - 240px);font-size:24px;}
.newinfo{margin-bottom:20px;}
.newinfo .time{color:#0f602b;font-weight:bolder;display:block;}
.newinfo .title{}
.newcontent{}
.newcontent figure{margin-bottom:15px;}
.newcontent p{margin-bottom:20px;}
@media (max-width:1520px){
  .newspage{}
  .newspage .time{width:200px;font-size:20px;}
  .newspage .title{width:calc(100% - 200px);font-size:20px;}
}
@media (max-width:1080px){
  .newspage{padding:10px;}
  .newinfo{margin-bottom:15px;}
  .newspage .time{width:160px;font-size:18px;}
  .newspage .title{width:calc(100% - 160px);font-size:18px;}
}
@media (max-width:780px){
  .newspage .time,.newspage .title{width:100%;}
  .newspage .title{margin-top:5px;}
}

/*2026-09-30*/
.contactForm>dl{display:flex;border-top:1px solid #e6ebef;}
.contactForm>dl>dt{padding:20px;width:220px;background:#f3f7fb;font-size:13px;font-weight:bold;}
.contactForm>dl>dt span{display:block;}
.contactForm>dl>dt font,.contactForm>dl>dt small{display:inline-block;padding:2px 5px;background:#fff;font-size:10px;font-weight:normal;}
.contactForm>dl>dt font{color:#e7473c;border:1px solid #e7473c;}
.contactForm>dl>dt small{color:#555;border:1px solid #aeb6bd;}
.contactForm>dl>dd{padding:20px;width:calc(100% - 220px);font-size:13px;}
.contactForm>dl>dd input[type="text"],
.contactForm>dl>dd input[type="email"],
.contactForm>dl>dd input[type="tel"],
.contactForm>dl>dd select,
.contactForm>dl>dd textarea{padding:11px 13px;width:100%;background:#fff;border:1px solid #dce4ea;border-radius:3px;font-size:13px;}
.contactForm>dl>dd select{width:50%;}
.contactForm>dl>dd input:focus,.contactForm>dl>dd textarea:focus{border-color:#70a8d2;box-shadow:0 0 0 3px rgba(0,91,172,0.1);}
.contactForm>dl>dd .wpcf7-list-item-label{font-size:13px;}
.contactForm>dl>dd>p>span.wpcf7-form-control-wrap{display:block;width:40%;}
.contactForm>dl>dd>p>span.wpcf7-form-control-wrap>input{width:100%;}
.contactForm>dl>dd.contactFormChe>p>span.wpcf7-form-control-wrap{width:100%;}
.contactForm>dl>dd.contactFormTxt>p>span.wpcf7-form-control-wrap{width:100%;}
.contactForm>dl>dd.contactFormSep>p{display:flex;align-items:center;}
.contactForm>dl>dd.contactFormSep>p>span.wpcf7-form-control-wrap{width:50%;}
.contactForm>dl>dd.contactFormSep>p>span.wpcf7-form-control-wrap>input{width:100%;}
.contactForm>dl>dd.contactFormSep .contactFormSepSym{display:block;padding:0 15px;font-size:12px;color:#a6adb4;}
.wpcf7-list-item label{display:flex;align-items:center;}
.wpcf7-list-item label>input{margin-right:5px;}
.contactAcp{padding:20px 15px 0;text-align:center;font-size:12px;}
.contactAcp a{color:#005bac;font-weight:700;}
.send{display:flex;justify-content:center;margin-top:20px;}
.send input{margin:0 15px;width:260px;height:56px;font-size:15px;font-weight:bold;color:#fff;border-radius:999px;
	background:linear-gradient(90deg,#0670c8,#00529b);
}
@media (max-width:768px){
	.contactForm>dl{display:block;}
	.contactForm>dl>dt{width:100%;}
	.contactForm>dl>dd{width:100%;}
	.contactForm>dl>dd.contactFormSep>p{display:block;}
	.contactForm>dl>dd.contactFormSep>p>span.wpcf7-form-control-wrap{width:100%;}
	.contactForm>dl>dd.contactFormSep>p>span.wpcf7-form-control-wrap:not(:first-child){margin-top:10px;}
	.contactForm>dl>dd.contactFormSep .contactFormSepSym{display:none;}
	.contactForm>dl>dd>p>span.wpcf7-form-control-wrap{width:100%;}
	.contactForm>dl>dd select{width:100%;}
}


