@charset "UTF-8";

:root {
	--base-color-black: #424242;
	--base-color-white: #fff;
	--base-color-red: #DC2F3C;
	--bg-color-gray01: #EEE;
  --bg-color-gray02: #F8F8F8;
  --base-width: 1700;
}

* {
  box-sizing: border-box;
}

/* p-llmo-mv
---------------------------------------------------------------------------- */
.p-llmo-mv{
  height: clamp(520px, calc(710 / var(--base-width) * 100vw), 710px);
	overflow: hidden;
	padding-block: clamp(80px, calc(107 / var(--base-width) * 100vw), 107px) clamp(0px, calc(19 / var(--base-width) * 100vw), 19px);
	background: url(/images/service/llmo/bg_mv_llmo_pc.png) no-repeat center center / cover;
}

.p-llmo-mv-box-inner {
  width: clamp(120px, calc(1585 / var(--base-width) * 100vw), 1720px);
  max-width: 100%;
  margin-left: clamp(90px, calc(160 / var(--base-width) * 100vw), 160px);
  position: relative;
}

.p-llmo-mv-group1 {
	display: grid;
	grid-template-columns: repeat(1, auto);
	justify-content: start;
	align-items: start;
	margin-bottom: clamp(28px, calc(40 / var(--base-width) * 100vw), 40px);
}

.p-llmo-mv-ttl {
	font-size: clamp(48px, calc(65 / var(--base-width) * 100vw), 65px);
  line-height: calc(81/64);
	letter-spacing: 0.06em;
	font-weight: 700;
	color: #fff;
	margin-right: clamp(14px, calc(22 / var(--base-width) * 100vw), 22px);
}

.p-llmo-mv-group1-img-wrap {
  display: flex;
}

.p-llmo-mv-group1-img {
	width: clamp(124px, calc(169 / var(--base-width) * 100vw), 169px);
	aspect-ratio: 169/67;
  margin-top: clamp(9px, calc(11 / var(--base-width) * 100vw), 11px);
}
.p-llmo-mv-group1-img:not(:last-of-type) {
	margin-right: clamp(10px, calc(14 / var(--base-width) * 100vw), 14px);
}

.p-llmo-mv-group1-img > img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

.p-llmo-mv-group2 {
	margin-bottom: clamp(34px, calc(56 / var(--base-width) * 100vw), 56px);
}

.p-llmo-mv-group2-item {
	font-size: clamp(19px, calc(36 / var(--base-width) * 100vw), 36px);
	line-height: calc(56/36);
	letter-spacing: 0.06em;
	font-weight: 700;
	color: #fff;
}
.p-llmo-mv-group2-item:not(:last-of-type) {
	margin-bottom: clamp(0px, calc(2 / var(--base-width) * 100vw), 2px);
}

.p-llmo-mv-small {
	display: inline-block;
	font-size: clamp(10px, calc(11 / var(--base-width) * 100vw), 11px);
	line-height: calc(32/11);
	letter-spacing: 0.06em;
	font-weight: 400;
	color: #fff;
	margin-top: clamp(75px, calc(100 / var(--base-width) * 100vw), 100px);
}

/* p-sec-about
------------------------------------- */
.p-sec-about {
  background-color: #fff;
  padding-block: 77px 100px;
}
.p-sec-about-ttl {
  font-size: 42px;
	line-height: calc(63/42);
	letter-spacing: 0.04em;
	font-weight: 700;
  text-align: center;
}
.p-sec-about-txt {
  font-size: 17px;
	line-height: calc(30/17);
	letter-spacing: 0.04em;
	font-weight: 400;
  margin-top: 30px;
}


/* p-sec-solution
------------------------------------- */
.p-sec-solution {
  background-color: var(--bg-color-gray01);
  padding-block: 55px 85px;
  position: relative;
}

.p-sec-solution::before {
  content: '';
  width: 108px;
  aspect-ratio: 1;
  background-image: url(/images/common/icn_arw_bottom_red_01.svg);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: calc(100% - 15px);
  left: 50%;
  translate: -50% -50%;
}

.p-sec-solution-ttl {
  font-size: 42px;
  line-height: calc(63/42);
  letter-spacing: .04em;
  font-weight: 700;
  color: var(--base-color-black);
  text-align: center;
  margin-bottom: 25px;
}

.p-sec-solution-box {
  background-color: var(--bg-color-gray02);
  padding-block: 42px 42px;
  padding-inline: 40px;
}

.p-sec-solution-box-list {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.p-sec-solution-box-item {
  font-size: 20px;
  line-height: calc(30 / 20);
  letter-spacing: .04em;
  font-weight: 400;
  color: var(--base-color-black);
  position: relative;
  padding-left: calc(25px + 20px); /*before + 余白*/
}

.p-sec-solution-box-item::before {
  content: '';
  width: 25px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background: var(--base-color-black) url(/images/common/icn_check_wh_01.svg) no-repeat center / 14px 13px;
  position: absolute;
  top: 3px;
  left: 0;
}

/* p-sec-contribution
------------------------------------- */
.p-sec-contribution {
  background-color: var(--base-color-white);
  padding-block: 43px 25px;
}

.p-sec-contribution-ttl-wrap {
  display: flex;
  align-items: center;
  padding-left: 169px;
}

.p-sec-contribution-ttl {
  font-size: 32px;
  line-height: calc(50/32);
  letter-spacing: .04em;
  font-weight: 700;
  color: var(--base-color-black);

  position: relative;
  padding: 37.3px 0 58px 232.58px;
}

.p-sec-contribution-ttl em {
  color: var(--base-color-red);
}

.p-sec-contribution-ttl::before {
  content: '';
  display: block;
  width: 232.58px;
  height: 192.32px;
  background-image: url(/images/service/img_human01.png);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 0;
  left: 0;
}

/* p-sec-reason
------------------------------------- */
/* common */
.p-sec-reason {
  background-color: #F6F4EC;
  padding-block: 90px 100px;
}

.p-sec-reason-layout {
  display: flex;
  flex-direction: column;
  gap: 68px;
  margin-top: 85px;
}

.p-sec-reason-box {
  background-color: var(--base-color-white);
  padding: 55px calc(80 / 1200 * 100%) 48px;
  position: relative;
}

.p-sec-reason-box-ttl {
  display: inline-block;
  font-size: 28px;
  line-height: calc(40/28);
  letter-spacing: .04em;
  font-weight: 700;
  color: var(--base-color-white);
  text-align: center;
  max-width: clamp(980px, calc(1040 / 1280 * 100vw), 1040px);
  width: 100%;
  background-color: #153C95;
  padding: 7px 20px;
  border-radius: 100vmax;
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50% -50%;
}
.p-sec-reason-box-ttl span {
  color: #FCF698;
}

.p-sec-reason-box-txtArea {
  display: flex;
  flex-direction: column;
  gap: 30px;
  flex: 1;
}

.p-sec-reason-box-txt01 {
  font-size: 26px;
  line-height: calc(40/26);
  letter-spacing: .04em;
  font-weight: 700;
  color: var(--base-color-black);
}
.p-sec-reason-box-txt01 span {
  color: var(--base-color-red);
}

.p-sec-reason-box-wrap {
  display: flex;
  gap: 0 40px;
  margin-top: 15px;
}

.p-sec-reason-box-img {
  width: 430px;
  aspect-ratio: 430 / 286;
  flex-shrink: 0;
  align-self: flex-start;
}
.p-sec-reason-box-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.p-sec-reason-box-txt02 {
  font-size: 17px;
  line-height: calc(30/17);
  letter-spacing: .04em;
  font-weight: 400;
  color: var(--base-color-black);
  flex: 1;
}

.p-sec-reason-box-txt03 {
  font-size: 22px;
  line-height: calc(40/22);
  letter-spacing: .04em;
  font-weight: 700;
  color: var(--base-color-black);
  padding-bottom: 27px;
  border-bottom: 2px solid #D1D1D1;
}
.p-sec-reason-box-txt03 span {
  color: var(--base-color-red);
}

.p-sec-reason-box-block {
  margin-top: 30px;
}

.p-sec-reason-box-block-ttl {
  font-size: 26px;
  line-height: calc(40/26);
  letter-spacing: .05em;
  font-weight: 700;
  color: var(--base-color-red);
  text-align: center;
}

/* p-sec-service
------------------------------------- */
.p-sec-service {
  background-color: var(--bg-color-gray01);
  padding-block: 100px 100px;
}

.p-sec-service-items {
  counter-reset: num 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
  margin-top: 50px;
}

.p-sec-service-item {
  padding-block: 40px;
  padding-inline: 50px;
  background-color: var(--base-color-white);
}

.p-sec-service-item-ttl {
  font-size: 26px;
  line-height: calc(40/26);
  letter-spacing: .04em;
  font-weight: 700;
  color: var(--base-color-black);
  padding-left: calc(33px + 16px);
  position: relative;
}
.p-sec-service-item-ttl::before {
  counter-increment: num 1;
  content: counter(num);
  display: grid;
  place-items: center;
  font-size: 19px;
  line-height: calc(19/19);
  letter-spacing: .04em;
  font-weight: 700;
  color: var(--base-color-white);
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 33px;
  height: 38px;
  background-color: var(--base-color-red);
}

.p-sec-service-item-list {
  margin-top: 20px;
}
.p-sec-service-item-list li {
  font-size: 17px;
  line-height: calc(30/17);
  letter-spacing: .04em;
  font-weight: 400;
  color: var(--base-color-black);
  position: relative;
  padding-left: calc(17.43px + 9.5px);
}
.p-sec-service-item-list li::before {
  content: '';
  display: block;
  width: 17.43px;
  height: 15.78px;
  background-image: url(/images/service/llmo/icn_check.svg);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  left: 0;
  translate: 0 -50%;
}

/* p-sec-point
------------------------------------- */
.p-sec-point {
  background-color: #fff;
  padding-block: 100px;
}

.p-sec-point-inner {
  margin-top: 50px;
}
.p-sec-point-inner >:not(:last-child) {
  margin-bottom: 20px;
}

.p-sec-point-content {
  display: grid;
  grid-template-areas:
  "img ."
  "img ttl"
  "img txt"
  "img ."
  ;
  grid-template-columns: auto 1fr;
  gap: 30px 39.5px;
  padding: 4px 40px;
  border: 2px solid #EEEEEE;
  border-left: 6px solid #DC2F3C;
}

.p-sec-point-content-img {
  grid-area: img;

  display: grid;
  place-items: center;
}

.p-sec-point-content-ttl {
  grid-area: ttl;

  font-size: 32px;
	line-height: calc(49/32);
	letter-spacing: .04em;
	font-weight: 700;
	color: #424242;
}

.p-sec-point-content-ttl em {
  color: #DC2F3C;
  background: linear-gradient(transparent 60%, #FFF773 60%);
}

.p-sec-point-content-txt {
  grid-area: txt;

  font-size: 17px;
	line-height: calc(30/17);
	letter-spacing: .04em;
	font-weight: 400;
	color: #424242;
}

.p-sec-point-content-txt em {
  color: #DC2F3C;
}

/* p-sec-note
------------------------------------- */
.p-sec-note {
  background-color: var(--bg-color-gray01);
  padding-block: 100px 100px;
}

.p-sec-note-box {
  padding-block: 45px 50px;
  padding-inline: 80px;
  background-color: var(--base-color-white);
}
.p-sec-note-box:not(:last-of-type) {
  margin-top: 50px;
  margin-bottom: 40px;
}
.p-sec-note-box:last-of-type {
  position: relative;
}
.p-sec-note-box:last-of-type::after {
  content: '';
  --triangle-width-size: 161px;

  --clip-triangle-bottom: polygon(0 0, 100% 0, 50% 100%);
  clip-path: var(--clip-triangle-bottom);
  width: var(--triangle-width-size);
  height: calc(var(--triangle-width-size) / 2 * tan(19.8deg));
  background-color: var(--base-color-red);

  position: absolute;
  top: 0%;
  left: 50%;
  translate: -50% -50%;
}

.p-sec-note-box-content:not(:last-of-type) {
  margin-bottom: 35px;
}

.p-sec-note-box-ttl {
  font-size: 32px;
	line-height: calc(49/32);
	letter-spacing: .04em;
	font-weight: 700;
  text-align: center;
}
.p-sec-note-box-ttl ._red {
  color: var(--base-color-red);
}
.p-sec-note-box-ttl ._marker {
  background: linear-gradient(transparent 60%, #FFF773 60%);
}

.p-sec-note-box-txt {
  font-size: 17px;
	line-height: calc(30/17);
	letter-spacing: .04em;
	font-weight: 400;
  margin-top: 20px;
}

/* p-sec-flow
------------------------------------- */
.p-sec-flow {
  background-color: var(--bg-color-gray01);
  padding-block: 100px 100px;
}

.p-sec-flow-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 50px;
  counter-reset: num;
}

.p-sec-flow-list li {
  display: flex;
  align-items: center;
  padding: 15px;
  padding-right: 50px;
  gap: 0 20px;
  background-color: var(--base-color-white);
}

.p-sec-flow-list-num {
  display: flex;
  align-items: center;
  color: var(--base-color-red);
  font-size: 18px;
  line-height: 1;
  font-weight: 400;
  width: 100px;
  min-height: 100px;
  box-sizing: border-box;
  position: relative;
  flex-shrink: 0;
}
.p-sec-flow-list-num::before {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  font-size: 53px;
  font-weight: 700;
  letter-spacing: -0.03em;
  font-family: 'Rajdhani';
  counter-increment: num;
  content: counter(num, decimal-leading-zero);
  width: 55px;
  text-align: center;
}

.p-sec-flow-list-wrap {
  padding-left: 30px;
  border-left: 2px solid var(--base-color-red);
}

.p-sec-flow-list-ttl {
  font-size: 26px;
  font-weight: 700;
  line-height: calc(40 / 26);
  letter-spacing: 0.04em;
}

.p-sec-flow-list-txt {
  font-size: 17px;
  font-weight: 400;
  line-height: calc(30 / 17);
  letter-spacing: 0.08em;
  margin-top: 10px;
}


/* p-sec-plan
------------------------------------- */
.p-sec-plan {
  background-color: var(--base-color-white);
  padding-block: 100px 100px;
}

.p-sec-plan-block {
  margin-top: 50px;
  padding-block: 40px;
  padding-inline: 40px;
  background-color: var(--bg-color-gray01);
}

.p-sec-plan-block-price em {
  font-size: 33px;
  line-height: 1;
  letter-spacing: .04em;
  font-weight: 700;
  color: var(--base-color-red);
  font-family: initial;
}
.p-sec-plan-block-price span {
  font-size: 24px;
  line-height: calc(30 / 24);
  letter-spacing: .04em;
  font-weight: 500;
}
.p-sec-plan-block-price small {
  font-size: 14px;
  line-height: calc(25 / 14);
  letter-spacing: .04em;
  font-weight: 400;
  margin-left: 17px;
}

.p-sec-plan-block-box {
  padding-block: 20px 30px;
  padding-inline: 30px;
  background-color: var(--base-color-white);
  margin-top: 20px;
}

.p-sec-plan-block-box-txt {
  font-size: 16px;
  line-height: calc(28 / 16);
  letter-spacing: .08em;
  font-weight: 400;
  margin-top: 10px;
}

/* p-sec-consultant
------------------------------------- */
.p-sec-consultant {
  background-color: var(--bg-color-gray02);
  padding-block: 100px;
}

.p-sec-consultant-inner>:first-child {
  margin-bottom: 50px;
}

/* p-sec-faq
------------------------------------- */
.p-sec-faq {
  padding-block: 100px 100px;
  background-color: var(--bg-color-gray01);
}

.p-sec-faq-layout > :first-child {
  margin-bottom: 50px;
}

/* p-sec-case
------------------------------------- */
.p-sec-case {
  background-color: var(--bg-color-gray02);
  padding-block: 100px;
}

.p-sec-case .m-listInterview {
  display: grid;
  grid-template-columns: repeat(2, auto);
  justify-content: center;
  gap: 50px 40px;
  margin-top: 50px;
}

.p-sec-case .m-listInterview-item {
  width: 373px;
}
.p-sec-case .m-listInterview-item,
.p-sec-case .m-listInterview-item-content {
  background-color: var(--bg-color-gray02);
}

/* p-sec-download
------------------------------------- */
.p-sec-download {
  padding-block: 100px 60px;
  background-color: var(--base-color-white);
}

.p-sec-download-layout > :first-child {
  margin-bottom: 50px;
}

/* p-sec-ondemand-seminar
------------------------------------- */
.p-sec-ondemand-seminar {
  padding-block: 60px 60px;
  background-color: var(--base-color-white);
}

.p-sec-ondemand-seminar-layout > :first-child {
  margin-bottom: 50px;
}

/* p-sec-column
------------------------------------- */
.p-sec-column {
  padding-block: 60px 100px;
  background-color: var(--base-color-white);
}

.p-sec-column-layout > :first-child {
  margin-bottom: 50px;
}

/* p-sec-merit
------------------------------------- */
.p-sec-merit {
  padding-block: 95px 130px;
  background-color: var(--bg-color-gray01);
}

.p-sec-merit-items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 70px calc(40 / 1120 * 100%);
  margin-top: 80px;
}

.p-sec-merit-item {
  padding-block: 50px;
  padding-inline: 40px;
  background-color: var(--base-color-white);
  position: relative;
}

.p-sec-merit-item-ttl {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 26px;
  line-height: calc(40 / 26);
  letter-spacing: .04em;
  font-weight: 700;
  color: var(--base-color-white);
  border-radius: 25px;
  background-color: #153C95;
  padding-block: 5px;
  padding-inline: 19px;
  width: max-content;
}
.p-sec-merit-item-ttl span {
  color: #FCF698;
}

.p-sec-merit-item-txt {
  font-size: 17px;
  line-height: calc(30 / 17);
  letter-spacing: .04em;
  font-weight: 400;
}
.p-sec-merit-item-txt span {
  color: var(--base-color-red);
}

/* l-content-base（共通パーツ調整）
------------------------------------- */
.l-content-base.base--writing {
  margin-inline: initial;
}