/* 2026年採用改修の3テンプレート専用。CSSとしても有効なSCSSで出力と同じ内容を保持する。 */
/* 詳細円の英字だけに適用し、既存のTOPなどの書体には影響させない。 */
@font-face {
  font-family: 'OMS Work Albert Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('https://fonts.gstatic.com/s/albertsans/v4/i7dZIFdwYjGaAMFtZd_QA3xXSKZqhr-TenSHq5P_rA.ttf') format('truetype');
}
.oms-renewal {
  --oms-blue: #1d2088;
  --oms-lavender: #9794c3;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--oms-blue);
  color: #fff;
  font-size: 1.4rem;
  line-height: 2.15;
  letter-spacing: .08em;
}
/* 既存下層用のフッター上余白を改修3ページのみ解除する。 */
.oms-renewal + footer .ft_top { margin-top: 0; }
/* 既存フッターの固定TOPは対象ページだけ非表示にし、コンテンツ末尾のTOPを使う。 */
.oms-renewal + footer > p:first-child { display: none; }
.oms-renewal *, .oms-renewal *::before, .oms-renewal *::after { box-sizing: border-box; }
.oms-renewal a { color: inherit; }
.oms-renewal a.oms-renewal__button, .oms-renewal .oms-renewal__jump a { color: var(--oms-blue); }
.oms-renewal button, .oms-renewal summary { font: inherit; letter-spacing: inherit; cursor: pointer; }
.oms-renewal button { border: 0; }
.oms-renewal h1, .oms-renewal h2, .oms-renewal h3, .oms-renewal p { margin: 0; }
.oms-renewal h1, .oms-renewal h2 { font-size: 3.6rem; font-weight: 700; letter-spacing: .13em; line-height: 1.8; }
.oms-renewal h3 { font-size: 2rem; font-weight: 700; }
.oms-renewal :focus-visible { outline: 3px solid #135295; outline-offset: 5px; }
.oms-renewal details > summary { list-style: none; }
.oms-renewal details > summary::-webkit-details-marker { display: none; }
.oms-renewal__hero { position: relative; width: 100%; aspect-ratio: 1110 / 650; z-index: 1; }
.oms-renewal__hero > img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* PCのメイン画像は元の比率を基準に最大480px。スマホの画像比率は維持。 */
@media (min-width: 768px) {
  .oms-renewal__hero { max-height: 480px; }
  .oms-renewal__hero > img { object-position: center 30%; }
}
.oms-renewal__content { position: relative; z-index: 1; max-width: 1110px; margin: 0 auto; padding: 78px 60px 130px; }
.oms-renewal__title { display: block; max-width: 100%; height: auto; margin: 0 0 66px; }
.oms-renewal__narrow { width: min(100%, 870px); margin-left: auto; margin-right: auto; }
.oms-renewal__intro { position: relative; padding-right: 90px; }
.oms-renewal__intro h2 { margin-bottom: 30px; }
.oms-renewal__lead { line-height: 30px; letter-spacing: .09em; font-weight: 400; }
.oms-renewal__vertical { position: absolute; right: 40px; top: -45px; width: 78px; height: auto; line-height: 1 !important; }
.oms-renewal__vertical img { display: block; width: 100%; height: auto; }
.oms-renewal__scroll { position: absolute; top: 408px; right: 60px; width: 37px; height: 140px; object-fit: contain; }
.oms-renewal--engineering .oms-renewal__scroll { top: 431px; }
.oms-renewal--entrance .oms-renewal__content { min-height: 820px; }
.oms-renewal--entrance h1 { line-height: 47px; margin-bottom: 76px; }
.oms-renewal__entrance-links { display: grid; grid-template-columns: 1fr 1fr; gap: 42px; width: min(100%, 860px); margin-left: 44px; }
.oms-renewal__button, .oms-renewal__jump a { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 15px; background: #fff; color: var(--oms-blue); border: 2px solid var(--oms-blue); border-radius: 5px; box-shadow: 8px 8px 0 #fff; padding: 20px 32px; min-height: 110px; font-size: 2.7rem; line-height: 1.5; font-weight: 700; text-decoration: none; }
.oms-renewal__button small { display: block; font-size: 1.6rem; letter-spacing: 0; }
.oms-renewal__button img { width: 48px; height: 48px; object-fit: contain; }
.oms-renewal__button-icon { display: grid; flex: 0 0 48px; width: 48px; height: 48px; }
.oms-renewal__button-icon img { display: block; grid-area: 1 / 1; transition: opacity .3s ease-out; }
.oms-renewal__button-icon-hover { opacity: 0; }
.oms-renewal__button:hover .oms-renewal__button-icon img:first-child, .oms-renewal__button:focus-visible .oms-renewal__button-icon img:first-child { opacity: 0; }
.oms-renewal__button:hover .oms-renewal__button-icon-hover, .oms-renewal__button:focus-visible .oms-renewal__button-icon-hover { opacity: 1; }
.oms-renewal__button[aria-disabled="true"] { cursor: default; }
.oms-renewal__button, .oms-renewal__jump a { transition: transform .3s ease-out, box-shadow .3s ease-out; }
.oms-renewal__button:hover, .oms-renewal__button:focus-visible, .oms-renewal__jump a:hover, .oms-renewal__jump a:focus-visible { transform: translate(-5px, -5px); box-shadow: 13px 13px 0 var(--oms-lavender); }
.oms-renewal--career .oms-renewal__intro { margin-bottom: 88px; }
.oms-renewal--career .oms-renewal__lead { min-height: 283px; }
.oms-renewal__category { position: relative; margin: 0 13px 51px 0; padding-top: 19px; color: var(--oms-blue); }
.oms-renewal__category-details { border: 2px solid var(--oms-blue); border-radius: 5px; background: #fff; box-shadow: 13px 13px 0 -2px #fff, 13px 13px 0 var(--oms-blue); }
.oms-renewal__category-details > summary { position: relative; display: flex; align-items: center; min-height: 141px; padding: 20px 52px 20px 81px; gap: 20px; }
#jobs-construction .oms-renewal__category-details > summary { min-height: 196px; }
.oms-renewal__category-number { position: absolute; left: 4px; top: 5px; font-family: 'Albert Sans', Arial, sans-serif; font-size: 5.1rem; font-weight: 300; font-style: italic; letter-spacing: -.08em; line-height: 1; }
.oms-renewal__category-details strong { display: block; font-size: 3.6rem; letter-spacing: .13em; line-height: 1.6; }
.oms-renewal__category-details small { display: block; color: var(--oms-lavender); font-size: 1.8rem; font-weight: 700; letter-spacing: .03em; line-height: 2.2; }
.oms-renewal__special { display: inline-flex; align-items: center; gap: 10px; font-size: 2.4rem; line-height: 1.8; font-weight: 700; text-underline-offset: 9px; transition: color .3s ease-out; }
.oms-renewal__special:hover { color: var(--oms-lavender); }
.oms-renewal__special img { width: 22px; height: 22px; }
.oms-renewal__arrow { width: 63px; height: 63px; flex: 0 0 63px; margin-left: auto; object-fit: contain; transform: rotate(180deg); transition: transform .3s ease-out; }
.oms-renewal details[open] > summary > .oms-renewal__arrow { transform: rotate(0); }
.oms-renewal__category-body { padding: 20px 48px 40px 64px; }
.oms-renewal__job { margin: 0 0 20px; border: 0; border-bottom: 1px solid var(--oms-blue); background: #fff; color: var(--oms-blue); border-radius: 0; }
.oms-renewal__job > summary { display: flex; align-items: center; gap: 16px; padding: 10px; font-size: 1.8rem; font-weight: 700; line-height: 1.7; }
.oms-renewal__job > summary .oms-renewal__arrow { width: 17px; height: 17px; flex-basis: 17px; filter: brightness(0) saturate(100%) invert(14%) sepia(60%) saturate(2582%) hue-rotate(230deg); transform: none; }
.oms-renewal__job[open] > summary .oms-renewal__arrow { transform: rotate(45deg); }
.oms-renewal__job-body { padding: 0 20px 25px; color: #333; letter-spacing: .02em; line-height: 1.85; }
.oms-renewal__job-body h3 { margin: 18px 0; color: var(--oms-blue); }
.oms-renewal__table { width: 100%; overflow-x: auto; }
.oms-renewal__table table { width: 100%; border-collapse: collapse; font-size: 1.4rem; }
.oms-renewal__table th, .oms-renewal__table td { padding: 12px 15px; border: 1px solid #ccc; vertical-align: top; text-align: left; white-space: normal; }
.oms-renewal__table th, .oms-renewal__table td:first-child { width: 24%; min-width: 100px; background: #f0eff7; font-weight: 700; color: var(--oms-blue); }
.oms-renewal__application { margin-top: 25px; }
.oms-renewal__application a, .oms-renewal__job-body a { color: var(--oms-blue); text-decoration: underline; overflow-wrap: anywhere; }
.oms-renewal__empty { padding: 25px; }
.oms-renewal__flow-section { margin-top: 178px; }
.oms-renewal__flow { list-style: none; padding: 0; margin: 64px 22px 0; }
.oms-renewal__flow li { position: relative; display: flex; gap: 35px; align-items: center; min-height: 100px; margin-bottom: 106px; }
.oms-renewal__flow h3 { display: grid; place-items: center; background: #fff; color: var(--oms-blue); border-radius: 50%; width: 100px; height: 100px; flex: 0 0 100px; font-size: 2.4rem; }
.oms-renewal__flow li:not(:last-child)::after { content: ''; position: absolute; left: 47px; bottom: -80px; width: 8px; height: 64px; background: url('../images/engineering-88452.svg') center / contain no-repeat; }
.oms-renewal__flow li:last-child { margin-bottom: 0; }
.oms-renewal__notes { margin-top: 80px; max-width: 620px; }
.oms-renewal__notes h2 { margin-bottom: 35px; }
.oms-renewal__notes ul { padding-left: 1.5em; }
.oms-renewal__profile { margin-top: 170px; }
.oms-renewal__profile h2 { font-size: 1.4rem; font-weight: 400; letter-spacing: .03em; line-height: 30px; margin-bottom: 76px; }
.oms-renewal__profile-data { display: block; max-width: 100%; width: 825px; height: auto; margin: 0 auto; }
.oms-renewal__profile-help { display: none; }
.oms-renewal__profile-scroll { max-width: 100%; }
.oms-renewal__back { display: inline-block; margin-top: 70px; text-decoration: underline; }
.oms-renewal__jump { display: grid; grid-template-columns: repeat(3, 1fr); gap: 37px 30px; margin-top: 99px; }
.oms-renewal__jump a { justify-content: center; padding: 15px 10px; min-height: 82px; font-size: 2rem; text-align: center; }
.oms-renewal__section { margin-top: 210px; scroll-margin-top: 30px; }
.oms-renewal__section > h2 { margin: 0 0 15px; }
.oms-renewal__section > .oms-renewal__title { margin-bottom: 22px; }
.oms-renewal__work-orbit { position: relative; width: min(100%, 744px); aspect-ratio: 744 / 720; margin: -217px 0 0 100px; }
.oms-renewal__orbit-line { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.oms-renewal__work-diagram { position: absolute; width: 67.74%; left: 16.4%; top: 19.8%; aspect-ratio: 1; }
.oms-renewal__work-diagram > img { display: block; width: 100%; height: 100%; border-radius: 50%; clip-path: circle(49.4%); }
.oms-renewal__work-diagram > .oms-renewal__work-hover { position: absolute; inset: 0; opacity: 0; pointer-events: none; transition: opacity .3s ease-in-out; }
.oms-renewal__work-hover.is-active { opacity: 1; }
.oms-renewal__work-button { position: absolute; inset: 0; padding: 0; width: 100%; height: 100%; background: transparent; border-radius: 50%; }
.oms-renewal__work-button--architecture { clip-path: polygon(50% 50%, 0 34.5%, 0 0, 50% 0); }
.oms-renewal__work-button--civil { clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 34.5%); }
.oms-renewal__work-button--electric { clip-path: polygon(50% 50%, 100% 34.5%, 100% 100%, 80% 91%); }
.oms-renewal__work-button--facility { clip-path: polygon(50% 50%, 80% 91%, 80% 100%, 20% 100%, 20% 91%); }
.oms-renewal__work-button--vehicle { clip-path: polygon(50% 50%, 20% 91%, 0 100%, 0 34.5%); }
.oms-renewal__work-button:focus-visible { outline-offset: -6px; }
.oms-renewal__work-detail { position: absolute; inset: 0; z-index: 3; container-type: inline-size; border: 5px solid #fff; border-radius: 50%; background: var(--oms-blue); color: #fff; text-align: center; font-family: 'Noto Sans JP', sans-serif; }
.oms-renewal__work-detail[hidden] { display: none; }
.oms-renewal__work-detail h3 { position: absolute; top: 14.7%; width: 100%; font-size: 9.4433cqw; font-weight: 700; line-height: 1.5708; letter-spacing: .13em; }
.oms-renewal__work-detail .oms-renewal__work-en { position: absolute; top: 27.1%; width: 100%; font-family: 'OMS Work Albert Sans', Arial, sans-serif; font-size: 5.5341cqw; font-weight: 400; line-height: 2; letter-spacing: .03em; color: var(--oms-lavender); }
/* Figmaの直径564.95pxを基準に、円と一緒に文字サイズ・配置を縮小する。 */
.oms-renewal__work-description { position: absolute; inset: 0; font-size: 3.2923cqw; font-weight: 300; line-height: 2.1616; letter-spacing: .13em; }
.oms-renewal__work-description strong { position: absolute; top: 45.86%; left: 0; width: 100%; font-size: 4.5305cqw; font-weight: 700; line-height: 1.5708; margin: 0; }
.oms-renewal__work-description p { position: absolute; top: 57.2%; left: 17.88%; width: 63.9%; }
#work-vehicle .oms-renewal__work-description p { left: 18.05%; width: 63.37%; }
#work-civil .oms-renewal__work-description p { left: 15.93%; width: 67.79%; }
:is(#work-architecture, #work-facility) .oms-renewal__work-description strong { top: 52.25%; }
:is(#work-architecture, #work-facility) .oms-renewal__work-description p:first-child { top: 43.58%; left: 12.74%; width: 74.17%; }
#work-facility .oms-renewal__work-description p:first-child { width: 75.94%; }
:is(#work-architecture, #work-facility) .oms-renewal__work-description p:last-child { top: 75.09%; left: 18.23%; width: 63.19%; }
.oms-renewal__work-detail button { position: absolute; width: 12%; min-width: 32px; aspect-ratio: 1; padding: 0; left: 50%; transform: translateX(-50%); bottom: 5%; display: grid; place-items: center; background: transparent; border-radius: 50%; }
.oms-renewal__work-detail button img { display: block; width: 4.37cqw; height: auto; aspect-ratio: 1; }
.oms-renewal__orbit-label { position: absolute; display: grid; align-content: center; border: 1px solid #fff; border-radius: 50%; width: 14.93%; aspect-ratio: 1; background: var(--oms-blue); font-size: 1.2rem; text-align: center; z-index: 2; line-height: 1.6; }
.oms-renewal__orbit-label--plan { top: 0; left: 43%; }
.oms-renewal__orbit-label--build { right: 0; top: 57.12%; }
.oms-renewal__orbit-label--maintain { left: 0; top: 56.89%; }
.oms-renewal__interviews { display: grid; grid-template-columns: 308px 308px; justify-content: start; gap: 39px 95px; margin: 86px 0 0 105px; }
.oms-renewal__interview { background: transparent; color: #fff; padding: 0; text-align: left; }
.oms-renewal__portrait { display: block; position: relative; height: 268px; background: #fff; border: 2px solid var(--oms-blue); border-radius: 4px; box-shadow: 10px 10px 0 #fff; transition: transform .3s ease-out, box-shadow .3s ease-out; overflow: hidden; }
.oms-renewal__portrait img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 4px; transition: transform .3s ease-out; }
.oms-renewal__interview:hover .oms-renewal__portrait, .oms-renewal__interview:focus-visible .oms-renewal__portrait { transform: translate(-4px,-4px); box-shadow: 14px 14px 0 var(--oms-lavender); }
.oms-renewal__interview:hover .oms-renewal__portrait img, .oms-renewal__interview:focus-visible .oms-renewal__portrait img { transform: scale(1.05); }
.oms-renewal__interview-label { display: block; margin-top: 26px; padding-left: 6px; font-size: 1.4rem; font-weight: 700; letter-spacing: .03em; line-height: 23px; }
.oms-renewal__projects { position: relative; max-width: 949px; margin: 38px 0 0 4px; }
.oms-renewal__slides { display: flex; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; cursor: grab; user-select: none; }
.oms-renewal__slides.is-enhanced { scroll-snap-type: none; touch-action: auto; }
.oms-renewal__slides.is-touch-scrolling { scroll-snap-type: x mandatory; }
.oms-renewal__slides.is-touch-scrolling > .oms-renewal__slide { scroll-snap-stop: always; }
.oms-renewal__slides.is-dragging { cursor: grabbing; }
.oms-renewal__slides::-webkit-scrollbar { display: none; }
.oms-renewal__slide { flex: 0 0 100%; min-width: 0; padding: 20px; scroll-snap-align: start; background: #fff; color: var(--oms-blue); }
.oms-renewal__project-images { aspect-ratio: 910 / 330; }
.oms-renewal__project-images img { display: block; width: 100%; height: 100%; object-fit: contain; }
.oms-renewal__slide h3 { font-size: 2rem; margin: 20px 20px 7px; }
.oms-renewal__slide p { font-size: 1.2rem; line-height: 2; min-height: 75px; margin: 0 20px; }
.oms-renewal__carousel-controls { display: flex; align-items: center; justify-content: space-between; gap: 15px; position: absolute; bottom: 12px; left: 16px; right: 16px; pointer-events: none; }
.oms-renewal__carousel-controls > button { display: grid; place-items: center; border-radius: 50%; background: transparent; width: 30px; height: 30px; padding: 8px; pointer-events: auto; transition: opacity .3s; }
.oms-renewal__carousel-controls > button img { width: 13.5px; height: 12px; transform: rotate(-90deg); }
.oms-renewal__carousel-controls > button:first-child img { transform: rotate(90deg); }
.oms-renewal__carousel-controls > button:hover { opacity: .6; }
.oms-renewal__qa { max-width: 807px; margin: 65px 0 0 49px; }
.oms-renewal__qa details { margin-bottom: 8px; border-bottom: 1px solid var(--oms-lavender); color: #fff; }
.oms-renewal__qa summary { display: flex; gap: 16px; align-items: center; min-height: 65px; padding: 10px 2px 10px 13px; font-size: 1.6rem; font-weight: 700; letter-spacing: .03em; line-height: 1.8; transition: background-color .3s ease-out; }
.oms-renewal__qa summary:hover { background-color: rgba(151,148,195,.15); }
.oms-renewal__qa summary > span, .oms-renewal__qa strong { display: grid; place-items: center; width: 32px; height: 32px; flex: 0 0 32px; border: 1px solid var(--oms-lavender); border-radius: 50%; font-size: 1.9rem; line-height: 1; }
.oms-renewal__qa .oms-renewal__arrow { width: 16px; height: 16px; flex-basis: 16px; transform: none; }
.oms-renewal__qa details[open] > summary > .oms-renewal__arrow { transform: rotate(45deg); }
.oms-renewal__qa details > div { display: flex; gap: 16px; padding: 20px 15px 26px 13px; background: var(--oms-lavender); }
.oms-renewal__qa strong { background: #fff; color: var(--oms-blue); }
.oms-renewal__qa details p { font-size: 1.6rem; line-height: 34px; letter-spacing: .03em; font-weight: 700; }
.oms-renewal__vacancies { margin-top: 110px; scroll-margin-top: 30px; background: #fff; border: 2px solid var(--oms-blue); border-radius: 5px; box-shadow: 10px 10px 0 #fff; color: var(--oms-blue); }
.oms-renewal__vacancies > details > summary { display: flex; align-items: center; padding: 20px 40px; font-size: 2.7rem; font-weight: 700; min-height: 95px; }
.oms-renewal__existing-links { display: flex; flex-wrap: wrap; gap: 15px 25px; margin-top: 65px; font-size: 1.3rem; }
.oms-renewal__existing-links a { text-decoration: underline; }
.oms-renewal__dialog { position: fixed; inset: 0; margin: auto; border: 0; border-radius: 20px; box-shadow: 17px 20px 0 var(--oms-lavender); width: min(860px, calc(100% - 50px)); max-height: calc(100dvh - 80px); overflow-y: auto; color: var(--oms-blue); padding: 45px 60px; background: #fff; font-size: 1.4rem; }
.oms-renewal__dialog::backdrop { background: rgba(0, 0, 0, .55); }
.oms-renewal__dialog h2:not(.oms-renewal__sr) { font-size: 2.4rem; padding-right: 25px; margin-bottom: 20px; }
.oms-renewal__dialog p { white-space: pre-line; }
.oms-renewal__dialog-en { color: var(--oms-lavender); font-size: 2.2rem; margin-bottom: 20px !important; }
.oms-renewal__close { position: absolute; top: 15px; right: 20px; width: 44px; height: 44px; background: transparent; color: var(--oms-blue); font-size: 3.4rem !important; line-height: 1 !important; }
.oms-renewal__interview-detail { display: grid; grid-template-columns: 1fr 1fr; gap: 35px; }
.oms-renewal__interview-detail h3 { border-left: 5px solid var(--oms-blue); padding-left: 14px; font-size: 1.8rem; margin: 12px 0 20px; }
.oms-renewal__interview-detail p { margin-bottom: 22px; line-height: 37px; font-weight: 700; letter-spacing: .03em; }
.oms-renewal__close img { width: 24px; height: 24px; }
.oms-renewal__schedule { display: block; width: 100%; height: auto; }
.oms-renewal__schedule-legend { display: grid; gap: 18px; padding: 0; margin: 20px 0 0; list-style: none; font-size: 1.2rem; line-height: 1.8; font-weight: 700; letter-spacing: .03em; }
.oms-renewal__schedule-legend-row { display: flex; gap: 16px; padding: 0; margin: 0; list-style: none; }
.oms-renewal__schedule-legend li { display: flex; align-items: flex-start; gap: 8px; white-space: nowrap; }
.oms-renewal__schedule-legend li > span { display: block; flex: 0 0 17px; width: 17px; height: 17px; margin-top: 2px; background: var(--legend-color); }
.oms-renewal__schedule-legend li > .is-outline { border: 1px solid var(--oms-blue); }
.oms-renewal__sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.oms-renewal__ring { position: absolute; left: calc(50% - 555px + var(--ring-x)); top: var(--ring-y); width: 960px; height: 960px; pointer-events: none; z-index: 0; }
.oms-renewal__ring img { position: absolute; left: -62px; top: -62px; width: 1088px; height: 1088px; max-width: none; }
.oms-renewal .oms-renewal__narrow { margin-left: 44px; margin-right: 0; }
.oms-renewal--engineering .oms-renewal__intro h2 { line-height: 82px; margin-bottom: 25px; }
.oms-renewal--engineering #message { margin-top: 106px; }
.oms-renewal--engineering #projects { margin-top: 216px; }
.oms-renewal--engineering #questions { margin-top: 109px; }
.oms-renewal--engineering .oms-renewal__section > h2 { line-height: 58px; margin-bottom: 15px; }
.oms-renewal--engineering .oms-renewal__section > p { line-height: 30px; font-weight: 400; letter-spacing: .06em; }
.oms-renewal--engineering .oms-renewal__section > .oms-renewal__title { margin-bottom: 29px; }
.oms-renewal--engineering #message > .oms-renewal__title { margin-bottom: 22px; }
.oms-renewal .is-closing > summary > .oms-renewal__arrow { transform: rotate(180deg); }
.oms-renewal__qa .is-closing > summary > .oms-renewal__arrow, .oms-renewal .oms-renewal__job.is-closing > summary > .oms-renewal__arrow { transform: none; }
.oms-renewal__job > summary:hover { background: #f3f2f8; }
.oms-renewal__job > summary { transition: background-color .3s; }
@media (max-width: 1150px) {
  .oms-renewal__content { padding-left: 35px; padding-right: 35px; }
  .oms-renewal__interviews { grid-template-columns: minmax(0, 318px) minmax(0, 318px); gap: 50px 35px; }
  .oms-renewal__category-details strong { font-size: 2.7rem; }
  .oms-renewal__work-orbit { margin-top: 55px; width: 85%; }
}
@media (max-width: 767px) {
  .oms-renewal { font-size: 1.4rem; letter-spacing: .04em; }
  .oms-renewal h1, .oms-renewal h2 { font-size: 2.4rem; line-height: 1.7; letter-spacing: .06em; }
  .oms-renewal__hero { aspect-ratio: 1110 / 750; }
  .oms-renewal__content { padding: 40px 22px 75px; }
  .oms-renewal__title { margin-bottom: 30px; }
  .oms-renewal__intro { padding-right: 35px; }
  .oms-renewal__intro h2 { font-size: 2.1rem; margin-bottom: 20px; }
  .oms-renewal__vertical { font-size: 2.8rem !important; right: -8px; top: -20px; }
  .oms-renewal__lead { font-size: 1.3rem; line-height: 2; letter-spacing: .025em; }
  .oms-renewal__lead br { display: none; }
  .oms-renewal--career .oms-renewal__lead br:nth-of-type(4), .oms-renewal--career .oms-renewal__lead br:nth-of-type(7) { display: block; margin-top: 1em; }
  .oms-renewal--entrance .oms-renewal__content { min-height: 520px; }
  .oms-renewal--entrance h1 { margin-bottom: 35px; }
  .oms-renewal__entrance-links { grid-template-columns: 1fr; gap: 28px; }
  .oms-renewal__button { min-height: 90px; font-size: 2.2rem; padding: 16px 20px; }
  .oms-renewal__category-details > summary { gap: 15px; min-height: 118px; padding: 20px 16px; }
  .oms-renewal__category-number { font-size: 4.6rem; }
  .oms-renewal__category-details strong { font-size: 2.1rem; letter-spacing: .04em; }
  .oms-renewal__category-details small { font-size: 1.3rem; }
  .oms-renewal__arrow { width: 32px; height: 32px; flex-basis: 32px; }
  .oms-renewal__special { font-size: 1.3rem; padding: 8px 16px; }
  .oms-renewal__category-body { padding: 5px 12px 20px; }
  .oms-renewal__job > summary { font-size: 1.4rem; padding: 15px 12px; gap: 10px; }
  .oms-renewal__job-body { padding: 0 12px 20px; }
  .oms-renewal__table th, .oms-renewal__table td { padding: 10px; }
  .oms-renewal__table th, .oms-renewal__table td:first-child { min-width: 76px; }
  .oms-renewal__flow-section { margin-top: 85px; }
  .oms-renewal__flow { margin: 35px 0 0; }
  .oms-renewal__flow li { gap: 18px; margin-bottom: 65px; }
  .oms-renewal__flow h3 { width: 70px; height: 70px; flex-basis: 70px; font-size: 1.8rem; }
  .oms-renewal__flow li > div { font-size: 1.3rem; }
  .oms-renewal__flow li:not(:last-child)::after { left: 31px; bottom: -53px; height: 42px; }
  .oms-renewal__notes { margin-top: 45px; }
  .oms-renewal__notes h2 { margin-bottom: 20px; }
  .oms-renewal__profile { margin-top: 90px; }
  .oms-renewal__profile h2 { font-size: 2rem; margin-bottom: 30px; }
  .oms-renewal__profile-help { display: block; font-size: 1.2rem; margin-bottom: 15px; }
  .oms-renewal__profile-scroll { overflow-x: auto; }
  .oms-renewal__profile-data { max-width: none; min-width: 825px; }
  .oms-renewal__jump { grid-template-columns: 1fr 1fr; gap: 22px 16px; margin-top: 45px; }
  .oms-renewal__jump a { min-height: 65px; font-size: 1.4rem; padding: 12px 7px; box-shadow: 5px 5px 0 #fff; }
  .oms-renewal__section { margin-top: 110px; }
  .oms-renewal__work-orbit { margin-top: 70px; width: 88%; }
  .oms-renewal__orbit-label { width: 68px; height: 68px; font-size: .9rem; padding: 7px; }
  .oms-renewal__orbit-label--plan { top: -32px; left: calc(50% - 34px); }
  .oms-renewal__orbit-label--build { right: -27px; }
  .oms-renewal__orbit-label--maintain { left: -27px; }
  .oms-renewal__interviews { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 35px 22px; margin-top: 40px; }
  .oms-renewal__portrait { height: auto; aspect-ratio: 318 / 268; box-shadow: 6px 6px 0 var(--oms-lavender); }
  .oms-renewal__interview-label { font-size: 1.1rem; line-height: 1.7; letter-spacing: 0; }
  .oms-renewal__slide { padding: 12px; }
  .oms-renewal__slide h3 { font-size: 1.8rem; margin-left: 5px; margin-right: 5px; }
  .oms-renewal__slides { overflow-y: hidden; }
  .oms-renewal__slide p { font-size: 1.3rem; min-height: 0; margin-left: 5px; margin-right: 5px; }
  .oms-renewal__carousel-controls { gap: 16px; }
  .oms-renewal__dots { gap: 12px; }
  .oms-renewal__qa { margin-top: 35px; }
  .oms-renewal__qa summary { gap: 12px; padding: 13px 15px; font-size: 1.4rem; }
  .oms-renewal__qa summary > span { font-size: 2.7rem; }
  .oms-renewal__qa details > div { gap: 13px; padding: 20px 15px; font-size: 1.3rem; }
  .oms-renewal__qa .oms-renewal__arrow { width: 25px; height: 25px; flex-basis: 25px; }
  .oms-renewal__vacancies { margin-top: 65px; }
  .oms-renewal__vacancies > details > summary { font-size: 2.2rem; padding: 18px 22px; }
  .oms-renewal__dialog { width: calc(100% - 35px); max-height: calc(100dvh - 60px); padding: 55px 25px 30px; border-radius: 12px; box-shadow: 7px 7px 0 var(--oms-lavender); }
  .oms-renewal__dialog h2:not(.oms-renewal__sr) { font-size: 1.8rem; }
  .oms-renewal__interview-detail { grid-template-columns: 1fr; gap: 10px; }
  .oms-renewal__ring { transform: scale(.55) rotate(-18deg); transform-origin: top left; }
}
@media (prefers-reduced-motion: reduce) {
  .oms-renewal__arrow { transition: none; }
}

@media (max-width: 1150px) {
  .oms-renewal .oms-renewal__narrow, .oms-renewal__entrance-links { width: 100%; margin-left: 0; }
  .oms-renewal__work-orbit { margin: 50px auto 0; width: 85%; }
  .oms-renewal__interviews { justify-content: space-around; margin-left: 0; }
  .oms-renewal__vertical { right: 0; }
  .oms-renewal__scroll { right: 20px; }
  .oms-renewal__button { font-size: 2.1rem; padding: 18px; }
  .oms-renewal__button small { font-size: 1.3rem; }
  .oms-renewal__ring { left: var(--ring-x); }
}
@media (max-width: 767px) {
  .oms-renewal__vertical { width: 36px; right: -8px; top: -20px; }
  .oms-renewal__scroll { display: none; }
  .oms-renewal--career .oms-renewal__lead { min-height: 0; }
  .oms-renewal--career .oms-renewal__intro { margin-bottom: 45px; }
  .oms-renewal--entrance h1 { margin-bottom: 35px; }
  .oms-renewal__entrance-links { gap: 28px; }
  /* タイトル背景の円は改修3ページとも、コンテンツ上端を共通基準にする。 */
  .oms-renewal > .oms-renewal__ring:first-child { display: none; }
  .oms-renewal .oms-renewal__content { isolation: isolate; }
  .oms-renewal .oms-renewal__content::before { content: ''; position: absolute; top: -55px; left: 40%; width: 544px; height: 544px; z-index: -1; pointer-events: none; background: url('../images/ring-career.png') center / contain no-repeat; }
  .oms-renewal--engineering .oms-renewal__content::before { background-image: url('../images/ring-engineering.png'); }
  .oms-renewal__button { font-size: 2.1rem; }
  .oms-renewal__button small { font-size: 1.3rem; }
  .oms-renewal__category { margin-right: 8px; margin-bottom: 30px; padding-top: 12px; }
  .oms-renewal__category-details { box-shadow: 8px 8px 0 -2px #fff, 8px 8px 0 var(--oms-blue); }
  .oms-renewal__category-details > summary { padding: 20px 16px 20px 45px; min-height: 110px; gap: 8px; }
  #jobs-construction .oms-renewal__category-details > summary { min-height: 148px; }
  .oms-renewal__category-number { font-size: 3.2rem; top: 4px; left: 3px; }
  .oms-renewal__category-details strong { font-size: 2rem; }
  .oms-renewal__category-details small { font-size: 1.2rem; }
  .oms-renewal__special { font-size: 1.6rem; padding: 0; }
  .oms-renewal__special img { width: 18px; height: 18px; }
  .oms-renewal--engineering .oms-renewal__intro h2 { line-height: 1.8; }
  .oms-renewal--engineering .oms-renewal__section > h2 { line-height: 1.7; }
  .oms-renewal__work-orbit { margin-top: 45px; width: 100%; }
  .oms-renewal__orbit-label { width: 14.93%; height: auto; padding: 1px; font-size: .65rem; }
  .oms-renewal__orbit-label--plan { top: 0; left: 43%; }
  .oms-renewal__orbit-label--build { right: 0; top: 57.12%; }
  .oms-renewal__orbit-label--maintain { left: 0; top: 56.89%; }
  .oms-renewal--engineering #message, .oms-renewal--engineering #projects, .oms-renewal--engineering #questions { margin-top: 90px; }
  .oms-renewal__interviews { margin-top: 40px; }
  .oms-renewal__interview-label { font-size: 1rem; line-height: 1.8; margin-top: 20px; padding-left: 0; }
  .oms-renewal__qa { margin-top: 35px; }
  .oms-renewal__qa summary { padding: 12px 0; font-size: 1.3rem; gap: 10px; }
  .oms-renewal__qa summary > span, .oms-renewal__qa strong { width: 25px; height: 25px; flex-basis: 25px; font-size: 1.5rem; }
  .oms-renewal__qa details > div { gap: 10px; padding: 15px 10px; }
  .oms-renewal__qa details p { font-size: 1.3rem; line-height: 2; }
  .oms-renewal__qa .oms-renewal__arrow { width: 16px; height: 16px; flex-basis: 16px; }
  .oms-renewal__carousel-controls { gap: 10px; }
  .oms-renewal__slide p { padding-bottom: 25px; }
  .oms-renewal__ring { transform: scale(.5); transform-origin: top left; left: 30%; }
  .oms-renewal__ring img { left: -62px; top: -62px; }
  .oms-renewal__profile h2 { font-size: 1.4rem; margin-bottom: 30px; }
  .oms-renewal__interview-detail p { line-height: 2.2; }
}
/* 採用改修の共通UI：一覧は後続の内容に重ね、募集詳細はdialogで表示する。 */
.oms-career-fixed { position: fixed; right: 34px; bottom: 24px; z-index: 30; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; width: 96px; height: 96px; border: 2px solid #fff; border-radius: 50%; background: var(--oms-blue); text-align: center; font-size: 1.15rem; font-weight: 700; line-height: 1.5; letter-spacing: .02em; transition: transform .3s ease-out; }
.oms-career-fixed img { width: 13px; height: 12px; transform: rotate(-90deg); }
.oms-career-fixed, .oms-career-fixed:hover { text-decoration: none; }
.oms-career-fixed:hover, .oms-career-fixed:focus-visible { transform: translateY(-4px); }
.oms-career-scroll { display: flex; align-items: center; flex-direction: column; color: var(--oms-lavender); }
.oms-career-scroll > span { writing-mode: vertical-rl; font-size: 1.8rem; line-height: 1; letter-spacing: .08em; }
.oms-career-scroll i { position: relative; display: block; width: 1px; height: 76px; margin-top: 14px; overflow: hidden; background: rgba(151, 148, 195, .3); }
.oms-career-scroll i::after { content: ''; position: absolute; inset: 0; background: var(--oms-lavender); transform: translateY(-100%); animation: oms-career-scroll-line 1.8s ease-in-out infinite; }
@keyframes oms-career-scroll-line { 0% { transform: translateY(-100%); } 60%, 100% { transform: translateY(100%); } }
:is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__category { z-index: 1; }
:is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__category.is-expanded { z-index: 5; }
:is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__category-details { position: relative; }
:is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__category-details > summary { position: relative; z-index: 1; background: #fff; border-radius: 3px; }
:is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__category-details > summary::after { content: ''; position: absolute; inset: -2px; border: 2px solid var(--oms-blue); border-radius: 5px; pointer-events: none; }
:is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__category-body { position: absolute; top: 11px; left: 11px; width: calc(100% + 4px); padding: 0; border: 2px solid var(--oms-blue); border-radius: 5px; background: #fff; }
.oms-career-category-content { padding: calc(var(--career-summary-height, 196px) + 12px) 50px 65px; }
.oms-renewal--career .oms-renewal__special { gap: 10px; border-bottom: 2px solid currentColor; text-decoration: none; padding-bottom: 3px; }
.oms-career-special-arrow { display: block; width: 17px; height: 15px; background: currentColor; mask: url('../images/career-special-arrow.svg') center / contain no-repeat; transform: rotate(90deg); }
.oms-renewal--career .oms-renewal__special:focus-visible { color: var(--oms-lavender); }
.oms-career-category-icon { position: relative; display: grid; width: 63px; height: 63px; flex: 0 0 63px; margin-left: auto; transform: rotate(90deg); transition: transform .3s ease-out; }
.oms-career-category-icon img { grid-area: 1 / 1; display: block; width: 100%; height: 100%; transition: opacity .3s ease-out; }
.oms-career-category-icon-open { opacity: 0; }
:is(.oms-renewal--career, .oms-renewal--engineering) summary[aria-expanded="true"] .oms-career-category-icon { transform: rotate(-90deg); }
:is(.oms-renewal--career, .oms-renewal--engineering) summary[aria-expanded="true"] .oms-career-category-icon img:first-child { opacity: 0; }
:is(.oms-renewal--career, .oms-renewal--engineering) summary[aria-expanded="true"] .oms-career-category-icon-open { opacity: 1; }
:is(.oms-renewal--career, .oms-renewal--engineering) .oms-career-job-link { display: flex; align-items: center; justify-content: space-between; gap: 20px; width: 100%; min-height: 52px; padding: 10px 11px; margin-bottom: 20px; border-bottom: 1px solid var(--oms-blue); background: #fff; color: var(--oms-blue); font-size: 1.8rem; font-weight: 700; line-height: 1.8; letter-spacing: .03em; text-align: left; transition: color .3s ease-out, background .3s ease-out; }
.oms-career-job-link:last-of-type { margin-bottom: 0; }
.oms-career-job-link img { width: 17px; height: 17px; flex: 0 0 17px; filter: brightness(0) saturate(100%) invert(14%) sepia(60%) saturate(2582%) hue-rotate(230deg); }
:is(.oms-renewal--career, .oms-renewal--engineering) .oms-career-job-link:hover { background: #f4f3fa; }
:is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__empty { font-size: 2rem; font-weight: 700; letter-spacing: .03em; line-height: 2.55; padding: 0 11px; border-bottom: 1px solid var(--oms-blue); }
.oms-career-job-dialog { width: min(769px, calc(100% - 40px)); max-height: calc(100dvh - 60px); padding: 38px 47px; border-radius: 0; box-shadow: none; overflow: hidden; letter-spacing: .03em; }
.oms-career-job-dialog::backdrop { background: rgba(61, 61, 61, .5); }
.oms-career-job-dialog .oms-renewal__close { top: 9px; right: 20px; z-index: 1; }
.oms-career-job-scroll { max-height: min(560px, calc(100dvh - 136px)); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--oms-blue) #d9d9d9; padding: 24px 35px 30px; }
.oms-career-job-dialog .oms-renewal__job-body { padding: 0; color: var(--oms-blue); font-size: 1.25rem; line-height: 2.2; }
.oms-career-job-dialog .oms-renewal__job-body h3 { font-size: 2.4rem; margin: 18px 0 25px; }
.oms-career-job-dialog .oms-renewal__table { overflow: visible; }
.oms-career-job-dialog .oms-renewal__table table { font-size: 1.2rem; line-height: 1.8; }
.oms-career-job-dialog .oms-renewal__table th, .oms-career-job-dialog .oms-renewal__table td { padding: 12px 10px; border-color: var(--oms-blue); overflow-wrap: anywhere; }
.oms-career-job-dialog .oms-renewal__table th, .oms-career-job-dialog .oms-renewal__table td:first-child { width: 24%; min-width: 0; background: var(--oms-blue); color: #fff; }
.oms-career-job-dialog .oms-renewal__table th.oms-recruit-detail-table__group { width: 20%; }
.oms-career-job-dialog .oms-renewal__table th:not(.oms-recruit-detail-table__group) { width: 22%; background: var(--oms-lavender); color: #fff; border-top-color: #fff; border-bottom-color: #fff; border-right-color: var(--oms-lavender); }
.oms-career-job-dialog .oms-renewal__table td { white-space: pre-line; }
.oms-career-table-columns col:nth-child(1) { width: 20%; }
.oms-career-table-columns col:nth-child(2) { width: 22%; }
.oms-career-table-columns col:nth-child(3) { width: 58%; }
.oms-career-job-dialog .oms-renewal__application { margin-top: 45px; }
.oms-career-job-dialog .oms-renewal__application h4 { font-size: 1.8rem; margin: 20px 0 10px; }
.oms-career-job-dialog .oms-renewal__application > h2 { display: table; padding: 0 10px 3px; border-bottom: 2px solid currentColor; font-size: 2.325rem; line-height: 1.96; letter-spacing: .03em; margin-bottom: 22px; }
.oms-career-job-dialog .oms-renewal__application h3 { font-size: 1.8rem; line-height: 1.2; padding-left: 9px; border-left: 2px solid currentColor; margin: 0 0 16px; }
.oms-career-job-dialog .oms-recruit-application__block + .oms-recruit-application__block { margin-top: 50px; }
.oms-career-job-dialog .oms-recruit-application__text { padding-left: 6px; white-space: pre-line; line-height: 2.28; }
.oms-career-job-dialog a.oms-recruit-file-link { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 8px 16px; margin: 20px 0 0 12px; border: 1px solid currentColor; font-weight: 700; text-decoration: none; transition: background .3s ease-out, color .3s ease-out; }
.oms-career-job-dialog a.oms-recruit-file-link:hover, .oms-career-job-dialog a.oms-recruit-file-link:focus-visible { background: var(--oms-blue); border-color: var(--oms-blue); color: #fff; }
.oms-career-job-dialog .oms-renewal__table th.oms-recruit-detail-table__sub-last { border-bottom-color: var(--oms-blue); }
.oms-career-job-viewport { position: relative; }
.oms-career-scrollbar { position: absolute; top: 77px; right: 0; bottom: 2px; width: 22px; }
.oms-career-scrollbar[hidden] { display: none; }
.oms-career-scrollbar::before { content: ''; position: absolute; top: 0; bottom: 0; left: 9px; width: 4px; background: #d9d9d9; border-radius: 10px; }
.oms-career-scrollbar-thumb { position: absolute; top: 0; left: 0; width: 22px; height: 51px; cursor: grab; touch-action: none; user-select: none; }
.oms-career-scrollbar-thumb::before { content: ''; position: absolute; inset: 0 8px; border-radius: 20px; background: var(--oms-blue); }
.oms-career-scrollbar-thumb.is-dragging { cursor: grabbing; }
.oms-career-job-viewport.has-scrollbar .oms-career-job-scroll { scrollbar-width: none; }
.oms-career-job-viewport.has-scrollbar .oms-career-job-scroll::-webkit-scrollbar { display: none; }
:is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__flow h3 { font-size: 3rem; }
:is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__flow li > div { max-width: 451px; font-size: 1.8rem; line-height: 2; letter-spacing: .05em; }
:is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__notes { max-width: 620px; font-size: 1.4rem; line-height: 3; letter-spacing: .06em; }
:is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__flow-section > h2, :is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__notes > h2 { font-size: 3.6rem; line-height: 42px; letter-spacing: .06em; }
:is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__notes h2 { margin-bottom: 21px; }
.oms-career-stats { display: none; }
.oms-career-contact { position: relative; margin-top: 74px; padding-right: 120px; font-size: 1.4rem; line-height: 30px; letter-spacing: -.03em; }
.oms-career-contact h2 { font-size: 3.6rem; line-height: 60px; letter-spacing: -.03em; margin-bottom: 18px; }
.oms-career-contact-link { text-decoration: underline; text-underline-offset: 3px; }
.oms-career-contact a[href^="tel:"] { text-decoration: none; }
/* コンテンツ末尾に配置し、#wrapperへの移動だけ既存JSを使用する。 */
.oms-renewal a.oms-renewal__top { position: relative; display: grid; place-items: center; width: 78px; height: 78px; margin: 60px 0 0 auto; padding: 0; border: 1.6px solid #fff; border-radius: 50%; background: #fff; color: #9794c3; font-family: 'Albert Sans', Arial, sans-serif; font-size: 2.05rem; font-weight: 600; line-height: 1; letter-spacing: .06em; text-decoration: none; transition: background .3s ease-out, color .3s ease-out; }
.oms-renewal a.oms-renewal__top:hover, .oms-renewal a.oms-renewal__top:focus-visible { background: transparent; color: #fff; }
.oms-renewal .oms-career-contact a.oms-renewal__top { position: absolute; right: 0; top: 119px; margin: 0; }
@media (max-width: 767px) {
  .oms-renewal a.oms-renewal__top { width: 64px; height: 64px; font-size: 1.8rem; }
  .oms-renewal .oms-career-contact a.oms-renewal__top { position: relative; top: auto; right: auto; margin: 35px 0 0 auto; }
  .oms-career-fixed { width: 78px; height: 78px; right: 12px; bottom: 16px; font-size: 1rem; gap: 3px; }
  .oms-renewal--career .oms-career-scroll { width: 28px; right: -2px; top: 195px; }
  .oms-career-scroll > span { font-size: 1.5rem; }
  :is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__category-body { left: 11px; }
  .oms-career-category-content { padding: calc(var(--career-summary-height, 142px) + 5px) 14px 28px; }
  .oms-career-category-icon { width: 40px; height: 40px; flex-basis: 40px; }
  .oms-renewal--career .oms-renewal__special { padding: 3px 0; font-size: 1.6rem; }
  .oms-career-special-arrow { width: 13px; height: 12px; }
  :is(.oms-renewal--career, .oms-renewal--engineering) .oms-career-job-link { font-size: 1.5rem; line-height: 1.8; padding: 12px 0; gap: 12px; margin-bottom: 12px; }
  :is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__empty { font-size: 1.6rem; line-height: 1.8; padding: 12px 0; }
  .oms-career-job-dialog { width: calc(100% - 24px); padding: 48px 12px 18px; max-height: calc(100dvh - 32px); }
  .oms-career-job-scroll { max-height: calc(100dvh - 98px); padding: 0 22px 16px 0; }
  .oms-career-scrollbar { top: 0; right: -5px; }
  .oms-career-desktop-break { display: none; }
  /* PCの左右交互の配置を踏襲し、スマホでは円を画面端から見せる。 */
  .oms-renewal--career > .oms-renewal__ring:nth-child(2) { display: none; }
  .oms-renewal--career .oms-renewal__flow-section { position: relative; isolation: isolate; }
  .oms-renewal--career .oms-renewal__flow-section::before { content: ''; position: absolute; top: -180px; left: -250px; width: 544px; height: 544px; z-index: -1; pointer-events: none; background: url('../images/ring-career.png') center / contain no-repeat; }
  .oms-renewal--career > .oms-renewal__ring:nth-child(3) { left: 60%; }
  .oms-renewal--career > .oms-renewal__ring:nth-child(4) { display: none; }
  .oms-career-job-dialog .oms-renewal__table table { font-size: 1.3rem; table-layout: fixed; }
  .oms-career-job-dialog .oms-renewal__table th, .oms-career-job-dialog .oms-renewal__table td { padding: 10px 7px; }
  /* 4文字分の字幅・字間とセルの余白を確保し、残りを本文列に割り当てる。 */
  .oms-career-job-dialog .oms-career-table-columns col:first-child,
  .oms-career-job-dialog .oms-renewal__table th.oms-recruit-detail-table__group { width: calc(4.2em + 15px); }
  .oms-career-job-dialog .oms-career-table-columns col:nth-child(3) { width: auto; }
  .oms-career-job-dialog .oms-renewal__job-body { font-size: 1.4rem; }
  :is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__flow-section > h2, :is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__notes > h2 { font-size: 2.6rem; }
  :is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__flow h3 { font-size: 2rem; }
  :is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__flow li > div { font-size: 1.5rem; }
  :is(.oms-renewal--career, .oms-renewal--engineering) .oms-renewal__notes { line-height: 2.2; }
  .oms-renewal--career .oms-renewal__profile-scroll, .oms-renewal--career .oms-renewal__profile > .oms-renewal__sr { display: none; }
  .oms-career-stats { display: block; }
  .oms-career-stats-date { text-align: right; font-size: 1.2rem; padding-bottom: 14px; }
  .oms-career-stats-grid { position: relative; border-bottom: 1px solid var(--oms-lavender); }
  .oms-career-stats-grid > section { position: relative; text-align: center; border-top: 1px solid var(--oms-lavender); padding: 30px 12px; font-size: 1.2rem; line-height: 1.9; letter-spacing: .03em; }
  .oms-career-stats-grid > section::before, .oms-career-stats-grid::after { content: ''; position: absolute; left: 0; width: 9px; height: 9px; border: 1px solid var(--oms-lavender); border-radius: 50%; background: var(--oms-blue); }
  .oms-career-stats-grid > section::before { top: -5px; }
  .oms-career-stats-grid::after { bottom: -5px; }
  .oms-career-stats-grid h3 { font-size: 1.8rem; letter-spacing: .12em; }
  .oms-career-stats-grid .oms-career-stat-value { font-size: 4.8rem; font-weight: 700; line-height: 1.3; margin: 24px 0; }
  .oms-career-stat-value small, .oms-career-stat-gender small { font-size: 1.8rem; margin-left: 3px; }
  .oms-career-stat-gender { display: grid; grid-template-columns: 1fr 1fr; margin: 24px 0; font-size: 1.5rem; }
  .oms-career-stat-gender p + p { border-left: 1px solid var(--oms-lavender); }
  .oms-career-stat-gender strong { display: block; font-size: 3.2rem; }
  .oms-career-stats-grid img { display: block; width: 210px; max-width: 100%; height: auto; margin: 26px auto 0; }
  .oms-career-stats-grid img.oms-career-stat-donut { width: 110px; }
  .oms-career-contact { padding-right: 0; margin-top: 65px; }
  .oms-career-contact h2 { font-size: 2.5rem; line-height: 1.6; margin-bottom: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .oms-renewal *, .oms-renewal *::before, .oms-renewal *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .oms-career-scroll i::after { animation: none; transform: none; }
}

/* 総合建設事業：共通の募集ダイアログと、重ねて展開するFAQ。 */
.oms-renewal--engineering .oms-renewal__jump a { box-shadow: 6px 6px 0 #fff; }
.oms-renewal--engineering .oms-renewal__jump a:hover, .oms-renewal--engineering .oms-renewal__jump a:focus-visible { transform: translate(-3px, -3px); box-shadow: 9px 9px 0 var(--oms-lavender); }
.oms-renewal--engineering .oms-renewal__vacancies { padding-top: 19px; background: transparent; border: 0; box-shadow: none; }
.oms-renewal--engineering .oms-renewal__vacancies > details > summary { min-height: 90px; padding: 15px 40px 15px 50px; font-size: 2.8rem; }
.oms-renewal--engineering .oms-renewal__vacancies .oms-career-category-icon { width: 51px; height: 51px; flex-basis: 51px; }
.oms-renewal__qa details { position: relative; }
.oms-renewal__qa details.is-expanded { z-index: 6; }
.oms-renewal__qa details > div { position: absolute; top: 100%; left: 0; width: 100%; z-index: 1; }
@media (max-width: 767px) {
  .oms-renewal--engineering .oms-career-scroll { top: 205px; right: -2px; width: 28px; }
  .oms-renewal--engineering > .oms-renewal__ring:not(:first-child) { display: none; }
  .oms-renewal--engineering .oms-renewal__section { position: relative; isolation: isolate; }
  /* FAQを開いている間は、セクションごと後続の募集職種より手前に出す。 */
  .oms-renewal--engineering #questions:has(details.is-expanded) { z-index: 6; }
  .oms-renewal--engineering .oms-renewal__section::before { content: ''; position: absolute; top: -130px; left: -265px; width: 544px; height: 544px; z-index: -1; pointer-events: none; background: url('../images/ring-engineering.png') center / contain no-repeat; }
  .oms-renewal--engineering #message::before, .oms-renewal--engineering #questions::before { left: auto; right: -350px; }
  .oms-renewal--engineering .oms-renewal__work-orbit { margin-top: 45px; width: 100%; }
  .oms-renewal--engineering .oms-renewal__orbit-label { font-size: clamp(7px, 1.9vw, 12px); letter-spacing: 0; }
  .oms-renewal--engineering .oms-renewal__work-detail { inset: 0; border-width: 3px; }
  .oms-renewal--engineering .oms-renewal__vacancies > details > summary { min-height: 95px; padding: 20px 16px; font-size: 2rem; }
  .oms-renewal--engineering .oms-renewal__vacancies .oms-career-category-icon { width: 40px; height: 40px; flex-basis: 40px; }
  .oms-renewal__carousel-controls { left: 6px; right: 6px; bottom: 6px; }
  .oms-renewal__schedule-legend { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; font-size: 1.2rem; }
  .oms-renewal__schedule-legend-row { display: contents; }
  .oms-renewal__schedule-legend li { gap: 8px; max-width: none; white-space: normal; }
  .oms-renewal__schedule-legend li > span { width: 14px; height: 14px; flex-basis: 14px; }
}

/* インタビューのPC凡例は文字サイズを保ち、3項目×2段に揃える。 */
@media (min-width: 768px) {
  .oms-renewal__dialog--interview { width: min(900px, calc(100% - 50px)); padding: 40px 32px; }
  .oms-renewal__interview-detail { grid-template-columns: minmax(0, 1fr) 404px; gap: 28px; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .oms-renewal__interview-detail { grid-template-columns: minmax(0, 1fr); }
  .oms-renewal__schedule { max-width: 440px; margin-inline: auto; }
}
