@charset "utf-8";

:root{
  --blue:  #6366F1; /* 旧 #6E96FA / 明るめインディゴ(indigo-500) */
  --blue2: #4F46E5; /* 旧 #4A7AF7 / 主役インディゴ(indigo-600) */
}

.head_title h2 {
    font-size: 28px;
    letter-spacing: .5px;
}
.en {
    font-family: 'Roboto', sans-serif;
    text-transform: uppercase;
}

/* header
----------------------------------------------------------- */

.header_bg2 {
    position: absolute;
    height: 86px;
    width: 100%;
}
.site_logo {
    position: absolute;
    top: 20px;
    left: 20px;
}
.site_logo a {
    display: block;
    width: 120px;
    height: 40px;
}
.site_logo a:before {
    content: "";
    position: absolute;
    top: 0px;
    left: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    background: url(../../../../common/img/white_logo.svg) top left no-repeat;
    background-size: contain;
}
.fixed .site_logo a:before {
    background: url(../../../../common/img/logo.svg) top left no-repeat;
    background-size: contain;
}
.site_logo a:hover {
	opacity: 0.8;
	text-decoration: none;
}
.site_logo .rec_txt {
	display: inline-block;
    margin-left: 7px;
    padding-left: 7px;
    border-left: 1px solid #ddd;
    color: #5c5c5c;
}



/* eyecatch
----------------------------------------------------------- */

#eyecatch {
	position: relative;
    overflow: hidden;
    padding: 120px 0px 70px;
    display: flex;
    align-items: center;
    background: linear-gradient(120deg, #312E81 0%, #4338CA 55%, #4F46E5 100%);
}

#eyecatch .ikt2 {
    font-size: 24px;
    border-radius: 50px;
    text-align: left;
    padding-left: 78px;
}

#eyecatch .ikt2:after{
    right: 36px;
}

#eyecatch .lead_sub {
    margin-bottom: 15px;
}

#eyecatch .memo {
    margin-top: 12px;
    color: #d4dfe4;
    font-size: 10px;
}

.inner-content {
    position: relative;
    z-index: 3;
    margin: 0px auto;
    width: 1140px;
}

.inner-content h1 {
    margin-bottom: 15px;
    font-size: 42px;
    line-height: 1.25;
    letter-spacing: 0.5px;
    font-weight: 900;
    color: var(--blue2);
}
.inner-content h1>span {
    position: relative;
    display: inline-block;
    margin: 5px 0;
    padding: 4px 20px 6px;
    transform: skew(-15deg);
}
.inner-content h1>span:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    display: block;
    width: 100%;
    background-color: rgb(255 255 255);
    opacity: 0;
    animation: fadein .1s ease-out 1.6s 1 forwards;
}
.inner-content h1>span:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 100%;
    bottom: 0;
    z-index: 1;
    display: block;
    background-color: var(--blue2);
    animation: hero_ttl_bg .9s ease-out 1.1s 1 forwards;
}

.inner-content h1>span:nth-of-type(2):after {
    animation-delay: 1.3s;
}

.inner-content h1 span span {
    position: relative;
    display: block;
    z-index: 10;
    opacity: 0;
    -webkit-animation: fadein .1s ease-out 1.6s 1 forwards;
    animation: fadein .1s ease-out 1.6s 1 forwards;
    transform: skew(15deg);
}
.inner-content h1 span span i {
    font-style: normal;
    font-size: 42px;
}

.inner-content .sub {
    display: block;
    margin: 12px 0px 12px;
    font-size: 11px;
    letter-spacing: 1.2px;
    font-weight: 600;
    line-height: 1;
    text-transform: initial;
    color: #fff;
}
#eyecatch p.eye_txt {
    position: relative;
    z-index: 2;
    font-weight: 500;
    font-size: 18px;
    color: #fff;
}
#eyecatch .frm_btn {
    margin-top: 20px;
    display: inline-block;
}

#eyecatch .left {
    position: relative;
    z-index: 3;
    width: calc(100% - 504px);
}

#eyecatch .jisseki {
    display: block;
    margin: 20px 0 12px;
    max-width: 480px;
}


#eyecatch .right {
    width: 504px;
    padding-left: 50px;
    text-align: right;
}

#eyecatch .fv_img {
    position: absolute;
    z-index: 3;
    width: 454px;
    height: 600px;
    right: 0px;
    bottom: -110px;       /* 足元を下げて帯の後ろに隠し、繋がり(切れ目)を見せない */
    background-image: url(../img/fv_woman_03.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center bottom;
}
.fv_deco {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}
.fv_deco img {
    position: absolute;
    filter: brightness(0) invert(1);
    opacity: .12;
}
/* FV */

.loop {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    overflow: hidden;
    width: 100%;
}

.loop:before {
    background-color: rgb(22 74 113 / 85%);
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    content: ' ';
    z-index: 2;
}
.loop__box {
    width: 100%;
}

/* ------------------------------
   スライダー1
------------------------------ */
.loopSliderWrap {
	top: 0;
	left: 0;
	height: 200px;
	overflow: hidden;
	position: absolute;
	animation: loopScroll 30s linear infinite; /* durationはJSで実幅から再設定 */
	will-change: transform;
}
/* 同一セット×2を -50% 動かすことで継ぎ目が必ず一致＝途切れない無限ループ */
@keyframes loopScroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}
.loopSlider {
	margin: -24px auto 0;  /* 帯を少し下げ、背景の色の境目(紺→薄グレー)にかぶせる。≤1080pxで解除 */
	width: 100%;
	height: 165px;
	text-align: left;
	position: relative;
	overflow: hidden;
    z-index: 5;
}
.loopSlider ul {
	height: 250px;
	float: left;
	overflow: hidden;
}
.loopSlider ul li {
	width: 250px;
	height: 250px;
	float: left;
	display: inline;
	overflow: hidden;
}
.loopSlider ul li img {
	width: 100%;
}

/* needs
--------------------------------------------*/
.needs_area {
    position: relative;
    overflow: hidden;
    background: #fff;
}
.needs_area:before {
    content: "";
    position: absolute;
    top: 74px;
    right: max(24px, calc((100vw - 1120px) / 2));
    width: min(38vw, 420px);
    height: min(28vw, 300px);
    background: url(../img/hero/devices.png) center / contain no-repeat;
    opacity: .08;
    filter: grayscale(1) saturate(1.2);
    transform: rotate(-6deg);
    pointer-events: none;
}
.needs_area:after {
    content: none;
    position: absolute;
    left: max(24px, calc((100vw - 1120px) / 2));
    bottom: 34px;
    font-family: "Montserrat", sans-serif;
    font-size: clamp(80px, 12vw, 178px);
    font-weight: 900;
    line-height: .8;
    letter-spacing: .04em;
    color: transparent;
    -webkit-text-stroke: 1px rgba(67,56,202,.12);
    pointer-events: none;
}
.needs_area .inner {
    position: relative;
    z-index: 1;
}
.needs_area .head_title {
    display: block;
    max-width: 980px;
    margin: 0 auto 38px;
    text-align: center !important;
}

.needs_area .head_arrow {
    margin: 0 0 16px;
}
.needs_area .head_arrow span {
    color: #4338CA;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1.35;
}
.needs_area .head_arrow span:before,
.needs_area .head_arrow span:after {
    background-color: #4338CA;
}
.needs_area .head_title h2 {
    max-width: 940px;
    margin: 0 auto;
    color: #111827;
    font-size: clamp(30px, 3vw, 38px);
    line-height: 1.35;
    letter-spacing: .02em;
    text-align: center;
    white-space: nowrap;
}
.needs_area .head_title h2:after {
    display: none;
}
.needs_lead {
    max-width: 610px;
    margin: 16px auto 0;
    color: #64748b;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.95;
    letter-spacing: .04em;
    text-align: center;
}

.head_arrow span {
    position: relative;
    display: inline-block;
    padding: 0 40px;
    color: var(--blue);
    font-size: 28px;
    font-weight: 600;
    letter-spacing: 0px;
}
.head_arrow span:before,
.head_arrow span:after {
    content: '';
    position: absolute;
    top: 50%;
    display: inline-block;
    width: 40px;
    height: 2px;
    background-color: var(--blue);
}
.head_arrow span:before {
    left: -25px;
    -moz-transform: rotate(60deg);
    -webkit-transform: rotate(60deg);
    -ms-transform: rotate(60deg);
    transform: rotate(60deg);
}
.head_arrow span:after {
    right: -25px;
    -moz-transform: rotate(-60deg);
    -webkit-transform: rotate(-60deg);
    -ms-transform: rotate(-60deg);
    transform: rotate(-60deg);
}

.head_arrow.bule span {
	color: var(--blue);
}
.head_arrow.bule span:before,
.head_arrow.bule span:after {
    background-color: var(--blue);
}

.sv_list {
    display: grid;
    grid-template-columns: repeat(6, minmax(88px, 1fr));
    gap: 14px;
    width: 100%;
    max-width: 880px;
    margin: 0 auto;
    align-items: start;
}
.sv_list li {
    position: relative;
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    text-align: center;
    box-shadow: none;
    transition: transform .25s ease;
}
.sv_list li:hover {
    transform: translateY(-4px);
}
.sv_list li .ico {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 104px;
    height: 104px;
    margin: 0 auto 12px;
    overflow: hidden;
    border-radius: 50%;
    background: linear-gradient(145deg, #1496c6 0%, #0f73b5 58%, #1559a8 100%);
    color: #fff;
    box-shadow: 0 14px 28px rgba(17, 94, 163, .18), inset 0 -10px 18px rgba(11, 57, 113, .18);
    transition: transform .25s ease, box-shadow .25s ease;
}
.sv_list li .ico:before {
    content: "";
    position: absolute;
    inset: 9px;
    border: 2px solid rgba(255, 255, 255, .22);
    border-radius: inherit;
}
.sv_list li .ico:after {
    content: "";
    position: absolute;
    top: 13px;
    left: 18px;
    width: 54px;
    height: 20px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(255,255,255,.32), rgba(255,255,255,0));
    transform: rotate(-18deg);
}
.sv_list li:nth-child(2) .ico { background: linear-gradient(145deg, #178ac4 0%, #0e6db1 58%, #1256a5 100%); }
.sv_list li:nth-child(3) .ico { background: linear-gradient(145deg, #1590cb 0%, #116fb7 58%, #174fa4 100%); }
.sv_list li:nth-child(4) .ico { background: linear-gradient(145deg, #1684c1 0%, #1265ad 58%, #164b9d 100%); }
.sv_list li:nth-child(5) .ico { background: linear-gradient(145deg, #148fbd 0%, #0e69aa 58%, #134b96 100%); }
.sv_list li:nth-child(6) .ico { background: linear-gradient(145deg, #178fca 0%, #0f70b4 58%, #1557a3 100%); }
.sv_list li:hover .ico {
    transform: scale(1.04);
    box-shadow: 0 18px 34px rgba(17, 94, 163, .24), inset 0 -10px 18px rgba(11, 57, 113, .18);
}
.sv_list li .ico svg {
    position: relative;
    z-index: 1;
    width: 52px;
    height: 52px;
    stroke-width: 1.35;
}
.sv_list li .tl {
    margin: 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--black);
    letter-spacing: 0;
    line-height: 1.45;
    white-space: nowrap;
}
.sv_list li .desc {
    display: none;
}

/* 悩み
--------------------------------------------*/

section.lp_nayami_area {
    position: relative;
    background-color: #f5f6fc;                        /* SVG読込前のフォールバック */
    background-image: url(../img/nayami_bg.svg);      /* オリジナル：淡いインディゴの有機ブロブ（参考のnayami_bk.jpgを置換） */
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    padding-bottom: 170px;
}

.lp_nayami_area .tl_box {
	margin-bottom: 40px;
	align-items: center;
}
.nayami_list {
    max-width: 750px;
    margin: 0 auto;
}

.lp_nayami_area .img {
    position: absolute;
    bottom: 0px;
    left: calc(50% - 420px);
}

.lp_nayami_area .img img.talk-icon {
    margin: 0 80px;
}

.lp_nayami_area .bt_arrow {
    position: relative;
    top: 130px;
    z-index: 1;
    margin: 20px auto 0px;
    max-width: 180px;
    height: 60px;
    clip-path: polygon(50% 60px, 0% 0%, 100% 0%);
    background: #6cb2e1;
}


.problem_area_wrap {
	margin-top: 30px;
}


body.home section.problem_area {
    background: var(--base);
    margin-top: -180px;
    padding-top: 320px;
}

.problem_area_list {
    justify-content: center;
}
/* 悩みカード：参考サイトの「枠線カード＋点線＋モヤモヤアイコン」から差別化し、
   枠線なしの吹き出し風＋引用符＋マーカー強調（お客様の声トーン）に変更 */
.problem_area_list li {
    position: relative;
    width: calc(100% / 3 - 24px);
    margin: 12px;
    padding: 30px 26px 26px;
    background: #ffffff;
    border: none;
    border-radius: 18px;
    text-align: left;
    box-shadow: 0 10px 26px rgb(49 46 129 / 10%);
    transition: transform .2s ease, box-shadow .2s ease;
}
.problem_area_list li:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 32px rgb(49 46 129 / 16%);
}
/* 左肩の装飾引用符（モヤモヤアイコンの置き換え） */
.problem_area_list li:after {
    position: absolute;
    content: "\201C";
    top: 4px;
    left: 16px;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 58px;
    line-height: 1;
    color: var(--blue2);
    opacity: .16;
}

.problem_area_list li p {
    position: relative;
    z-index: 1;
    padding-top: 12px;
    font-size: 18px;
    line-height: 1.7;
    font-weight: 600;
    color: #2b2f45;
}

/* 2行目：点線下線 → インディゴのマーカー強調に変更 */
.problem_area_list li .line {
    border-bottom: none;
    font-weight: 800;
    color: var(--blue2);
    background: linear-gradient(transparent 62%, #c7d2fe 62%);
    padding: 0 2px;
}



/* 比較ビズで解決
--------------------------------------------*/

section.biz_help { 
    background: var(--blue2);
    padding: 60px 0;
}
.biz_help .flex_in {
    align-items: center;
}
.biz_help .ct_base_left {
    width: 520px;
}
.biz_help .ct_base_right {
    width: calc(100% - 520px);
    padding-top: 0px;
    padding-left: 20px;
}

.biz_help .ct_base_right p {
    font-size: 16px;
}

.feature_area {
    background: url(https://www.biz.ne.jp/servicelp/lp04/hp-design/img/sec_stripe_bg.jpg);
}
.feature_list {
	margin-top: 28px;
}
/* .biz_help .flex_in の align-items:center を打ち消し、カードを等高でトップ揃えに */
.biz_help .feature_list {
	align-items: stretch;
}
/* POINTカード：参考テンプレの「上ボーダー白カード＋グレーPOINT＋黄マーカー」から差別化。
   角丸カード＋POINTのピル型バッジ＋インディゴマーカー＋ホバー浮遊で悩みセクションと統一感 */
.feature_list li {
	position: relative;
	width: calc(100% / 4 - 20px);
	margin: 10px;
	padding: 26px 18px 22px;
	background-color: #fff;
	border-radius: 18px;
	box-shadow: 0 12px 28px rgb(23 20 74 / 22%);
	transition: transform .2s ease, box-shadow .2s ease;
}
.feature_list li:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 38px rgb(23 20 74 / 30%);
}

.feature_list li:before {
    display: none;
}

.feature_list li .tl_area {
	margin: 0px 0px 14px;
	text-align: center;
}
.feature_list li .tl_area .gf {
	display: inline-block;
	margin-bottom: 10px;
	padding: 5px 16px;
	line-height: 1;
	font-family: 'Montserrat', sans-serif;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 1.5px;
	color: #fff;
	background: linear-gradient(135deg, var(--blue) 0%, var(--blue2) 100%);
	border-radius: 999px;
	box-shadow: 0 4px 10px rgb(79 70 229 / 30%);
}
.feature_list li .tl_area h3 {
	font-size: 18px;
	font-weight: 600;
    line-height: 25px;
    letter-spacing: 1px;
    color: #333;
}

.feature_list li .tl_area h3 span{
    color: var(--blue2);
    font-size: 20px;
    font-weight: 800;
    background: linear-gradient(transparent 70%, #c7d2fe 70%);
}

.feature_list li .img {
    max-width: 170px;
    margin: 18px auto 14px;
    padding: 0 15px;
	text-align: center;
}
.feature_list li .txt p {
	font-size: 13px;
    line-height: 1.8;
}


/* No.1
----------------------------------------------------------- */
section.rank {
    margin-top: -100px;
    padding-bottom: 0;
}
.rank .bg_img {
    padding: 60px 0;
    background: center / cover no-repeat url(../../../../common/img/no.1_bg.jpg);
}
.rank_title {
    width: 90%;
    margin: 0 auto 3%;
}
.rank_txt {
    position: relative;
    height: 300px;
}
.rank_txt_inner {
    margin-top: 5%;
}
.rank_txt_inner p {
    position: relative;
    padding-top: 6px;
    padding-bottom: 10px;
    border-bottom: 1px dotted var(--white);
    line-height: 1.6;
}
.rank_txt_inner p span {
    padding-left: 70px;
}

.rank_contents p {
    margin-top: 2%;
    text-shadow: 2px 2px 2px var(--milky-white);
}
.rank_txt_img {
    position: absolute;
    bottom: 0;
    right: -5%;
}

/* 他社比較
----------------------------------------------------*/
.table_area { 
    background: url(../../../../help/img/sec_stripe_bg.jpg);
}

.table_area .left_title {
	width: 46%;
}
.table_area .left_title h2 {
	text-align: right;
	margin: initial;
}

.table_area .right_title {
	width: calc(54% - 40px);
	margin-left: 40px;
}
.table_area .title_area {
	align-items: center;
	margin-bottom: 50px;
}

.table_area .right_title .big {
	display: block;
	font-size: 82px;
	color:#4A7AF7;;
	text-align: left;
}

.table_area table span {
    color: #ed3662;
    font-size: 28px;
    font-weight: bold;
}

table {
	border-collapse: collapse;
	margin: 40px auto;
	padding: 0;
	width: 1000px;
	table-layout: fixed;
}
  
table tr {
	background-color: #eee;
	padding: .35em;
}

table tbody tr td {
	border-bottom: 2px solid #fff;
}

table tr:nth-child(even){
	background-color: #dddddd;
}
table th,
table td {
padding: 1em 10px 1em 1em;
border-right: 2px solid #fff;
}
table th {
font-size: 20px;
text-align: center;
}
table thead tr{
background-color: #444444;
color:#fff;
}

table tbody th {
    background: #4A7AF7;;
    color: #fff;
    text-align: center;
}
.table_area .txt {
    text-align: left;
    font-size: 16px;
    font-weight: 500;
    text-align: center;
}
.price{
text-align: right;
color: #167F92;
font-weight: bold;
}
table thead td.non{
width: 180px;
background:#fff;
visibility: hidden;
}
.table_area .dl {
    color: #FF801E;
}
.table_area .bt {
    color: #000000;
}
.table_area .blue_bk {
    background-color: #6eaae9;
}
.table_area .biz_bk {
    background-color: #d6e7f9;
}
.table_area .biz_bk2 {
background-color: #eaf3fc;
}

.table_area .biz_cell {
	background-color: #4A7AF7;
	position: relative;
	font-size: 26px;
    font-weight: 600;
}
.table_area .biz_cell:after{
    content: '';
    width: 100%;
    height: 30px;
    background-color: #4A7AF7;
    position: absolute;
    top: -12px;
    left: 0px;
    border-radius: 10px;
}

/* CTA
--------------------------------------------*/
section.lp_cta {
	position: relative;
    padding: 80px 0px 60px;
    background: url(../img/cta_bk.jpg) top center no-repeat;
    background-size: cover;
    z-index: 0;
    background: var(--blue2);
}

.lp_cta.cta .inner {
	position: relative;
    width: 980px;
}

.lp_cta.cta .head_arrow {
	margin-bottom: 15px;
}
.lp_cta.cta .head_title h2 {
    color: #fff;
}
.lp_cta.cta .award_txt {
    max-width: 626px;
    align-items: center;
    margin-bottom: 15px;
}
.lp_cta.cta .award {
    width: 450px;
}

.lp_cta.cta .cta_tl p {
	color: #fff;
	font-size: 18px;
}

.lp_cta.cta .head_title h2:after {
    background: #fff;
}

.lp_cta .woman_img {
    position: absolute;
    bottom: -60px;
    right: -8%;
    width: 420px;
    z-index: -1;
}
.lp_cta .woman_img img {
    width: 100%;
}

.lp_cta ul li{
    background-color: #ffffff;
    color: #4A7AF7;
    margin-right: 8px;
    font-size: 18px;
    font-weight: 600;
    padding: 3px 14px 5px 14px;
    transform: skew(-15deg);
}

.lp_cta ul li:last-child{
    margin-right: 0px;
}
.lp_cta ul li>span {
    display: block;
    transform: skew(15deg);
    letter-spacing: 0;
}
.lp_cta ul li span.mod {
    font-size: 22px;
    color: #FF801E;
    margin: 0 2px;
    font-weight: 700;
}

.head_arrow {
    position: relative;
    margin-bottom: 30px;
}

.head_arrow h2 {
    position: relative;
    display: inline-block;
    padding: 0 48px;
    color: var(--blue);
    font-size: 34px;
    font-weight: 700;
    letter-spacing: 0px;
}
.head_arrow h2:before,
.head_arrow h2:after {
    content: '';
    position: absolute;
    top: 50%;
    display: inline-block;
    width: 54px;
    height: 2px;
    background-color: var(--blue);
}
.head_arrow h2:before {
    left: -25px;
    -moz-transform: rotate(60deg);
    -webkit-transform: rotate(60deg);
    -ms-transform: rotate(60deg);
    transform: rotate(60deg);
}
.head_arrow h2:after {
    right: -25px;
    -moz-transform: rotate(-60deg);
    -webkit-transform: rotate(-60deg);
    -ms-transform: rotate(-60deg);
    transform: rotate(-60deg);
}

.head_arrow.white h2 {
	color: #fff;
}
.head_arrow.white h2:before,
.head_arrow.white h2:after {
    background-color: #fff;
}

.lp_cta.cta .cta_tl .sub {
    position: absolute;
    top: -60px;
    left: -60px;
    z-index: 0;
    color: rgb(255 255 255 / 5%);
    font-size: 160px;
    letter-spacing: .5px;
    line-height: 1;
    font-weight: 900;
    text-align: center;
    white-space: nowrap;
}

.lp_cta .frm_btn {
    display: inline-block;
}

.lp_cta .ikt2 {
    width: 626px;
    font-size: 28px;
    text-align: left;
    padding-left: 102px;
    border-radius: 50px;
}

.lp_cta.cta .cta_tl .catch_left p {
    color: #fff;
    font-size: 43px;
    line-height: 1.2;
    font-weight: 600;
    margin-right: 6px;
    letter-spacing: -3px;
}

.lp_cta.cta .flex_in {
    align-items: center;
}

.lp_cta.cta .cta_tl .catch_left span {
    letter-spacing: 5px;
}

.lp_cta.cta .cta_tl .catch_right h2 {
    color: #ffeb00;
    font-size: 94px;
    font-weight: 700;
    white-space: nowrap;  /* 「0円ではじまる。」を一行で（折り返し禁止） */
}


/* SMALL_CTA
--------------------------------------------*/

section.small_cta {
	position: relative;
    padding: 45px 0px;
    background: url(../img/cta_bk.jpg) top center no-repeat;
    background-size: cover;
    z-index: 0;
    background: var(--blue2);
}

.small_cta.cta .head_title h2 {
    color: #fff;
}

.small_cta.cta .cta_tl .catch_left p {
    color: #fff;
    font-size: 34px;
    line-height: 1.2;
    font-weight: 600;
    margin-right: 6px;
    letter-spacing: -3px;
}

.small_cta.cta .cta_tl .catch_left span {
    letter-spacing: 4px;
}

.small_cta.cta .cta_tl .catch_right h2 {
	color: #ffeb00;
    font-size: 74px;
    font-weight: 700;
}

.small_cta.cta .head_title h2:after {
    background: #fff;
}

.small_cta ul li{
    background-color: #ffffff;
    color: #4A7AF7;
    margin-right: 8px;
    font-size: 18px;
    font-weight: 600;
    padding: 3px 10px 5px 10px;
    transform: skew(-15deg);
}

.small_cta ul li:last-child{
    margin-right: 0px;
}
.small_cta ul li>span {
    display: block;
    transform: skew(15deg);
    letter-spacing: 0;
}
.small_cta ul li span.mod {
    font-size: 22px;
    color: #FF801E;
    margin: 0 2px;
}


.small_cta .cta_tl .sub {
    position: absolute;
    top: -60px;
    left: -60px;
    z-index: 0;
    color: rgb(255 255 255 / 5%);
    font-size: 160px;
    letter-spacing: .5px;
    line-height: 1;
    font-weight: 900;
    text-align: center;
    white-space: nowrap;
}

.small_cta .frm_btn {
    display: inline-block;
}

.small_cta .ikt2 {
    padding: 24px 0px;
    width: 470px;
    font-size: 24px;
    text-align: left;
    padding-left: 96px;
    border-radius: 50px;
}

.small_cta .ikt2:after{
    right: 48px;
}

.small_cta.cta .flex_in {
    justify-content: center;
    margin: 0 auto;
    align-items: center;
} 

.small_cta.cta .flex_in .left{
    margin-right: 30px;
}




/* ご利用の流れ
--------------------------------------------*/

/* ご利用の流れ：縦タイムライン型（参考サイトのカード横並び構成から差別化）
   カード装飾/矢印は help共有CSS由来のため .flow_area スコープで上書きして打ち消す */
.flow_area .flow_list {
    counter-reset: flow;
    position: relative;
    margin: 50px auto 56px; /* 最終ステップの下に余白を確保 */
    max-width: 760px;
    padding-left: 0;
}
/* タイムラインの縦ライン（番号バッジ中心を貫く） */
.flow_area .flow_list:before {
    content: "";
    position: absolute;
    left: 33px;
    top: 34px;
    bottom: 34px;
    width: 2px;
    background: var(--blue2);
    opacity: .3;
    z-index: 0;
}
.flow_area .flow_list li {
    counter-increment: flow;
    position: relative;
    display: flex;
    flex-direction: row-reverse;
    flex-wrap: nowrap;
    align-items: center;
    gap: 26px;
    width: 100%;
    margin: 0 0 26px;
    padding: 22px 28px 22px 82px;
    background: #fff;
    border: none;
    border-radius: 14px;
    box-shadow: 0 6px 18px rgb(31 45 61 / 8%);
}
.flow_area .flow_list li:last-child {
    margin-bottom: 0;
}
/* 番号バッジ（旧・カード間の矢印を置き換え） */
.flow_area .flow_list li:before {
    content: counter(flow, decimal-leading-zero);
    position: absolute;
    left: 8px;
    top: 50%;
    width: 50px;
    height: 50px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: var(--blue2);
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-weight: 800;
    font-size: 18px;
    line-height: 44px;
    text-align: center;
    box-shadow: 0 3px 10px rgb(74 122 247 / 35%);
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    z-index: 1;
}
/* 画像は右、テキストは左（元は画像左/テキスト右だったのを反転） */
.flow_area .flow_list li .img {
    flex: 0 0 220px;
    width: 220px;
    margin: 0;
}
.flow_area .flow_list li .img img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}
.flow_area .flow_list li .tl_area {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 0;
    text-align: left;
    /* help共有CSSの display:flex を打ち消し、gf/h3/画像/p を常に縦積み左揃えに
       （画像行でモバイル時にタイトルが右へずれるのを防ぐ） */
    display: block;
}
.flow_area .flow_list li .tl_area .gf {
    margin-bottom: 4px;
    font-size: 13px;
    letter-spacing: 1px;
    color: var(--blue2);
}
.flow_area .flow_list li .tl_area h3 {
    margin: 2px 0 10px;
    font-size: 21px;
    text-align: left; /* イラスト有無でタイトルの中央位置がずれないよう左揃えに統一 */
}
.flow_area .flow_list li .tl_area p {
    font-size: 15px;
}

.voice_txt {
    margin-bottom: 50px;
    text-align: center;
}

.access_area .left {
    width: calc(100% - 400px);
}
.access_area .right {
    width: 400px;
}
.pro_const_list {
    margin-top: 12px;
    padding: 15px;
    background-color: #f7f7f7;
}



/* デザイン事例
--------------------------------------------*/

.design_area {
	background-color: #f7f7f7;
}

.gallery li {
	margin-bottom: 5px;
	padding: 10px;
    width: calc(100% / 3);
}
.gallery li a {
	display: block;
	color: #333;
	text-decoration: none;
}
.gallery li .tl {
    margin: 0 auto 20px;
    text-align: center;
}
.gallery li .tl span {
    display: inline-block;
    padding: 5px 14px;
    background: #797979;
    color: #fff;
    font-size: 14px;
    letter-spacing: 3px;
    font-weight: 500;
    border-radius: 30px;
}
.gallery li .txt {
	margin-top: 10px;
	text-align: right;
	font-size: 11px;
	color: #767676;
}
.lb-data .lb-caption a {
    color: #fff !important;
}
.gallery img {
	width: 100%;
	height: auto;
	vertical-align: bottom;
}
/* ここまでデザイン事例
--------------------------------------------*/



/* qa
----------------------------------------------------------- */

section.flow_area {
    position: relative;
}
section.flow_area:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #f7f7f7;
    background-image: linear-gradient(#f7f7f7 1px, transparent 1px), linear-gradient(to right, #f7f7f7 1px, #ffffff 1px);
    background-size: 20px 20px;
}

/* ==== FAQ：サイト共通フォントに統一 ==== */
section.lp_faq_area { position: relative; background: #fafafa; padding: 88px 0 96px; }

/* 見出し：他セクションと同じゴシック見出しに揃える */
.lp_faq_area .faq_head { max-width: 820px; margin: 0 auto 40px; text-align: center; }
.lp_faq_area .faq_opener { display: flex; align-items: center; gap: 16px; margin: 0 0 22px; }
.lp_faq_area .faq_no { font-family: "Montserrat", sans-serif; font-weight: 800; font-size: 15px; letter-spacing: .04em; color: #4338CA; line-height: 1; }
.lp_faq_area .faq_rule { flex: none; width: 64px; height: 1px; background: linear-gradient(90deg,#4338CA,#c7cbe6); transform: scaleX(0); transform-origin: left center; transition: transform .9s cubic-bezier(.22,1,.36,1) .2s; }
.lp_faq_area .faq_opener.fade_in .faq_rule { transform: scaleX(1); }
.lp_faq_area .faq_kicker { font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 11px; letter-spacing: .34em; text-transform: uppercase; color: #7a7f8c; }
.lp_faq_area .faq_head h2 { font-family: inherit; font-weight: 800; font-size: 36px; line-height: 1.45; letter-spacing: .3px; color: #111; margin: 0; }
.lp_faq_area .faq_head .fade { transform: translateY(28px); transition: opacity .8s ease, transform .8s cubic-bezier(.22,1,.36,1); }
.lp_faq_area .faq_head .fade.fade_in { transform: translateY(0); }
.lp_faq_area .faq_head h2.fade { transition-delay: .1s; }

/* リスト：罫線区切りの誌面（グレー箱・ドット背景は撤去） */
.lp_faq_area .faq_list { max-width: 820px; margin: 0 auto; padding: 0; list-style: none; border-top: 1px solid #e6e6ee; counter-reset: faq; }
.faq_item { margin: 0; counter-increment: faq; border-bottom: 1px solid #e6e6ee; }
.faq_block { margin: 0; }

.faq_question {
	cursor: pointer;
	position: relative;
	display: flex;
	align-items: baseline;
	gap: 18px;
	padding: 26px 60px 26px 0;
	background: transparent;
	font-family: inherit;
	font-weight: 800;
	font-size: 17px;
	line-height: 1.8;
	letter-spacing: .3px;
	color: #111;
	transition: color .25s;
}
.faq_question:hover { color: #4338CA; }
.faq_item .faq_question:before {
	content: "Q" counter(faq);
	flex: none;
	min-width: 2.2em;
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	font-size: 15px;
	letter-spacing: .06em;
	color: #4338CA;
	line-height: 1;
}
.faq_question .btn {
	position: absolute;
	top: 50%;
	right: 2px;
	transform: translateY(-50%);
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 1px solid #d7d8e4;
	background: #fff;
	font-size: 0;
	letter-spacing: 0;
	transition: border-color .25s, background .25s;
}
.faq_question .btn:before,
.faq_question .btn:after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 1.5px;
	margin: 0;
	background-color: #4338CA;
	transform: translate(-50%,-50%);
	transition: transform .3s cubic-bezier(.22,1,.36,1), opacity .3s;
}
.faq_question .btn:after { transform: translate(-50%,-50%) rotate(90deg); }
.faq_question .btn.open:after { opacity: 0; transform: translate(-50%,-50%) rotate(0deg); }
.faq_question:hover .btn { border-color: #4338CA; }
.faq_question.open .btn { border-color: #4338CA; background: #eef0ff; }

.faq_answer {
	display: none;
	position: relative;
	margin: 0;
	padding: 2px 60px 30px calc(2.2em + 18px);
	font-size: 15px;
	line-height: 2;
	letter-spacing: .02em;
	color: #555;
}
.faq_answer:before {
	content: "A";
	position: absolute;
	left: 0;
	top: 0;
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	font-size: 15px;
	letter-spacing: .06em;
	color: #c7cbe6;
	line-height: 2;
}

@media (prefers-reduced-motion: reduce) {
  .lp_faq_area .faq_head .fade, .lp_faq_area .faq_head .fade.fade_in { transition: none; transform: none; opacity: 1; }
  .lp_faq_area .faq_rule { transition: none; transform: scaleX(1); }
  .faq_question .btn:before, .faq_question .btn:after { transition: none; }
}

/* インタビュー
----------------------------------------------------*/

.case_area {
    padding-bottom: 80px;
}

.case_area .bx-wrapper {
    margin-top: 40px;
}

.ld_typ1 {
    margin-bottom: 15px;
    display: inline-block;
    background: #ffe000;
    padding: 8px 20px;
    transform: skew(-15deg);
}

.ld_typ1 span {
    display: block;
    font-size: 18px;
    font-weight: 800;
    transform: skew(15deg);
}



.ftside_common {
    display: none;
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 99;
  }
  
  .ftside_common .ftside_content {
    display: block;
    max-width: 280px;
    padding: 15px;
    background: rgb(255 255 255 / 95%);
    box-shadow: 0px 3px 13px rgba(90, 90, 90, 0.2);
    border-radius: 5px;
    text-align: center;
  }
  
  .ftside_common input[type="checkbox"] {
    display: none;
  }
  
  /* switch と switch2 両方に対応 */
  #switch:checked ~ .ftside_content,
  #switch2:checked ~ .ftside_content {
    display: none;
  }
  
  .ftside_common .button {
    display: block;
    position: relative;
    padding: 0px 0px 10px;
    text-align: right;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
  }
  
  .ftside_common .icon {
    display: inline-block;
    position: absolute;
    top: 50%;
    transform: translateY(-68%);
    width: 22px;
    height: 22px;
  }
  
  .ftside_common .icon::before,
  .ftside_common .icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 2px;
    height: 15px;
    background: #333;
    transform: translate(-50%,-50%) rotate(45deg);
    transition: 0.5s all;
  }
  
  .ftside_common .icon::after {
    transform: translate(-50%,-50%) rotate(-225deg);
  }
  
  .ftside_common .close {
    display: inline-block;
    margin-left: 24px;
    color: #333;
  }
  
  .ftside_common .open {
    display: none;
  }

  .ftside_btn .open {
    border: 3px solid #FF801E;
    border-radius: 50px;
    color: #FF801E;
  }

  .ftside_btn2 .open {
    display: none;
    padding: 12px 20px;
    border-radius: 50px;
    font-size: 16px;
    border: 3px solid var(--blue2);
    background: rgb(255 255 255 / 95%);
    line-height: 1;
    color: var(--blue2);
  }
  
  /* switch と switch2 両方のアイコン非表示 */
  #switch:checked + .button > .icon::before,
  #switch:checked + .button > .icon::after,
  #switch2:checked + .button > .icon::before,
  #switch2:checked + .button > .icon::after {
    content: none;
  }
  
  /* switch と switch2 両方の閉じるボタン非表示 */
  #switch:checked + .button > .close,
  #switch2:checked + .button > .close {
    display: none;
  }
  
  /* switch と switch2 両方のopenボタン表示 */
  #switch:checked + .button > .open,
  #switch2:checked + .button > .open {
    display: inline-block;
  }
  
  .ftside_common .txt {
    margin-bottom: 12px;
    align-items: center;
  }
  
  .ftside_common .woman_icon {
    width: 70px;
    height: 70px;
    border-radius: 50%;
  }
  
  .ftside_common .woman_icon img {
    width: 100%;
    border-radius: 50%;
  }
  
  .ftside_common p {
    width: calc(100% - 70px);
    padding-left: 10px;
    font-size: 15px;
    line-height: 1.4;
    text-align: left;
  }
  
  /* ftside_btn 固有スタイル */
  .ftside_btn .ftside_content {
    background: var(--blue2);
    border: 4px solid #fff;
  }
  
  .ftside_btn p {
    color: #fff;
  }
  
  .ftside_btn .ikt2 {
    width: auto;
    padding: 16px 5px 16px 0px;
    font-size: 15px;
  }
  
  .ftside_btn .ikt2:after {
    right: 22px;
  }
  
  /* ftside_btn2 固有スタイル */
  .ftside_btn2 .ftside_content {
    border: 3px solid var(--blue2);
  }
  
  .ftside_btn2 p {
    color: var(--blue2);
  }
  
  /* スマホ対応 */
  @media screen and (max-width: 760px) {
    .ftside_common {
      width: 100%;
      padding: 8px;
      bottom: 0px;
      right: 0px;
    }

    .ftside_common .button {
        padding: 0px 0px 5px;
    }
    
    .ftside_common .ftside_content {
      max-width: 100%;
      padding: 15px 12px;
    }

    .ftside_btn2 .ftside_content {
        max-width: 50%;
        padding: 0px;
        border: none;
        background: none;
        box-shadow: none;
        position: relative;
        left: 50%;
    }

    .ftside_btn2 .open {
        font-size: 14px;
        padding: 8px 10px;
    }

    .ftside_btn .ftside_content {
        max-width: 100%;
        margin: 0;
        padding: 12px;
        background: rgb(255 255 255 / 75%);
    }
  }
  



/* フォーム
----------------------------------------------------------- */

#form {
    margin-top: -60px !important;
}
#frm {
    position: relative;
}
#frm:before {
    content: "";
    position: absolute;
    top: -2px;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 500px;
    background: var(--blue2);
}
#frm .head_title h2 {
    color: #fff;
}
#frm .head_title h2:after {
    background-color: #fff;
}
#frm .progressbar {
    display: none;
}
#frm section {
    padding: 40px 0 0;
}
#first_form .inner label.lb_fl {
    width: 33.3%;
     min-width: 26%;
}


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

    .inner {
        width: 96%;
    }

    .inner-content {
        text-align: center;
        padding: 0px 10px;
        display: block;
    }

    #eyecatch .fv_img {
        display: none;
    }

    /* 人物非表示の幅では帯の重なりを解除（テキストに被らないように） */
    .loopSlider {
        margin-top: 0;
    }

    #eyecatch .left {
        margin: 0 auto;
        width: 100%;
    }
    #eyecatch .jisseki {
        margin: 30px auto 20px;
    }
    .lp_nayami_area .img {
        left: calc(50% - 360px);
    }

    .lp_nayami_area .img img.talk-icon {
        margin: 0 60px;
    }

    .feature_list li .tl_area h3 {
        font-size: 16px;
    }

    table {
        width: 100%;
    }

    .lp_cta.cta .inner {
        width: auto;
    }

    .lp_cta {
        text-align: center;
        margin: 0 auto;
    }

    .lp_cta.cta .award_txt {
        display: inline-block;
    }

    .lp_cta .woman_img {
        display: none;
    }

    .lp_cta .flex_in .left {
        display: block;
        width: 100%;
        text-align: center;
    }

    .voice_area .txt_area {
        padding: 20px;
    } 
    
    .voice_area .contents-box {
        width: calc(33.33% - 14px);
        margin-right: 20px;
    }

    .voice_area ul li {
        font-size: 12px;
    }

    .needs_area .head_title {
        display: block;
        max-width: 640px;
        margin-bottom: 30px;
    }
    .needs_area .head_title h2 {
        white-space: normal;
    }
    .needs_kicker {
        margin: 0 0 16px;
        padding-top: 0;
    }
    .needs_kicker:before {
        display: none;
    }
    .needs_lead {
        max-width: 100%;
        margin-top: 12px;
    }
    .sv_list {
        grid-template-columns: repeat(3, minmax(90px, 1fr));
        gap: 22px 18px;
        max-width: 560px;
    }
    .sv_list li {
        padding: 0;
    }

    .small_cta.cta .flex_in {
        width: 90%;
    }

    .sv_list li .tl {
        margin: 0;
        font-size: 15px;
    }
    .sv_list li .desc {
        display: none;
    }
    .sv_list li .ico {
        width: 96px;
        height: 96px;
        margin-bottom: 12px;
    }
    .sv_list li .ico svg {
        width: 48px;
        height: 48px;
    }


    .small_cta.cta .flex_in .right {
        display: block;
        width: 100%;
        text-align: center;
    }
    
}

/* スマホに適用させるCSS */
@media screen and ( max-width:760px ) {

    .inner {
        width: 90%;
    }
    .inner-content {
        text-align: center;
        padding: 0px 20px;
    }

    .ikt2 {
        padding: 20px 0px;
        max-width: 320px;
        font-size: 18px;
    }
    .ikt2:after {
        top: 51%;
        right: 22px;
    }
    header .site_logo {
        margin-left: 0px;
        padding-top: 0px;
        padding-left: 0px;
    }
    .site_logo a {
        width: 82px;
        height: 24px;
    }

    .inner-content h1 {
        font-size: 6vw;
    }
    .inner-content h1 span span i {
        font-size: 6vw;
    }
    .inner-content h1>span {
        padding: 10px 20px 10px;
    }
    #eyecatch {
        padding: 70px 0px 30px;
    }
    #eyecatch .jisseki {
        margin: 0px;
        max-width: 100%;
    }
    #eyecatch p.eye_txt {
        font-size: 16px;
    }

    #eyecatch, .loop__box img {
        max-width: none;
    }

    #eyecatch .left {
        width: auto;
    }

    #eyecatch .ikt2 {
        font-size: 22px;
        text-align: left;
        padding-left: 28px;
    }

    #eyecatch .ikt2::after {
        right: 22px;
    }
    .fv_deco img {
        opacity: .09;
    }

    .cta_tl {
        margin: 0 30px;
    }
    .head_arrow h2 {
        padding: 0 6px;
    }

    .head_arrow.white h2 {
        font-size: 20px;
        letter-spacing: 1px;
    }

    .lp_cta ul li {
        font-size: 22px;
    }

    .lp_cta ul li span.mod {
        font-size: 26px;
    }

    .head_arrow h2:before, .head_arrow h2:after {
        width: 30px;
    }


    .lp_cta ul {
        display: block;
        margin: 0 auto;
    }

    .lp_cta .ikt2 {
        max-width: 320px;
        text-align: left;
        font-size: 20px;
        padding-left: 36px;
    }

    .lp_cta .ikt2::after {
        right: 26px;
    }

    .lp_cta.cta .cta_tl .catch_left span {
        letter-spacing: 2px;
    }


    .lp_cta ul li{
        margin-right: 0px;
        margin-bottom: 10px;
    }

    .lp_cta ul li:last-child{
        margin-bottom: 0px;
    }

    .lp_title h2,
    .head_title h2 {
        font-size: 22px;
    }
    .loopSlider,
    .loopSliderWrap,
    .loopSlider ul {
        height: 86px;
    }
    .loopSlider ul li {
        width: 130px;
        height: 86px;
    }

    

    /* needs
    ----------------------------------------------------------- */
    .needs_area:before {
        top: 30px;
        right: -76px;
        width: 260px;
        height: 180px;
        opacity: .07;
    }
    .needs_area:after {
        display: none;
    }
    .needs_area .head_title {
        display: block;
        margin-bottom: 24px;
    }
    .needs_kicker {
        margin-bottom: 12px;
        padding-top: 0;
        font-size: 10px;
        letter-spacing: .2em;
    }
    .needs_kicker:before {
        display: none;
    }
    .needs_kicker span {
        padding-left: 42px;
    }
    .head_arrow span {
        font-size: 22px;
        padding: 0 25px;
    }
    .needs_kicker span:before {
        width: 30px;
    }
    .needs_area .head_title h2 {
        font-size: 25px;
        line-height: 1.45;
    }
    .needs_lead {
        max-width: 100%;
        margin-top: 12px;
        font-size: 12px;
        line-height: 1.85;
    }

    .head_arrow span:before, .head_arrow span:after {
        width: 35px;
    }
    

    .sv_list {
        grid-template-columns: repeat(2, 1fr);
        gap: 22px 14px;
        max-width: 320px;
    }
    .sv_list li {
        padding: 0;
    }
    .sv_list li .ico {
        width: 82px;
        height: 82px;
        border-radius: 50%;
        margin-bottom: 9px;
    }
    .sv_list li .ico:before {
        inset: 7px;
        border-width: 1px;
    }
    .sv_list li .ico:after {
        top: 10px;
        left: 13px;
        width: 42px;
        height: 16px;
    }
    .sv_list li .ico svg {
        width: 40px;
        height: 40px;
    }
    .sv_list li .tl {
        margin: 0;
        font-size: 13px;
    }
    .sv_list li .desc {
        display: none;
    }


    /* 小CTA
    ----------------------------------------------------------- */
    section.small_cta {
        padding: 45px 0px;
    }

    .small_cta.cta .flex_in {
        width: 100%;
    }

    .small_cta.cta .flex_in .right {
        display: block;
        width: 100%;
        text-align: center;
    }

    section.small_cta .ikt2 {
        max-width: 320px;
        padding: 20px 0px;
        font-size: 20px;
        text-align: left;
        padding-left: 33px;
    }

    section.small_cta .ikt2:after {
        right: 28px;
    }

    .small_cta.cta .cta_tl .catch_left p {
        font-size: 21px;
        margin-right: 2px;
    }

    .small_cta.cta .flex_in .left {
        margin-right: 0px;
    }

    .small_cta.cta .catch_area2 {
        margin: 8px 0;
        justify-content: center;
    }

    .small_cta.cta .cta_tl .catch_right h2 {
        font-size: 45px;
    }

    .small_cta.cta .cta_tl .catch_left span {
        letter-spacing: 2px;
    }
    /* 悩み
    ----------------------------------------------------------- */

    section.lp_nayami_area {
        padding-bottom: 0px;
    }

    .lp_nayami_area .bt_arrow {
        top: 20px;
        max-width: 120px;
        height: 30px;
        clip-path: polygon(50% 30px, 0% 0%, 100% 0%);
    }

    .talk-item .talk-bubble p {
        font-size: 14px;
    }
    
    .biz_help .ct_base_left,
    .biz_help .ct_base_right,
    .flow_list li .img,
    .flow_list li .tl_area,
    .access_area .left,
    .access_area .right {
        width: 100%;
        padding: 0px;
    }

    /* 比較ビズで解決
    ----------------------------------------------------------- */

    .feature_list li .tl_area h3 {
        font-size: 20px;
    }
    
    .feature_list li .tl_area h3 span{
        font-size: 22px;
    }

    .feature_list li {
        width: 100%;
        padding: 20px;
    }

    .feature_list li .img {
        max-width: 240px;
    }

    .feature_list li .txt p {
        font-size: 16px;
    }

    /* 比較表
    ----------------------------------------------------------- */
    table {
        width: 100%;
	}
	table .img, .table .txt {
    	display: block;
    	text-align: center;
    	padding: 0px !important;
	}
	table .img {
    	margin: 10px 0px 15px;
	}
    
    table.tl_base td {
    	padding: 6px 6px 6px 10px;
    	font-size: 12px;
    }
    table.tl_base th {
    	padding: 9px;
    }
	body.conf table.tl_base th {
		width: 20%;
	}

    table thead td.non {
		width: 40px;
	}
	table tbody th {
		padding: 8px;
	}
	table th, table td {
		padding: 14px 0px;
	}
	.table_area .biz_cell {
		padding-bottom: 20px;
        font-size: 21px;
	}
	.table_area .biz_cell:after {
		height: 25px;
		top: -16px;
	}

    .table_area .txt {
		font-size: 15px;
	}
	table th {
		font-size: 16px;
	}
    
   /* problem_area
    ----------------------------------------------------------- */
    /* モヤモヤアイコン(nayami_mb)は廃止。引用符(:after)はPCと同様に表示（サイズのみ調整） */
    .problem_area_list li:before {
        content: none;
    }
    .problem_area_list li:after {
        font-size: 44px;
    }

    .problem_area_list li span,
	.problem_area_list li p {
	    font-size: 14px;
	}

    .problem_area_list li span {
    	font-size: 14px;
    }

	section.problem_area {
		padding-bottom: 40px;
	}
	
	.problem_area_list li {
	    width: calc(100% / 2 - 10px);
	    margin: 0px 5px 20px;
	    padding: 24px 16px 18px;
	}

	.problem_area .problem_note p {
	    font-size: 11px;
	}
	
	.problem_area .problem_note a {
		font-size: 14px;
	}
	
	.problem_area .price_box_02 p .en{
		font-size: 14px;
	}
	.problem_area .price_box_02 p .small {
		font-size: 10px;
	}
	
	
	.problem_area .t_center {
		font-size: 13px;
	}

	/* 流れ
    ----------------------------------------------------------- */

    .flow_area .flow_list {
        max-width: 480px;
    }
    .flow_area .flow_list:before {
        left: 25px;
    }
    .flow_area .flow_list li {
        padding: 20px 18px 20px 62px;
    }
    .flow_area .flow_list li:before {
        left: 4px;
        width: 42px;
        height: 42px;
        font-size: 16px;
        line-height: 36px;
    }
    .flow_area .flow_list li .tl_area h3 {
        margin: 2px 0 8px;
        font-size: 18px;
    }
    .flow_area .flow_list li .img {
        width: 100%;
        margin: 12px 0 4px;
    }
    /* デザイン事例 */
	.gallery li {
	    width: calc(100% / 2);
	}
	.gallery li .tl span {
	    padding: 5px 10px;
	    font-size: 11px;
	    letter-spacing: 2px;
	}
	
		section.lp_faq_area { padding: 60px 0 66px; }
	.lp_faq_area .faq_head { max-width: 100%; margin-bottom: 28px; }
	.lp_faq_area .faq_opener { gap: 12px; margin-bottom: 14px; }
	.lp_faq_area .faq_rule { width: 44px; }
	.lp_faq_area .faq_head h2 { font-size: 22px; letter-spacing: .3px; }
	.lp_faq_area .faq_list { max-width: 100%; }
	.faq_question { gap: 12px; padding: 20px 42px 20px 0; font-size: 15px; line-height: 1.75; }
	.faq_item .faq_question:before { min-width: 1.9em; font-size: 13px; }
	.faq_question .btn { top: 50%; right: 0; width: 28px; height: 28px; }
	.faq_question .btn:before, .faq_question .btn:after { top: 50%; width: 10px; }
	.faq_answer { padding: 0 0 24px calc(1.9em + 12px); font-size: 14px; }
	.faq_answer:before { font-size: 13px; }

	.ftside_btn {
		width: 100%;
	    bottom: 0px;
	    right: 0px;
	}
	.ftside_btn_in {
    	max-width: 100%;
        margin: 0;
	    padding: 12px;
        background: rgb(255 255 255 / 75%);
	}
	.ftside_btn .ftside_set {
        max-width: 340px;
        margin: 0 auto;
	}
	.ftside_btn p {
	    margin-bottom: 5px;
	    font-size: 14px;
	}
    .ftside_btn .ikt2 {
        max-width: 290px;
    }

    .voice_area .flex_in {
		display: block;
	}
	.voice_area .img-report {
		height: 150px;
	}
	.voice_area .txt_area {
		padding: 20px;
	}
    .voice_area .inner .txt_06,
	.cta_area .catch_lead {
		font-size: 20px;
	}

    .voice_area .title_area,
	.voice_area .contents-box {
        width: 100%;
    }

    .voice_area .big_tl .left_title .big {
		font-size: 60px;
	}

    .voice_area .big_tl:after {
		top: 43px;
		height: 2000px;
	}
	.voice_area .title_area h2 {
		margin: 15px 0 80px;
	}
	.voice_area .contents-box {
		margin-bottom: 30px;
	}
	.voice_area .img-report {
		height: auto;
	}

    .voice_area .inner .txt_06 {
		margin-bottom: 0;
	}
	.voice_area .contents-box-list {
		margin-bottom: 20px;
	}

	section.lp_cta {
	    padding: 50px 0px;
	}
	.lp_cta.cta .head_arrow {
	    text-align: center;
	}
	
	.lp_cta.cta .award_txt,
	.lp_cta.cta .award_txt p,
	.lp_cta .award_txt .award {
	    width: 100%;
	}

    .lp_cta.cta .cta_tl .catch_left p {
        font-size: 21px;
	    text-align: left;
        margin-right: 2px;
	}

    .lp_cta.cta .catch_area2.flex_in {
        margin-top: 10px;
        justify-content: center;

    }

    .lp_cta.cta .cta_tl .catch_right h2 {
        font-size: 45px;
    }

	.lp_cta .cta_ct_sec {
	    width: 100%;
	    margin-bottom: 0px;
	    padding: 25px;
	}
	.lp_cta.cta .cta_tl .sub,
	.lp_cta .woman_img {
	    display: none;
	}
	.lp_cta .cta_ct_sec .tel_block, .lp_cta .cta_ct_sec .frm_block {
	    width: 100%;
	}
	.lp_cta .cta_ct_sec .tel_block {
	    top: 3px;
	    margin-bottom: 20px;
	    padding-right: 0px;
	}

    #frm .inner {
        width: 96%
    }

    ul.cm_y_list li {
        position: relative;
        width: 100%;
        height: 0;
        margin: 0 0 20px;
        padding-top: calc(56.25% / 1);
    }
}

/* ===== clone-rebrand 案A: 画像焼き込み→HTML化 (VSWEB) ===== */
/* ロゴ */
.site_logo a.vsweb_logo{
  background-image:none !important;
  display:flex; align-items:center; width:auto; height:auto;
  font-family:"Oswald","Noto Sans JP",sans-serif; font-weight:700;
  font-size:30px; letter-spacing:1px; color:#fff; text-indent:0;
}
.site_logo a.vsweb_logo span{
  margin-left:4px; padding:1px 8px; border-radius:6px;
  background:#fff; color:#4A7AF7;
}
/* 上部帯（eyebrow） */
.vsweb_eyebrow{
  display:inline-block; margin:0 0 10px; padding:10px 28px;
  background:#2F5BE0; color:#fff; border-radius:8px;
  font-weight:700; font-size:21px; line-height:1.45; letter-spacing:.5px;
}
/* 3バッジ（円形・白） */
.vsweb_badges{ display:flex; gap:20px; list-style:none; padding:0; margin:6px 0 4px; }
.vsweb_badges li{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:150px; height:150px; border-radius:50%; color:#fff;
  border:3px solid rgba(255,255,255,.9);
  box-shadow:inset 0 0 0 5px rgba(255,255,255,.18);
}
.vsweb_badges .b_top{ font-size:15px; font-weight:700; margin-bottom:2px; }
.vsweb_badges .b_main{ font-family:"Oswald","Noto Sans JP",sans-serif; font-size:34px; font-weight:700; line-height:1.05; }
.vsweb_badges .b_main small{ font-size:15px; font-weight:700; }
@media (max-width:768px){
  .vsweb_eyebrow{ font-size:15px; padding:8px 16px; }
  .vsweb_badges{ gap:10px; }
  .vsweb_badges li{ width:104px; height:104px; border-width:2px; }
  .vsweb_badges .b_top{ font-size:11px; }
  .vsweb_badges .b_main{ font-size:24px; }
  .vsweb_badges .b_main small{ font-size:12px; }
  .site_logo a.vsweb_logo{ font-size:22px; }
}
/* 比較bizロゴ画像(:before)を隠す + バッジ幅制約解除 */
.site_logo a.vsweb_logo:before{ display:none !important; content:none !important; }
.site_logo a.vsweb_logo{ position:relative; }
ul.vsweb_badges.jisseki{ max-width:none; }
/* 03/08 CTA: 比較サイト風の横長帯をVSWEB向けコピーへ置換 */
section.small_cta,
section.lp_cta {
  overflow: hidden;
  background: linear-gradient(180deg, #4338CA 0%, #4F46E5 100%) !important;
}
section.small_cta { padding: 56px 0 52px; }
section.lp_cta { padding: 72px 0; }
section.small_cta .inner.flex_in,
section.lp_cta .inner.flex_in {
  width: min(1200px, 92%);
  max-width: 1200px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 30px;
}
.small_cta.cta .flex_in .left,
.small_cta.cta .flex_in .right {
  margin: 0;
}
.lp_cta.cta .inner { width: min(1200px, 92%); }
.lp_cta.cta .inner > .left {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 42px;
  width: 100%;
}
.lp_cta.cta .inner > .right,
.lp_cta.cta .cta_tl .sub { display: none; }
.small_cta.cta .award_txt,
.lp_cta.cta .award_txt {
  max-width: none;
  margin: 0;
}
.small_cta .img { line-height: 0; }
.vsweb_cta_eyebrow {
  display: inline-block;
  margin: 0 0 16px;
  padding: 9px 34px 10px 38px;
  clip-path: polygon(4% 0, 100% 0, 96% 100%, 0 100%);
  background: #fff;
  color: #4338CA;
  font-size: 24px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .04em;
  white-space: nowrap;
}
.vsweb_cta_eyebrow strong {
  margin: 0 4px;
  color: #06C755;
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  font-size: 1.18em;
  font-weight: 900;
  background: none;
  text-decoration: none;
}
.small_cta.cta .catch_area2.flex_in,
.lp_cta.cta .catch_area2.flex_in {
  align-items: flex-end;
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: 20px;
  margin: 0;
}
.small_cta.cta .cta_tl .catch_left p,
.lp_cta.cta .cta_tl .catch_left p {
  margin: 0;
  color: #fff;
  font-size: clamp(34px, 3.1vw, 46px);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: .02em;
  text-shadow: none;
}
.small_cta.cta .cta_tl .catch_left span,
.lp_cta.cta .cta_tl .catch_left span {
  letter-spacing: .04em;
  white-space: nowrap;
}
.small_cta.cta .cta_tl .catch_right h2,
.lp_cta.cta .cta_tl .catch_right h2 {
  margin: 0;
  color: #fff200;
  font-size: clamp(66px, 5.9vw, 96px);
  font-weight: 900;
  line-height: .98;
  letter-spacing: 0;
  white-space: nowrap;
}
.small_cta .frm_btn,
.lp_cta .frm_btn {
  display: block;
  flex: 0 0 auto;
}
.small_cta .ikt2,
.lp_cta .ikt2 {
  width: min(470px, 32vw);
  min-width: 380px;
  padding: 24px 82px 25px 44px;
  border: 0;
  border-bottom: solid 4px #b35008;
  border-radius: 999px;
  background-image: -webkit-linear-gradient(45deg, #27d06a 0%, #06C755 100%);
  background-image: linear-gradient(45deg, #27d06a 0%, #06C755 100%);
  box-shadow: none;
  color: #fff !important;
  font-size: 25px;
  font-weight: 600;
  text-align: center;
  text-shadow: 0px 2px 2px #bd5315;
}
.small_cta .ikt2:hover,
.lp_cta .ikt2:hover {
  border-bottom: solid 4px #522300;
  background-image: -webkit-linear-gradient(-45deg, #27d06a 0%, #06C755 100%);
  background-image: linear-gradient(-45deg, #27d06a 0%, #06C755 100%);
}
.small_cta .ikt2:after,
.lp_cta .ikt2:after {
  right: 44px;
  font-size: 24px;
}
.lp_cta.cta {
  position: relative;
  padding: 56px 0 54px;
}
.lp_cta.cta .inner.flex_in {
  width: min(1450px, 90%);
  max-width: 1450px;
}
.lp_cta.cta .inner > .left {
  grid-template-columns: minmax(0, 1fr) minmax(430px, 520px);
  gap: 48px;
}
.lp_cta.cta .cta_tl {
  min-width: 0;
  transform: translateX(108px);
}
.lp_cta.cta .vsweb_cta_points {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  width: max-content;
  max-width: 100%;
  margin: 0 0 12px;
  padding: 0;
  clip-path: none;
  background: none;
  list-style: none;
  box-sizing: border-box;
  box-shadow: none;
}
.lp_cta.cta .vsweb_cta_points li {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 38px;
  padding: 6px 16px 7px;
  clip-path: polygon(6% 0, 100% 0, 94% 100%, 0 100%);
  background: rgba(255,255,255,.96);
  box-shadow: 0 10px 24px rgba(15,23,42,.08);
}
.lp_cta.cta .vsweb_cta_points span {
  color: #4338CA;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: .02em;
  white-space: nowrap;
}
.lp_cta.cta .vsweb_cta_points strong {
  color: #06C755;
  font-size: 20px;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0;
  white-space: nowrap;
}
.lp_cta.cta .catch_area2.flex_in {
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 18px;
}
.lp_cta.cta .cta_tl .catch_left p {
  font-size: clamp(28px, 2.7vw, 38px);
  line-height: 1.12;
  white-space: nowrap;
}
.lp_cta.cta .cta_tl .catch_left p br {
  display: block;
}
.lp_cta.cta .cta_tl .catch_left span {
  display: inline-block;
}
.lp_cta.cta .cta_tl .catch_right h2 {
  margin: 0;
  font-size: clamp(54px, 4.5vw, 72px);
  line-height: .98;
}
.lp_cta .frm_btn {
  justify-self: end;
  align-self: center;
  transform: none;
}
.lp_cta .ikt2 {
  width: min(480px, 30vw);
  min-width: 410px;
  padding-top: 22px;
  padding-bottom: 22px;
}
@media (max-width: 960px) {
  section.small_cta,
  section.lp_cta { padding: 48px 0; }
  .lp_cta.cta { padding: 48px 0; }
  section.small_cta .inner.flex_in,
  section.lp_cta .inner.flex_in,
  .lp_cta.cta .inner > .left {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 26px;
    text-align: center;
  }
  .small_cta.cta .catch_area2.flex_in,
  .lp_cta.cta .catch_area2.flex_in {
    justify-content: center;
  }
  .small_cta .ikt2,
  .lp_cta .ikt2 {
    width: min(520px, 86vw);
    min-width: 0;
  }
  .lp_cta.cta .inner > .left {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .lp_cta.cta .cta_tl {
    transform: none;
  }
  .lp_cta .frm_btn {
    justify-self: center;
    transform: none;
  }
  .lp_cta.cta .cta_tl .catch_left p br {
    display: block;
  }
}
@media (max-width: 560px) {
  section.small_cta,
  section.lp_cta { padding: 40px 0; }
  .lp_cta.cta { padding: 34px 0 38px; }
  .lp_cta.cta .inner.flex_in {
    width: min(100%, 430px);
    padding: 0 22px;
    box-sizing: border-box;
  }
  .lp_cta.cta .inner > .left {
    gap: 18px;
  }
  .vsweb_cta_eyebrow {
    max-width: 92vw;
    padding: 8px 20px 9px;
    font-size: 15px;
    white-space: normal;
  }
  .small_cta.cta .catch_area2.flex_in,
  .lp_cta.cta .catch_area2.flex_in {
    align-items: center;
    flex-direction: column;
    gap: 6px;
  }
  .small_cta.cta .cta_tl .catch_left p,
  .lp_cta.cta .cta_tl .catch_left p {
    font-size: 26px;
    line-height: 1.18;
    letter-spacing: .01em;
  }
  .small_cta.cta .cta_tl .catch_right h2,
  .lp_cta.cta .cta_tl .catch_right h2 {
    font-size: 42px;
    line-height: 1.05;
    white-space: normal;
  }
  .lp_cta.cta .vsweb_cta_points {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: min(260px, 74vw);
    gap: 8px;
    margin: 0 auto 18px;
    padding: 0;
    clip-path: none;
    background: none;
    box-shadow: none;
  }
  .lp_cta.cta .vsweb_cta_points li {
    min-height: 0;
    flex-direction: row;
    gap: 8px;
    width: 100%;
    padding: 7px 12px;
    box-sizing: border-box;
    clip-path: none;
    border-radius: 6px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 8px 18px rgba(15,23,42,.08);
  }
  .lp_cta.cta .vsweb_cta_points span {
    min-width: 68px;
    font-size: 11px;
    text-align: right;
  }
  .lp_cta.cta .vsweb_cta_points strong {
    font-size: 15px;
  }
  .small_cta .ikt2,
  .lp_cta .ikt2 {
    width: min(314px, 84vw);
    max-width: 314px;
    padding: 17px 54px 18px 28px;
    font-size: 18px;
  }
  .small_cta .ikt2:after,
  .lp_cta .ikt2:after {
    right: 28px;
    font-size: 18px;
  }
  section.small_cta[id="03"] {
    padding: 24px 0 28px;
  }
  section.small_cta[id="03"] .inner.flex_in {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    width: min(100%, 430px);
    gap: 10px;
    padding: 0 22px;
    box-sizing: border-box;
  }
  section.small_cta[id="03"] .cta_tl {
    margin: 0;
  }
  section.small_cta[id="03"] .award_txt {
    width: 100%;
    text-align: center;
  }
  section.small_cta[id="03"] .vsweb_cta_eyebrow {
    display: inline-block;
    max-width: 100%;
    padding: 9px 20px 10px;
    font-size: 18px;
    line-height: 1.15;
    white-space: nowrap;
    box-sizing: border-box;
  }
  section.small_cta[id="03"] .catch_area2.flex_in {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    margin: 6px 0 12px;
  }
  section.small_cta[id="03"] .cta_tl .catch_left p {
    margin: 0;
    font-size: 23px;
    line-height: 1.15;
    white-space: nowrap;
    text-align: center;
  }
  section.small_cta[id="03"] .cta_tl .catch_left p br {
    display: none;
  }
  section.small_cta[id="03"] .cta_tl .catch_left span {
    letter-spacing: .01em;
    white-space: nowrap;
  }
  section.small_cta[id="03"] .cta_tl .catch_right h2 {
    font-size: 40px;
    line-height: 1.02;
  }
  section.small_cta[id="03"] .frm_btn {
    width: 100%;
    display: flex;
    justify-content: center;
  }
  section.small_cta[id="03"] .ikt2 {
    width: min(304px, 84vw);
    min-width: 0;
    max-width: 304px;
    padding: 15px 54px 16px 28px;
    font-size: 18px;
    box-sizing: border-box;
  }
  section.small_cta[id="03"] .ikt2:after {
    right: 28px;
  }
  section.lp_cta[id="08"] {
    padding: 22px 0 26px;
  }
  section.lp_cta[id="08"] .inner.flex_in {
    width: min(100%, 430px);
    padding: 0 22px;
    box-sizing: border-box;
  }
  section.lp_cta[id="08"] .inner > .left {
    gap: 8px;
  }
  section.lp_cta[id="08"] .vsweb_cta_points {
    width: min(240px, 70vw);
    gap: 5px;
    margin: 0 auto 10px;
  }
  section.lp_cta[id="08"] .vsweb_cta_points li {
    padding: 5px 12px;
  }
  section.lp_cta[id="08"] .vsweb_cta_points span {
    font-size: 10px;
  }
  section.lp_cta[id="08"] .vsweb_cta_points strong {
    font-size: 14px;
  }
  section.lp_cta[id="08"] .catch_area2.flex_in {
    gap: 2px;
    margin: 0 0 12px;
  }
  section.lp_cta[id="08"] .cta_tl .catch_left p {
    margin: 0;
    font-size: 23px;
    line-height: 1.12;
    white-space: nowrap;
  }
  section.lp_cta[id="08"] .cta_tl .catch_left p br {
    display: none;
  }
  section.lp_cta[id="08"] .cta_tl .catch_left span {
    white-space: nowrap;
  }
  section.lp_cta[id="08"] .cta_tl .catch_right h2 {
    font-size: 38px;
    line-height: 1.02;
  }
  section.lp_cta[id="08"] .ikt2 {
    display: block;
    width: min(296px, 84vw);
    max-width: 296px;
    padding: 14px 54px 15px 28px;
  }
  section.lp_cta[id="08"] .ikt2.pc {
    display: none;
  }
  section.lp_cta[id="08"] .ikt2.mb {
    display: block;
  }
}
/* 悩みセクション：人物イラストがカードにかぶるため非表示 + 余白調整 (ユーザー指示) */
.lp_nayami_area .img.pc{ display:none !important; }
section.lp_nayami_area{ padding-bottom:60px; }
/* ランキング受賞(マッチングサイトNo.1)はVSWEBに不適合のため非表示 */
section.rank{ display:none !important; }
/* フォーム冒頭のLINE相談ブロック */
.vsweb_line_block{ max-width:760px; margin:0 auto 40px; padding:0 20px; }
.vsweb_line_block p{ font-size:16px; line-height:1.8; margin-bottom:20px; }
.vsweb_line_block .frm_btn{ display:inline-block; }
.vsweb_form_note{ margin-top:16px; font-size:13px; color:#fff; }
/* 比較biz由来の一括見積フォームは非表示（LINE相談を主導線に） */
#frm form#toiform, #frm #second_form, #frm .form_btn_area, #frm .last_open_btn{ display:none !important; }

/* 会社概要のオフィス写真(One's Mind=比較biz残骸)を非表示 */
img[src*="help_cmp_1"]{ display:none !important; }
/* 公式ロゴ VSWEB（VS黒+WEB青・チップ無し）。トップ=白で可読性確保、固定ヘッダー時=正規色 */
.site_logo a.vsweb_logo span{ margin-left:2px; padding:0 !important; border-radius:0 !important; background:none !important; color:#fff; }
.fixed .site_logo a.vsweb_logo{ color:#1A1A1A; }
.fixed .site_logo a.vsweb_logo span{ color:#4A7AF7; }

/* 制作サンプル（ご利用事例）— サイトURL表示 */
.case_interview_list li .case_url{
	display:inline-block;
	margin:2px 0 12px;
	color:var(--blue2,#4A7AF7);
	font-weight:700;
	font-size:14px;
	letter-spacing:.02em;
	word-break:break-all;
	text-decoration:none;
	border-bottom:1px solid currentColor;
	line-height:1.4;
}
.case_interview_list li .case_url:hover{opacity:.7;}
/* ロゴ書体を実ロゴ（太い幾何学サンセリフ）に合わせる: Montserrat ExtraBold */
.site_logo a.vsweb_logo{ font-family:"Montserrat","Noto Sans JP",sans-serif !important; font-weight:800 !important; letter-spacing:1px; }
.site_logo a.vsweb_logo span{ margin-left:1px; }

@keyframes hero_text_reveal {
  0% {
    opacity: 1;
    -webkit-clip-path: inset(0 100% 0 0);
    clip-path: inset(0 100% 0 0);
  }
  100% {
    opacity: 1;
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0);
  }
}
#eyecatch .inner-content h1 span span {
  display: block;
  overflow: hidden;
  opacity: 1;
  -webkit-clip-path: inset(0 100% 0 0);
  clip-path: inset(0 100% 0 0);
  -webkit-animation: hero_text_reveal .68s cubic-bezier(.22, .61, .36, 1) 1.5s 1 both;
  animation: hero_text_reveal .68s cubic-bezier(.22, .61, .36, 1) 1.5s 1 both;
}
#eyecatch .inner-content h1>span:nth-of-type(2) span {
  -webkit-animation-delay: 1.74s;
  animation-delay: 1.74s;
}

/* Hero reference sizing */
#eyecatch {
  min-height: 0;
  padding: 120px 0 70px;
  background: linear-gradient(120deg, #312E81 0%, #4338CA 55%, #4F46E5 100%);
}
#eyecatch:before,
#eyecatch:after {
  content: none;
}
#eyecatch .inner-content {
  width: min(1140px, 92vw);
  min-height: 0;
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  justify-content: space-between;
  gap: 36px;
}
#eyecatch .left {
  flex: 1 1 auto;
  width: calc(100% - 504px);
  max-width: 650px;
}
#eyecatch .right {
  flex: 0 0 504px;
  width: 504px;
  min-height: 0;
  padding-left: 50px;
}
.inner-content h1 {
  margin-bottom: 15px;
  font-size: clamp(40px, 3.2vw, 46px);
  line-height: 1.22;
}
.inner-content h1>span {
  margin: 5px 0;
  padding: 5px 22px 7px;
}
.inner-content h1 span span i {
  font-size: inherit;
}
#eyecatch .lead_sub {
  margin-bottom: 15px;
}
.vsweb_eyebrow_img {
  display: block;
  width: min(700px, 100%);
  height: auto;
  margin-left: -72px;
}
.vsweb_eyebrow {
  max-width: 100%;
  box-sizing: border-box;
  font-size: clamp(18px, 1.55vw, 21px);
}
#eyecatch .frm_btn {
  margin-top: 26px;
}
#eyecatch .frm_btn.fade_down {
  opacity: 1;
  transform: none;
  -webkit-transform: none;
}
#eyecatch .ikt2 {
  width: min(440px, 100%);
  padding: 20px 78px 20px 58px;
  font-size: 24px;
  text-align: center;
}
.hero_points {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}
.hero_points li {
  width: 128px;
  aspect-ratio: 1;
  border: 2px solid rgba(255,255,255,.9);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: rgba(15, 78, 132, .16);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.22), 0 12px 24px rgba(15,23,42,.12);
  text-align: center;
  text-shadow: 0 2px 8px rgba(11, 54, 96, .38);
}
.hero_points span {
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
}
.hero_points strong {
  margin-top: 2px;
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  font-size: 34px;
  font-weight: 900;
  line-height: .95;
  letter-spacing: 0;
}
.hero_points em {
  margin-top: 2px;
  font-size: 13px;
  font-style: normal;
  font-weight: 800;
  line-height: 1.2;
}
#eyecatch .fv_img {
  right: 0;
  bottom: -155px;
  width: 454px;
  height: 680px;
  filter: drop-shadow(0 22px 22px rgba(49,46,129,.22));
}
#eyecatch .memo {
  max-width: 560px;
  color: rgba(255,255,255,.82);
}
.fv_deco img {
  opacity: .15;
}

@media screen and (max-width: 1080px) {
  #eyecatch {
    padding: 92px 0 48px;
    background: linear-gradient(120deg, #312E81 0%, #4338CA 100%);
  }
  #eyecatch .inner-content {
    width: min(760px, 100%);
    min-height: 0;
    padding: 0 24px;
    display: block;
    box-sizing: border-box;
    text-align: center;
  }
  #eyecatch .left {
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
  }
  #eyecatch .right {
    display: none;
    min-height: 0;
  }
  .inner-content h1 {
    font-size: clamp(28px, 4.2vw, 34px);
  }
  .inner-content h1>span {
    max-width: 100%;
    padding: 7px 18px 8px;
    box-sizing: border-box;
  }
  #eyecatch .lead_sub {
    max-width: 680px;
    margin: 0 auto 16px;
  }
  .vsweb_eyebrow_img {
    width: min(640px, 100%);
    margin: 0 auto;
  }
  .vsweb_eyebrow {
    font-size: clamp(14px, 2.1vw, 17px);
  }
  #eyecatch .frm_btn {
    width: min(440px, 100%);
    margin: 24px auto 0;
  }
  .hero_points {
    justify-content: center;
  }
  #eyecatch .ikt2 {
    width: 100%;
    max-width: 440px;
    padding: 21px 62px 22px;
    font-size: 23px;
  }
  #eyecatch .memo {
    max-width: 620px;
    margin: 14px auto 0;
  }
}

@media screen and (max-width: 760px) {
  #eyecatch {
    padding: 70px 0 30px;
    background: linear-gradient(120deg, #312E81 0%, #4338CA 100%);
  }
  #eyecatch .inner-content {
    padding: 0 18px;
  }
  .inner-content h1 {
    font-size: clamp(22px, 6.2vw, 30px);
  }
  .inner-content h1>span {
    padding: 7px 13px 8px;
  }
  .vsweb_eyebrow {
    font-size: clamp(13px, 4vw, 16px);
    padding: 8px 14px;
  }
  .vsweb_eyebrow_img {
    width: 100%;
    max-width: 560px;
  }
  #eyecatch .ikt2 {
    max-width: 330px;
    padding: 18px 54px 19px 26px;
    font-size: 18px;
    text-align: center;
  }
  #eyecatch .ikt2:after {
    right: 26px;
  }
  #eyecatch .memo {
    font-size: 10px;
    line-height: 1.7;
  }
}

/* Hero photo background */
#eyecatch {
  min-height: 700px;
  padding: 165px 0 110px;
  background:
    linear-gradient(90deg, rgba(31, 75, 194, .58) 0%, rgba(59, 130, 246, .34) 36%, rgba(255, 255, 255, .06) 66%, rgba(15, 23, 42, .10) 100%),
    url("../img/hero/hero-website-mockup-bg.png") 50% 50% / cover no-repeat;
}
.hero_logo {
  position: absolute;
  top: 24px;
  left: 28px;
  z-index: 3;
  display: block;
  width: min(180px, 18vw);
  height: auto;
}
#eyecatch .inner-content {
  justify-content: flex-start;
}
#eyecatch .left {
  max-width: 740px;
}
#eyecatch .right,
#eyecatch .fv_img,
#eyecatch .fv_deco {
  display: none;
}
#eyecatch .memo {
  display: inline-block;
  max-width: 600px;
  padding: 0;
  background: transparent;
  color: rgba(30, 41, 59, .82);
  line-height: 1.7;
  text-shadow: 0 1px 10px rgba(255,255,255,.86);
}
#eyecatch .inner-content h1>span {
  box-shadow: 0 10px 24px rgba(15,23,42,.08);
}
@media screen and (min-width: 1081px) {
  #eyecatch .inner-content h1 {
    transform: translateX(-28px);
  }
}

@media screen and (max-width: 1080px) {
  #eyecatch {
    min-height: 620px;
    padding: 112px 0 76px;
    background:
      linear-gradient(180deg, rgba(31, 75, 194, .56) 0%, rgba(59, 130, 246, .28) 42%, rgba(255, 255, 255, .08) 74%, rgba(15, 23, 42, .08) 100%),
      url("../img/hero/hero-website-mockup-bg.png") 50% 50% / cover no-repeat;
  }
  .hero_logo {
    top: 18px;
    left: 20px;
    width: 150px;
  }
  .vsweb_eyebrow_img {
    width: min(720px, 100%);
    margin: 0 auto;
  }
}

@media screen and (max-width: 760px) {
  #eyecatch {
    min-height: 560px;
    padding: 72px 0 38px;
    background:
      linear-gradient(180deg, rgba(31, 75, 194, .58) 0%, rgba(59, 130, 246, .28) 48%, rgba(255, 255, 255, .10) 78%, rgba(15, 23, 42, .08) 100%),
      url("../img/hero/hero-website-mockup-bg.png") 62% 50% / cover no-repeat;
  }
  .hero_logo {
    top: 14px;
    left: 14px;
    width: 116px;
  }
  .vsweb_eyebrow_img {
    width: min(620px, 104%);
    max-width: none;
    margin-left: 50%;
    transform: translateX(-50%);
  }
  .hero_points {
    display: flex;
    justify-content: center;
    gap: 8px;
    width: min(330px, 100%);
    margin: 18px auto 0;
  }
  .hero_points li {
    width: 86px;
    aspect-ratio: 1;
    min-height: 0;
    padding: 0;
    border-radius: 50%;
    border-width: 1.5px;
    background: rgba(15, 78, 132, .22);
  }
  .hero_points span {
    font-size: 10px;
  }
  .hero_points strong {
    font-size: 21px;
  }
  .hero_points em {
    font-size: 10px;
  }
  #eyecatch .memo {
    display: block;
    max-width: 330px;
    margin: 16px auto 0;
    font-size: 10px;
  }
}
