/* Theme Name: Halcus Theme URI: https://example.com/ Author: Halcus Description: Halcus corporate website theme. Version: 1.0.0 Text Domain: halcus */
:root { --color-text: #394257; --color-blue: #44b0df; --color-square: #44b2f7; --color-light-blue: #1dadff; --color-dark-blue: #0D82CC; --color-gray: #f8f8f8; --font-ja: "Noto Sans JP", sans-serif; --font-en: "Figtree", sans-serif; --content-width: 1000px; --side-padding: 24px; }
html { box-sizing: border-box; scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: inherit; }
body { margin: 0; overflow-x: clip; color: var(--color-text); background: #fff; font-family: var(--font-ja); font-size: 15px; line-height: 1.8; }
body.is-menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
main [id] { scroll-margin-top: 88px; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
.l-container { width: min(calc(100% - (var(--side-padding) * 2)), var(--content-width)); margin-inline: auto; }
.u-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 767px) {
  :root { --side-padding: 20px; }
  main [id] { scroll-margin-top: 80px; }
}
.sp { display: none;}
.top-page { overflow: hidden; }
.site-header { position: fixed; z-index: 50; top: 0; left: 0; display: flex; width: 100%; height: 68px; align-items: flex-start; background-color: rgb(255 255 255 / 0%); transition: background-color 0.4s ease; }
.site-header.is-scrolled { background-color: #fff; }
.site-header__logo { position: absolute; top: 8px; left: 13px; width: 190px; }
.site-header__nav { display: flex; width: 100%; align-items: center; padding-top: 20px; }
.site-header__nav-list { display: flex; margin: 0 0 0 253px; padding: 0; gap: 34px; list-style: none; }
.site-header__nav-list a, .site-header__contact { position: relative; font-family: var(--font-en); font-size: 15px; font-weight: 600; line-height: 1; }
.site-header__nav-list a::after { position: absolute; right: 0; bottom: -8px; left: 0; height: 1px; background: currentColor; content: ""; transform: scaleX(0); transform-origin: right center; transition: transform 0.3s ease; }
.site-header__contact { position: absolute; top: 11px; right: 13px; display: grid; width: 128px; height: 44px; place-items: center; border: 1px solid #fff; border-radius: 999px; color: #fff; background: #4382df; font-size: 14px; font-weight: 700; transition: transform 0.3s ease, background-color 0.3s ease; }
.site-header__menu-button { display: none; }
.hero { position: relative; height: 915px; background: #dff6ff url("../img/top/mv_bg.png") center top / cover no-repeat; }
.hero::before { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 100px; background: #ffffff; background: linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);}
.hero__shape { position: absolute; top: 0; right: 0; width: min(63vw, 860px); height: 812px; pointer-events: none; transition: opacity .25s ease, visibility .25s ease; }
.hero__shape.is-hidden { visibility: hidden; opacity: 0; }
.hero__shape-canvas { position: absolute; top: 0; right: 0; width: 860px; height: 812px; transform: translate3d(0, var(--hero-follow-y, 0px), 0) scale(var(--hero-shape-scale, 1)); transform-origin: right top; will-change: transform; }
.hero__shape-plane { position: absolute; top: -43.25px; left: 81.61px; width: 681.1px; height: 682.834px; transform: perspective(800px) rotateZ(-13deg) rotateX(29deg) scale(1.26733); transform-origin: center; transform-style: preserve-3d; }
.hero__shape-piece { position: absolute; display: block; background: #44b0df; transform: translate3d(0, 0, 0); transform-style: preserve-3d; will-change: transform; }
.hero__shape-piece--01 { top: 204.006px; left: 202.152px; width: 266.707px; height: 266.597px; }
.hero__shape-piece--02 { top: 310.92px; left: 309.109px; width: 52.794px; height: 52.772px; background: #c1e5f5; }
.hero__shape-piece--03 { top: 109.43px; left: 309.109px; width: 52.794px; height: 52.772px; background: #c1e5f5; }
.hero__shape-piece--04 { top: .5px; left: 302.979px; width: 65.055px; height: 65.028px; }
.hero__shape-piece--05 { top: 312.699px; left: 518.832px; width: 52.794px; height: 52.772px; background: #c1e5f5; }
.hero__shape-piece--06 { top: 306.57px; left: 615.546px; width: 65.053px; height: 65.028px; }
.hero__shape-piece--07 { top: 312.7px; left: 109.473px; width: 52.794px; height: 52.772px; background: #c1e5f5; }
.hero__shape-piece--08 { top: 306.57px; left: .5px; width: 65.053px; height: 65.028px; }
.hero__shape-piece--09 { top: 103.026px; left: 104.031px; width: 65.053px; height: 65.026px; }
.hero__shape-piece--10 { top: 103.026px; left: 513.348px; width: 65.053px; height: 65.026px; }
.hero__shape-piece--11 { top: 513.544px; left: 104.031px; width: 65.053px; height: 65.026px; }
.hero__shape-piece--12 { top: 513.545px; left: 513.347px; width: 65.053px; height: 65.026px; }
.hero__shape-piece--13 { top: 617.308px; left: 302.979px; width: 65.055px; height: 65.026px; }
.hero__shape-piece--14 { top: 518.576px; left: 309.109px; width: 52.794px; height: 52.772px; background: #c1e5f5; }
.hero__copy { position: absolute; z-index: 2; top: 340px; left: max(32px, calc((100vw - 1234px) / 2)); }
.hero__copy h1 { margin: 0; color: #394257; font-size: 60px; font-weight: 500; letter-spacing: 0.035em; line-height: 1.35; }
.hero__copy p { margin: 24px 0 0; font-size: 15px; font-weight: 500; line-height: 1.9; }
.hero__scroll { position: absolute; z-index: 2; bottom: 157px; left: 52px; display: inline-flex; align-items: center; gap: 12px; font-family: var(--font-en); font-size: 11px; font-weight: 600; letter-spacing: 0.02em; }
.hero__scroll span { display: block; width: 20px; height: 20px; border-radius: 3px; background: var(--color-blue) url(../img/common/arrow_white.svg) center / 50% auto no-repeat; transform: rotate(90deg); }
.c-section-heading { position: relative; z-index: 2; }
.c-section-heading--center { text-align: center; }
.c-section-heading__en, .c-section-heading__ja { margin: 0; }
.c-section-heading__en { color: var(--color-blue); font-family: var(--font-en); font-size: 100px; font-weight: 600; letter-spacing: -0.025em; line-height: 1; }
.c-section-heading__ja { margin-top: 7px; color: var(--color-text); font-size: 18px; font-weight: 500; line-height: 1.5; }
.c-section-heading__en--white, .c-section-heading__ja--white { color: #fff; }
.c-blur-square { display: block; background: var(--color-square); pointer-events: none; }
.c-circle-link__circle, .c-more-link__circle { display: grid; flex: 0 0 auto; place-items: center; border-radius: 50%; transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1); }
.c-circle-link__circle--white, .c-more-link__circle--white { background: #fff; }
.c-more-link__circle--blue { background: var(--color-blue); }
.c-more-link { display: inline-flex; align-items: center; gap: 22px; font-family: var(--font-en); font-size: 13px; font-weight: 700; line-height: 1; }
.c-more-link__circle { width: 120px; height: 120px; }
.c-more-link__circle img { width: 18px; }
.about { position: relative; height: 1184px; margin-top: -100px; overflow: visible; border-radius: 100px 100px 0 0; background: rgba(248,248,248,.8); }
.about__inner { position: relative; height: 100%; padding-top: 150px; }
.about__content { position: relative; z-index: 7; display: grid; grid-template-columns: 398px 1fr; gap: 60px; margin-top: 67px; }
.about__visual { position: relative; height: 430px; }
.about__image { position: absolute; z-index: 2; object-fit: cover; }
.about__image--main { top: 0; left: 89px; width: 230px; height: 212px; border-radius: 16px; }
.about__image--sub { top: 232px; left: -25px; width: 130px; height: 120px; border-radius: 16px; }
.about__body h3 { margin: -8px 0 0; color: var(--color-text); font-size: 48px; font-weight: 500; letter-spacing: 0.015em; line-height: 1.48; }
.about__text { margin-top: 30px; font-size: 18px; font-weight: 400; line-height: 1.85; }
.about__text p { margin: 0 0 16px; }
.about__circle-copy { position: absolute; z-index: 6; bottom: -10vw; right: -30vw; width: 65vw; min-width: 470px; opacity: 0.45; animation: about-circle-copy-spin 60s linear infinite; transform-origin: center; will-change: transform; }
@keyframes about-circle-copy-spin { to { transform: rotate(360deg); } }
.about__square { position: absolute; z-index: 7; }
.about__square--01 { top: 332px; left: 213px; width: 40px; height: 40px; filter: blur(2px); }
.about__square--02 { top: 452px; left: -36px; width: 18px; height: 18px; filter: blur(7px); }
.about__square--03 { top: 706px; left: 386px; width: 12px; height: 12px; opacity: 0.65; filter: blur(4px); }
.about__square--04 { top: 847px; left: 366px; width: 16px; height: 16px; opacity: 0.75; filter: blur(6px); }
.about__square--05 { top: 904px; left: 82px; width: 28px; height: 28px; opacity: 0.8; filter: blur(9px); }
.about__more { position: absolute; z-index: 7; right: 0; bottom: 180px; }
.about > .about__inner > .c-section-heading { z-index: 7; }
.services { position: relative; z-index: 5; height: 2282px; margin-top: -80px; overflow: hidden; border-radius: 100px; background: #fff; }
.services__heading { padding-top: 150px; }
.services__list { position: relative; z-index: 2; margin: 80px 0 0; padding: 0; list-style: none; }
.services__item { height: 206px; border-bottom: 1px solid #e7ebee; }
.services__item:last-child { border-bottom: 0; }
.services__item > a { display: flex; width: 100%; height: 100%; align-items: center; padding: 0 max(60px, calc((100vw - 1246px) / 2)); color: var(--color-text); transition: color .3s ease, background-color .3s ease; }
.services__icon { display: grid; width: 70px; flex: 0 0 70px; place-items: center; }
.services__icon img { width: auto; max-width: 63px; max-height: 66px; transition: filter .3s ease; }
.services__copy { display: flex; min-width: 0; flex: 1; flex-direction: column; margin-left: 72px; }
.services__number { color: var(--color-blue); font-family: var(--font-en); font-size: 12px; font-weight: 400; line-height: 1.3; transition: color .3s ease; }
.services__copy strong { margin-top: 10px; color: var(--color-text); font-size: 24px; font-weight: 400; line-height: 1.45; transition: color .3s ease; }
.services__description { margin-top: 4px; font-size: 12px; font-weight: 400; line-height: 1.6; }
.services__arrow { width: 48px; height: 48px; margin-left: 32px; background: #effaff; transition: transform .35s cubic-bezier(0.22, 1, 0.36, 1), background-color .3s ease; }
.services__arrow img { width: 15px; }
.works { position: relative; z-index: 3; margin-top: -100px; color: #fff; background: var(--color-blue) url("../img/common/bg_light.png") center top / cover no-repeat; border-radius: 0 0 60px 60px; }
.works__inner { position: relative; height: 100%; padding: 250px 0 220px; }
.works__slider { margin-top: 50px; margin-left: max(var(--side-padding), calc((100vw - var(--content-width)) / 2)); overflow: visible; }
.works-card { width: 325px; height: auto; overflow: hidden; border-radius: 10px; color: var(--color-text); background: #fff; }
.works-card__image { width: 325px; height: 210px; object-fit: cover; }
.works-card__body { padding: 27px 33px 25px; }
.works-card__category { margin: 0; color: var(--color-blue); font-size: 11px; line-height: 1.5; }
.works-card h3 { margin: 9px 0 0; font-size: 18px; font-weight: 700; line-height: 1.55; }
.works-card__body > p:last-child { margin: 15px 0 0; font-size: 15px; line-height: 1.7; }
.works__footer { position: absolute; right: 0; bottom: 59px; left: 0; display: flex; height: 120px; align-items: center; justify-content: space-between; }
.works__scrollbar.swiper-scrollbar { position: relative; top: auto; right: auto; bottom: auto; left: auto; width: 300px; height: 1px; border-radius: 0; background: rgb(255 255 255 / 45%); }
.works__scrollbar .swiper-scrollbar-drag { top: -1px; height: 3px; border-radius: 0; background: #fff; }
.recruit-photos { position: relative; z-index: 2; display: grid; height: 360px; margin-top: -60px; grid-template-columns: 455fr 456fr 455fr; }
.recruit-photos::before { content: ''; position: absolute; inset: 0; background: var(--color-light-blue); opacity: 0.29;}
.recruit-photos img { width: 100%; height: 360px; object-fit: cover; }
.recruit { position: relative; z-index: 4; height: 1064px; margin-top: -60px; overflow: hidden; border-radius: 60px 60px 0 0; background: #fff; }
.recruit__inner { position: relative; z-index: 3; padding-top: 154px; text-align: center; }
.recruit h3 { margin: 48px 0 0; color: var(--color-text); font-size: 48px; font-weight: 500; letter-spacing: 0.035em; line-height: 1.5; }
.recruit__lead { margin: 25px 0 0; font-size: 15px; font-weight: 500; line-height: 1.95; }
.recruit__more { position: relative; z-index: 3; margin-top: 58px; }
.recruit__square { position: absolute; z-index: 2; }
.recruit__square--gray { background: #e6e6e6; }
.recruit__square--01 { top: 144px; left: 16.03%; width: 20px; height: 20px; filter: blur(2px); }
.recruit__square--02 { top: 224px; left: 3.07%; width: 36px; height: 36px; filter: blur(1px); }
.recruit__square--03 { top: 293px; left: 13.47%; width: 12px; height: 12px; filter: blur(4px); }
.recruit__square--04 { top: 378px; left: 7.54%; width: 22px; height: 22px; filter: blur(7px); }
.recruit__square--05 { top: 240px; right: 13.47%; width: 18px; height: 18px; filter: blur(6px); }
.recruit__square--06 { top: 228px; right: 7.17%; width: 42px; height: 42px; filter: blur(1px); }
.recruit__square--07 { top: 350px; right: 2.86%; width: 28px; height: 28px; filter: blur(9px); }
.recruit__square--08 { top: 450px; right: 3.95%; width: 56px; height: 56px; filter: blur(2px); }
.recruit__square--09 { top: 856px; left: 56.73%; width: 40px; height: 40px; filter: blur(2px); }
.recruit__square--10 { top: 896px; left: 29.65%; width: 30px; height: 30px; filter: blur(1px); }
.recruit__square--11 { top: 959px; left: 26.5%; width: 22px; height: 22px; filter: blur(10px); }
.recruit__square--12 { top: 148px; right: 15.01%; width: 42px; height: 42px; filter: blur(3px); }
.recruit__square--13 { top: 936px; left: 70.5%; width: 14px; height: 14px; filter: blur(3px); }
.joinus-marquee { position: absolute; z-index: 1; top: 505px; left: 0; width: 100%; overflow: hidden; opacity: 0.8; }
.joinus-marquee__track { display: flex; width: max-content; animation: joinus-marquee 34s linear infinite; will-change: transform; }
.joinus-marquee img { width: 3009px; max-width: none; flex: 0 0 3009px; }
@keyframes joinus-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-3009px); }
}
.site-footer { position: relative; z-index: 6; height: 215px; margin-top: -59px; border-radius: 60px 60px 0 0; color: #fff; background: var(--color-blue); }
.site-footer__inner { display: flex; height: 100%; align-items: flex-start; justify-content: space-between; padding-top: 109px; }
.site-footer__nav ul { display: flex; margin: 0; padding: 0; gap: 25px; list-style: none; }
.site-footer__nav a, .site-footer__copyright, .site-footer__pagetop { font-family: var(--font-en); }
.site-footer__nav a { font-size: 15px; font-weight: 400; }
.site-footer__copyright { display: block; margin-top: 12px; font-size: 13px; font-weight: 300; }
.site-footer__pagetop { display: inline-flex; align-items: center; gap: 23px; margin-top: -11px; font-size: 15px; font-weight: 400; }
.site-footer__pagetop .c-circle-link__circle { width: 54px; height: 54px; }
.site-footer__pagetop img { width: 15px; transform: rotate(-90deg); }
@media (hover: hover) and (pointer: fine) {
  .site-header__nav-list a:hover::after { transform: scaleX(1); transform-origin: left center; }
  .site-header__contact:hover { transform: scale(0.94); }
  .c-more-link:hover .c-more-link__circle, .c-circle-link:hover .c-circle-link__circle, .services__item > a:hover .services__arrow { transform: scale(0.76); }
  .services__item > a:hover { color: #fff; background: var(--color-blue); }
  .services__item > a:hover .services__number, .services__item > a:hover .services__copy strong { color: #fff; }
  .services__item > a:hover .services__icon img { filter: brightness(0) invert(1); }
  .services__item > a:hover .services__arrow { background: #fff; }
}
@media (max-width: 1200px) {
  .site-header__nav-list { margin-left: 220px; gap: 22px; }
  .site-header__contact { width: 112px; }
  .services__item > a { padding-inline: var(--side-padding); }
  .about__circle-copy { right: -230px; }
}
@media (max-width: 1024px) {
  .site-header__nav-list { gap: 15px; }
  .site-header__nav-list a { font-size: 13px; }
  .site-header__contact { right: 10px; width: 100px; }
  .hero__copy { left: var(--side-padding); }
  .about__content { grid-template-columns: 40% 1fr; gap: 40px; }
  .about__body h3, .recruit h3 { font-size: 42px; }
  .about__text { font-size: 16px; }
  .services__copy { margin-left: 45px; }
}
@media (max-width: 767px) {
  .sp { display: block;}
  .pc { display: none;}
  .site-header__logo { top: 13px; left: 16px; width: 150px; }
  .site-header__menu-button { position: absolute; z-index: 3; top: 15px; right: 15px; display: flex; width: 44px; height: 44px; flex-direction: column; align-items: center; justify-content: center; padding: 0; gap: 5px; border: 0; border-radius: 50%; background: #fff; cursor: pointer; }
  .site-header__menu-button span:not(.u-sr-only) { width: 18px; height: 1px; background: var(--color-text); transition: transform 0.25s ease, opacity 0.25s ease; }
  .site-header__menu-button[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .site-header__menu-button[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .site-header__menu-button[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .site-header__nav { position: fixed; z-index: 2; inset: 0; display: flex; visibility: hidden; flex-direction: column; align-items: flex-start; justify-content: center; padding: 72px 32px 32px; opacity: 0; background: rgb(255 255 255 / 97%); transition: opacity 0.25s ease, visibility 0.25s ease; }
  .site-header__nav.is-open { visibility: visible; opacity: 1; }
  .site-header__nav-list { flex-direction: column; margin: 0; gap: 23px; }
  .site-header__nav-list a { font-size: 24px; }
  .site-header__contact { position: static; width: 170px; height: 52px; margin-top: 34px; }
  .hero { height: 720px; background-position: 42% top; }
  .hero__shape { top: 24px; right: -37%; width: 128%; max-width: none; height: auto; aspect-ratio: 860 / 812; opacity: 0.92; }
  .hero__copy { top: 330px; right: 20px; left: 20px; }
  .hero__copy h1 { font-size: clamp(34px, 10vw, 44px); line-height: 1.45; }
  .hero__copy p { margin-top: 20px; font-size: 13px; }
  .hero__copy p br { display: none; }
  .hero__scroll { bottom: 82px; left: 20px; }
  .c-section-heading__en { font-size: clamp(42px, 12.4vw, 52px); }
  .c-section-heading__ja { margin-top: 3px; font-size: 15px; }
  .c-more-link { gap: 14px; font-size: 12px; }
  .c-more-link__circle { width: 80px; height: 80px; }
  .about { height: auto; margin-top: -60px; border-radius: 48px 48px 0 0; }
  .about__inner { padding-top: 105px; padding-bottom: 130px; }
  .about__content { display: flex; flex-direction: column; margin-top: 52px; gap: 28px; }
  .about__visual { height: 330px; }
  .about__image--main { top: 0; left: 19%; width: min(230px, 64vw); height: auto; }
  .about__image--sub { top: 205px; left: 0; width: 115px; height: auto; }
  .about__body h3 { margin: 0; font-size: 32px; line-height: 1.5; }
  .about__text { margin-top: 24px; font-size: 15px; line-height: 1.85; }
  .about__circle-copy { top: 500px; right: -190px; width: 360px; }
  .about__more { right: 0; bottom: 42px; }
  .about__square--01 { top: 250px; left: 72%; width: 28px; height: 28px; }
  .about__square--02 { top: 390px; left: 8px; }
  .about__square--03 { top: 535px; right: 18px; left: auto; }
  .about__square--04 { top: 700px; left: 58%; }
  .about__square--05 { top: auto; bottom: 105px; left: 18%; width: 22px; height: 22px; }
  .services { height: auto; margin-top: -32px; padding-bottom: 60px; border-radius: 48px; }
  .services__heading { padding-top: 105px; }
  .services__list { margin-top: 65px; }
  .services__item { height: auto; }
  .services__item > a { padding: 25px 20px; }
  .services__icon { width: 48px; flex-basis: 48px; }
  .services__icon img { max-width: 46px; max-height: 48px; }
  .services__copy { margin-left: 22px; }
  .services__copy strong { margin-top: 7px; font-size: 17px; line-height: 1.5; }
  .services__description { margin-top: 7px; padding-right: 4px; font-size: 11px; }
  .services__arrow { width: 40px; height: 40px; margin-left: 8px; }
  .works { height: 890px; margin-top: -45px; background-position: center; border-radius: 0 0 48px 48px; }
  .works__inner { padding-top: 135px; }
  .works__slider { margin-top: 45px; margin-left: 20px; }
  .works-card { width: min(78vw, 300px); height: 402px; }
  .works-card__image { width: 100%; height: 190px; }
  .works-card__body { padding: 22px 24px; }
  .works-card h3 { font-size: 16px; }
  .works-card__body > p:last-child { font-size: 13px; }
  .works__footer { bottom: 38px; height: 80px; }
  .works__scrollbar.swiper-scrollbar { width: 42%; }
  .recruit-photos { height: 210px; margin-top: -40px; }
  .recruit-photos img { height: 210px; }
  .recruit { height: 820px; margin-top: -36px; border-radius: 42px 42px 0 0; }
  .recruit__inner { padding-top: 100px; }
  .recruit h3 { margin-top: 44px; font-size: 29px; line-height: 1.55; }
  .recruit__lead { margin-top: 24px; font-size: 13px; }
  .recruit__lead br { display: none; }
  .recruit__more { margin-top: 44px; }
  .recruit__square { transform: scale(0.72); transform-origin: center; }
  .recruit__square--01 { top: 58px; left: 20%; }
  .recruit__square--02 { top: 145px; left: 4%; }
  .recruit__square--03 { top: 220px; left: 25%; }
  .recruit__square--04 { top: 310px; left: 7%; }
  .recruit__square--05 { top: 105px; right: 24%; left: auto; }
  .recruit__square--06 { top: 165px; right: 4%; left: auto; }
  .recruit__square--07 { top: 275px; right: -3%; left: auto; }
  .recruit__square--08 { top: 370px; right: 7%; left: auto; }
  .recruit__square--09 { top: auto; bottom: 112px; left: 56%; }
  .recruit__square--10 { top: auto; bottom: 72px; left: 28%; }
  .recruit__square--11 { top: auto; bottom: 20px; left: 16%; }
  .recruit__square--12 { top: 60px; right: 17%; left: auto; }
  .recruit__square--13 { top: auto; right: 24%; bottom: 38px; left: auto; }
  .joinus-marquee { top: 480px; }
  .joinus-marquee img { width: 1504px; flex-basis: 1504px; }
  @keyframes joinus-marquee {
    to { transform: translateX(-1504px); }
  }
  .site-footer { height: auto; margin-top: -42px; border-radius: 42px 42px 0 0; }
  .site-footer__inner { flex-direction: column; padding-top: 84px; padding-bottom: 38px; }
  .site-footer__nav ul { flex-wrap: wrap; gap: 12px 20px; }
  .site-footer__nav a { font-size: 13px; }
  .site-footer__copyright { margin-top: 18px; }
  .site-footer__pagetop { align-self: flex-end; margin-top: 24px; }
}
@media (max-width: 374px) {
  .services__item > a { padding-inline: 15px; }
  .services__copy { margin-left: 15px; }
  .services__arrow { width: 36px; height: 36px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero__shape-canvas { transform: scale(var(--hero-shape-scale, 1)); will-change: auto; }
  .hero__shape-piece { transform: none; will-change: auto; }
  .about__circle-copy { animation: none; will-change: auto; }
  .joinus-marquee__track { animation-play-state: paused; }
  .c-circle-link__circle, .c-more-link__circle, .site-header, .site-header__contact, .site-header__nav-list a::after, .services__item > a, .services__icon img, .services__number, .services__copy strong, .services__arrow { transition: none; }
}
/* Lower pages */
.subpage { overflow: hidden; }
.page-hero { position: relative; height: 500px; margin-bottom: -100px; overflow: hidden; background: #e9faff url(../img/common/title.webp) center / cover no-repeat; z-index: -1; }
.page-hero + section { background: #FFF; border-radius: 100px;}
.page-hero__mark { position: absolute; top: -170px; right: -45px; width: 680px; max-width: none; transform: rotate(-13deg); }
.page-hero__inner { position: relative; z-index: 2; padding-top: 150px; }
.page-hero__ja { margin: 0 0 5px; padding-left: 1.5em; background: url(../img/common/dot.svg) left 0.5em / auto 1em no-repeat; font-size: 12px; font-weight: 500; }
.page-hero h1 { margin: 0; font-family: var(--font-en); font-size: 70px; font-weight: 700; letter-spacing: -0.02em; line-height: 1; }
.page-hero__lead { margin: 21px 0 0; font-size: 17px; font-weight: 500; line-height: 1.8; }
.lower-heading { margin: 0; }
.lower-heading__en { margin: 0; color: var(--color-blue); font-family: var(--font-en); font-size: 100px; font-weight: 600; line-height: 1; }
.lower-heading__ja { margin: 7px 0 0; font-size: 18px; font-weight: 500; line-height: 1.5; }
.lower-heading--white .lower-heading__en, .lower-heading--white .lower-heading__ja { color: #fff; }
.page-copy { font-size: 15px; line-height: 1.9; }
.section-rounded { width: 100%; margin-inline: auto; border-radius: 100px; }
.lower-square-section { position: relative; overflow: hidden; }
.lower-square-section > .l-container { position: relative; z-index: 1; }
.lower-square { position: absolute; z-index: 0; }
.lower-square--01 { top: 61px; right: 12.37%; width: 14px; height: 14px; opacity: 0.88; filter: blur(5px); }
.lower-square--02 { top: 110px; left: -1.83%; width: 50px; height: 50px; opacity: 0.34; filter: blur(8px); }
.lower-square--03 { top: 135px; right: -1.83%; width: 50px; height: 50px; opacity: 0.34; filter: blur(8px); }
.lower-square--04 { top: 234px; left: 7.03%; width: 36px; height: 36px; filter: blur(5px); }
.lower-square--05 { top: 330px; right: 4.25%; width: 22px; height: 22px; opacity: 0.73; filter: blur(7px); }
.lower-square--06 { top: 447px; left: 2.86%; width: 24px; height: 24px; opacity: 0.9; filter: blur(8px); }
.lower-square-section--recruit .lower-square--01 { top: 219px; right: 5.78%; }
.lower-square-section--recruit .lower-square--04 { opacity: 0.81; }
.lower-square-section--recruit .lower-square--06 { opacity: 0.73; }
.service-flow { padding: 80px 0 123px; }
.service-flow__list { display: grid; margin: 46px 0 0; padding: 0; grid-template-columns: repeat(4, 220px); gap: 40px; list-style: none; }
.service-flow__item { position: relative; height: 220px; padding: 18px 17px 16px; border: 1px solid var(--color-blue); border-radius: 10px; background: #fff; }
.service-flow__item:not(:last-child)::after { position: absolute; z-index: 2; top: 50%; right: -27px; width: 14px; height: 14px; border-top: 3px solid var(--color-blue); border-right: 3px solid var(--color-blue); content: ''; transform: translateY(-50%) rotate(45deg); }
.service-flow__number { color: var(--color-blue); font-family: var(--font-en); font-size: 12px; font-weight: 500; }
.service-flow__item h3 { margin: 11px 0 9px; color: #255d88; font-size: 18px; font-weight: 700; line-height: 1.45; text-align: center; }
.service-flow__item .service-flow__phase { margin: 0; padding: 4px; color: #255d88; background: #effaff; font-size: 14px; font-weight: 500; line-height: 1.45; text-align: center; }
.service-flow__item .service-flow__description { margin: 8px 0 0; font-size: 12px; line-height: 1.75; }
.service-concerns { overflow: hidden; padding: 125px 0 34px; background: linear-gradient(145deg, #effaff, #e7f8ff 62%, #f4fcff); }
.service-concerns .lower-heading__en small { font-size: 0.58em; font-weight: 500; }
.service-concerns__list { width: 100vw; margin: 38px 0 0 calc(50% - 50vw); padding: 0; list-style: none; }
.service-concern { display: grid; align-items: center; padding: 59.5px max(58px, calc((100vw - var(--content-width)) / 2 + 58px)); grid-template-columns: 110px minmax(0, 1fr); gap: 26px; }
.service-concern:nth-child(odd) { background: rgb(255 255 255 / 55%); }
.service-concern__icon { display: grid; width: 94px; height: 94px; place-items: center; }
.service-concern__icon img { width: auto; max-width: 77px; height: 76px; object-fit: contain; }
.service-concern h3 { margin: 0; font-size: 22px; font-weight: 600; }
.service-concern__meta { display: flex; align-items: center; margin-top: 8px; gap: 10px; }
.service-concern__service { display: inline-block; flex: 0 0 auto; padding: 2px 10px; color: #fff; background: var(--color-blue); font-size: 11px; font-weight: 500; }
.service-concern__target { margin: 0; color: var(--color-blue); font-size: 11px; font-weight: 500; line-height: 1.6; }
.service-concern__description { margin: 8px 0 0; font-size: 12px; line-height: 1.75; }
.service-catalog { padding: 100px 0 231px; }
.service-catalog__grid { display: grid; margin: 55px 0 0; padding: 0; grid-template-columns: repeat(3, 1fr); gap: 18px; list-style: none; }
.service-catalog__card { padding: 32px 26px 26px; border: 1px solid #394257; border-radius: 15px; background: #fff; }
.service-catalog__icon { display: grid; height: 120px; place-items: center; }
.service-catalog__icon img { width: 120px; height: 120px; }
.service-catalog__number { display: block; text-align: center; margin-top: 13px; color: var(--color-blue); font-family: var(--font-en); font-size: 15px; font-weight: 600; }
.service-catalog__card h3 { margin: 8px 0 12px; text-align: center; font-size: 20px; font-weight: 500; line-height: 1.55; }
.service-catalog__card p { margin: 0; font-size: 12px; line-height: 1.75; }
.about-business { position: relative; padding: 90px 0 95px; }
.about-business__title { margin: 0; color: var(--color-blue); font-family: var(--font-en); font-size: 95px; font-weight: 600; line-height: 1.2; text-align: center; }
.about-business__title span.grey { color: #adb5bf; font-weight: 300; }
.about-business__title span.blue { color: var(--color-dark-blue); }
.about-business__subtitle { margin: 6px 0 45px; font-size: 24px; font-weight: 500; text-align: center; }
.about-business__sides { display: grid; margin: 0 auto 42px; grid-template-columns: 1fr 1fr; gap: 100px; }
.about-business__side { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 22px; padding: 24px; background: #F6FAFC; border-radius: 10px; }
.about-business__side h3 { margin: 0; color: var(--color-blue); font-family: var(--font-en); font-size: 35px; font-weight: 600; line-height: 1.35; }
.about-business__side ul { margin: 0; padding-left: 1.2em; line-height: 1.9; list-style: none; }
.about-business__side li { padding-left: 1.5em; background: url(../img/common/dot.svg) left 0.7em / auto 0.8em no-repeat; font-size: 18px; font-weight: 500;}
.about-business__copy { max-width: 720px; margin: 0 auto; text-align: center; font-size: 18px; font-weight: 500; }
.about-business__side.alt h3 { color: var(--color-dark-blue);}
.about-business__side.alt li { background-image: url(../img/common/dot_darkblue.svg);}
.about-reasons { padding: 95px 0 105px; color: #fff; background: linear-gradient(135deg, #4ab5df, #3fa9dc); }
.about-reasons__grid { display: grid; margin: 55px 0 0; padding: 0; grid-template-columns: repeat(3, 1fr); gap: 24px; list-style: none; }
.about-reason { padding: 32px 24px; border-radius: 6px; color: var(--color-text); background: #fff; }
.about-reason img { width: 85px; height: 85px; margin: 0 auto 20px; }
.about-reason__number { color: var(--color-blue); font-family: var(--font-en); font-size: 14px; font-weight: 600; }
.about-reason h3 { margin: 8px 0 12px; font-size: 18px; font-weight: 600; line-height: 1.55; }
.about-reason p { margin: 0; font-size: 13px; line-height: 1.75; }
.about-record { padding: 105px 0 146px; }
.about-strengths { margin: 50px 0 0; padding: 0; list-style: none; }
.about-strength { display: grid; align-items: center; padding: 22px 0; grid-template-columns: 245px 1fr; gap: 42px; border-bottom: 1px solid #e1e4e8; }
.about-strength img { width: 245px; height: 163px; object-fit: cover; }
.about-strength__number { color: var(--color-blue); font-family: var(--font-en); font-size: 15px; font-weight: 600; }
.about-strength h3 { margin: 7px 0 10px; font-size: 21px; font-weight: 400; }
.about-strength p { margin: 0; font-size: 13px; line-height: 1.8; }
.about-experience { margin-top: 45px; padding: 38px 55px; background: #F3FCFF; }
.about-experience h3 { margin: 0 0 18px; font-size: 24px; font-weight: 500; text-align: center; }
.about-experience ul { max-width: 760px; margin: 0 auto; padding: 0; line-height: 1.9; list-style: none; }
.about-experience li { padding-left: 1.5em; background: url(../img/common/dot.svg) left 0.7em / auto 0.8em no-repeat; font-size: 18px; font-weight: 500;}
.about-experience p { max-width: 760px; margin: 20px auto 0; text-align: center; font-size: 12px; line-height: 1.8; color: #6B7181; }
.cases-intro { padding: 80px 0 35px; text-align: center; }
.cases-intro h2 { margin: 0 0 24px; color: #255d88; font-size: 27px; font-weight: 600; }
.cases-intro p { max-width: 830px; margin: 0 auto; }
.case-grid { display: grid; margin: 89px 0 105px; padding: 0; grid-template-columns: repeat(2, 480px); gap: 40px; list-style: none; }
.case-card { padding: 30px 30px 28px; border: 1px solid var(--color-blue); border-radius: 10px; background: #fff; text-align: left; }
.case-card__head { display: grid; align-items: center; grid-template-columns: 65px 1fr; gap: 18px; }
.case-card__head img { width: 61px; height: 61px; }
.case-card__number { color: var(--color-blue); font-family: var(--font-en); font-size: 14px; font-weight: 600; }
.case-card__industry { margin: 2px 0 0; font-size: 13px; }
.case-card h3 { margin: 22px 0 25px; font-size: 20px; font-weight: 500; line-height: 1.4; }
.case-card dl { margin: 0; border-top: 1px solid #e1e5e8; }
.case-card dt { display: inline-block; margin-top: 18px; padding: 2px 8px; color: #fff; background: #526176; font-size: 13px; font-weight: 500; line-height: 20px; }
.case-card dt:first-of-type { margin-top: 8px; padding: 0; color: #6B7181; background: transparent; font-size: 12px; }
.case-card dt:nth-of-type(2) { margin-top: 20px; }
.case-card dt:nth-of-type(3) { margin-top: 20px; background: var(--color-blue); }
.case-card dt:nth-of-type(4) { margin-top: 20px; background: var(--color-dark-blue); }
.case-card dd { margin: 7px 0 0; line-height: 1.75; }
.case-card dd:first-of-type { margin-top: 0; padding-bottom: 8px; border-bottom: 1px solid #e1e5e8; font-size: 12px; }
.support-area { padding: 90px 0 145px; background: #eaf9ff; }
.support-area__grid { display: grid; margin: 55px 0 0; padding: 0; grid-template-columns: repeat(4, 1fr); gap: 25px; list-style: none; }
.support-area__item { text-align: center; }
.support-area__item img { width: 105px; height: 105px; margin: 0 auto 16px; object-fit: contain; }
.support-area__item p { margin: 0; font-size: 14px; font-weight: 500; line-height: 1.65; }
.company-profile { padding: 85px 0 110px; }
.company-table { width: 100%; border-collapse: collapse; }
.company-table th, .company-table td { height: 90px; padding: 20px 0; border-bottom: 1px solid #e4e6e9; font-size: 14px; line-height: 1.8; text-align: left; vertical-align: middle; }
.company-table th { width: 30%; padding-left: 20px; font-weight: 500; }
.recruit-hero { position: relative; height: 866px; margin-bottom: -100px; overflow: hidden; background: #e9fbff url(../img/common/title.webp) center / cover no-repeat; }
.recruit-hero + section { background: #FFF; border-radius: 100px;}
.recruit-hero__copy { position: relative; z-index: 5; padding-top: 165px; }
.recruit-hero__label { margin: 0 0 22px; color: var(--color-blue); padding-left: 1.5em; background: url(../img/common/dot.svg) left 0.5em / auto 1em no-repeat; font-size: 40px; font-weight: 700; }
.recruit-hero h1 { margin: 0; font-size: 51px; font-weight: 500; letter-spacing: 0.025em; line-height: 1.45; }
.recruit-hero__lead { margin: 22px 0 0; font-size: 15px; font-weight: 500; line-height: 1.85; }
.recruit-hero__button { display: inline-flex; min-width: 280px; height: 54px; align-items: center; justify-content: center; margin-top: 30px; border-radius: 999px; color: #fff; background: var(--color-blue); font-size: 14px; font-weight: 600; transition: transform 0.3s ease; }
.recruit-hero__visual img { position: absolute; z-index: 2; object-fit: contain; }
.recruit-hero__visual .mv01 { top: 198px; right: 115px; width: 431px; }
.recruit-hero__visual .mv02 { top: 91px; right: 560px; width: 120px; }
.recruit-hero__visual .mv03 { top: 36px; right: 115px; width: 119px; }
.recruit-hero__visual .mv04 { top: 391px; right: 480px; width: 106px; }
.recruit-hero__visual .mv05 { right: 520px; bottom: 151px; width: 132px; }
.recruit-hero__visual .mv06 { right: 30px; bottom: 169px; width: 106px; }
.recruit-message { padding: 115px 0 120px; text-align: center; }
.recruit-message h2 { margin: 0 0 30px; color: #246BD5; font-size: 29px; font-weight: 500; line-height: 1.65; }
.recruit-message__sub { margin: 25px 0 30px; color: var(--color-blue); font-size: 17px; font-weight: 600; }
.recruit-message__body { max-width: 790px; margin: 0 auto; }
.recruit-message__body p { margin: 0 0 18px; font-size: 14px; line-height: 2; }
.recruit-charms { padding: 100px 0 85px; color: #fff; background: linear-gradient(135deg, #48b4df, #3ca8dc); }
.recruit-charms__lead { margin: 28px 0 45px; font-size: 32px; font-weight: 500; text-align: center; }
.recruit-charms__list { margin: 0; padding: 0; list-style: none; }
.recruit-charm { display: grid; align-items: center; padding: 40px 55px; grid-template-columns: 100px 1fr; gap: 30px; border-top: 1px solid rgb(255 255 255 / 32%); }
.recruit-charm img { width: 76px; height: 76px; }
.recruit-charm__number { font-family: var(--font-en); font-size: 14px; font-weight: 400; }
.recruit-charm h3 { margin: 8px 0 10px; font-size: 24px; font-weight: 500; }
.recruit-charm p { margin: 0; font-size: 13px; line-height: 1.8; }
.recruit-job { padding: 100px 0 115px; }
.recruit-job__intro { max-width: 800px; margin: 35px auto 0; text-align: center; }
.recruit-job__intro h3 { margin: 0 0 18px; color: var(--color-blue); font-size: 32px; font-weight: 500; }
.recruit-job__intro p { margin: 0; font-size: 14px; line-height: 1.9; }
.recruit-person { max-width: 620px; margin: 38px auto 0; }
.recruit-person h3 { display: flex; justify-content: center; align-items: center; gap: 24px; max-width: 360px; margin: 0 auto 16px; color: var(--color-blue); font-size: 24px; font-weight: 500; text-align: center; white-space: nowrap; }
.recruit-person h3::before, .recruit-person h3::after { content: ''; display: block; width: 100%; height: 1px; background: var(--color-blue);}
.recruit-person ul { margin: 0; padding: 0;}
.recruit-person li { position: relative; margin: 12px 0; padding-left: 38px; font-size: 18px; font-weight: 500; list-style: none; }
.recruit-person li::before { position: absolute; top: 0.2em; left: 0; display: flex; justify-content: center; align-items: center; width: 26px; height: 26px; place-items: center; border-radius: 50%; color: #fff; background: var(--color-blue); content: counter(list-item); font-size: 18px; font-style: var(--font-en); }
.job-category { padding: 95px 0 105px; color: #fff; background: linear-gradient(135deg, #48b4df, #3ca8dc); }
.job-category__grid { display: grid; margin: 48px 0 0; padding: 0; grid-template-columns: repeat(2, 1fr); gap: 28px; list-style: none; }
.job-category__card { display: grid; padding: 30px; grid-template-columns: 78px 1fr; gap: 18px; border-radius: 6px; color: var(--color-text); background: #fff; }
.job-category__card img { width: 62px; height: 62px; }
.job-category__number { color: var(--color-blue); font-family: var(--font-en); font-size: 14px; font-weight: 600; }
.job-category__card h3 { margin: 5px 0 10px; font-size: 17px; font-weight: 600; }
.job-category__card p { margin: 0; font-size: 12px; line-height: 1.75; }
.work-style { padding: 100px 0 110px; background: #eefbff; }
.work-style__title { margin: 30px 0 45px; color: var(--color-blue); font-size: 32px; font-weight: 500; text-align: center; }
.work-style__grid { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(3, 1fr); gap: 26px; list-style: none; }
.work-style__item { padding: 28px 22px; background: #fff; text-align: center; }
.work-style__item img { width: 95px; height: 95px; margin: 0 auto 18px; }
.work-style__item h3 { margin: 0 0 10px; color: var(--color-blue); font-size: 20px; font-weight: 500; }
.work-style__item p { margin: 0; font-size: 12px; line-height: 1.75; }
.work-style__closing { margin-top: 50px; text-align: center; }
.work-style__closing h3 { margin: 0 0 16px; color: var(--color-blue); font-size: 32px; font-weight: 500; }
.work-style__closing p { margin: 0; font-size: 14px; line-height: 1.9; }
.work-style__actions { display: flex; justify-content: center; margin-top: 28px; gap: 18px; }
.work-style__button, .contact-form input.contact-form__submit { display: inline-flex; min-width: 310px; height: 52px; align-items: center; justify-content: center; border: 0; border-radius: 999px; color: #fff; background: var(--color-blue); font-weight: 700; cursor: pointer; transition: transform 0.3s ease; }
.work-style__button--dark { background: #4382df; }
.contact-section { padding: 80px 0 115px; }
.contact-form { max-width: 940px; margin: 0 auto; }
.contact-form__row { display: grid; align-items: start; margin-bottom: 24px; grid-template-columns: 215px 1fr; gap: 20px; }
.contact-form__label { padding-top: 11px; font-size: 14px; font-weight: 500; }
.contact-form__required { display: inline-block; margin-left: 8px; padding: 1px 6px; color: #fff; background: #f05a68; font-size: 10px; line-height: 1.5; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; border: 0; border-radius: 0; color: var(--color-text); background: #f0f0f0; font-family: var(--font-ja); font-size: 14px; }
.contact-form input, .contact-form select { height: 48px; padding: 0 16px; }
.contact-form input.contact-form__submit { width: auto; min-width: 310px; height: 52px; padding: 0 24px; border-radius: 999px; color: #fff; background: var(--color-blue); }
.contact-form select { max-width: 310px; }
.contact-form textarea { height: 220px; padding: 15px 16px; resize: vertical; }
.contact-form__privacy { max-height: 240px; margin: 45px 0 0 235px; overflow-y: auto; padding: 22px 26px; border: 1px solid #c9ced5; font-size: 11px; line-height: 1.8; }
.contact-form__privacy h2 { margin: 0 0 10px; font-size: 13px; }
.contact-form__privacy p { margin: 0 0 10px; }
.contact-form__submit-wrap { margin: 50px 0 0 235px; text-align: center; }
@media (hover: hover) and (pointer: fine) {
  .recruit-hero__button:hover, .work-style__button:hover, .contact-form__submit:hover { transform: scale(0.95); }
}
@media (max-width: 1024px) {
  .page-hero__mark { right: -130px; }
  .service-flow__list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
  .service-flow__item { padding-inline: 12px; }
  .service-flow__item:not(:last-child)::after { right: -12px; width: 8px; height: 8px; border-width: 2px; }
  .service-concern { padding-inline: 30px; }
  .case-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .case-card { height: auto; }
  .recruit-hero__visual { opacity: 0.72; }
  .recruit-hero__visual .mv01 { right: 0; }
}
@media (max-width: 767px) {
  .page-hero { height: 420px; background-position: center; }
  .page-hero + section { border-radius: 24px;}
  .page-hero__mark { top: -50px; right: -125px; width: 330px; opacity: 0.75; }
  .page-hero__inner { padding-top: 145px; }
  .page-hero__ja { font-size: 13px; }
  .page-hero h1 { font-size: clamp(39px, 13vw, 52px); }
  .page-hero__lead { max-width: 85%; margin-top: 18px; font-size: 13px; }
  .lower-heading__en { font-size: clamp(40px, 12vw, 52px); }
  .service-flow .lower-heading__en, .service-concerns .lower-heading__en { font-size: clamp(34px, 10vw, 40px); letter-spacing: -0.035em; }
  .section-rounded { width: 100%; border-radius: 24px; }
  .lower-square--01 { top: 45px; right: 5%; left: auto; }
  .lower-square--02 { top: 105px; left: -25px; }
  .lower-square--03 { top: 135px; right: -25px; left: auto; }
  .lower-square--04 { top: 230px; left: 6%; }
  .lower-square--05 { top: 330px; right: 3%; left: auto; }
  .lower-square--06 { top: 445px; left: 4%; }
  .lower-square-section--recruit .lower-square--01 { top: 165px; right: 3%; left: auto; }
  .service-flow, .service-catalog, .about-business, .about-record, .recruit-job, .work-style, .contact-section { padding-block: 70px; }
  .service-flow__list { margin-top: 38px; grid-template-columns: 1fr; gap: 36px; }
  .service-flow__item { height: 210px; }
  .service-flow__item:not(:last-child)::after { top: auto; right: 50%; bottom: -25px; width: 11px; height: 11px; border-width: 3px; transform: translateX(50%) rotate(135deg); }
  .service-concerns, .about-reasons, .support-area, .recruit-charms, .job-category { padding-block: 70px; }
  .service-concerns__list, .about-reasons__grid, .service-catalog__grid, .case-grid, .support-area__grid, .job-category__grid, .work-style__grid { margin-top: 38px; grid-template-columns: 1fr; }
  .service-concern { padding: 32px 20px; grid-template-columns: 70px minmax(0, 1fr); gap: 18px; }
  .service-concern__icon { width: 65px; height: 65px; }
  .service-concern__icon img { width: 45px; height: 45px; }
  .service-concern h3 { font-size: 17px; }
  .service-concern__meta { align-items: flex-start; flex-direction: column; gap: 5px; }
  .service-catalog__icon { height: 80px; }
  .service-catalog__icon img { width: 80px; height: 80px; }
  .about-business__subtitle { font-size: 18px; }
  .about-business__title { font-size: clamp(37px, 11vw, 50px); }
  .about-business__sides { grid-template-columns: 1fr; gap: 25px; }
  .about-business__side h3 { font-size: 20px;}
  .about-business__side li { font-size: 16px;}
  .about-business__copy { text-align: left; font-size: 16px; }
  .about-reasons__grid { gap: 16px; }
  .about-strength { grid-template-columns: 1fr; gap: 20px; }
  .about-strength img { width: 100%; height: auto; aspect-ratio: 3 / 2; }
  .about-experience { padding: 30px 22px; }
  .about-experience li { font-size: 16px;}
  .cases-intro { padding-top: 65px; text-align: left; }
  .cases-intro h2 { font-size: 23px; }
  .case-card { padding: 25px 20px; }
  .support-area__grid { grid-template-columns: repeat(2, 1fr); }
  .company-profile { padding-block: 60px 80px; }
  .company-table th, .company-table td { display: block; width: 100%; height: auto; padding: 12px 0; }
  .company-table th { padding-top: 22px; border-bottom: 0; color: var(--color-blue); }
  .company-table td { padding-top: 0; }
  .recruit-hero { height: 740px; margin-bottom: -24px; }
  .recruit-hero + section { border-radius: 24px;}
  .recruit-hero__copy { padding-top: 125px; }
  .recruit-hero__label { font-size: 20px; }
  .recruit-hero h1 { font-size: clamp(30px, 8vw, 42px); }
  .recruit-hero__lead { max-width: 70%; font-size: 12px; }
  .recruit-hero__button { min-width: 260px; height: 48px; }
  .recruit-hero__visual .mv01 { top: 300px; right: -60px; width: 300px; opacity: 0.85; }
  .recruit-hero__visual .mv02 { top: 95px; right: -20px; width: 90px; }
  .recruit-hero__visual .mv03, .recruit-hero__visual .mv04, .recruit-hero__visual .mv06 { display: none; }
  .recruit-hero__visual .mv05 { right: auto; bottom: 25px; left: 15px; width: 105px; }
  .recruit-message { padding-block: 75px; text-align: left; }
  .recruit-message h2 { font-size: 22px; }
  .recruit-charms__lead { font-size: 17px; }
  .recruit-charm { padding: 35px 10px; grid-template-columns: 70px 1fr; gap: 15px; }
  .recruit-charm img { width: 58px; height: 58px; }
  .recruit-charm h3 { font-size: 17px; }
  .recruit-job__intro h3 { font-size: 24px;}
  .recruit-job__intro p { text-align: left;}
  .recruit-person li { font-size: 16px; }
  .job-category__card { padding: 25px 20px; grid-template-columns: 62px 1fr; }
  .work-style__title { font-size: 24px;}
  .work-style__grid { gap: 16px; }
  .work-style__actions { flex-direction: column; align-items: center; }
  .work-style__closing h3 { font-size: 24px;}
  .contact-form__row { grid-template-columns: 1fr; gap: 7px; }
  .contact-form__label { padding-top: 0; }
  .contact-form__privacy, .contact-form__submit-wrap { margin-left: 0; }
  .contact-form__submit, .contact-form input.contact-form__submit { width: 100%; min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .recruit-hero__button, .work-style__button, .contact-form__submit { transition: none; }
}

.works__slider {
  margin-left: 0;
}
