html body .c-verticalButton {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: clamp(43.2px, 3.953147877vw, 64.8px);
  height: clamp(192px, 17.5695461201vw, 288px);
  padding-top: clamp(17.6px, 1.6105417277vw, 26.4px);
  border: 1px solid #fff;
  border-radius: 5px;
  background: #004ea2;
  transition: background-color 0.3s ease, color 0.3s ease;
}
html body .c-verticalButton p {
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-feature-settings: "vert";
}
html body .c-verticalButton::before {
  content: "";
  position: absolute;
  left: 4px;
  right: 4px;
  bottom: clamp(41.6px, 3.8067349927vw, 62.4px);
  height: 1px;
  background: currentColor;
  opacity: 0.15;
}
html body .c-verticalButton::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: clamp(20.8px, 1.9033674963vw, 31.2px);
  width: 9.5px;
  height: 9.5px;
  background-color: currentColor;
  transform: translate(-50%, 50%);
  transition: transform 0.3s ease;
  -webkit-mask-image: url("../images/icon-arrow.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url("../images/icon-arrow.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}
@media (hover: hover) and (pointer: fine) {
  html body .c-verticalButton:hover {
    background: #fff;
  }
}
@media screen and (max-width: 1093px) {
  html body .c-verticalButton {
    flex-direction: row;
    justify-content: flex-start;
    width: 240px;
    height: 54px;
    padding: 0 0 0 16px;
  }
  html body .c-verticalButton p {
    writing-mode: horizontal-tb;
    text-orientation: mixed;
    font-feature-settings: normal;
  }
  html body .c-verticalButton::before {
    left: 188px;
    right: auto;
    top: 5px;
    bottom: 5px;
    width: 1px;
    height: auto;
  }
  html body .c-verticalButton::after {
    left: 214px;
    top: 50%;
    bottom: auto;
    transform: translate(-50%, -50%);
  }
}
html body .c-textArrow {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: clamp(12px, 1.0980966325vw, 18px);
}
html body .c-textArrow::after {
  content: "";
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.2);
  transition: background-color 0.3s ease;
}
html body .c-textArrow::before {
  content: "";
  position: absolute;
  right: 13.25px;
  top: 50%;
  z-index: 1;
  width: 9.5px;
  height: 9.5px;
  background-color: #fff;
  transform: translateY(-50%);
  transition: transform 0.3s ease, background-color 0.3s ease;
  -webkit-mask-image: url("../images/icon-arrow.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url("../images/icon-arrow.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}
@media (hover: hover) and (pointer: fine) {
  html body .c-textArrow:hover::after {
    background-color: #fff;
  }
  html body .c-textArrow:hover::before {
    background-color: #004ea2;
  }
}
html body .c-infoTable {
  background: linear-gradient(to right, rgba(255, 255, 255, 0.5) 50%, transparent 50%) left top/4px 1px repeat-x;
}
html body .c-infoTable__row {
  display: flex;
  gap: clamp(10.4px, 0.9516837482vw, 15.6px);
  padding: clamp(20px, 1.8301610542vw, 30px) 0;
  background: linear-gradient(to right, rgba(255, 255, 255, 0.5) 50%, transparent 50%) left bottom/4px 1px repeat-x;
}
html body .c-infoTable__label {
  flex-shrink: 0;
  width: clamp(92px, 8.4187408492vw, 138px);
}
html body .c-infoTable__value {
  flex: 1;
  min-width: 0;
}
html body .c-infoTable__value > * + * {
  margin-top: clamp(12px, 1.0980966325vw, 18px);
}
html body .c-infoTable__list {
  display: grid;
  gap: clamp(8px, 0.7320644217vw, 12px);
}
html body .c-infoTable__list p {
  position: relative;
  padding-left: clamp(23.2px, 2.1229868228vw, 34.8px);
}
html body .c-infoTable__list p::before {
  content: "";
  position: absolute;
  left: clamp(7.2px, 0.6588579795vw, 10.8px);
  top: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}
html body .c-infoTable__tel,
html body .c-infoTable__tel p {
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: transparent;
  text-underline-offset: 4px;
  transition: text-decoration-color 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  html body .c-infoTable__tel:hover,
  html body .c-infoTable__tel:hover p {
    text-decoration-line: underline;
    text-decoration-color: currentColor;
  }
}
@media screen and (max-width: 1093px) {
  html body .c-infoTable__row {
    gap: clamp(10.4px, 1.6927083333vw, 15.6px);
    padding: clamp(16px, 2.6041666667vw, 24px) 0;
  }
  html body .c-infoTable__label {
    width: clamp(120px, 19.53125vw, 180px);
  }
  html body .c-infoTable__list p {
    padding-left: clamp(19.2px, 3.125vw, 28.8px);
  }
  html body .c-infoTable__list p::before {
    left: clamp(4.8px, 0.78125vw, 7.2px);
  }
}
@media screen and (max-width: 767px) {
  html body .c-infoTable__row {
    flex-direction: column;
    gap: clamp(4.8px, 1.6vw, 7.2px);
    padding: clamp(14.4px, 4.8vw, 21.6px) 0;
  }
  html body .c-infoTable__label {
    width: auto;
  }
  html body .c-infoTable__list p {
    padding-left: clamp(16px, 5.3333333333vw, 24px);
  }
  html body .c-infoTable__list p::before {
    left: clamp(3.2px, 1.0666666667vw, 4.8px);
  }
}
html body .p-topFv {
  --fv-w: clamp(452.8px, 41.4348462665vw, 679.2px);
  --fv-h: clamp(385.6px, 35.2855051245vw, 578.4px);
  --fv-gap: clamp(21.6px, 1.9765739385vw, 32.4px);
  --fv-x: clamp(-580.8px, -35.4319180088vw, -387.2px);
  --fv-dots-right: clamp(78.4px, 7.1742313324vw, 117.6px);
  position: relative;
  padding: clamp(124.8px, 11.420204978vw, 187.2px) 0 clamp(12.8px, 1.1713030747vw, 19.2px);
  overflow: clip;
  background: url("../images/bg-top.svg") no-repeat left top/100% auto, url("../images/bg-band.svg") no-repeat left 0 top clamp(322.4px, 29.5021961933vw, 483.6px)/100% auto, #fcfdff;
}
html body .p-topFv__inner {
  position: relative;
  z-index: 1;
  padding-left: clamp(93.6px, 8.5651537335vw, 140.4px);
  pointer-events: none;
}
html body .p-topFv__inner > * {
  pointer-events: auto;
}
html body .p-topFv__head {
  width: fit-content;
}
html body .p-topFv__lead {
  position: relative;
  padding-left: clamp(34.4px, 3.1478770132vw, 51.6px);
}
html body .p-topFv__lead::before {
  content: "";
  position: absolute;
  left: clamp(3.2px, 0.2928257687vw, 4.8px);
  top: 50%;
  width: clamp(19.2px, 1.756954612vw, 28.8px);
  height: clamp(6.4px, 0.5856515373vw, 9.6px);
  background: currentColor;
  transform: translateY(-50%);
}
html body .p-topFv__title {
  margin-top: clamp(12px, 1.0980966325vw, 18px);
}
html body .p-topFv__texts {
  width: clamp(308.8px, 28.2576866764vw, 463.2px);
  margin-top: clamp(21.6px, 1.9765739385vw, 32.4px);
}
html body .p-topFv__slider {
  position: relative;
  height: var(--fv-h);
  margin-top: clamp(89.6px, 8.1991215227vw, 134.4px);
}
html body .p-topFv__slides {
  display: flex;
  align-items: flex-start;
  gap: var(--fv-gap);
  height: 100%;
}
html body .p-topFv__slide {
  position: relative;
  flex: 0 0 calc(var(--fv-w) / 3);
  height: calc(var(--fv-h) / 3);
  overflow: hidden;
}
html body .p-topFv__slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
html body .p-topFv__slider.is-ready .p-topFv__slides {
  align-items: stretch;
  transform-origin: left top;
  transform: skewY(-8.62deg) translateX(var(--fv-x));
}
html body .p-topFv__slider.is-ready .p-topFv__slide {
  flex-basis: var(--fv-w);
  height: auto;
}
html body .p-topFv__slider.is-ready .p-topFv__slide img {
  position: absolute;
  left: 0;
  top: 50%;
  height: calc(var(--fv-h) + var(--fv-w) * 0.151625183);
  transform: translateY(-50%) skewY(8.62deg);
}
html body .p-topFv__dots {
  position: absolute;
  left: 0;
  right: 0;
  top: clamp(404px, 36.9692532943vw, 606px);
  display: flex;
  justify-content: flex-end;
  gap: clamp(3.2px, 0.2928257687vw, 4.8px);
  padding-right: var(--fv-dots-right);
  transform-origin: left top;
  transform: skewY(-8.62deg);
  pointer-events: none;
}
html body .p-topFv__dot {
  width: clamp(12px, 1.0980966325vw, 18px);
  height: clamp(10.24px, 0.9370424597vw, 15.36px);
  border: 1px solid #fff;
  transition: background-color 0.3s ease;
}
html body .p-topFv__dot.is-active {
  background: #fff;
}
@media screen and (max-width: 1093px) {
  html body .p-topFv {
    --fv-w: clamp(320px, 52.0833333333vw, 480px);
    --fv-h: clamp(272px, 44.2708333333vw, 408px);
    --fv-gap: clamp(16px, 2.6041666667vw, 24px);
    --fv-x: clamp(-456px, -49.4791666667vw, -304px);
    --fv-dots-right: clamp(32px, 5.2083333333vw, 48px);
    padding: clamp(104px, 16.9270833333vw, 156px) 0 clamp(32px, 5.2083333333vw, 48px);
    background-position: left top, left 0 top clamp(336px, 54.6875vw, 504px), 0 0;
  }
  html body .p-topFv__inner {
    width: clamp(550.4px, 89.5833333333vw, 825.6px);
    max-width: calc(100% - clamp(32px, 5.2083333333vw, 48px) * 2);
    margin-inline: auto;
    padding-left: 0;
  }
  html body .p-topFv__lead {
    padding-left: clamp(28.8px, 4.6875vw, 43.2px);
  }
  html body .p-topFv__lead::before {
    left: 0;
    width: 18px;
    height: 6px;
  }
  html body .p-topFv__title {
    margin-top: clamp(9.6px, 1.5625vw, 14.4px);
  }
  html body .p-topFv__texts {
    width: clamp(368px, 59.8958333333vw, 552px);
    margin-top: clamp(16px, 2.6041666667vw, 24px);
  }
  html body .p-topFv__slider {
    margin-top: clamp(88px, 14.3229166667vw, 132px);
  }
  html body .p-topFv__dots {
    top: calc(var(--fv-h) + clamp(12.8px, 2.0833333333vw, 19.2px));
    gap: 4px;
  }
  html body .p-topFv__dot {
    width: 13px;
    height: 11px;
  }
}
@media screen and (max-width: 767px) {
  html body .p-topFv {
    --fv-w: clamp(208px, 69.3333333333vw, 312px);
    --fv-h: clamp(176.8px, 58.9333333333vw, 265.2px);
    --fv-gap: clamp(9.6px, 3.2vw, 14.4px);
    --fv-x: clamp(-302.4px, -67.2vw, -201.6px);
    --fv-dots-right: clamp(16px, 5.3333333333vw, 24px);
    padding: clamp(88px, 29.3333333333vw, 132px) 0 clamp(25.6px, 8.5333333333vw, 38.4px);
    background-position: left top, left 0 top clamp(304px, 101.3333333333vw, 456px), 0 0;
  }
  html body .p-topFv__inner {
    width: max(268px, 89.3333333333vw);
    max-width: calc(100% - clamp(16px, 5.3333333333vw, 24px) * 2);
    margin-inline: auto;
  }
  html body .p-topFv__lead {
    padding-left: clamp(22.4px, 7.4666666667vw, 33.6px);
  }
  html body .p-topFv__title {
    margin-top: clamp(8px, 2.6666666667vw, 12px);
  }
  html body .p-topFv__texts {
    width: auto;
    margin-top: clamp(12.8px, 4.2666666667vw, 19.2px);
  }
  html body .p-topFv__slider {
    margin-top: clamp(64px, 21.3333333333vw, 96px);
  }
  html body .p-topFv__dots {
    top: calc(var(--fv-h) + clamp(9.6px, 3.2vw, 14.4px));
  }
}
html body .p-topAbout {
  padding: clamp(59.2px, 5.4172767204vw, 88.8px) 0 clamp(118.4px, 10.8345534407vw, 177.6px);
  background: #004ea2;
}
html body .p-topAbout__inner {
  display: grid;
  grid-template-columns: clamp(337.6px, 30.8931185944vw, 506.4px) auto;
  align-items: start;
}
html body .p-topAbout__title {
  justify-self: end;
  width: fit-content;
  margin-top: clamp(9.6px, 0.878477306vw, 14.4px);
}
html body .p-topAbout__texts {
  position: relative;
  width: clamp(440.4px, 40.3001464129vw, 660.6px);
  margin-left: clamp(72px, 6.588579795vw, 108px);
  padding: 0 0 0 clamp(72.4px, 6.6251830161vw, 108.6px);
}
html body .p-topAbout__texts::before {
  content: "";
  position: absolute;
  left: 0;
  top: clamp(-6px, -0.3660322108vw, -4px);
  width: 1px;
  height: clamp(92px, 8.4187408492vw, 138px);
  background: linear-gradient(to bottom, #fff 25%, transparent 25%) left top/1px 4px repeat-y;
  pointer-events: none;
}
@media screen and (max-width: 1093px) {
  html body .p-topAbout {
    padding: clamp(64px, 10.4166666667vw, 96px) 0 clamp(51.2px, 8.3333333333vw, 76.8px);
  }
  html body .p-topAbout__inner {
    grid-template-columns: 1fr;
  }
  html body .p-topAbout__title {
    justify-self: start;
    margin-top: 0;
    text-align: left;
  }
  html body .p-topAbout__texts {
    width: auto;
    margin: clamp(25.6px, 4.1666666667vw, 38.4px) 0 0;
    padding: 0 0 0 clamp(19.2px, 3.125vw, 28.8px);
  }
  html body .p-topAbout__texts::before {
    height: 100%;
  }
}
@media screen and (max-width: 767px) {
  html body .p-topAbout {
    padding: clamp(51.2px, 17.0666666667vw, 76.8px) 0 clamp(38.4px, 12.8vw, 57.6px);
  }
  html body .p-topAbout__texts {
    margin-top: clamp(19.2px, 6.4vw, 28.8px);
    padding-left: clamp(12.8px, 4.2666666667vw, 19.2px);
  }
}
html body .p-topService {
  padding-bottom: clamp(135.2px, 12.3718887262vw, 202.8px);
  background: #004ea2;
}
html body .p-topService__inner {
  display: flex;
  border-top: 1px solid rgba(255, 255, 255, 0.6);
}
html body .p-topService__side {
  display: flex;
  flex: 0 0 clamp(148px, 13.5431918009vw, 222px);
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  padding: clamp(32.8px, 3.0014641288vw, 49.2px) 0 0 clamp(7.2px, 0.6588579795vw, 10.8px);
}
html body .p-topService__more {
  margin-left: clamp(7.2px, 0.6588579795vw, 10.8px);
}
html body .p-topService__list {
  display: flex;
  flex: 1;
  padding-top: clamp(96.8px, 8.8579795022vw, 145.2px);
}
html body .p-topService__item {
  flex: 0 0 clamp(366.4px, 33.5285505124vw, 549.6px);
}
html body .p-topService__item:first-child {
  flex-basis: clamp(395.2px, 36.1639824305vw, 592.8px);
  margin-right: clamp(50.4px, 4.6120058565vw, 75.6px);
  background: linear-gradient(to bottom, #fff 25%, transparent 25%) right top/1px 4px repeat-y;
  background-size: 1px 4px;
}
html body .p-topService__head {
  display: flex;
  align-items: flex-start;
  gap: clamp(4.8px, 0.439238653vw, 7.2px);
}
html body .p-topService__image {
  flex: 0 0 clamp(344px, 31.4787701318vw, 516px);
  aspect-ratio: 430/370;
  overflow: hidden;
}
html body .p-topService__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
html body .p-topService__label {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-feature-settings: normal;
}
html body .p-topService__name {
  margin-top: clamp(17.6px, 1.6105417277vw, 26.4px);
}
html body .p-topService__texts {
  width: clamp(344px, 31.4787701318vw, 516px);
  margin-top: clamp(13.6px, 1.2445095168vw, 20.4px);
}
html body .p-topService__link {
  margin-top: clamp(13.6px, 1.2445095168vw, 20.4px);
}
@media screen and (max-width: 1093px) {
  html body .p-topService {
    padding-bottom: clamp(64px, 10.4166666667vw, 96px);
  }
  html body .p-topService__inner {
    flex-direction: column;
    padding-top: clamp(51.2px, 8.3333333333vw, 76.8px);
  }
  html body .p-topService__side {
    display: contents;
  }
  html body .p-topService__title {
    order: 1;
  }
  html body .p-topService__list {
    order: 2;
    gap: clamp(32px, 5.2083333333vw, 48px);
    padding-top: clamp(32px, 5.2083333333vw, 48px);
  }
  html body .p-topService__more {
    order: 3;
    align-self: center;
    margin: clamp(38.4px, 6.25vw, 57.6px) 0 0;
  }
  html body .p-topService__item,
  html body .p-topService__item:first-child {
    flex: 1 1 0;
    min-width: 0;
    margin-right: 0;
    background: none;
  }
  html body .p-topService__head {
    display: block;
  }
  html body .p-topService__image {
    width: 100%;
  }
  html body .p-topService__label {
    margin-top: clamp(9.6px, 1.5625vw, 14.4px);
    writing-mode: horizontal-tb;
    text-orientation: mixed;
    font-feature-settings: normal;
  }
  html body .p-topService__name {
    margin-top: clamp(6.4px, 1.0416666667vw, 9.6px);
  }
  html body .p-topService__texts {
    width: auto;
    margin-top: clamp(9.6px, 1.5625vw, 14.4px);
  }
  html body .p-topService__link {
    margin-top: clamp(12.8px, 2.0833333333vw, 19.2px);
  }
}
@media screen and (max-width: 767px) {
  html body .p-topService {
    padding-bottom: clamp(51.2px, 17.0666666667vw, 76.8px);
  }
  html body .p-topService__inner {
    padding-top: clamp(44.8px, 14.9333333333vw, 67.2px);
  }
  html body .p-topService__list {
    flex-direction: column;
    gap: clamp(38.4px, 12.8vw, 57.6px);
    padding-top: clamp(25.6px, 8.5333333333vw, 38.4px);
  }
  html body .p-topService__label {
    margin-top: clamp(9.6px, 3.2vw, 14.4px);
  }
  html body .p-topService__name {
    margin-top: clamp(4.8px, 1.6vw, 7.2px);
  }
  html body .p-topService__texts {
    margin-top: clamp(8px, 2.6666666667vw, 12px);
  }
  html body .p-topService__link {
    display: flex;
    width: fit-content;
    margin: clamp(11.2px, 3.7333333333vw, 16.8px) 0 0 auto;
  }
  html body .p-topService__more {
    margin-top: clamp(38.4px, 12.8vw, 57.6px);
  }
}
html body .p-topWorks {
  background: #004ea2;
}
html body .p-topWorks__band {
  position: relative;
  height: clamp(360.8px, 33.0161054173vw, 541.2px);
  isolation: isolate;
}
html body .p-topWorks__bandImage {
  position: absolute;
  inset: 0;
  z-index: -1;
}
html body .p-topWorks__bandImage img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
html body .p-topWorks__bandImage::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 78, 162, 0.4);
  pointer-events: none;
}
html body .p-topWorks__title {
  position: absolute;
  left: calc((100% - min(clamp(960px, 87.8477306003vw, 1440px), 100% - clamp(32px, 2.9282576867vw, 48px))) / 2);
  top: clamp(184px, 16.8374816984vw, 276px);
  pointer-events: none;
}
html body .p-topWorks__title > * {
  width: fit-content;
  pointer-events: auto;
}
html body .p-topWorks__body {
  position: relative;
  margin-top: clamp(-120px, -7.3206442167vw, -80px);
}
html body .p-topWorks__panel {
  position: relative;
  width: clamp(1004.8px, 91.9472913616vw, 1507.2px);
  padding: clamp(56px, 5.1244509517vw, 84px) 0 clamp(56px, 5.1244509517vw, 84px);
  background: #fcfdff;
}
html body .p-topWorks__list {
  width: clamp(888.8px, 81.3323572474vw, 1333.2px);
  margin-left: clamp(66.4px, 6.0761346999vw, 99.6px);
}
html body .p-topWorks__list > .webgene-blog {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20.8px, 1.9033674963vw, 31.2px);
}
html body .p-topWorks__more {
  position: absolute;
  top: clamp(93.6px, 8.5651537335vw, 140.4px);
  right: clamp(65.6px, 6.0029282577vw, 98.4px);
}
@media screen and (max-width: 1093px) {
  html body .p-topWorks__band {
    height: clamp(240px, 39.0625vw, 360px);
  }
  html body .p-topWorks__title {
    left: calc((100% - min(clamp(550.4px, 89.5833333333vw, 825.6px), 100% - clamp(32px, 5.2083333333vw, 48px) * 2)) / 2);
    top: auto;
    bottom: clamp(51.2px, 8.3333333333vw, 76.8px);
  }
  html body .p-topWorks__body {
    display: flex;
    flex-direction: column;
    margin-top: clamp(-48px, -5.2083333333vw, -32px);
    padding-bottom: clamp(51.2px, 8.3333333333vw, 76.8px);
  }
  html body .p-topWorks__panel {
    width: calc(100% - clamp(32px, 5.2083333333vw, 48px));
    padding: clamp(38.4px, 6.25vw, 57.6px) 0;
  }
  html body .p-topWorks__list {
    width: auto;
    margin: 0 clamp(32px, 5.2083333333vw, 48px);
  }
  html body .p-topWorks__list > .webgene-blog {
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(25.6px, 4.1666666667vw, 38.4px) clamp(12.8px, 2.0833333333vw, 19.2px);
  }
  html body .p-topWorks__more {
    position: relative;
    top: auto;
    right: auto;
    align-self: center;
    margin: clamp(32px, 5.2083333333vw, 48px) 0 0;
  }
}
@media screen and (max-width: 767px) {
  html body .p-topWorks__band {
    height: clamp(176px, 58.6666666667vw, 264px);
  }
  html body .p-topWorks__title {
    left: calc((100% - min(max(268px, 89.3333333333vw), 100% - clamp(16px, 5.3333333333vw, 24px) * 2)) / 2);
    bottom: clamp(38.4px, 12.8vw, 57.6px);
  }
  html body .p-topWorks__body {
    margin-top: clamp(-36px, -8vw, -24px);
    padding-bottom: clamp(44.8px, 14.9333333333vw, 67.2px);
  }
  html body .p-topWorks__panel {
    width: calc(100% - clamp(16px, 5.3333333333vw, 24px));
    padding: clamp(25.6px, 8.5333333333vw, 38.4px) 0 clamp(32px, 10.6666666667vw, 48px);
  }
  html body .p-topWorks__list {
    margin: 0 clamp(16px, 5.3333333333vw, 24px);
  }
  html body .p-topWorks__list > .webgene-blog {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: clamp(25.6px, 8.5333333333vw, 38.4px) clamp(12.8px, 4.2666666667vw, 19.2px);
  }
  html body .p-topWorks__more {
    margin: clamp(32px, 10.6666666667vw, 48px) 0 0;
  }
}
html body .p-topCompany {
  padding: clamp(89.6px, 8.1991215227vw, 134.4px) 0 clamp(123.2px, 11.2737920937vw, 184.8px);
  background: #004ea2;
}
html body .p-topCompany__body {
  display: grid;
  grid-template-columns: clamp(416px, 38.0673499268vw, 624px) clamp(424px, 38.7994143485vw, 636px);
  gap: clamp(40px, 3.6603221083vw, 60px);
  margin-top: clamp(31.2px, 2.8550512445vw, 46.8px);
  padding-left: clamp(40px, 3.6603221083vw, 60px);
}
html body .p-topCompany__map {
  aspect-ratio: 520/370;
  background: #e0e9f5;
}
html body .p-topCompany__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
@media screen and (max-width: 1093px) {
  html body .p-topCompany {
    padding: clamp(57.6px, 9.375vw, 86.4px) 0 clamp(64px, 10.4166666667vw, 96px);
  }
  html body .p-topCompany__body {
    grid-template-columns: 1fr;
    gap: clamp(25.6px, 4.1666666667vw, 38.4px);
    margin-top: clamp(25.6px, 4.1666666667vw, 38.4px);
    padding-left: 0;
  }
}
@media screen and (max-width: 767px) {
  html body .p-topCompany {
    padding: clamp(44.8px, 14.9333333333vw, 67.2px) 0 clamp(51.2px, 17.0666666667vw, 76.8px);
  }
  html body .p-topCompany__body {
    gap: clamp(19.2px, 6.4vw, 28.8px);
    margin-top: clamp(19.2px, 6.4vw, 28.8px);
  }
  html body .p-topCompany__map {
    aspect-ratio: 335/260;
  }
}
html body .p-topRecruit {
  background: #004ea2;
}
html body .p-topRecruit__body {
  display: grid;
  grid-template-columns: calc((100% - min(clamp(960px, 87.8477306003vw, 1440px), 100% - clamp(32px, 2.9282576867vw, 48px))) / 2) clamp(431.2px, 39.458272328vw, 646.8px) 1fr;
  grid-template-rows: auto auto;
  margin-top: clamp(-45.6px, -2.7818448023vw, -30.4px);
}
html body .p-topRecruit__message {
  grid-column: 3;
  grid-row: 1;
  padding: clamp(83.6px, 7.6500732064vw, 125.4px) 0 clamp(81.6px, 7.467057101vw, 122.4px) clamp(182px, 16.654465593vw, 273px);
  background: #fcfdff;
}
html body .p-topRecruit__catch {
  width: clamp(282.4px, 25.8418740849vw, 423.6px);
}
html body .p-topRecruit__texts {
  width: clamp(282.4px, 25.8418740849vw, 423.6px);
  margin-top: clamp(40px, 3.6603221083vw, 60px);
}
html body .p-topRecruit__texts p + p {
  margin-top: clamp(13.6px, 1.2445095168vw, 20.4px);
}
html body .p-topRecruit__image {
  grid-column: 3;
  grid-row: 2;
  aspect-ratio: 744/552;
  overflow: hidden;
}
html body .p-topRecruit__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
html body .p-topRecruit__box {
  position: relative;
  z-index: 1;
  grid-column: 2;
  grid-row: 1/3;
  align-self: start;
  width: clamp(520px, 47.5841874085vw, 780px);
  margin-top: clamp(64px, 5.8565153734vw, 96px);
  padding: clamp(44.8px, 4.0995607613vw, 67.2px) clamp(56px, 5.1244509517vw, 84px) clamp(41.6px, 3.8067349927vw, 62.4px) clamp(40px, 3.6603221083vw, 60px);
  background: #004ea2;
}
html body .p-topRecruit__table {
  margin-top: clamp(24.8px, 2.2693997072vw, 37.2px);
}
@media screen and (max-width: 1093px) {
  html body .p-topRecruit {
    padding-top: clamp(6.4px, 1.0416666667vw, 9.6px);
  }
  html body .p-topRecruit__body {
    grid-template-columns: 1fr;
    margin-top: clamp(25.6px, 4.1666666667vw, 38.4px);
  }
  html body .p-topRecruit__message {
    grid-column: 1;
    grid-row: 1;
    margin-left: clamp(32px, 5.2083333333vw, 48px);
    padding: clamp(44.8px, 7.2916666667vw, 67.2px) clamp(32px, 5.2083333333vw, 48px) clamp(44.8px, 7.2916666667vw, 67.2px);
  }
  html body .p-topRecruit__catch,
  html body .p-topRecruit__texts {
    width: auto;
    max-width: clamp(448px, 72.9166666667vw, 672px);
  }
  html body .p-topRecruit__texts {
    margin-top: clamp(32px, 5.2083333333vw, 48px);
  }
  html body .p-topRecruit__image {
    grid-column: 1;
    grid-row: 2;
    margin-left: clamp(32px, 5.2083333333vw, 48px);
    aspect-ratio: 728/400;
  }
  html body .p-topRecruit__box {
    grid-column: 1;
    grid-row: 3;
    width: auto;
    margin: clamp(-48px, -5.2083333333vw, -32px) auto 0;
    width: clamp(550.4px, 89.5833333333vw, 825.6px);
    max-width: calc(100% - clamp(32px, 5.2083333333vw, 48px) * 2);
    margin-inline: auto;
    padding: clamp(32px, 5.2083333333vw, 48px) clamp(25.6px, 4.1666666667vw, 38.4px) clamp(32px, 5.2083333333vw, 48px);
  }
}
@media screen and (max-width: 767px) {
  html body .p-topRecruit__body {
    margin-top: clamp(19.2px, 6.4vw, 28.8px);
  }
  html body .p-topRecruit__message {
    margin-left: clamp(16px, 5.3333333333vw, 24px);
    padding: clamp(38.4px, 12.8vw, 57.6px) clamp(19.2px, 6.4vw, 28.8px) clamp(35.2px, 11.7333333333vw, 52.8px);
  }
  html body .p-topRecruit__texts {
    margin-top: clamp(28.8px, 9.6vw, 43.2px);
  }
  html body .p-topRecruit__image {
    margin-left: clamp(16px, 5.3333333333vw, 24px);
    aspect-ratio: 355/240;
  }
  html body .p-topRecruit__box {
    margin-top: clamp(-28.8px, -6.4vw, -19.2px);
    width: max(268px, 89.3333333333vw);
    max-width: calc(100% - clamp(16px, 5.3333333333vw, 24px) * 2);
    margin-inline: auto;
    padding: clamp(25.6px, 8.5333333333vw, 38.4px) clamp(16px, 5.3333333333vw, 24px) clamp(25.6px, 8.5333333333vw, 38.4px);
  }
}
html body .p-topInstagram {
  padding: clamp(80px, 7.3206442167vw, 120px) 0 clamp(80.8px, 7.3938506589vw, 121.2px);
  background: #004ea2;
}
html body .p-topInstagram__link {
  position: relative;
  display: flex;
  align-items: center;
  width: clamp(534.4px, 48.9019033675vw, 801.6px);
  height: clamp(96.8px, 8.8579795022vw, 145.2px);
  margin-inline: auto;
  padding-left: clamp(98.2px, 8.986090776vw, 147.3px);
  border: 1px solid #fff;
  border-radius: 5px;
  transition: background-color 0.3s ease, color 0.3s ease;
}
html body .p-topInstagram__link::before {
  content: "";
  position: absolute;
  left: clamp(24.4px, 2.2327964861vw, 36.6px);
  top: 50%;
  width: clamp(48px, 4.39238653vw, 72px);
  height: clamp(48px, 4.39238653vw, 72px);
  background-color: currentColor;
  transform: translateY(-50%);
  -webkit-mask-image: url("../images/icon-instagram.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url("../images/icon-instagram.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}
html body .p-topInstagram__link::after {
  content: "";
  position: absolute;
  right: calc(clamp(48.2px, 4.4106881406vw, 72.3px) - 12.25px);
  top: 50%;
  width: 24.5px;
  height: 24.5px;
  background-color: currentColor;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
  -webkit-mask-image: url("../images/icon-arrow-large.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url("../images/icon-arrow-large.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}
@media (hover: hover) and (pointer: fine) {
  html body .p-topInstagram__link:hover {
    background: #fff;
  }
}
html body .p-topInstagram__text {
  position: relative;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: clamp(339.8px, 31.0944363104vw, 509.7px);
  margin: clamp(8.4px, 0.7686676428vw, 12.6px) 0;
}
html body .p-topInstagram__text::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 1px;
  background: currentColor;
  opacity: 0.3;
}
html body .p-topInstagram__desc {
  margin-top: clamp(4.8px, 0.439238653vw, 7.2px);
}
@media screen and (max-width: 1093px) {
  html body .p-topInstagram {
    padding: clamp(6.4px, 1.0416666667vw, 9.6px) 0 clamp(57.6px, 9.375vw, 86.4px);
  }
  html body .p-topInstagram__link {
    width: 100%;
    max-width: 668px;
    height: auto;
    min-height: 100px;
    padding: 16px 96px 16px 96px;
  }
  html body .p-topInstagram__link::before {
    left: 24px;
    width: 48px;
    height: 48px;
  }
  html body .p-topInstagram__link::after {
    right: 27.75px;
  }
  html body .p-topInstagram__text {
    width: auto;
    margin: 0;
    padding-right: 16px;
  }
}
@media screen and (max-width: 767px) {
  html body .p-topInstagram {
    padding: clamp(6.4px, 2.1333333333vw, 9.6px) 0 clamp(44.8px, 14.9333333333vw, 67.2px);
  }
  html body .p-topInstagram__link {
    padding: 16px 64px 16px 72px;
  }
  html body .p-topInstagram__link::before {
    left: 16px;
    width: 40px;
    height: 40px;
  }
  html body .p-topInstagram__link::after {
    right: 15.75px;
  }
  html body .p-topInstagram__text {
    padding-right: 0;
  }
  html body .p-topInstagram__text::after {
    display: none;
  }
}
