@charset "UTF-8";

/* =========================================================================
   Stellaxis Consulting — mobile, built to the 390px XD artboard.
   Loaded behind media="(max-width: 767px)", so no nested queries are needed.

   Rescaling the root makes --px equal one *mobile* design pixel, so the whole
   desktop machinery (.a / .bl / .tx / .sec) keeps working and only the custom
   properties change. Where the markup carries an inline --x/--y for desktop,
   the override needs !important, because inline custom properties outrank any
   selector.

   The ABOUT page has no mobile artboard in the XD, so that block near the
   bottom of this file is an adaptation of the desktop layout rather than a
   transcription.
   ========================================================================= */

html {
  font-size: calc(100vw / 39);
  max-width: 100%;
  overflow-x: clip;
}
body {
  max-width: none;
  width: 100%;
  overflow-x: clip;
}

.sp-only { display: revert !important; }
br.sp-only { display: inline !important; }
span.sp-only, i.sp-only { display: inline !important; }
p.sp-only, div.sp-only, ul.sp-only, a.sp-only { display: block !important; }
.eyebrow.sp-only { display: flex !important; }
.pc-only { display: none !important; }

/* ============================== HEADER ================================== */

.hdr {
  height: calc(96 * var(--px));
  width: var(--sp-w, 100%);
  max-width: 100%;
}
.fx-particles {
  width: var(--sp-w, 100%);
  max-width: 100%;
  right: auto;
}

/* no white bar on mobile — the burger carries its own disc */
.hdr__bar {
  left: 0;
  top: 0;
  width: 100%;
  height: calc(96 * var(--px));
  background: none;
  box-shadow: none;
  pointer-events: none;
}
.is-scrolled .hdr__bar {
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 calc(2 * var(--px)) calc(12 * var(--px)) rgba(42, 52, 66, 0.08);
}

.hdr__logo {
  left: calc(24 * var(--px));
  top: calc(23 * var(--px));
  width: calc(160 * var(--px));
  height: calc(39 * var(--px));
  pointer-events: auto;
  z-index: 3;
  transition: transform 0.3s ease, filter 0.3s ease;
}

/* 48 disc at (325,24); three 23.9 x 1.3 bars, 4.6 apart */
.hdr__burger {
  display: grid;
  position: absolute;
  left: calc(325 * var(--px));
  top: calc(24 * var(--px));
  width: calc(48 * var(--px));
  height: calc(48 * var(--px));
  border-radius: 50%;
  background: #fff;
  place-content: center;
  gap: calc(4.6 * var(--px));
  pointer-events: auto;
  z-index: 3;
  box-shadow: 0 calc(2 * var(--px)) calc(10 * var(--px)) rgba(42, 52, 66, 0.12);
}
.hdr__burger span {
  display: block;
  width: calc(23.9 * var(--px));
  height: calc(1.3 * var(--px));
  background: #202b39;
  transition: transform 0.3s ease, opacity 0.2s ease;
}
.hdr__burger.is-open span:nth-child(1) { transform: translateY(calc(5.9 * var(--px))) rotate(45deg); }
.hdr__burger.is-open span:nth-child(2) { opacity: 0; }
.hdr__burger.is-open span:nth-child(3) { transform: translateY(calc(-5.9 * var(--px))) rotate(-45deg); }

/* SP_MENU: navy drawer from x=43, full viewport height.
   Links + legal scroll in the top pane; RECRUIT / CONTACT stay pinned below.
   Rows are 68 tall from y=158; the rule sits 37 into each row. */
body.is-menu {
  position: fixed;
  left: 0;
  right: 0;
  width: 100%;
  overflow: hidden;
  overscroll-behavior: none;
}
body.is-menu .hdr { z-index: 300; }

.hdr__nav {
  position: fixed;
  top: 0;
  right: auto;
  bottom: 0;
  /* 43 / 347 of the real layout width (not 100vw — that overshoots the artboard) */
  left: calc(var(--sp-w, 100%) * 43 / 390);
  width: calc(var(--sp-w, 100%) * 347 / 390);
  height: auto;
  max-height: none;
  display: flex;
  flex-direction: column;
  padding: 0;
  background: #2a3442;
  overflow: hidden;
  overscroll-behavior: none;
  pointer-events: auto;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s;
  z-index: 200;
}
.hdr__nav.is-open { opacity: 1; visibility: visible; }

.hdr__nav-main {
  display: block;
  flex: 1 1 auto;
  min-height: 0;
  padding: calc(158 * var(--px)) calc(24 * var(--px)) calc(16 * var(--px)) calc(20 * var(--px));
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.hdr__nav-main::-webkit-scrollbar { display: none; width: 0; height: 0; }

.hdr__nav-actions {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: calc(16 * var(--px));
  padding: 0 calc(24 * var(--px)) calc(72 * var(--px));
}

body.is-menu .hdr__logo {
  transform: translateX(calc(45 * var(--px)));
  filter: brightness(0) invert(1);
}
body.is-menu .hdr__bar {
  background: none;
  box-shadow: none;
}
/* open control: 48 ring, 16 x 16 stroke X centered in the disc */
body.is-menu .hdr__burger {
  background: transparent center / calc(16 * var(--px)) calc(16 * var(--px)) no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.2 3.2 L12.8 12.8 M12.8 3.2 L3.2 12.8' fill='none' stroke='%23f7f7f6' stroke-width='1.25' stroke-linecap='round'/%3E%3C/svg%3E");
  box-shadow: none;
  border: 1.15px solid #f7f7f6;
}
body.is-menu .hdr__burger span:not(.sr-only) { opacity: 0; }

.hdr__nav .hdr__link {
  position: relative;
  left: auto;
  top: auto;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  width: 100%;
  height: calc(68 * var(--px));
  padding: 0 0 0 calc(17 * var(--px));
  background: none;
  border: 0;
  border-radius: 0;
  font-family: var(--f-en);
  font-size: calc(16 * var(--px));
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.04em;
  color: #fff;
  text-align: left;
  place-items: start;
}
.hdr__nav .hdr__link::before {
  content: "";
  position: absolute;
  right: calc(24 * var(--px));
  top: calc(-1.5 * var(--px));
  width: calc(8 * var(--px));
  height: calc(13.5 * var(--px));
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 13.5'%3E%3Cpath d='M1.2 1.2 L6.6 6.75 L1.2 12.3' fill='none' stroke='%23ffffff' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.hdr__nav .hdr__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: calc(37 * var(--px));
  border-top: 0.8px solid rgba(159, 167, 177, 0.5);
}
.hdr__nav .hdr__ja {
  display: block;
  margin-top: calc(2 * var(--px));
  font-family: var(--f-jp);
  font-size: calc(12 * var(--px));
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #fff;
}
.hdr__nav .hdr__link[aria-current="page"],
.hdr__nav .hdr__link[aria-current="page"] .hdr__ja { color: #fff; }

.hdr__legal {
  display: flex;
  flex-direction: column;
  gap: calc(14 * var(--px));
  margin-top: calc(2 * var(--px));
  padding-left: calc(3 * var(--px));
}
.hdr__legal a {
  font-size: calc(13 * var(--px));
  line-height: 1;
  font-weight: 400;
  color: #d9e0e9;
}

.hdr__nav .hdr__cta {
  position: relative;
  top: auto;
  left: auto;
  z-index: 3;
  width: 100%;
  max-width: calc(299 * var(--px));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(4 * var(--px));
  margin: 0 auto;
  padding: 0;
  border: 0;
  border-radius: calc(28 * var(--px));
  background: none;
  text-align: center;
  place-items: center;
}
.hdr__nav .hdr__cta-en {
  font-family: var(--f-en);
  font-size: calc(16 * var(--px));
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.04em;
}
.hdr__nav .hdr__cta-ja {
  display: block;
  font-family: var(--f-jp);
  font-size: calc(12 * var(--px));
  font-weight: 400;
  line-height: 1;
}
.hdr__nav .hdr__cta--recruit {
  bottom: auto;
  height: calc(56 * var(--px));
  background: #a39786;
  color: #fff;
}
.hdr__nav .hdr__cta--contact {
  bottom: auto;
  height: calc(58 * var(--px));
  background: transparent;
  color: #f7f7f6;
  border: 1.15px solid #d9e0e9;
  border-radius: calc(29 * var(--px));
}

/* =============================== SHARED ================================= */

/* 326 x 73 action; latin label on 28, japanese on 53.5, 25 disc at (272.5,24) */
.btn { width: calc(326 * var(--px)); height: calc(73 * var(--px)); }
.btn__en {
  left: calc(28 * var(--px));
  top: calc((28.5 - (28 - 13) / 2 - 0.86 * 13) * var(--px));
  font-size: calc(13 * var(--px));
  line-height: calc(28 * var(--px));
}
.btn__ja {
  left: calc(28 * var(--px));
  top: calc((53.5 - (28 - 16) / 2 - 0.86 * 16) * var(--px));
  font-size: calc(16 * var(--px));
  line-height: calc(28 * var(--px));
}
.btn__circle {
  left: calc(272.5 * var(--px));
  top: calc(24 * var(--px));
  width: calc(25 * var(--px));
  height: calc(25 * var(--px));
}

.round { --d: 30; }
.round--prev { --d: 29; }

/* sparkle is 19 x 18.7 with a 13.5 gap, and hangs from the eyebrow's top */
.sparkle { width: calc(19 * var(--px)); height: calc(18.7 * var(--px)); }
.eyebrow {
  height: calc(24.5 * var(--px));
  gap: calc(13.5 * var(--px));
  font-size: calc(16 * var(--px));
}

/* ================================ HERO ================================== */

.hero { --h: 880; }
.hero__star  { --x: -255; --y: -92; --w: 901; --h: 795; }
.hero__title { --x: 35; --y: 445; --fs: 49; --lh: 60; letter-spacing: 0; }
.hero__lead  { --x: 32; --y: 623; --fs: 20; --lh: 32; }
.hero .btn   { --x: 32 !important; --y: 725 !important; }
.hero .btn__en {
  top: calc((28 - (27 - 12) / 2 - 0.86 * 12) * var(--px));
  font-size: calc(12 * var(--px));
  line-height: calc(27 * var(--px));
}
.hero .btn__ja { top: calc((54 - (28 - 16) / 2 - 0.86 * 16) * var(--px)); }

/* ================================ MISSION =============================== */

.mission { --h: 781; }
.mission__visual  { --x: -130; --y: 108; --w: 665; --h: 435; }
.mission__eyebrow { --x: 35; --y: 32; }
.mission__title   { --x: 35; --y: 101; --fs: 24; --lh: 35; }
.mission__body    { --x: 32; --y: 203; --w: 326; --fs: 20; --lh: 32; }

/* ================================ SERVICE =============================== */
/* SP_TOP service band: artboard y=1680. Accordion matches design —
   stacked no / JP / EN + plus; open panel has thumb, desc, tags. */

.service {
  --h: auto;
  height: auto;
  min-height: calc(900 * var(--px));
  padding-bottom: calc(80 * var(--px));
  overflow: visible;
}
.service__visual {
  display: block;
  --x: -40;
  --y: 220;
  --w: 420;
  --h: 320;
  pointer-events: none;
  z-index: 1;
  opacity: 0.85;
}
.service__visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: screen;
}
.service__eyebrow { --x: 35; --y: 98; }
.service__title   { --x: 35; --y: 149; --fs: 24; --lh: 35; }

.service__list {
  position: relative;
  z-index: 5;
  margin: 0;
  margin-left: calc(30 * var(--px));
  padding-top: calc(280 * var(--px));
  width: calc(330 * var(--px));
}

.svc {
  border-top: 1px solid rgba(255, 255, 255, 0.55);
  border-bottom: none;
}
.svc:last-of-type {
  border-bottom: 1px solid rgba(255, 255, 255, 0.55);
}

.svc__head {
  display: grid;
  grid-template-columns: 1fr calc(24 * var(--px));
  grid-template-rows: auto auto auto;
  grid-template-areas:
    "no    plus"
    "titles plus"
    "thumb thumb";
  column-gap: calc(12 * var(--px));
  align-items: start;
  min-height: 0;
  padding: calc(20 * var(--px)) 0 calc(18 * var(--px));
  gap: 0;
}
.svc[open] .svc__head {
  min-height: 0;
  padding-top: calc(20 * var(--px));
  padding-bottom: calc(16 * var(--px));
}

.svc__no {
  grid-area: no;
  flex: none;
  width: auto;
  font-size: calc(16 * var(--px));
  color: #f2f5f8;
  letter-spacing: 0.04em;
}

.svc__titles {
  grid-area: titles;
  margin-top: calc(12 * var(--px));
  gap: calc(8 * var(--px));
}

.svc__name {
  font-size: calc(24 * var(--px));
  font-weight: 500;
  line-height: 1.1;
  white-space: normal;
}

.svc__en {
  font-size: calc(12 * var(--px));
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.svc__plus {
  grid-area: plus;
  align-self: center;
  flex: none;
  margin-left: 0;
  width: calc(24 * var(--px));
  height: calc(24 * var(--px));
}

/* Full-width image under the title when open (design panel layout). */
.svc__thumb {
  grid-area: thumb;
  display: none;
  flex: none;
  width: 100%;
  height: calc(176 * var(--px));
  margin: calc(20 * var(--px)) 0 0;
  margin-right: 0;
  border-radius: calc(8 * var(--px));
  overflow: hidden;
  background: #d1d5db;
}
.svc[open] .svc__thumb {
  display: block;
}
.svc__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.svc__panel {
  padding: 0 0 calc(28 * var(--px));
}

.svc__desc {
  font-size: calc(14 * var(--px));
  line-height: calc(24 * var(--px));
  max-width: none;
  color: #fff;
}

.svc__tags {
  gap: calc(8 * var(--px));
  margin-top: calc(20 * var(--px));
}

.svc__tag {
  height: calc(32 * var(--px));
  padding: 0 calc(12 * var(--px));
  border-radius: calc(4 * var(--px));
  background: #d9e0e9;
  font-size: calc(12 * var(--px));
  font-weight: 500;
  letter-spacing: 0.02em;
}

.service__cta {
  position: relative !important;
  left: calc(32 * var(--px)) !important;
  top: auto !important;
  margin-top: calc(48 * var(--px));
  z-index: 5;
}

/* ============================== STRENGTHS =============================== */

.strengths { --h: 2156; }
.strengths__eyebrow { --x: 35; --y: 101; }
.strengths__title   { --x: 35; --y: 170; --fs: 24; --lh: 35; }
.strengths__photo   { --x: 16; --y: 264; --w: 358; --h: 241; }
.strengths__lead    { --x: 32; --y: 561; --w: 326; --fs: 20; --lh: 32; }

.stcard {
  left: calc(16 * var(--px));
  width: calc(358 * var(--px));
  height: calc(241 * var(--px)) !important;
}
.stcard:nth-of-type(1) { top: calc(1063 * var(--px)); }
.stcard:nth-of-type(2) { top: calc(1320 * var(--px)); }
.stcard:nth-of-type(3) { top: calc(1577 * var(--px)); }
.stcard:nth-of-type(4) { top: calc(1834 * var(--px)); }

.stcard__icon {
  left: calc(155 * var(--px));
  top: calc(24 * var(--px));
  width: calc(48 * var(--px));
  height: calc(48 * var(--px));
}
.stcard__icon img,
.stcard__icon svg {
  width: calc(22 * var(--px));
  height: calc(22 * var(--px));
}
.stcard__title {
  left: 0;
  width: 100%;
  top: calc(100 * var(--px));
  height: auto;
  display: block;
  font-size: calc(20 * var(--px));
  text-align: center;
  white-space: normal;
}
.stcard__desc { left: calc(16 * var(--px)); top: calc(145 * var(--px)); width: calc(326 * var(--px)); }

/* ================================ CASES ================================= */

.cases { --h: 877; }
.cases__en   { --x: 32; --y: 156; --fs: 48; --lh: 77; }
.cases__ja   { --x: 32; --y: 195; }
.cases__prev { --x: 291; --y: 237; }
.cases__next { --x: 328; --y: 237; }
.cases__cta  { --x: 32; --y: 714; }

.cases__viewport { left: calc(32 * var(--px)); top: calc(291 * var(--px)); width: calc(358 * var(--px)); }
.cases__track { gap: calc(16 * var(--px)); }

.case { width: calc(326 * var(--px)); height: calc(370 * var(--px)); }
.case__img   { height: calc(184 * var(--px)); border-radius: calc(8 * var(--px)); }
.case__date  { top: calc((214 - (20 - 12) / 2 - 0.86 * 12) * var(--px)); font-size: calc(12 * var(--px)); line-height: calc(20 * var(--px)); }
.case__title { top: calc(233 * var(--px)); width: calc(326 * var(--px)); font-size: calc(16 * var(--px)); line-height: calc(24 * var(--px)); }
.case__tags  { top: calc((335 - (19 - 12) / 2 - 0.86 * 12) * var(--px)); font-size: calc(12 * var(--px)); line-height: calc(19 * var(--px)); }
.case__tags span + span { left: 0; top: calc(21 * var(--px)); }

/* =============================== INSIGHTS =============================== */

.insights { --h: 841; }
.insights__en   { --x: 32; --y: 138; --fs: 48; --lh: 77; }
.insights__ja   { --x: 32; --y: 177; }
.insights__prev { --x: 291; --y: 219; }
.insights__next { --x: 328; --y: 219; }
.insights__cta  { --x: 32; --y: 655.9; }

.insights__viewport { left: calc(32 * var(--px)); top: calc(273 * var(--px)); width: calc(358 * var(--px)); }
.insights__track { gap: calc(15.7 * var(--px)); }

.icard { width: calc(326 * var(--px)); height: calc(320 * var(--px)); }
.icard__img   { left: calc(14 * var(--px)); top: calc(14 * var(--px)); width: calc(298 * var(--px)); height: calc(164 * var(--px)); }
.icard__tag   { left: calc(40.6 * var(--px)); top: calc((211.9 - (13 - 12) / 2 - 0.86 * 12) * var(--px)); font-size: calc(12 * var(--px)); line-height: calc(13 * var(--px)); }
.icard__title { left: calc(20.5 * var(--px)); top: calc(223.3 * var(--px)); width: calc(284.9 * var(--px)); font-size: calc(16 * var(--px)); line-height: calc(24 * var(--px)); }
.icard__more  { left: calc(258.3 * var(--px)); top: calc((297 - (13 - 12) / 2 - 0.86 * 12) * var(--px)); font-size: calc(12 * var(--px)); line-height: calc(13 * var(--px)); gap: calc(7.7 * var(--px)); }

/* ================================ NEWS ================================== */
/* SP_TOP NEWS band (~y=6729): date above title, 88px rows, CTA under list.
   Desktop uses flow layout; do not re-apply absolute .bl-style tops here. */

.news {
  --h: 1732;
  height: calc(1732 * var(--px));
  margin-top: 0;
  overflow: visible;
}
.news__en  { --x: 32; --y: 140; --fs: 48; --lh: 77; }
.news__ja  { --x: 32; --y: 179; }
.news__cta {
  --x: 32 !important;
  --y: 822 !important;
  z-index: 5;
}

.news__list {
  left: calc(32 * var(--px));
  top: calc(236 * var(--px));
  width: calc(326 * var(--px));
  z-index: 4;
}
.news__item {
  height: calc(88 * var(--px));
  padding: calc(12 * var(--px)) calc(40 * var(--px)) 0 0;
  box-sizing: border-box;
  overflow: visible;
}
/* Hairline + short accent — same Y as arrow circle bottom */
.news__item::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: rgba(42, 52, 66, 0.15);
  pointer-events: none;
}
.news__item::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: calc(32 * var(--px));
  height: 1px;
  background: var(--navy);
  z-index: 1;
  pointer-events: none;
}
.news__date {
  position: static;
  top: auto;
  left: auto;
  display: block;
  margin: 0;
  font-size: calc(13 * var(--px));
  line-height: calc(20 * var(--px));
  font-weight: 500;
  letter-spacing: 0.05em;
  opacity: 0.5;
}
.news__title {
  position: relative;
  top: auto;
  left: auto;
  display: block;
  margin: calc(8 * var(--px)) 0 0;
  font-size: calc(16 * var(--px));
  line-height: calc(24 * var(--px));
  font-weight: 400;
  letter-spacing: 0.05em;
  padding-bottom: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.news__title::before,
.news__title::after {
  content: none;
  display: none;
}
/* Vertically centered in the row (same idea as NEWS CTA circle) */
.news__go {
  left: auto !important;
  right: 0 !important;
  top: 50% !important;
  bottom: auto !important;
  margin-top: calc(-13.5 * var(--px)) !important;
  width: calc(27 * var(--px));
  height: calc(27 * var(--px));
  transform: none !important;
}

/* ============================== RECRUIT ================================= */

.recruit {
  left: calc(16 * var(--px));
  top: calc(var(--top, 935) * var(--px));
  width: calc(358 * var(--px));
  height: calc(711 * var(--px));
  border-radius: calc(8 * var(--px));
}
.recruit__en   { --x: 16; --y: 100; --fs: 48; --lh: 77; }
.recruit__ja   { --x: 16; --y: 139; }
.recruit__copy { --x: 16; --y: 217; --fs: 24; --lh: 32; }
.recruit__go   { left: calc(303 * var(--px)); top: calc(304 * var(--px)); width: calc(39 * var(--px)); height: calc(39 * var(--px)); }

.recruit__collage span { top: calc(367 * var(--px)) !important; width: calc(247 * var(--px)); height: calc(308 * var(--px)); }
.recruit__collage span:nth-child(1) { left: calc(-45 * var(--px)); }
.recruit__collage span:nth-child(2) { left: calc(216 * var(--px)); }
.recruit__collage span:nth-child(3) { left: calc(998 * var(--px)); }
.recruit__collage span:nth-child(4) { left: calc(737 * var(--px)); }
.recruit__collage span:nth-child(5) { left: calc(477 * var(--px)); }

/* ====================== ABOUT LINKS + CLOSING CTA ======================= */

/*
 * SP_TOP 260924: ABOUT@8590.7 → footer@9676 ⇒ section y0=8504.7, h≈1171
 * Cards → NEWS CTA (326×73 @654.6) → Make IT visual@844 (NEWS→vis ≈116)
 * Bottom after JA extended to match ABOUT Make IT block rhythm (~290)
 */
.about-links { --h: 1292; overflow-x: clip; overflow-y: visible; }
.about-links__en { --x: 32; --y: 86; --fs: 48; --lh: 77; }
.about-links__ja { --x: 32; --y: 125; }

.lcard { left: calc(16 * var(--px)) !important; width: calc(358 * var(--px)); height: calc(99.9 * var(--px)); }
.about-links .lcard:nth-of-type(1) { top: calc(167 * var(--px)); }
.about-links .lcard:nth-of-type(2) { top: calc(274.9 * var(--px)); }
.about-links .lcard:nth-of-type(3) { top: calc(382.8 * var(--px)); }
.about-links .lcard:nth-of-type(4) { top: calc(490.7 * var(--px)); }

/* NEWS お知らせ一覧 — between last lcard and Make IT Work (SP only) */
.about-links__news {
  display: flex;
  --x: 32;
  --y: 654.6;
  z-index: 5;
}

.lcard__img { left: calc(9.7 * var(--px)); top: calc(9.7 * var(--px)); width: calc(134.6 * var(--px)); height: calc(80.5 * var(--px)); }
.lcard__en  { left: calc(159 * var(--px)); top: calc((38.8 - (22 - 10) / 2 - 0.86 * 10) * var(--px)); font-size: calc(10 * var(--px)); line-height: calc(22 * var(--px)); }
.lcard__ja  { left: calc(159 * var(--px)); top: calc((62.8 - (22 - 15) / 2 - 0.86 * 15) * var(--px)); font-size: calc(15 * var(--px)); line-height: calc(22 * var(--px)); }
/* XD: ellipse Ø20.8 stroke inside; 合体 arrow 11.1×3.47 */
.lcard__go  {
  left: calc(316.4 * var(--px));
  top: calc(39.5 * var(--px));
  width: calc(20.8 * var(--px));
  height: calc(20.8 * var(--px));
  box-sizing: border-box;
  border-width: 1px;
}
.lcard__go .arrow {
  width: calc(11.1 * var(--px));
  height: calc(3.47 * var(--px));
  /* SP ABOUT compound path (not the default 16×5) */
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11.1 3.469'%3E%3Cpath fill='white' d='M8.113 2.097H0V1.372h8.113V0L11.1 1.734 8.113 3.469V2.097Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11.1 3.469'%3E%3Cpath fill='white' d='M8.113 2.097H0V1.372h8.113V0L11.1 1.734 8.113 3.469V2.097Z'/%3E%3C/svg%3E");
}

/* SP_TOP 260924: visual y≈844; EN 32/50 two-line @901; JA 13 @990 x=75 */
.bigcta__visual { --x: -95.6; --y: 844; --w: 517.1; --h: 344.2; }
.bigcta__en {
  --x: 195;
  --y: 901;
  --fs: 32;
  --lh: 50;
  letter-spacing: 0;
  /* nowrap: keep "Drive Real Change." on one line; <br> still breaks after Work. */
  white-space: nowrap !important;
  text-align: center;
}
.bigcta__ja {
  --x: 75 !important;
  --y: 990 !important;
  --fs: 13 !important;
  --lh: 33 !important;
  transform: none !important;
  text-align: left !important;
  white-space: nowrap;
}

/* =============================== FOOTER =================================
   SP_TOP 260924 — footer origin ≈9676; CONSULTATION baseline @9871 (= +195)
   ====================================================================== */

.footer { --h: 1248; background: #293647; overflow: hidden; }

/* SP XD: logo centered above CTAs; full white (mark is beige in logo-light.svg) */
.footer__logo {
  left: calc(98.5 * var(--px));
  top: calc(48 * var(--px));
  width: calc(193 * var(--px));
  height: calc(47 * var(--px));
}
.footer__logo img {
  filter: brightness(0) invert(1);
}

.footer__cta1,
.footer__cta2 {
  --x: 32.5;
  width: calc(325 * var(--px));
  height: calc(80 * var(--px));
}
/* SP XD: CONSULTATION solid #1f2b3b, no stroke; RECRUIT solid beige */
.footer__cta1 {
  --y: 155.6;
  background: #1f2b3b;
  border: none;
  color: #fff;
}
.footer__cta2 {
  --y: 251.6;
  background: #a29888;
  border: none;
  color: #fff;
}
.footer__cta1 .btn__en, .footer__cta2 .btn__en {
  left: calc(17.5 * var(--px));
  top: calc((31 - (24 - 12) / 2 - 0.86 * 12) * var(--px));
  font-family: var(--f-jp);
  font-size: calc(12 * var(--px));
  line-height: calc(24 * var(--px));
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #aeb9c5;
  opacity: 1;
}
.footer__cta2 .btn__en { color: #f7f7f5; }
.footer__cta1 .btn__ja, .footer__cta2 .btn__ja {
  left: calc(17.5 * var(--px));
  top: calc((55.8 - (24 - 16) / 2 - 0.86 * 16) * var(--px));
  font-family: var(--f-jp);
  font-size: calc(16 * var(--px));
  line-height: calc(24 * var(--px));
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #f7f7f6;
}
.footer__cta1 .btn__circle, .footer__cta2 .btn__circle {
  left: calc(276.5 * var(--px));
  top: calc(25 * var(--px));
  width: calc(30 * var(--px));
  height: calc(30 * var(--px));
}

.footer__company { --x: 32.5; --y: 397; --fs: 15 !important; --lh: 24 !important; letter-spacing: 0.03em; }
.footer__lbl { --fs: 11; --lh: 27; font-family: var(--f-jp); letter-spacing: 0.08em; color: #9fa7b1; opacity: 1; }
.footer__addr-lbl { --x: 32.5; --y: 444; }
.footer__addr     { --x: 32.5; --y: 471; --fs: 13; --lh: 24; letter-spacing: 0.02em; }
.footer__mail-lbl { --x: 32.5; --y: 534; }
.footer__mail     { --x: 32.5; --y: 561; --fs: 13; --lh: 24; letter-spacing: 0.02em; }

/* social row */
.footer__social {
  position: absolute;
  left: calc(24 * var(--px));
  top: calc(611 * var(--px));
  height: calc(20 * var(--px));
}
.footer__social a {
  position: absolute;
  top: 0;
  width: calc(18 * var(--px));
  height: calc(18 * var(--px));
  display: grid;
  place-items: center;
  color: #f7f7f6;
  transition: opacity 0.2s ease;
}
.footer__social a:hover { opacity: 0.7; }
.footer__social a svg { width: 100%; height: 100%; display: block; }
.footer__social a:nth-child(1) { left: 0; }
.footer__social a:nth-child(2) { left: calc(38 * var(--px)); }
.footer__social a:nth-child(3) { left: calc(77 * var(--px)); }
.footer__social a:nth-child(4) { left: calc(114 * var(--px)); }
.footer__social a:nth-child(5) { left: calc(154 * var(--px)); }

/* 線2, above the sitemap */
.footer__nav { position: static; }
.footer__nav::before {
  content: "";
  position: absolute;
  left: calc(24 * var(--px));
  top: calc(657 * var(--px));
  width: calc(342 * var(--px));
  height: 1px;
  background: #75808d;
}
.footer__nav a {
  --fs: 14;
  --lh: 24;
  width: calc(342 * var(--px));
  padding-bottom: calc(16 * var(--px));
  border-bottom: 1px solid #75808d;
  font-weight: 700;
  letter-spacing: 0.04em;
}
/* XD パス 9053: shaft + head at local (326–336, 31) → right-side → */
.footer__nav a.ty-foot16b::after {
  content: "";
  position: absolute;
  right: calc(14 * var(--px));
  top: calc(4 * var(--px));
  width: calc(10 * var(--px));
  height: calc(8 * var(--px));
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 8'%3E%3Cpath d='M0 4h10M6 0l4 4-4 4' fill='none' stroke='%23f7f7f6' stroke-width='1' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E");
  pointer-events: none;
}
/* classes, not a[href=…]: hosts like Netlify rewrite hrefs (news.html → /news) */
.footer__nav a.fn--top      { --x: 32 !important; --y: 696 !important; }
.footer__nav a.fn--about    { --x: 32 !important; --y: 758 !important; }
.footer__nav a.fn--service  { --x: 32 !important; --y: 820 !important; }
.footer__nav a.fn--cases    { --x: 32 !important; --y: 882 !important; }
.footer__nav a.fn--insights { --x: 32 !important; --y: 944 !important; }
.footer__nav a.fn--news     { --x: 32 !important; --y: 1006 !important; }

/* desktop sitemap second level hidden; legal links restored for SP */
.footer__nav a.ty-foot16 { display: none; }
.footer__nav a.fn--legal {
  display: block;
  --x: 36 !important;
  --fs: 13;
  --lh: 24;
  font-weight: 400;
  letter-spacing: 0.02em;
  padding-bottom: 0;
  border-bottom: 0;
  color: #95a1af;
}
.footer__nav a.fn--privacy    { --y: 1073 !important; }
.footer__nav a.fn--disclaimer { --y: 1107 !important; }

/* 線9, full-bleed */
.footer__rule { top: calc(1151 * var(--px)); }
.footer__copy {
  --x: 195;
  --y: 1201;
  --fs: 11 !important;
  --lh: 24 !important;
  letter-spacing: 0.01em;
  color: #95a1af;
}

/* ============================ ABOUT PAGE ================================
   No mobile ABOUT artboard exists, so this reflows the desktop layout on
   the mobile grid (32/326 text column, 16/358 cards).
   ====================================================================== */

/* SP ABOUT hero: navy PHILOSOPHY starts at y=864 */
.phero { --h: 864; }
.phero__star    { --x: -90; --y: -92; --w: 901; --h: 795; }
.phero__title   { --x: 32; --y: 182; --fs: 42; --lh: 52; letter-spacing: 0.04em; }
.phero__ja      { --x: 33; --y: 213; --fs: 12; --lh: 20; }
.phero__eyebrow { --x: 35; --y: 354; }

.phero.phero--service { --h: 731; background: var(--bg); }
.phero--service .phero__photo {
  --x: 103.6; --y: 140; --w: 357; --h: 237;
  transform: none;
  mix-blend-mode: multiply;
}
.phero--service .phero__title {
  --x: 32; --y: 177;
  --fs: 42; --lh: 52;
}
/* JA sits under EN baseline (XD y=208); keep .bl anchoring — not top */
.phero--service .phero__ja {
  --x: 33; --y: 208;
  --fs: 12; --lh: 20;
}
/* lead/body: XD y is frame top */
.phero--service .phero__lead {
  --x: 35; --y: 352;
  --fs: 24; --lh: 40;
  width: calc(355 * var(--px));
  top: calc(var(--y) * var(--px));
}
.phero--service .phero__body {
  --x: 32; --y: 454; --w: 326; --fs: 20; --lh: 32;
}
.phero--service .phero__lead strong {
  font-weight: 700;
}

/* SP: 4 link cards — XD コンポーネント 32 (h84, tops 384/476/568/660) */
.phero__eyebrow-pc { display: none; }
.phero__eyebrow-sp { display: inline; }

.ccard {
  left: calc(16 * var(--px)) !important;
  width: calc(358 * var(--px));
  height: calc(84 * var(--px));
  background: #fff;
  border-radius: calc(8 * var(--px));
  box-shadow: none;
}
.ccard:hover {
  transform: none;
  box-shadow: none;
}
.ccard:nth-of-type(1) { top: calc(384 * var(--px)); }
.ccard:nth-of-type(2) { top: calc(476 * var(--px)); }
.ccard:nth-of-type(3) { top: calc(568 * var(--px)); }
.ccard:nth-of-type(4) { top: calc(660 * var(--px)); }
.ccard__en {
  left: calc(32 * var(--px));
  top: calc(18 * var(--px));
  font-size: calc(12 * var(--px));
  line-height: calc(20 * var(--px));
  text-transform: uppercase;
  opacity: 0.55;
}
.ccard__ja {
  left: calc(32 * var(--px));
  top: calc(44 * var(--px));
  font-size: calc(17 * var(--px));
  line-height: calc(24 * var(--px));
}
.ccard__go {
  left: auto;
  right: calc(24 * var(--px));
  top: 50%;
  transform: translateY(-50%);
  width: calc(30 * var(--px));
  height: calc(30 * var(--px));
}

/* Body ends ~780. Navy + white MISSION/VISION/VALUE cards.
   XD navy h=2293; our VALUE ends ~2260 → section h = 2260+80. */
.philos {
  --h: 2340;
  background: var(--navy);
  color: #fff;
}
.philos > * { z-index: 1; }

.philos__en    { --x: 32; --y: 96;  --fs: 26; --lh: 40; }
.philos__ja    { --x: 32; --y: 132; --fs: 18; --lh: 30; color: #a9b5c1; }
.philos__title { --x: 32; --y: 208; --fs: 24; --lh: 35; }
.philos__body  { --x: 32; --y: 300; --w: 326; --fs: 16; --lh: 30; color: #d3dce5; }
.philos__rule {
  left: calc(32 * var(--px));
  top: calc(820 * var(--px));
  width: calc(326 * var(--px));
  background: rgba(255, 255, 255, 0.35);
}

.mv-card {
  display: block;
  position: absolute;
  left: calc(16 * var(--px));
  width: calc(358 * var(--px));
  background: #fff;
  border-radius: calc(8 * var(--px));
  padding: calc(28 * var(--px)) calc(24 * var(--px)) calc(32 * var(--px));
  box-sizing: border-box;
  color: #212e3d;
}
/* XD white cards: mission h413, vision h259, 16px gaps between cards */
.mv-card--mission { top: calc(860 * var(--px)); }
.mv-card--vision  { top: calc(1289 * var(--px)); }

.mv-card__lbl {
  position: static !important;
  left: auto !important;
  top: auto !important;
  display: flex;
  align-items: center;
  gap: calc(8 * var(--px));
  height: auto;
  margin: 0 0 calc(16 * var(--px));
  color: #5e6e7d !important;
  font-size: calc(16 * var(--px)) !important;
  font-family: var(--f-en);
  letter-spacing: 0.04em;
}
.mv-card__lbl .sparkle {
  color: #5e6e7d;
  width: calc(16 * var(--px));
  height: calc(16 * var(--px));
}

.mv-card .mv-block {
  position: static;
  left: auto;
  top: auto;
  width: auto;
  color: inherit;
}
.mv-card .mv-block h3 {
  font-size: calc(20 * var(--px));
  line-height: calc(30 * var(--px));
  font-weight: 500;
  color: #212e3d;
  letter-spacing: 0.04em;
}
.mv-card .mv-block p,
.mv-card .mv-block__note {
  margin-top: calc(12 * var(--px));
  font-size: calc(14 * var(--px));
  line-height: calc(24 * var(--px));
  color: #5e6e7d;
}

.mv-card__rule {
  display: block;
  height: 1px;
  margin: calc(24 * var(--px)) 0;
  background: #d9e0e9;
}

.mv-checks { margin-top: calc(14 * var(--px)); }
.mv-checks li {
  font-size: calc(14 * var(--px));
  line-height: calc(24 * var(--px));
  gap: calc(8 * var(--px));
  color: #5e6e7d;
}
.mv-check {
  width: auto;
  height: auto;
  margin-top: calc(2 * var(--px));
  border-radius: 0;
  background: none;
  color: #5e6e7d;
  font-size: calc(14 * var(--px));
  line-height: 1;
}
.mv-check::before { content: "✓"; }
.mv-check::after { display: none; }

/* VALUE: white card on navy (matches SP design) */
.philos::after { display: none; }

/* VALUE card: below VISION (1289+259) + 16px gap → 1564 */
.value-card {
  display: block;
  position: absolute;
  left: calc(16 * var(--px));
  top: calc(1564 * var(--px));
  width: calc(358 * var(--px));
  background: #fff;
  border-radius: calc(8 * var(--px));
  padding: calc(28 * var(--px)) calc(24 * var(--px)) calc(12 * var(--px));
  box-sizing: border-box;
  color: #212e3d;
}
.value-card__lbl,
.mv-eyebrow--value {
  position: static !important;
  left: auto !important;
  top: auto !important;
  display: flex;
  align-items: center;
  gap: calc(8 * var(--px));
  height: auto;
  margin: 0 0 calc(12 * var(--px));
  color: #5e6e7d !important;
  font-size: calc(16 * var(--px)) !important;
  font-family: var(--f-en);
  letter-spacing: 0.04em;
}
.value-card__lbl .sparkle,
.mv-eyebrow--value .sparkle {
  color: #5e6e7d;
  width: calc(16 * var(--px));
  height: calc(16 * var(--px));
}

.value-card .vcard {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  width: 100%;
  display: grid;
  grid-template-columns: calc(28 * var(--px)) 1fr calc(48 * var(--px));
  grid-template-rows: auto auto;
  column-gap: calc(8 * var(--px));
  row-gap: 0;
  align-items: start;
  min-height: calc(94 * var(--px));
  padding: calc(16 * var(--px)) 0;
  box-sizing: border-box;
  border-bottom: 1px solid #e6eaef;
  text-align: left;
}
.value-card .vcard:last-child { border-bottom: 0; }
.value-card .vcard__head { display: contents; }
.value-card .vcard__num {
  grid-column: 1;
  grid-row: 1;
  font-size: calc(13 * var(--px));
  font-weight: 400;
  line-height: calc(22 * var(--px));
  letter-spacing: 0.04em;
  color: #a29888;
  padding-top: calc(2 * var(--px));
}
.value-card .vcard__icon {
  grid-column: 3;
  grid-row: 1 / span 2;
  width: calc(48 * var(--px));
  height: calc(36 * var(--px));
  align-self: center;
  justify-self: end;
}
.value-card .vcard__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: none;
  opacity: 1;
}
.value-card .vcard__t {
  grid-column: 2;
  grid-row: 1;
  font-size: calc(18 * var(--px));
  line-height: calc(26 * var(--px));
  font-weight: 500;
  color: #2a3442;
  letter-spacing: 0.04em;
}
.value-card .vcard__d {
  grid-column: 2;
  grid-row: 2;
  margin-top: calc(4 * var(--px));
  font-size: calc(14 * var(--px));
  line-height: calc(22 * var(--px));
  color: #5e6e7d;
}

/* MESSAGE: XD 3303→4669 ≈1367; positions relative to MESSAGE@96 */
.message { --h: 1367; }
.message__en    { --x: 32; --y: 96;  --fs: 26; --lh: 40; }
.message__ja    { --x: 32; --y: 123; --fs: 13; --lh: 20; color: #5e6e7d; }
.message__photo {
  --x: 16; --y: 167; --w: 358; --h: 184;
  border-radius: calc(8 * var(--px));
  overflow: hidden;
}
.message__title { --x: 32; --y: 391; --w: 326; --fs: 23; --lh: 34; }
.message__body  { --x: 32; --y: 464; --w: 326; --fs: 14; --lh: 26; }
.message__body p:first-child {
  font-size: calc(16 * var(--px));
  line-height: calc(28 * var(--px));
  font-weight: 500;
  margin-bottom: calc(24 * var(--px));
}
.message__body p + p { margin-top: calc(20 * var(--px)); }
.message__sign  { --x: 156.2; --y: 1231.5; --w: 201.8; --h: 64.9; } /* XD vector sign x0.741 */

/* MEMBER — design guide crop (scale 326/306), photo 226
   role43 name70 en104 line137 PROFILE166 body189
   → card: 272 / 301 / 337 / 372 / 403 / 427
   JP→EN visual gap === PROFILE→body visual gap (=12) */
.member {
  --h: 1512;
  background: #fff;
}
.member__en {
  --x: 32; --y: 96;
  --fs: 28; --lh: 40;
  color: #2a3442;
}
.member__ja {
  --x: 32; --y: 123;
  --fs: 13; --lh: 20;
  color: #5e6e7d !important;
  font-family: var(--f-sans) !important;
  font-weight: 400;
}

.mprof {
  position: absolute;
  left: calc(16 * var(--px)) !important;
  width: calc(358 * var(--px));
  height: calc(607 * var(--px));
  min-height: 0;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  background: #f8fafb !important;
  border-radius: calc(8 * var(--px));
  overflow: hidden;
  color: #183044;
  box-shadow: none;
}
.mprof--1 { top: calc(167 * var(--px)) !important; }
.mprof--2 { top: calc(814 * var(--px)) !important; }

.mprof__photo {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  display: block;
  width: 100% !important;
  height: calc(226 * var(--px)) !important;
  margin: 0;
  overflow: hidden;
  background: #e8eef1;
}
.mprof__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
}

.mprof__role,
.mprof__name,
.mprof__en,
.mprof__label,
.mprof__body {
  position: absolute !important;
  left: calc(16 * var(--px)) !important;
  display: block;
  width: calc(326 * var(--px)) !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  box-sizing: border-box;
}

.mprof__role {
  top: calc(272 * var(--px)) !important;
  font-size: calc(16 * var(--px)) !important;
  line-height: 1 !important;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #678092 !important;
}

.mprof__name {
  top: calc(301 * var(--px)) !important;
  font-size: calc(24 * var(--px)) !important;
  line-height: 1 !important;
  font-weight: 700;
  letter-spacing: 0;
  color: #183044 !important;
}

/* JP name bottom 325 → EN 337 = gap 12 (same as PROFILE→body) */
.mprof__en {
  top: calc(337 * var(--px)) !important;
  font-size: calc(12 * var(--px)) !important;
  line-height: 1 !important;
  font-weight: 400;
  letter-spacing: 0.05em;
  color: #183044 !important;
  text-transform: uppercase;
}

/* line @372 → 35px below EN top */
.mprof__en::after {
  content: "";
  position: absolute;
  left: 0;
  top: calc(35 * var(--px));
  width: 100%;
  height: 1px;
  background: #d9e1e5;
}

.mprof__label {
  top: calc(403 * var(--px)) !important;
  font-size: calc(12 * var(--px)) !important;
  line-height: 1 !important;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: #183044 !important;
}

/* PROFILE bottom 415 → body 427 = gap 12 */
.mprof__body {
  top: calc(427 * var(--px)) !important;
  font-size: calc(14 * var(--px)) !important;
  line-height: calc(24 * var(--px)) !important;
  font-weight: 400;
  color: #5e6e7d !important;
}

/* COMPANY — SP: bordered rows; map outline (fill none, stroke #fff) */
.company {
  --h: 1176;
  background: var(--navy);
  color: #fff;
  overflow: hidden;
}
.company__en {
  --x: 32; --y: 106;
  --fs: 28; --lh: 40;
  color: #fff;
}
.company__ja {
  --x: 32; --y: 133;
  --fs: 13; --lh: 20;
  color: #a9b5c1 !important;
  font-family: var(--f-sans) !important;
  font-weight: 400;
}

.company__table {
  left: calc(32 * var(--px)) !important;
  top: calc(210 * var(--px)) !important;
  width: calc(326 * var(--px)) !important;
  border-top: 1px solid rgba(169, 181, 193, 0.35) !important;
}
.company__row {
  display: block;
  border-bottom: 1px solid rgba(169, 181, 193, 0.35) !important;
  padding: calc(22 * var(--px)) 0 !important;
  margin: 0 !important;
  font-size: calc(16 * var(--px)) !important;
  line-height: calc(27 * var(--px)) !important;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.company__row:last-child { border-bottom: 1px solid rgba(169, 181, 193, 0.35) !important; }
.company__row dt {
  display: block;
  width: auto !important;
  margin: 0 0 calc(10 * var(--px)) !important;
  font-size: calc(14 * var(--px)) !important;
  line-height: 1 !important;
  font-weight: 400;
  color: #a9b5c1 !important;
}
.company__row dd {
  margin: 0;
  color: #fff;
}
/* room for map button inside 所在地 row */
.company__row--address {
  padding-bottom: calc(70 * var(--px)) !important;
}
.company__row--biz dt {
  margin-bottom: calc(12 * var(--px)) !important;
}
.company__row--biz dd {
  font-size: calc(14 * var(--px)) !important;
  line-height: calc(27 * var(--px)) !important;
}

/* Google Map — XD 長方形 1881: fill none, stroke #fff 1, r20, 181×39 */
.company__map {
  left: calc(197 * var(--px)) !important;
  top: calc(509 * var(--px)) !important;
  width: calc(181 * var(--px)) !important;
  height: calc(39 * var(--px)) !important;
  padding-left: calc(15 * var(--px)) !important;
  gap: calc(8 * var(--px)) !important;
  background: transparent !important;
  color: #fff !important;
  border: 1px solid #fff !important;
  border-radius: calc(20 * var(--px));
  font-size: calc(14 * var(--px)) !important;
  line-height: 1 !important;
  font-weight: 500;
  letter-spacing: 0.04em;
  box-sizing: border-box;
}
.company__map .pin {
  width: calc(11 * var(--px)) !important;
  height: calc(14 * var(--px)) !important;
  color: #fff;
}
.company__map .round-s {
  margin-left: auto !important;
  margin-right: calc(10 * var(--px)) !important;
  width: calc(20 * var(--px)) !important;
  height: calc(20 * var(--px)) !important;
  border: 1px solid #fff !important;
  background: transparent !important;
  border-radius: 50%;
  color: #fff;
}

/* gallery — XD 206.6×116 r8 @y980; x -185,28,240… gap 6 */
.company__gallery {
  left: 0 !important;
  top: calc(980 * var(--px)) !important;
  width: 100% !important;
  overflow: hidden;
}
.company__gallery ul {
  display: flex;
  gap: calc(6 * var(--px)) !important;
  margin: 0 0 0 calc(-185 * var(--px)) !important;
  padding: 0;
  list-style: none;
  width: max-content;
}
.company__gallery li {
  flex: none;
  width: calc(207 * var(--px)) !important;
  height: calc(116 * var(--px)) !important;
  border-radius: calc(8 * var(--px));
  overflow: hidden;
}
.company__gallery img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* OTHER — SP XD list + Make IT Work (TOP block height, ABOUT card→vis gap) */
.other {
  --h: 2064; /* lastCardBottom 1499.6 + TOP Make IT blockH 564.4 */
  background: var(--bg);
  overflow-x: clip;
  overflow-y: visible;
}
.other .recruit { --top: 120; }

.other__en {
  --x: 32; --y: 995;
  --fs: 48; --lh: 77;
  color: #2a3442;
}
.other__ja {
  --x: 32; --y: 1034;
  --fs: 20; --lh: 32;
  color: #5e6e7d !important;
}

/* recruit is first <a>; lcards are 2nd–5th <a> siblings */
.other > a.lcard:nth-of-type(2) { top: calc(1076 * var(--px)) !important; }
.other > a.lcard:nth-of-type(3) { top: calc(1183.9 * var(--px)) !important; }
.other > a.lcard:nth-of-type(4) { top: calc(1291.8 * var(--px)) !important; }
.other > a.lcard:nth-of-type(5) { top: calc(1399.7 * var(--px)) !important; }

/* ABOUT lcard thumb 134.6×83.5 (XD) */
.other .lcard__img {
  left: calc(10 * var(--px)) !important;
  top: calc(9 * var(--px)) !important;
  width: calc(134.6 * var(--px)) !important;
  height: calc(83.5 * var(--px)) !important;
}

/*
 * Make IT Work — XD card→vis 116; TOP-like bottom pad after JA
 * vis/en/ja from SP_ABOUT; section extends to TOP blockH below last card
 */
.other .bigcta__visual { --y: 1616; }
.other .bigcta__en { --y: 1673; }
.other .bigcta__ja { --y: 1762 !important; }

/* ============================ SERVICE PAGE ============================== */
/* SP_SERVICE artboard-d773d063 — hero ends at white@731; WHY title@837
   (= +106 into svwhy). how1661 / domains2635 / flow6847 / other8391     */

.svwhy {
  --h: 930; /* 824 + 106 (white pad before WHY title) */
  overflow: hidden;
  background: #fff;
}
.svwhy__en { --x: 32; --y: 106; --fs: 28; --lh: 40; }
.svwhy__ja { --x: 32; --y: 133; --fs: 13; --lh: 22; color: #5e6e7d; }
/* XD autoHeight frame top (not baseline) — 3 lines as in artboard */
.svwhy__title {
  --x: 33; --y: 201;
  --fs: 23; --lh: 34;
  width: calc(325 * var(--px));
  top: calc(var(--y) * var(--px));
}

/* Horizontal peek track — cards 285, inset 52, gap 57.
   Use margins (not padding) so scroll-snap doesn't eat the inset. */
.svwhy__track {
  position: absolute;
  left: 0;
  top: calc(372 * var(--px)); /* 266 + 106 */
  width: 100%;
  display: flex;
  gap: calc(57 * var(--px));
  padding: 0;
  box-sizing: border-box;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  scroll-snap-type: x proximity;
  scroll-padding-inline: calc(52 * var(--px));
}
.svwhy__track::-webkit-scrollbar { display: none; width: 0; height: 0; }

.svwhy .wcard {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  flex: none;
  width: calc(285 * var(--px));
  height: calc(380 * var(--px));
  scroll-snap-align: start;
}
.svwhy .wcard:first-child { margin-left: calc(52 * var(--px)); }
.svwhy .wcard:last-child { margin-right: calc(52 * var(--px)); }
.svwhy .wcard__case {
  flex: 0 0 calc(166 * var(--px));
  padding: calc(45 * var(--px)) calc(18 * var(--px)) calc(20 * var(--px));
}
.svwhy .wcard__feat {
  padding: calc(36 * var(--px)) calc(16 * var(--px)) calc(16 * var(--px));
}
.svwhy .wcard__pill {
  height: calc(22 * var(--px));
  padding: 0 calc(12 * var(--px));
  font-size: calc(11 * var(--px));
  top: calc(14 * var(--px));
}
.svwhy .wcard__gap { font-size: calc(18 * var(--px)); line-height: calc(26 * var(--px)); }
.svwhy .wcard__need { font-size: calc(11 * var(--px)); line-height: calc(18 * var(--px)); }
.svwhy .wcard__cat { font-size: calc(11 * var(--px)); }
.svwhy .wcard__name { font-size: calc(18 * var(--px)); line-height: calc(24 * var(--px)); }
.svwhy .wcard__name::after { width: calc(250 * var(--px)); margin-top: calc(10 * var(--px)); }
.svwhy .wcard__desc { font-size: calc(11 * var(--px)); line-height: calc(18 * var(--px)); margin-top: calc(10 * var(--px)); }
.svwhy .wcard__case::after {
  border-left-width: calc(8 * var(--px));
  border-right-width: calc(8 * var(--px));
  border-top-width: calc(7 * var(--px));
}

/* HOW / 2nd WHY — artboard 1661→2635 (h974); circles from XD 楕円形 155–158 */
.svhow {
  --h: 974;
  overflow: hidden;
  background: #fff;
}
.svhow__en {
  --x: 32; --y: 8;
  color: var(--navy);
}
.svhow__catch {
  --x: 85; --y: 67;
  width: calc(220 * var(--px));
  font-family: var(--f-mincho);
  font-weight: 700;
  font-size: calc(24 * var(--px));
  line-height: calc(40 * var(--px));
  color: var(--navy);
  text-align: center;
  /* XD y is frame top — override .bl baseline anchoring */
  top: calc(var(--y) * var(--px));
}
.svhow__title {
  --x: 67; --y: 324;
  width: calc(280 * var(--px));
  font-family: var(--f-mincho);
  font-weight: 700;
  font-size: calc(24 * var(--px));
  line-height: calc(40 * var(--px));
  color: var(--navy);
  top: calc(var(--y) * var(--px));
}

/* Outer ring: 楕円形 158 — 675 @ (-142.5, 219), stroke only */
.svhow__outer {
  display: block;
  position: absolute;
  left: calc(-142.5 * var(--px));
  top: calc(219 * var(--px));
  width: calc(675 * var(--px));
  height: calc(675 * var(--px));
  border: 2px solid #e1e8ee;
  border-radius: 50%;
  background: none;
  opacity: 1;
  pointer-events: none;
  box-sizing: border-box;
}
/* Inner arc: パス 9652 @ abs (36.1, 1735) → rel y 74 */
.svhow__arc {
  position: absolute;
  left: calc(36.1 * var(--px));
  top: calc(74 * var(--px));
  width: calc(294 * var(--px));
  height: calc(147 * var(--px));
  overflow: visible;
  pointer-events: none;
}
.svhow__inner { display: none; }

/* Nodes — XD sizes: 戦略60 / 企画・定着62 / 実行86 */
.svhow__node {
  position: absolute;
  display: grid;
  place-items: center;
  text-align: center;
  border-radius: 50%;
  border: 0;
  background: #d9e0e9;
  color: #39465a;
  font-size: calc(12 * var(--px));
  line-height: calc(16 * var(--px));
  font-weight: 400;
  box-sizing: border-box;
}
.svhow__node--1 {
  left: calc(16 * var(--px));
  top: calc(46 * var(--px));
  width: calc(60 * var(--px));
  height: calc(60 * var(--px));
}
.svhow__node--2 {
  left: calc(64 * var(--px));
  top: calc(150 * var(--px));
  width: calc(62 * var(--px));
  height: calc(62 * var(--px));
}
.svhow__node--3 {
  left: calc(152 * var(--px));
  top: calc(180 * var(--px));
  width: calc(86 * var(--px));
  height: calc(86 * var(--px));
  background: #2a3442;
  color: #fff;
  font-size: calc(19 * var(--px));
  line-height: 1.2;
  font-weight: 500;
}
.svhow__node--4 {
  left: calc(264 * var(--px));
  top: calc(150 * var(--px));
  width: calc(62 * var(--px));
  height: calc(62 * var(--px));
}

/* List — XD heading tops 373 / 515 / 681; nos at x52 */
.svhow__list {
  position: absolute;
  left: calc(52 * var(--px));
  top: 0;
  width: calc(306 * var(--px));
  height: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
}
.svhow__list li {
  position: absolute;
  left: 0;
  width: 100%;
  display: grid;
  grid-template-columns: calc(36 * var(--px)) 1fr;
  column-gap: 0;
  align-items: start;
  margin: 0;
}
.svhow__list li:nth-child(1) { top: calc(373 * var(--px)); }
.svhow__list li:nth-child(2) { top: calc(515 * var(--px)); }
.svhow__list li:nth-child(3) { top: calc(681 * var(--px)); }
.svhow__no {
  grid-row: 1 / span 2;
  width: calc(36 * var(--px));
  height: calc(36 * var(--px));
  margin-top: calc(2 * var(--px));
  border-radius: 50%;
  background: var(--navy);
  color: #fff;
  display: grid;
  place-items: center;
  font-family: var(--f-en);
  font-size: calc(14 * var(--px));
  letter-spacing: 0.04em;
  line-height: 1;
}
.svhow__h {
  display: block;
  padding-left: calc(16 * var(--px));
  font-size: calc(20 * var(--px));
  line-height: calc(29 * var(--px));
  font-weight: 500;
  color: var(--beige);
}
.svhow__h em {
  font-style: normal;
  font-weight: 500;
  color: inherit;
}
.svhow__h--dark {
  color: #212e3d;
}
.svhow__p {
  display: block;
  grid-column: 2;
  padding-left: calc(16 * var(--px));
  margin-top: calc(8 * var(--px));
  font-size: calc(14 * var(--px));
  line-height: calc(24 * var(--px));
  color: #5e6e7d;
}

/* Domains — navy band, keep Service / 5つの支援領域; white cards pitch ~587 */
.svlist { --h: 3192; }
.svlist__en {
  --x: 32; --y: 106;
  --fs: 28; --lh: 40;
  color: #fff;
}
.svlist__title {
  --x: 32; --y: 148;
  --fs: 20; --lh: 32;
  color: #a9b5c1;
}
.svlist .sdcard {
  position: absolute;
  left: calc(16 * var(--px));
  width: calc(358 * var(--px));
  margin: 0;
  grid-template-columns: 1fr;
  padding: calc(20 * var(--px)) calc(16 * var(--px)) calc(22 * var(--px));
  gap: calc(12 * var(--px));
  background: #fff;
  border-radius: calc(8 * var(--px));
}
.svlist .sdcard:nth-of-type(1) { top: calc(248 * var(--px)); }
.svlist .sdcard:nth-of-type(2) { top: calc(835 * var(--px)); }
.svlist .sdcard:nth-of-type(3) { top: calc(1422 * var(--px)); }
.svlist .sdcard:nth-of-type(4) { top: calc(2009 * var(--px)); }
.svlist .sdcard:nth-of-type(5) { top: calc(2596 * var(--px)); }
.svlist .sdcard:first-of-type { margin-top: 0; }
.sdcard__no {
  position: static;
  transform: none;
  line-height: 1;
  margin-bottom: calc(4 * var(--px));
  font-size: calc(16 * var(--px));
  color: #5e6e7d;
}
.sdcard__photo {
  width: 100%;
  height: calc(160 * var(--px));
  border-radius: calc(6 * var(--px));
}
.sdcard__body h3 {
  font-size: calc(22 * var(--px));
  line-height: calc(30 * var(--px));
}
.sdcard__lead {
  font-size: calc(14 * var(--px));
  line-height: calc(22 * var(--px));
}
.sdcard__desc {
  font-size: calc(13 * var(--px));
  line-height: calc(22 * var(--px));
}
.sdcard__tags {
  margin-top: calc(14 * var(--px));
  gap: calc(6 * var(--px));
}
.sdcard__tags li {
  height: calc(28 * var(--px));
  padding: 0 calc(10 * var(--px));
  font-size: calc(11 * var(--px));
}

/* FLOW — white board 6741→8227 (h1486); title pad 106 like WHY; exclude 120px spacer before OTHER */
.svflow { --h: 1486; overflow: hidden; background: #fff; }
.svflow__en {
  --x: 32; --y: 106;
  font-size: calc(28 * var(--px));
  line-height: calc(40 * var(--px));
  color: #2a3442;
  top: calc(var(--y) * var(--px));
}
.svflow__ja {
  --x: 32; --y: 133;
  font-size: calc(13 * var(--px));
  line-height: calc(22 * var(--px));
  color: #5e6e7d;
  top: calc(var(--y) * var(--px));
}
.svflow__axis {
  left: calc(50 * var(--px));
  top: calc(220 * var(--px));
  height: calc(707 * var(--px));
}
.svflow__steps {
  left: calc(16 * var(--px));
  top: calc(198 * var(--px));
  width: calc(358 * var(--px));
}
.svflow__steps li {
  height: calc(180 * var(--px));
  margin-bottom: 0;
  padding: calc(10 * var(--px)) 0 0 calc(82 * var(--px));
}
.svflow__steps li::after { left: calc(82 * var(--px)); }
.svflow__no {
  left: calc(12 * var(--px));
  top: calc(22 * var(--px));
  width: calc(44 * var(--px));
  height: calc(44 * var(--px));
  margin-top: 0;
  font-size: calc(18 * var(--px));
}
.svflow__ptr {
  left: calc(58 * var(--px));
  top: calc(40 * var(--px));
  width: calc(16 * var(--px));
}
.svflow__label {
  font-size: calc(12 * var(--px));
  line-height: calc(18 * var(--px));
}
.svflow__h {
  margin-top: calc(4 * var(--px));
  font-size: calc(20 * var(--px));
  line-height: calc(28 * var(--px));
}
.svflow__p {
  font-size: calc(14 * var(--px));
  line-height: calc(22 * var(--px));
}
.svflow__p br { display: none; }
/* 5th mark — XD (28,821) + pad 106 → (28,927) */
.svflow__wave {
  left: calc(28 * var(--px));
  top: calc(927 * var(--px));
  width: calc(50 * var(--px));
  height: calc(32 * var(--px));
}
.svflow__cont {
  --x: 98; --y: 920;
  --fs: 11; --lh: 18;
  color: #9b7c45;
}
.svflow__cont-ja {
  --x: 98; --y: 954;
  --fs: 18; --lh: 28;
  width: calc(260 * var(--px));
  white-space: normal;
  color: #182438;
}
/* Contact CTA — (18,945) + pad 106 → top 1051; ~80px below box to section end */
.svcontact {
  left: calc(18 * var(--px));
  top: calc(1051 * var(--px));
  width: calc(355 * var(--px));
  height: calc(355 * var(--px));
  border-radius: calc(16 * var(--px));
}
.svcontact__visual {
  left: calc(34.5 * var(--px));
  top: calc(33 * var(--px));
  width: calc(289 * var(--px));
  height: calc(289 * var(--px));
}
.svcontact__visual img {
  mix-blend-mode: lighten;
  object-fit: cover;
}
.svcontact__en {
  left: 0;
  right: auto;
  top: calc(87 * var(--px));
  font-size: calc(32 * var(--px));
  line-height: calc(48 * var(--px));
  text-align: left;
  padding: 0 0 0 calc(16 * var(--px));
}
.svcontact__go {
  left: calc(296 * var(--px));
  top: calc(268 * var(--px));
  width: calc(42 * var(--px));
  height: calc(42 * var(--px));
  transform: none;
}
.svcontact__go .arrow {
  width: calc(18 * var(--px));
  height: calc(6 * var(--px));
}

/* ============================ RECRUIT PAGE ============================== */
/* SP_RECRUIT artboard-4205ed7d (260924). Section origins on the artboard:
   hero 0 · culture 927 · quote 1723 · hiring 2113 · career 4247
   FAQ 4944 · HRMOS 5626 · OTHER 5888.9 · footer 7009.1                   */

/* shared SP page-hero label (RECRUIT / NEWS / CONTACT): Canela 42, ls 100 */
.phero.rhero .phero__star,
.phero.nhero .phero__star,
.phero.chero .phero__star { display: none; }
.phero.rhero .phero__title,
.phero.nhero .phero__title,
.phero.chero .phero__title { --x: 32; --y: 181.2; --fs: 42; --lh: 52; letter-spacing: 0.1em; }
.phero.rhero .phero__ja,
.phero.nhero .phero__ja,
.phero.chero .phero__ja { --x: 33; --y: 212.2; --fs: 12; --lh: 20; }

/* XD Noto Serif JP Regular subtitles (5つのカルチャー / よくある質問 / 一覧 …) */
.rculture__ja,
.rfaq__ja,
.narchive__ja,
.nhero--detail .nhero__ja,
.nrelated__ja {
  --fs: 13 !important;
  --lh: 20 !important;
  font-family: "Noto Serif JP", var(--f-mincho) !important;
  font-weight: 400 !important;
  letter-spacing: 0;
}

/* HRMOS mark (vector from XD) replaces the text logo on SP */
.owcta .owcta__logo { display: none; }
.owcta__mark { position: absolute; display: block; height: auto; }
/* XD パス 9120/9121: ↗ stroke arrow in a 31.9 ring */
.owcta .owcta__go {
  width: calc(31.9 * var(--px));
  height: calc(31.9 * var(--px));
  border: 1px solid rgba(255, 255, 255, 0.55);
}
.owcta .owcta__go .arrow,
.owcta:hover .owcta__go .arrow {
  width: calc(12 * var(--px));
  height: calc(12 * var(--px));
  transform: none;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M.8 11.2 11.2.8M4.6.8h6.6v6.6' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M.8 11.2 11.2.8M4.6.8h6.6v6.6' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------ hero --- */
.phero.rhero { --h: 927; overflow: hidden; }
.rhero__head {
  --x: 35; --y: 281.2;
  --fs: 24; --lh: 35;
  width: calc(330 * var(--px));
  font-family: var(--f-mincho);
  font-weight: 700;
  color: #2a3442;
}
.rhero__lead {
  --x: 32; --y: 590.2; --w: 220; --fs: 14; --lh: 24;
  color: #5e6e7d;
}
/* XD shots: hero-3 / hero-1 / hero-5 / hero-2 — !important overrides inline PC vars */
.rhero__shot--3 {
  left: calc(272.8 * var(--px)) !important;
  top: calc(142.2 * var(--px)) !important;
  width: calc(101.3 * var(--px)) !important;
  height: calc(127 * var(--px)) !important;
}
.rhero__shot--1 {
  left: calc(16 * var(--px)) !important;
  top: calc(355.2 * var(--px)) !important;
  width: calc(158 * var(--px)) !important;
  height: calc(198 * var(--px)) !important;
}
.rhero__shot--5 {
  left: calc(232.5 * var(--px)) !important;
  top: calc(391.9 * var(--px)) !important;
  width: calc(80.5 * var(--px)) !important;
  height: calc(100.3 * var(--px)) !important;
}
.rhero__shot--2 {
  left: calc(264 * var(--px)) !important;
  top: calc(519.2 * var(--px)) !important;
  width: calc(110 * var(--px)) !important;
  height: calc(138 * var(--px)) !important;
}

/* XD 長方形 1312: 326 x 77, r16, 1px white, drop shadow 0 3 3 #0029 */
.rhero__ow {
  left: calc(32 * var(--px));
  top: calc(730.2 * var(--px));
  width: calc(326 * var(--px));
  height: calc(77 * var(--px));
  border: 1px solid #fff;
  border-radius: calc(16 * var(--px));
  box-shadow: 0 calc(3 * var(--px)) calc(3 * var(--px)) rgba(0, 0, 0, 0.16);
}
.owcta--hero .owcta__mark {
  left: calc(21 * var(--px));
  top: calc(14.9 * var(--px));
  width: calc(73.2 * var(--px));
}
.owcta--hero .owcta__ja {
  left: calc(21 * var(--px));
  top: calc((45.7 - 0.86 * 12) * var(--px));
  font-size: calc(12 * var(--px));
  font-weight: 500;
  letter-spacing: 0;
}
.owcta--hero .owcta__sub {
  left: calc(21 * var(--px));
  top: calc((59.9 - 0.86 * 10) * var(--px));
  font-size: calc(10 * var(--px));
  letter-spacing: 0;
  color: #675b49;
}
.owcta--hero .owcta__go {
  right: auto;
  left: calc(269.8 * var(--px));
  top: calc(22 * var(--px));
}

/* ---------------------------------------------------------- culture --- */
.rculture { --h: 796; }
.rculture__en {
  --x: 32; --y: 106.2; --fs: 28; --lh: 34;
  letter-spacing: 0.05em;
}
.rculture__ja { --x: 32; --y: 133.2; color: #95a1af; }
.rculture__title {
  --x: 33; --y: 227.2; --fs: 23; --lh: 36;
  width: calc(325 * var(--px));
  font-family: "Noto Serif JP", var(--f-mincho);
  font-weight: 400;
}
.rculture__title br { display: none; }

/* 3 cards 326 x 318 in a snap scroller: first at x=32, 16 apart */
.rculture__track {
  position: absolute;
  left: 0;
  top: calc(346 * var(--px));
  width: 100%;
  display: flex;
  gap: calc(16 * var(--px));
  padding: 0 calc(32 * var(--px));
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding: 0 calc(32 * var(--px));
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.rculture__track::-webkit-scrollbar { display: none; }
.rculture__track::after { content: ""; flex: none; width: 1px; }
.ccul {
  position: relative;
  left: auto;
  top: auto;
  flex: none;
  width: calc(326 * var(--px));
  height: calc(318 * var(--px));
  scroll-snap-align: start;
}
.ccul__icon { left: calc(22 * var(--px)); top: calc(32 * var(--px)); }
.ccul__no { right: calc(22 * var(--px)); top: calc(34 * var(--px)); }
.ccul__en {
  left: calc(22 * var(--px));
  top: calc((124 - 0.86 * 12) * var(--px));
  font-size: calc(12 * var(--px));
}
.ccul__t {
  left: calc(22 * var(--px));
  top: calc(131 * var(--px));
  width: calc(282 * var(--px));
  line-height: calc(29 * var(--px));
  letter-spacing: 0;
  color: #212e3d;
}
.ccul__rule,
.ccul--tall .ccul__rule {
  left: calc(22 * var(--px));
  top: calc(205 * var(--px));
  width: calc(278 * var(--px));
}
.ccul__d,
.ccul--tall .ccul__d {
  left: calc(22 * var(--px));
  top: calc(221 * var(--px));
  width: calc(282 * var(--px));
}

/* XD 楕円形 5457–5459: 12 dots, 8 apart, centred at y=704 */
.rculture .rculture__dots {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(704 * var(--px));
  display: flex !important;
  justify-content: center;
  gap: calc(8 * var(--px));
}
.rculture__dots span {
  width: calc(12 * var(--px));
  height: calc(12 * var(--px));
  border-radius: 50%;
  background: #5e6e7d;
  transition: background-color 0.3s ease;
}
.rculture__dots span.is-on { background: #fff; }

/* ------------------------------------------------------------ quote --- */
.rquote { --h: 390; }
.rquote__img { --w: 390; --h: 390; }
.rquote__img img { object-position: 43.6% 50%; }
.rquote__t {
  left: 0;
  transform: none;
  width: 100%;
  top: calc((186 - (35 - 23) / 2 - 0.86 * 23) * var(--px));
  font-size: calc(23 * var(--px));
  line-height: calc(35 * var(--px));
}

/* ---------------------------------------------------- hiring targets --- */
.rhire { --h: 2134; }
.rhire__eye { left: calc(34 * var(--px)) !important; top: calc(120 * var(--px)) !important; gap: calc(8 * var(--px)); }
.rhire__eye .sparkle,
.rcareer .eyebrow .sparkle { width: calc(24.5 * var(--px)); height: calc(24 * var(--px)); }

.rhire__axis {
  left: calc(18 * var(--px));
  top: calc(168 * var(--px));
  width: calc(358 * var(--px));
  height: calc(148 * var(--px));
  display: block;
}
.rhire__axis-lab {
  width: 100%;
  height: calc(42 * var(--px));
  border-radius: calc(8 * var(--px)) calc(8 * var(--px)) 0 0;
  display: flex;
  align-items: center;
  padding-left: calc(16 * var(--px));
  font-size: calc(18 * var(--px));
}
.rhire__axis-tags {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--px));
  width: calc(290 * var(--px));
  padding: calc(12 * var(--px)) 0 0 calc(16 * var(--px));
}
.rhire__axis-tags span {
  height: calc(30 * var(--px));
  padding: 0 calc(10 * var(--px));
  font-size: calc(13 * var(--px));
  letter-spacing: 0;
}

/* XD target-01… : 358 x 438 r10, 452 pitch */
.htype {
  left: calc(18 * var(--px)) !important;
  width: calc(358 * var(--px));
  height: calc(438 * var(--px));
}
.htype:nth-of-type(1) { top: calc(340.2 * var(--px)) !important; }
.htype:nth-of-type(2) { top: calc(792.2 * var(--px)) !important; }
.htype:nth-of-type(3) { top: calc(1244.2 * var(--px)) !important; }
.htype:nth-of-type(4) { top: calc(1696.2 * var(--px)) !important; }
.htype__no {
  left: calc(16 * var(--px));
  top: calc(20 * var(--px));
  width: calc(46 * var(--px));
  height: calc(46 * var(--px));
  font-size: calc(22 * var(--px));
  letter-spacing: 0;
}
.htype--dark .htype__no { background: rgba(255, 255, 255, 0.1); color: #fff; }
.htype__head { position: static; }
.htype__t {
  position: absolute;
  left: calc(76 * var(--px));
  top: calc(20 * var(--px));
  width: calc(266 * var(--px));
  min-height: calc(46 * var(--px));
  margin: 0;
  display: flex;
  align-items: center;
  font-size: calc(20 * var(--px));
  line-height: calc(26 * var(--px));
}
.htype:nth-of-type(1) .htype__t { align-items: flex-start; padding-top: calc(5 * var(--px)); }
.htype__meta {
  position: absolute;
  left: calc(16 * var(--px));
  top: calc((103 - 0.86 * 12) * var(--px));
  display: block;
  margin: 0;
}
.htype__ex { font-size: calc(12 * var(--px)); line-height: calc(12 * var(--px)); letter-spacing: 0; }
.htype__tags { gap: calc(6 * var(--px)); margin-top: calc(10.7 * var(--px)); flex-wrap: nowrap; }
.htype__tags li {
  height: calc(28 * var(--px));
  padding: 0 calc(10 * var(--px));
  font-size: calc(12 * var(--px));
  letter-spacing: 0;
}
.htype__rows {
  left: calc(16 * var(--px));
  top: calc(164 * var(--px));
  width: calc(326 * var(--px));
}
.htype__row {
  display: block;
  height: calc(80 * var(--px));
  padding: calc(10.5 * var(--px)) calc(12 * var(--px)) 0;
}
.htype__row dt {
  width: auto;
  font-size: calc(11 * var(--px));
  line-height: calc(11 * var(--px));
  letter-spacing: 0;
}
.htype__row dd {
  margin-top: calc(5.5 * var(--px));
  font-size: calc(14 * var(--px));
  line-height: calc(22 * var(--px));
}

/* ------------------------------------------------------ career path --- */
.rcareer { --h: 697; overflow: hidden; }
.rcareer__arcwrap { display: none; }
/* XD パス 9653: top half of a 675 ring, stroke #e1e8ee 2, origin (-140, 240.3) */
.rcareer::before {
  content: "";
  position: absolute;
  left: calc(-140 * var(--px));
  top: calc(240.3 * var(--px));
  width: calc(675 * var(--px));
  height: calc(675 * var(--px));
  border: calc(2 * var(--px)) solid #e1e8ee;
  border-radius: 50%;
  box-sizing: border-box;
  clip-path: inset(0 0 50% 0);
  pointer-events: none;
}
.rcareer .eyebrow { left: calc(34 * var(--px)) !important; top: calc(64 * var(--px)) !important; gap: calc(8 * var(--px)); }
.rcareer__lead {
  --x: 34; --y: 112.2; --w: 326; --fs: 16; --lh: 24;
  letter-spacing: 0.05em;
}
.rcareer__photo { --x: 29.5; --y: 311.2; --w: 118; --h: 118; mix-blend-mode: multiply; }
.rcareer__badge {
  --x: 165 !important; --y: 216.2 !important;
  width: calc(64 * var(--px));
  height: calc(64 * var(--px));
  font-family: var(--f-en);
  font-size: calc(24 * var(--px));
  letter-spacing: 0.07em;
}
.rcareer__badge--next {
  --x: 339.5 !important; --y: 263 !important;
  width: calc(37.5 * var(--px));
  height: calc(37.5 * var(--px));
  font-size: calc(16 * var(--px));
  color: #39465a;
}
.rcareer__kicker {
  --x: 155.5; --y: 321.2; --fs: 9; --lh: 12;
  letter-spacing: 0;
  color: #687788;
}
.rcareer__t {
  --x: 155.5; --y: 351.2; --fs: 20; --lh: 32;
  letter-spacing: 0;
  color: #283342;
}
.rcareer__d {
  --x: 155.5; --y: 373.2; --w: 200; --fs: 14; --lh: 24;
  color: #5e6e7d;
}
.rcareer__chips {
  left: calc(60 * var(--px));
  top: calc(455 * var(--px));
  width: calc(290 * var(--px));
  flex-wrap: wrap;
  gap: calc(4 * var(--px));
}
.rcareer__chip,
.rcareer__chip:nth-child(2),
.rcareer__chip:nth-child(3) {
  width: auto;
  height: calc(25 * var(--px));
  padding: 0 calc(16 * var(--px));
  font-size: calc(12 * var(--px));
  letter-spacing: 0.0156em;
}

/* -------------------------------------------------------------- FAQ --- */
/* flow layout so an opened answer pushes the photo strip down */
.rfaq {
  height: auto;
  display: flex;
  flex-direction: column;
  padding: calc(177.8 * var(--px)) 0 calc(108.2 * var(--px));
}
.rfaq__en {
  --x: 32; --y: 106.8; --fs: 28; --lh: 34;
  letter-spacing: 0.05em;
}
.rfaq__ja { --x: 32; --y: 133.8; color: #5e6e7d; }
.rfaq__list {
  position: relative;
  left: auto;
  top: auto;
  order: 1;
  margin-left: calc(34 * var(--px));
  width: calc(326 * var(--px));
}
.qacc__head {
  min-height: calc(80 * var(--px));
  gap: 0;
  padding: calc(16 * var(--px)) 0;
}
.qacc__q {
  flex: none;
  width: calc(43.7 * var(--px));
  padding-left: calc(12 * var(--px));
  font-family: var(--f-en);
  font-size: calc(19 * var(--px));
  color: #a29888;
}
.qacc__t {
  flex: none;
  width: calc(238 * var(--px));
  font-size: calc(16 * var(--px));
  line-height: calc(24 * var(--px));
  font-weight: 500;
}
.qacc__plus {
  margin-left: auto;
  padding-right: calc(12 * var(--px));
  font-size: calc(25 * var(--px));
  color: #a29888;
}
.qacc__panel {
  padding-left: calc(43.7 * var(--px));
  padding-right: calc(12 * var(--px));
  font-size: calc(14 * var(--px));
  line-height: calc(24 * var(--px));
}
.qacc[open] .qacc__panel { padding-bottom: calc(20 * var(--px)); }
.rfaq__shots {
  position: relative;
  top: auto;
  order: 2;
  margin-top: calc(40 * var(--px));
  height: calc(116 * var(--px));
}
.rfaq__track { margin-left: calc(-437.7 * var(--px)); gap: calc(6 * var(--px)); }
.rfaq__shot {
  width: calc(206.6 * var(--px));
  height: calc(116 * var(--px));
  border-radius: calc(8 * var(--px));
}

/* ---------------------------------------------------- HRMOS (bottom) --- */
.rcta--ow { --h: 262.9; background: #fff; }
.rcta--ow .rcta__ow {
  left: calc(17 * var(--px));
  top: 0;
  width: calc(356 * var(--px));
  height: calc(163.5 * var(--px));
  border-radius: calc(16 * var(--px));
}
.owcta--xd { display: block; padding: 0; }
.owcta--xd .owcta__mark {
  left: calc(19 * var(--px));
  top: calc(32 * var(--px));
  width: calc(159 * var(--px));
}
.owcta--xd .owcta__lines {
  position: absolute;
  left: calc(15 * var(--px));
  top: calc((104.5 - 0.86 * 16) * var(--px));
  display: block;
}
.owcta--xd .owcta__ja {
  font-size: calc(16 * var(--px));
  line-height: calc(16 * var(--px));
  font-weight: 500;
  letter-spacing: 0;
}
.owcta--xd .owcta__sub {
  margin-top: calc(11.5 * var(--px));
  font-size: calc(12 * var(--px));
  line-height: calc(12 * var(--px));
  letter-spacing: 0;
  color: #675b49;
}
.owcta--xd .owcta__go {
  position: absolute;
  left: calc(299.8 * var(--px));
  top: calc(29 * var(--px));
  margin: 0;
}

/* ------------------------------------------------ OTHER + Make IT Work --- */
/* SP_RECRUIT / NEWS / NEWS-single / CONTACT share this block: origin is the
   120px spacer above OTHER, footer follows at +1120.2                     */
.other.other--sub {
  --h: 1120.2;
  background: var(--bg);
  overflow-x: clip;
  overflow-y: visible;
}
.other.other--sub .other__en {
  --x: 32; --y: 164;
  --fs: 48; --lh: 77;
  color: #2a3442;
}
.other.other--sub .other__ja {
  --x: 32; --y: 203;
  --fs: 20; --lh: 32;
  color: #5e6e7d !important;
}
.other.other--sub > a.lcard:nth-of-type(1) { top: calc(245 * var(--px)) !important; }
.other.other--sub > a.lcard:nth-of-type(2) { top: calc(352.9 * var(--px)) !important; }
.other.other--sub > a.lcard:nth-of-type(3) { top: calc(460.8 * var(--px)) !important; }
.other.other--sub > a.lcard:nth-of-type(4) { top: calc(568.7 * var(--px)) !important; }
.other.other--sub .lcard__img {
  left: calc(10 * var(--px)) !important;
  top: calc(9 * var(--px)) !important;
  width: calc(134.6 * var(--px)) !important;
  height: calc(83.5 * var(--px)) !important;
}
.other.other--sub .bigcta__visual {
  --x: -95.6;
  --y: 785;
  --w: 517.1;
  --h: 344.2;
}
.other.other--sub .bigcta__en {
  --x: 195;
  --y: 841.9;
  --fs: 32 !important;
  --lh: 50 !important;
  letter-spacing: 0;
  white-space: nowrap !important;
  text-align: center;
}
.other.other--sub .bigcta__ja {
  --x: 76 !important;
  --y: 930.7 !important;
  --fs: 13 !important;
  --lh: 33 !important;
  transform: none !important;
  text-align: left !important;
  white-space: nowrap;
}

/* ============================== NEWS PAGE =============================== */
/* SP_NEWS artboard-daf183a8 (260924): hero + filter 0→571.8 · archive (white)
   571.8→1927.3 · RECRUIT banner 1927.3→2758.3 · OTHER 2758.3 · footer 3878.6 */

.phero.nhero { --h: 571.8; background: #f2f5f8; }
.phero.nhero::after { display: none; }

/* stroke arrow used by the SP news rows / nav / cards (XD パス 10205 etc.) */
.nrow__go .arrow,
.nrel__go .arrow,
.nnav__go .arrow,
.rncard__go .arrow {
  width: calc(12 * var(--px));
  height: calc(10 * var(--px));
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M.6 5h10.8M6.6.6 11 5 6.6 9.4' fill='none' stroke='white' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M.6 5h10.8M6.6.6 11 5 6.6 9.4' fill='none' stroke='white' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.nrel__go .arrow,
.nnav__go .arrow,
.rncard__go .arrow {
  width: calc(9 * var(--px));
  height: calc(7 * var(--px));
}

/* flow layout: rows stack, so two-line titles push the list down */
.narchive {
  height: auto;
  overflow: visible;
  display: flex;
  flex-direction: column;
  padding: calc(224.5 * var(--px)) calc(28 * var(--px)) calc(80 * var(--px));
}
.narchive__en {
  --x: 32; --fs: 28; --lh: 34;
  top: calc((106 - (34 - 28) / 2 - 0.86 * 28) * var(--px));
  margin-top: 0;
  letter-spacing: 0.05em;
}
.narchive__ja {
  --x: 32;
  top: calc((133 - (20 - 13) / 2 - 0.86 * 13) * var(--px));
  margin-top: 0;
  color: #5e6e7d !important;
}

/* filter sits in the grey hero on SP: artboard y=279.2 → -292.6 from here */
.nfilter {
  left: 0;
  top: calc(-292.6 * var(--px));
  width: 100%;
  height: calc(247 * var(--px));
  background: none;
  border-radius: 0;
}
.nfilter__h {
  position: absolute;
  left: calc(32 * var(--px));
  top: 0;
  color: #2a3442;
}
.nfilter__lbl {
  left: calc(32 * var(--px));
  font-size: calc(14 * var(--px));
  line-height: calc(14 * var(--px));
}
.nfilter__lbl--type { margin-top: calc((56 - 0.86 * 14) * var(--px)); }
.nfilter__lbl--year { margin-top: calc((201 - 0.86 * 14) * var(--px)); }
.nfilter__row {
  left: calc(32 * var(--px));
  flex-wrap: wrap;
  gap: calc(8 * var(--px));
  width: calc(326 * var(--px));
}
.nfilter__row--type { margin-top: calc(69 * var(--px)); }
.nfilter__row--year { left: calc(84 * var(--px)); margin-top: calc(179 * var(--px)); width: auto; }
.nchip {
  height: calc(34 * var(--px));
  padding: 0 calc(14 * var(--px));
  border-radius: calc(17 * var(--px));
  font-size: calc(14 * var(--px));
  letter-spacing: 0;
}
.nchip--all { width: calc(58 * var(--px)); }
.nfilter__row--type .nchip:nth-child(2) { width: calc(84 * var(--px)); }
.nfilter__row--type .nchip:nth-child(3) { width: calc(130 * var(--px)); }
.nfilter__row--type .nchip:nth-child(4) { width: calc(116 * var(--px)); }
.nfilter__row--type .nchip:nth-child(5) { width: calc(88 * var(--px)); }
.nfilter__row--year .nchip:nth-child(2) { width: calc(90 * var(--px)); }

/* 該当するお知らせ 24 件 — shared baseline at 205 */
.narchive__count {
  left: calc(28 * var(--px));
  top: calc((205 - 0.86 * 24) * var(--px));
  height: auto;
  align-items: baseline;
  color: #263447;
}
.narchive__count-lbl { font-size: calc(14 * var(--px)); }
.narchive__count b {
  margin: 0 0 0 calc(15 * var(--px));
  font-size: calc(24 * var(--px));
}
.narchive__count-ken { margin-left: calc(4 * var(--px)); font-size: calc(13 * var(--px)); }
.narchive__range {
  right: calc(28 * var(--px));
  top: calc((205 - 0.86 * 12) * var(--px));
  font-size: calc(12 * var(--px));
  color: #7c8794;
}

/* rows: rule, date + pill on one line, title below, 28 ring on the right */
.nrow {
  position: relative;
  left: auto;
  top: auto;
  width: 100%;
  height: auto;
  padding: calc(43.1 * var(--px)) 0 calc(18.4 * var(--px));
  border-top: 1px solid #d8dde2;
}
.nrow:last-of-type { border-bottom: 1px solid #d8dde2; }
.nrow__date {
  left: 0;
  top: calc((29 - 0.86 * 13) * var(--px));
  transform: none;
  font-size: calc(13 * var(--px));
  line-height: calc(13 * var(--px));
  color: #7c8794;
}
.nrow__cat {
  left: calc(96 * var(--px));
  top: calc(10 * var(--px));
  transform: none;
  height: calc(26 * var(--px));
  min-width: 0;
  padding: 0 calc(12 * var(--px));
  font-size: calc(12 * var(--px));
  color: #263447;
}
.nrow__t {
  position: static;
  display: block;
  transform: none;
  width: calc(280 * var(--px));
  font-size: calc(15 * var(--px));
  line-height: calc(24 * var(--px));
  white-space: normal;
  color: #263447;
}
.nrow__go {
  right: calc(1 * var(--px));
  top: calc(50% - 6 * var(--px));
  width: calc(28 * var(--px));
  height: calc(28 * var(--px));
  margin-top: 0;
  border-color: #aeb8c2;
  color: #263447;
}

/* ← PREV 01 02 03 … 08 NEXT → : 38 disc at x=90, 40 pitch */
.npager {
  position: relative;
  left: auto;
  top: auto;
  width: 100%;
  margin-top: calc(33 * var(--px));
  justify-content: flex-start;
  font-family: "Noto Sans JP", var(--f-jp);
  font-size: calc(13 * var(--px));
}
.npager > span:first-child { width: calc(62 * var(--px)); flex: none; }
.npager__nums { gap: calc(2 * var(--px)); }
.npager__nums a,
.npager__nums > span {
  width: calc(38 * var(--px));
  height: calc(38 * var(--px));
}
.npager > a:last-child { margin-left: auto; }

/* SP-only RECRUIT banner (SP_NEWS 1927.3): 120 spacer + 358 x 711 card */
.nrecruit { --h: 831; background: var(--bg); }
.nrecruit .recruit { --top: 120; }

/* =========================== NEWS SINGLE PAGE =========================== */
/* SP_NEWS-single artboard-48549fd9: hero 0→464.2 · article (white) →2296.2
   · RELATED →2965.1 · RECRUIT →3796.1 · OTHER · footer 4916.4             */

.phero.nhero--detail { --h: 464.2; }
.nhero--detail .nhero__label {
  --x: 32; --fs: 28; --lh: 34;
  top: calc((174.2 - (34 - 28) / 2 - 0.86 * 28) * var(--px));
  margin-top: 0;
  font-family: var(--f-en);
  font-weight: 400;
  font-variation-settings: normal;
  letter-spacing: 0.05em;
}
.nhero--detail .nhero__ja {
  --x: 32;
  top: calc((201.2 - (20 - 13) / 2 - 0.86 * 13) * var(--px));
  margin-top: 0;
  color: #5e6e7d;
}
.nhero__cat {
  left: calc(32 * var(--px));
  top: calc(269.2 * var(--px));
  height: calc(30 * var(--px));
  padding: 0 calc(19 * var(--px));
  border-radius: calc(15 * var(--px));
  font-size: calc(13 * var(--px));
}
.nhero__date {
  left: calc(136 * var(--px));
  top: calc((290.2 - 0.86 * 13) * var(--px));
  font-size: calc(13 * var(--px));
  line-height: calc(13 * var(--px));
  color: #7c8793;
}
.nhero__headline {
  --x: 32; --y: 310.3; --w: 326; --fs: 22; --lh: 32;
  color: #253448;
}
.nhero__tags {
  left: calc(32 * var(--px));
  top: calc((396.2 - 0.86 * 13) * var(--px));
  gap: calc(11 * var(--px));
  font-size: calc(13 * var(--px));
  line-height: calc(13 * var(--px));
  color: #7c8793;
}

.ndetail {
  height: auto;
  padding: calc(64.5 * var(--px)) calc(32 * var(--px)) calc(41 * var(--px));
}
.nside { display: none; }
.narticle {
  position: relative;
  left: auto;
  top: auto;
  width: auto;
}
.narticle__lead {
  margin-bottom: calc(17.5 * var(--px));
  font-size: calc(18 * var(--px));
  line-height: calc(28 * var(--px));
  color: #253448;
}
.narticle p {
  font-size: calc(14 * var(--px));
  line-height: calc(24 * var(--px));
  color: #3f4b59;
}
.narticle .narticle__lead { font-size: calc(18 * var(--px)); line-height: calc(28 * var(--px)); color: #253448; }
.narticle p + p { margin-top: calc(14 * var(--px)); }
.narticle__fig {
  height: calc(154 * var(--px));
  margin: calc(27 * var(--px)) 0 0;
  font-size: calc(20 * var(--px));
  color: #7f8994;
}
/* 1px #a29888 bar, 24 tall, text at +12 */
.narticle h2 {
  margin: calc(34 * var(--px)) 0 calc(19 * var(--px));
  padding-left: calc(12 * var(--px));
  font-size: calc(20 * var(--px));
  line-height: calc(24 * var(--px));
  color: #253448;
}
.narticle h2::before {
  width: 1px;
  height: calc(24 * var(--px));
  background: #a29888;
}
.nrel + h2 { margin-top: calc(26 * var(--px)); }

/* RELATED LINK cards: 326 x 122, r4, 3px navy bar (light variant only) */
.nrel {
  position: relative;
  display: block;
  height: calc(122 * var(--px));
  margin: calc(29 * var(--px)) 0 0;
  padding: calc(15.5 * var(--px)) 0 0 calc(13 * var(--px));
  background: #f4f6f8;
  border: 1px solid #e5e9ed;
  border-left: calc(3 * var(--px)) solid #253448;
  border-radius: calc(4 * var(--px));
}
.nrel--dark { background: #253448; border: 0; padding-left: calc(16 * var(--px)); }
.nrel__k { font-size: calc(11 * var(--px)); line-height: calc(11 * var(--px)); letter-spacing: 0; }
.nrel__t,
.nrel--dark .nrel__t {
  margin-top: calc(12.7 * var(--px));
  font-size: calc(16 * var(--px));
  line-height: calc(16 * var(--px));
  color: #253448;
}
.nrel--dark .nrel__t { color: #fff; }
.nrel__d {
  margin-top: calc(32.5 * var(--px));
  font-size: calc(12 * var(--px));
  line-height: calc(12 * var(--px));
  opacity: 1;
  color: #7c8793;
}
.nrel--dark .nrel__d { color: #cbd3db; }
.nrel__go {
  position: absolute;
  left: calc(285 * var(--px));
  top: calc(82 * var(--px));
  width: calc(24 * var(--px));
  height: calc(24 * var(--px));
  background: none;
  border: 1px solid #253448;
  color: #253448;
}
.nrel--dark .nrel__go { left: calc(286 * var(--px)); top: calc(83 * var(--px)); border-color: #cbd3db; color: #cbd3db; }

.nshare {
  position: relative;
  left: auto;
  top: auto;
  width: auto;
  margin-top: calc(61 * var(--px));
}
.nshare__lbl { margin-right: calc(4 * var(--px)); font-size: calc(12 * var(--px)); letter-spacing: 0; }
.nshare__btn { width: calc(28 * var(--px)); height: calc(28 * var(--px)); }
.nshare__btn--x svg { width: calc(11 * var(--px)); height: calc(11 * var(--px)); }
.nshare__btn--more {
  border-color: #cbd3db;
  color: #98a1aa;
  font-size: calc(20 * var(--px));
  font-weight: 300;
}

/* BACK / NEXT stacked, each 104 tall under a #e3e7ea rule */
.nnav {
  position: relative;
  left: auto;
  top: auto;
  width: auto;
  display: block;
  margin-top: calc(64 * var(--px));
  padding: 0;
  border: 0;
}
.nnav::before { display: none; }
.nnav__back,
.nnav__next {
  position: relative;
  display: block;
  height: calc(104 * var(--px));
  padding-left: calc(32 * var(--px));
  border-top: 1px solid #e3e7ea;
  text-align: left;
}
.nnav__k { margin-top: calc(14.7 * var(--px)); font-size: calc(12 * var(--px)); line-height: calc(12 * var(--px)); letter-spacing: 0; }
.nnav__t { margin-top: calc(13.4 * var(--px)); font-size: calc(15 * var(--px)); line-height: calc(15 * var(--px)); color: #253448; }
.nnav__d { margin-top: calc(12.6 * var(--px)); font-size: calc(12 * var(--px)); line-height: calc(12 * var(--px)); color: #8c969f; }
.nnav__go {
  position: absolute;
  top: calc(36 * var(--px));
  width: calc(24 * var(--px));
  height: calc(24 * var(--px));
}
.nnav__back .nnav__go { left: 0; border-color: #253448; background: none; }
.nnav__next .nnav__go { right: 0; border: 1px solid #253448; background: none; color: #253448; }

/* RELATED NEWS: stacked 326 x 148 cards, 164 pitch */
.nrelated { --h: 668.9; }
.nrelated__en {
  --x: 32; --y: 121.9; --fs: 28; --lh: 34;
  letter-spacing: 0.05em;
  color: #2a3442;
}
.nrelated__ja { --x: 32; --y: 148.9; color: #5e6e7d; }
.rncard {
  left: calc(32 * var(--px)) !important;
  width: calc(326 * var(--px));
  height: calc(148 * var(--px));
  padding: calc(16 * var(--px)) calc(16 * var(--px)) calc(15 * var(--px));
}
.rncard:nth-of-type(1) { top: calc(192.9 * var(--px)); }
.rncard:nth-of-type(2) { top: calc(356.9 * var(--px)); }
.rncard:nth-of-type(3) { top: calc(520.9 * var(--px)); }
.rncard__meta { gap: calc(14 * var(--px)); color: #9aa3ac; }
.rncard__cat {
  height: calc(30 * var(--px));
  padding: 0 calc(16 * var(--px));
  font-size: calc(12 * var(--px));
  color: #263447;
}
.rncard__t { margin-top: calc(12 * var(--px)); font-size: calc(15 * var(--px)); line-height: calc(21 * var(--px)); }
.rncard__foot { padding-top: calc(13 * var(--px)); }
.rncard__more { font-size: calc(11 * var(--px)); letter-spacing: 0; color: #7e8994; }
.rncard__go {
  width: calc(24 * var(--px));
  height: calc(24 * var(--px));
  border-color: #7e8994;
  color: #7e8994;
}

/* ============================ CONTACT PAGE ============================== */
/* SP_CONTACT artboard-b04d8616: hero 0→279.2 · form (white, full bleed)
   →1892.2 · RECRUIT →2723.2 · OTHER · footer 3843.5                      */

.phero.chero { --h: 279.2; }

.cform { background: #fff; }
.cform__card {
  width: auto;
  margin: 0;
  padding: calc(63.5 * var(--px)) calc(32 * var(--px)) calc(80 * var(--px));
  border-radius: 0;
}
.cform__h { font-size: calc(18 * var(--px)); line-height: calc(30 * var(--px)); }
.cform__lead {
  margin-top: calc(12.5 * var(--px));
  padding-bottom: calc(30.8 * var(--px));
  font-size: calc(14 * var(--px));
  line-height: calc(24 * var(--px));
  color: #5e6e7d;
}

/* label row (24 tall, badge 12 after the text), field 10 below, 20 between */
.cform__row,
.cform__row--top { display: block; margin-top: calc(20 * var(--px)); }
.cform__row + .cform__row { margin-top: calc(20 * var(--px)); }
.cform__lbl {
  float: none;
  width: auto;
  height: calc(24 * var(--px));
  gap: calc(12 * var(--px));
  font-size: calc(15 * var(--px));
  line-height: calc(24 * var(--px));
}
.cform__row--top .cform__lbl { margin-top: 0; }
.cform__badge {
  width: calc(44 * var(--px));
  height: calc(24 * var(--px));
  font-size: calc(12 * var(--px));
}
.cform__input {
  width: 100%;
  height: calc(52 * var(--px));
  margin-top: calc(10 * var(--px));
  padding: 0 calc(14 * var(--px));
  border-radius: calc(8 * var(--px));
  font-size: calc(16 * var(--px));
}
.cform__input--wrap {
  height: calc(76 * var(--px));
  padding: calc(14 * var(--px));
  white-space: normal;
}
.cform__input--area {
  height: calc(190 * var(--px));
  padding: calc(13 * var(--px)) calc(14 * var(--px));
}

.cform__radios {
  width: 100%;
  margin-top: calc(10 * var(--px));
  border-radius: calc(8 * var(--px));
}
.cform__radio {
  height: calc(56 * var(--px));
  padding-left: calc(13 * var(--px));
  gap: calc(11 * var(--px));
  font-size: calc(15 * var(--px));
}
.cform__radio input {
  width: calc(18 * var(--px));
  height: calc(18 * var(--px));
}

.cform__note {
  margin-top: calc(17.3 * var(--px));
  font-size: calc(13 * var(--px));
}
.cform__agree {
  justify-content: flex-start;
  gap: calc(12 * var(--px));
  margin-top: calc(24.7 * var(--px));
  padding-left: calc(24 * var(--px));
  font-size: calc(14 * var(--px));
}
.cform__agree input {
  width: calc(20 * var(--px));
  height: calc(20 * var(--px));
  border-radius: calc(4 * var(--px));
}
.cform__submit {
  width: 100%;
  height: calc(56 * var(--px));
  margin-top: calc(30 * var(--px));
  gap: calc(16 * var(--px));
  border-radius: calc(28 * var(--px));
  font-size: calc(18 * var(--px));
}
.cform__submit-arrow { font-size: calc(22 * var(--px)); }

/* RECRUIT banner: same 120 spacer + 358 x 711 card as NEWS */
.nrecruit.crecruit { --h: 831; }
.crecruit .recruit { --top: 120; }

/* PC-only Make IT offsets must not leak into SP */
.other.other--contact { --h: 1120.2; }

/* --------------------------------------------------------------- misc --- */

.reveal { transform: translateY(calc(16 * var(--px))); }

/* ================= CASES / INSIGHT hidden (not deleted) ================= */
/* see the matching block at the end of styles.css. Two OTHER cards gone
   (-215.8), footer sitemap loses 支援事例 / インサイト (-124).             */
.other { --h: 1848.2; }
.other .bigcta__visual { --y: 1400.2; }
.other .bigcta__en { --y: 1457.2; }
.other .bigcta__ja { --y: 1546.2 !important; }

.other.other--sub,
.other.other--contact { --h: 904.4; }
.other.other--sub .bigcta__visual { --y: 569.2; }
.other.other--sub .bigcta__en { --y: 626.1; }
.other.other--sub .bigcta__ja { --y: 714.9 !important; }

.footer { --h: 1124; }
.footer__nav a.fn--news       { --y: 882 !important; }
.footer__nav a.fn--privacy    { --y: 949 !important; }
.footer__nav a.fn--disclaimer { --y: 983 !important; }
.footer__rule { top: calc(1027 * var(--px)); }
.footer__copy { --y: 1077; }

/* ======================= NEWS: published articles ======================= */
/* TOP: 3 rows instead of 6 → CTA, RECRUIT banner and band end move up 3 × 88 */
.news { --h: 1468; height: calc(1468 * var(--px)); }
.news__cta { --y: 558 !important; }
.news .recruit { --top: 671; }

.nrow.is-last { border-bottom: 1px solid #d8dde2; }
.narchive__empty { padding: calc(32 * var(--px)) 0; font-size: calc(14 * var(--px)); border-color: #d8dde2; }

/* article: flow reset of the PC column + only real BACK / NEXT rows */
.ndetail { min-height: 0; }
.nnav { margin: calc(64 * var(--px)) 0 0; }
.nnav__empty { display: none; }
.nshare__msg { font-size: calc(11 * var(--px)); }

/* RELATED NEWS: 2 cards (the other two articles) */
.nrelated { --h: 504.9; }

/* ======================== LEGAL (privacy / disclaimer) ==================== */
/* F02 / F03: no SP artboard — same hero as NEWS / CONTACT, then INDEX above
   the text in one column with the site's 32px side margins. */
.phero.phero--legal { --h: 279.2; background: #f2f5f8; }
.phero.phero--legal .phero__star { display: none; }
.phero.phero--legal .phero__title {
  --x: 32; --y: 181.2; --fs: 42; --lh: 52;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.phero.phero--legal .phero__ja { --x: 33; --y: 212.2; --fs: 12; --lh: 20; }

.legal.sec { padding: calc(56 * var(--px)) calc(32 * var(--px)) calc(72 * var(--px)); }
.legal__kicker { font-size: calc(11 * var(--px)); }
.legal__kicker-ja { margin-top: calc(6 * var(--px)); font-size: calc(12 * var(--px)); }
.legal__shell {
  display: block;
  margin-top: calc(20 * var(--px));
}
.legal__toc {
  position: static;
  width: auto;
  padding: calc(24 * var(--px)) calc(20 * var(--px)) calc(22 * var(--px));
  margin-bottom: calc(48 * var(--px));
}
.legal__toc-h { font-size: calc(11 * var(--px)); padding-bottom: calc(10 * var(--px)); margin-bottom: calc(10 * var(--px)); }
.legal__toc nav a { font-size: calc(13 * var(--px)); line-height: calc(36 * var(--px)); }
.legal__toc-cta {
  height: calc(48 * var(--px));
  margin-top: calc(18 * var(--px));
  border-radius: calc(24 * var(--px));
  font-size: calc(14 * var(--px));
}
.legal__body { max-width: none; }
.legal__lead { font-size: calc(15 * var(--px)); line-height: calc(27 * var(--px)); margin-bottom: calc(40 * var(--px)); }
.legal__sec { scroll-margin-top: calc(110 * var(--px)); margin-bottom: calc(44 * var(--px)); }
.legal__sec h2 {
  padding-left: calc(14 * var(--px));
  font-size: calc(19 * var(--px));
  line-height: calc(30 * var(--px));
  margin-bottom: calc(16 * var(--px));
}
.legal__sec h2::before { height: calc(30 * var(--px)); }
.legal__sec p { font-size: calc(14 * var(--px)); line-height: calc(26 * var(--px)); }
.legal__sec p + p { margin-top: calc(12 * var(--px)); }
.legal__list,
.legal__note,
.legal__box,
.legal__rel {
  margin: calc(16 * var(--px)) 0;
  padding: calc(18 * var(--px)) calc(18 * var(--px));
  font-size: calc(14 * var(--px));
  line-height: calc(26 * var(--px));
}
.legal__note p { font-size: calc(14 * var(--px)); line-height: calc(26 * var(--px)); }
.legal__note-k,
.legal__rel small { font-size: calc(11 * var(--px)); }
.legal__rel span { font-size: calc(15 * var(--px)); }
.legal__sec .legal__date { font-size: calc(12 * var(--px)); line-height: calc(24 * var(--px)); }

/* the RECRUIT banner after the text: same 120 + 711 rhythm as NEWS */
.legal + .nrecruit { --h: 831; }
.legal + .nrecruit .recruit { --top: 120; }
.rncard { height: auto; min-height: calc(148 * var(--px)); }
.nrelated { --h: 528.9; } /* room for a two-line title in the 2nd card */

/* article BACK / NEXT: real titles wrap — keep clear of the 24px ring */
.nnav__back,
.nnav__next {
  height: auto;
  min-height: calc(104 * var(--px));
  padding-right: calc(40 * var(--px));
  padding-bottom: calc(20 * var(--px));
}
.nnav__t { line-height: calc(22 * var(--px)); margin-top: calc(10 * var(--px)); }

/* RELATED NEWS cards stack in flow (16 apart) so wrapped titles never collide */
.nrelated {
  height: auto;
  padding: calc(192.9 * var(--px)) 0 0;
}
.rncard {
  position: relative;
  left: auto !important;
  top: auto !important;
  margin: 0 0 calc(16 * var(--px)) calc(32 * var(--px));
}
.rncard:last-of-type { margin-bottom: 0; }

/* ======================= SNS row hidden (footer) ======================== */
/* No SNS accounts are run for now (.footer__social.is-hidden). On SP the
   row sat between MAIL and the sitemap rule — close that 46px gap. */
.footer { --h: 1078; }
.footer__nav::before { top: calc(611 * var(--px)); }
.footer__nav a.fn--top        { --y: 650 !important; }
.footer__nav a.fn--about      { --y: 712 !important; }
.footer__nav a.fn--service    { --y: 774 !important; }
.footer__nav a.fn--news       { --y: 836 !important; }
.footer__nav a.fn--privacy    { --y: 903 !important; }
.footer__nav a.fn--disclaimer { --y: 937 !important; }
.footer__rule { top: calc(981 * var(--px)); }
.footer__copy { --y: 1031; }

/* ======================= 2026-09-30 修正（指摘一覧） ======================= */
/* No.1: service names below the 24px section heading */
.svc__name { font-size: calc(20 * var(--px)); }

/* No.5: TOP NEWS band follows the article count (88 per row) */
.news {
  --h: calc(1204 + 88 * var(--rows, 3));
  height: calc((1204 + 88 * var(--rows, 3)) * var(--px));
}
.news__cta { --y: calc(294 + 88 * var(--rows, 3)) !important; }
.news .recruit { --top: calc(407 + 88 * var(--rows, 3)); }

/* No.12: 4 SERVICE domains (one 587 step less) */
.svlist { --h: 2605; }

/* ===================== RECRUIT CAREER PATH: 3-step slider =================== */
/* SP: 64 active disc on top of the 675 ring, 37.5 discs either side */
.rcareer .rcareer__badge.is-active {
  --x: 165 !important; --y: 216.2 !important;
  width: calc(64 * var(--px)); height: calc(64 * var(--px));
  font-size: calc(24 * var(--px));
  background: var(--navy); color: #fff;
}
.rcareer .rcareer__badge.is-next,
.rcareer .rcareer__badge.is-prev,
.rcareer .rcareer__badge.is-far-next,
.rcareer .rcareer__badge.is-far-prev {
  width: calc(37.5 * var(--px)); height: calc(37.5 * var(--px));
  font-size: calc(16 * var(--px));
  background: #d9e0e9; color: #39465a;
}
.rcareer .rcareer__badge.is-next     { --x: 339.5 !important; --y: 263 !important; }
.rcareer .rcareer__badge.is-prev     { --x: 13 !important;    --y: 263 !important; }
.rcareer .rcareer__badge.is-far-next { --x: 420 !important;   --y: 330 !important; }
.rcareer .rcareer__badge.is-far-prev { --x: -68 !important;   --y: 330 !important; }
/* 02 / 03 graphics use the gear's 118 box */
.rcareer__panel--2 .rcareer__photo,
.rcareer__panel--3 .rcareer__photo { --x: 29.5; --y: 311.2; --w: 118; --h: 118; }
.rcareer__panel:not(.is-active) .rcareer__photo { transform: translateX(calc(-16 * var(--px))) scale(0.94); }
.rcareer__panel:not(.is-active) .rcareer__kicker,
.rcareer__panel:not(.is-active) .rcareer__t,
.rcareer__panel:not(.is-active) .rcareer__d,
.rcareer__panel:not(.is-active) .rcareer__chips { transform: translateX(calc(16 * var(--px))); }
.rcareer { touch-action: pan-y; }

/* ===================== 2026-10-06 写真差し替え（SP） ===================== */
/* SP banner row has its own photos (<source> in each shot) */
.recruit__shot--1 img,
.recruit__shot--5 img,
.recruit__shot--4 img,
.recruit__shot--3 img { object-position: 50% 50%; }
.recruit__shot--2 img { object-position: 75% 50%; }   /* photo-window, XD offset -.139 */
.phero.rhero .rhero__shot--1 img { transform: none; }

/* ===================== 2026-10-06 修正_261005 ===================== */
/* TOP WHY STELLAXIS: 3 cards (was 4, 257 per card) */
.strengths { --h: 1899; }
/* SP cards: title (may wrap to 2 lines) and text flow under the icon */
.stcard {
  display: flex;
  flex-direction: column;
  padding: calc(92 * var(--px)) calc(16 * var(--px)) 0;
}
.stcard__title,
.stcard__desc { position: static; width: auto; }
.stcard__title { line-height: calc(28 * var(--px)); }
.stcard__desc { margin-top: calc(12 * var(--px)); }

/* 2026-10-06 — photo strips slide endlessly (see styles.css) */
.company__gallery ul.is-marquee,
.rfaq__track.is-marquee { gap: 0 !important; animation-duration: 40s; }
.company__gallery ul.is-marquee > li,
.rfaq__track.is-marquee > .rfaq__shot { margin-right: calc(6 * var(--px)); }
/* SP keeps the 2-line copy */
.svcontact__en { white-space: normal; }

/* 2026-10-08 — 資本金 row hidden: gallery + band move up by one row (96) */
.company { --h: 1080 !important; }
.company__gallery { top: calc(884 * var(--px)) !important; }
