:root {
  --ink: #07152b;
  --muted: #5f6f86;
  --line: rgba(73, 113, 164, 0.18);
  --blue: #195df7;
  --cyan: #7ddaf2;
  --mint: #9be2d2;
  --peach: #ffb59d;
  --pink: #f5a7d8;
  --violet: #b7a7ff;
  --paper: #f7fbff;
  --white: #fff;
  --layout-max: 1240px;
  --layout-gutter: clamp(20px, 5vw, 80px);
  --section-space: clamp(72px, 7vw, 96px);
  --space-1: 8px;
  --space-2: 12px;
  --space-3: 16px;
  --space-4: 24px;
  --space-5: 32px;
  --space-6: 40px;
  --space-7: 56px;
  --space-8: 72px;
  --space-9: 96px;
  --type-label: 12px;
  --type-body: 16px;
  --type-lead: 18px;
  --type-section: clamp(38px, 3.7vw, 54px);
  --leading-body: 1.8;
  --radius-card: 20px;
  --shadow-card: 0 14px 44px rgba(36, 91, 158, 0.065);
  font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 82% 6%, rgba(125, 218, 242, 0.22), transparent 30rem),
    radial-gradient(circle at 4% 28%, rgba(183, 167, 255, 0.14), transparent 32rem),
    linear-gradient(180deg, #fff 0%, #f8fbff 50%, #fff 100%);
  letter-spacing: 0;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { border: 0; }
.page { overflow: hidden; }

.scroll-progress {
  position: fixed;
  inset: 0 auto auto 0;
  z-index: 40;
  width: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--blue), var(--cyan), var(--peach));
}

.nav {
  position: fixed;
  inset: 16px 24px auto;
  z-index: 30;
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 30px;
  min-height: 66px;
  padding: 8px 10px 8px 18px;
  border: 1px solid rgba(55, 98, 156, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 16px 60px rgba(30, 73, 122, 0.1);
  backdrop-filter: blur(18px);
}
.brand { display: inline-flex; align-items: center; gap: 10px; width: fit-content; font-size: 19px; font-weight: 800; }
/* ロゴのチップはファビコンと同じ絵を使う。assets/img/favicon.svg をそのまま
   data URI にしているので、ファビコンを差し替えたらここも差し替える（二重管理を避ける）。 */
.mark {
  width: 28px;
  height: 28px;
  border-radius: 9px;
  background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><defs><linearGradient id='g' x1='0' y1='0' x2='1' y2='1'><stop offset='0' stop-color='%230f4ae0'/><stop offset='.52' stop-color='%234f6ef4'/><stop offset='1' stop-color='%23a894ff'/></linearGradient><radialGradient id='s' cx='.26' cy='.24' r='.17'><stop offset='0' stop-color='%23fff' stop-opacity='.8'/><stop offset='1' stop-color='%23fff' stop-opacity='0'/></radialGradient></defs><rect width='32' height='32' rx='10.3' fill='url(%23g)'/><rect width='32' height='32' rx='10.3' fill='url(%23s)'/><g transform='rotate(-24 16 16)'><ellipse cx='16' cy='16' rx='11.4' ry='5.1' fill='none' stroke='%23fff' stroke-opacity='.95' stroke-width='2.1'/></g><circle cx='24.4' cy='9.2' r='3.5' fill='%230f4ae0'/><circle cx='24.4' cy='9.2' r='2.5' fill='%23fff'/></svg>") center / contain no-repeat;
  box-shadow: 0 10px 25px rgba(25, 93, 247, .22);
}
.nav-links { display: flex; align-items: center; gap: 27px; color: #273a55; font-size: 13px; font-weight: 750; white-space: nowrap; }
.nav-links a { position: relative; padding: 8px 0; }
.nav-links a::after { position: absolute; inset: auto 0 0; height: 2px; border-radius: 999px; background: var(--blue); content: ""; transform: scaleX(0); transform-origin: left; transition: transform 180ms ease; }
.nav-links a:hover::after, .nav-links a:focus-visible::after { transform: scaleX(1); }
.nav-actions { display: flex; align-items: center; gap: 8px; }
.menu-toggle { position: relative; display: none; width: 48px; height: 48px; padding: 0; border-radius: 50%; background: #edf6ff; cursor: pointer; place-items: center; }
.menu-toggle span { position: absolute; left: 15px; display: block; width: 18px; height: 2px; border-radius: 2px; background: var(--ink); transition: transform 180ms ease, opacity 180ms ease; }
.menu-toggle span:nth-child(1) { top: 17px; }
.menu-toggle span:nth-child(2) { top: 23px; }
.menu-toggle span:nth-child(3) { top: 29px; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }
.mobile-menu { display: none; }

.pill-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 48px;
  padding: 0 22px;
  border: 1px solid rgba(26, 74, 139, 0.22);
  border-radius: 999px;
  background: rgba(255,255,255,.76);
  box-shadow: 0 12px 34px rgba(34,99,176,.08);
  color: #0a4aa8;
  cursor: pointer;
  font-weight: 800;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}
.pill-button:hover, .pill-button:focus-visible { border-color: rgba(25,93,247,.6); box-shadow: 0 18px 42px rgba(25,93,247,.16); transform: translateY(-2px); }
.pill-button.primary { border-color: #195df7; background: #195df7; color: #fff; box-shadow: 0 18px 44px rgba(25,93,247,.23); }
.pill-button.primary .arrow { background: rgba(255,255,255,.09); }
.arrow { display: inline-grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: rgba(25,93,247,.1); transition: transform 180ms ease, background 180ms ease; }
.pill-button:hover .arrow, .text-link:hover .arrow { transform: translateX(4px); }
.text-link { display: inline-flex; align-items: center; gap: 10px; width: fit-content; color: #0b4fae; font-weight: 800; }

.hero {
  position: relative;
  min-height: min(860px, 92svh);
  padding: 126px 7vw 146px;
  overflow: hidden;
  isolation: isolate;
  background: linear-gradient(rgba(92,135,188,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(92,135,188,.045) 1px, transparent 1px);
  background-size: 72px 72px;
}
.hero-copy { position: relative; z-index: 3; max-width: 700px; }
.eyebrow { margin: 0 0 20px; color: var(--blue); font-size: 12px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
h1, h2 { margin: 0; color: var(--ink); font-weight: 860; line-height: 1.2; letter-spacing: 0; }
h1 { font-size: clamp(88px, 10.8vw, 154px); line-height: .88; }
h2 { font-size: clamp(34px, 4vw, 58px); }
.hero-statement { margin: 24px 0 0; font-size: clamp(28px, 2.8vw, 42px); font-weight: 850; line-height: 1.38; }
.lead { max-width: 620px; margin: 26px 0 0; color: #344962; font-size: 16px; font-weight: 620; line-height: 2; }
.hero .lead { max-width: 590px; margin-top: 18px; line-height: 1.85; }
.hero-actions { display: flex; align-items: center; gap: 18px; margin-top: 28px; }
.hero-backdrop { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
@keyframes breathe { 0%,100% { transform: translateY(0) rotate(-6deg) scale(1); } 50% { transform: translateY(-12px) rotate(-3deg) scale(1.025); } }
@keyframes orbit { to { transform: rotate(360deg); } }
.hero-business-rail { position: absolute; right: 0; bottom: 0; left: 0; z-index: 4; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); min-height: 108px; padding: 0 7vw; border-top: 1px solid rgba(73,113,164,.17); border-bottom: 1px solid rgba(73,113,164,.12); background: rgba(255,255,255,.74); backdrop-filter: blur(18px); }
.hero-business-rail > a { display: flex; align-items: center; gap: 14px; min-width: 0; padding: 18px 20px; border-right: 1px solid var(--line); }
.hero-business-rail > a:first-child { border-left: 1px solid var(--line); }
.hero-business-rail > a > span { flex: 0 0 auto; color: var(--blue); font-size: 11px; font-weight: 900; }
.hero-business-rail p { min-width: 0; margin: 0; }
.hero-business-rail small, .hero-business-rail strong { display: block; }
.hero-business-rail small { margin-bottom: 6px; color: #5c6d81; font-size: 8px; font-weight: 850; letter-spacing: .1em; }
.hero-business-rail strong { font-size: 13px; line-height: 1.45; }
.hero-business-rail > a { transition: background 400ms ease; }
.hero-business-rail > a:hover { background: rgba(150,190,255,.14); }

.section { position: relative; padding: 120px 7vw; scroll-margin-top: 96px; }
.section-index { display: flex; align-items: center; gap: 14px; margin-bottom: 58px; color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.section-index span { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--blue); }
.section-index p { margin: 0; letter-spacing: .08em; }
.section-grid { display: grid; grid-template-columns: minmax(260px,.72fr) minmax(0,1.28fr); align-items: start; gap: 6vw; }
.about { padding-top: 32px; background: rgba(255,255,255,.54); }
.about-copy { padding-top: 34px; }
.about-copy .lead { margin-top: 0; font-size: 18px; }
.company-name { display: flex; align-items: baseline; gap: 15px; margin: 36px 0 0; padding-top: 24px; border-top: 1px solid var(--line); font-size: 15px; font-weight: 800; }
.company-name span { color: var(--blue); font-size: 13px; }
.company-facts { display: grid; margin: 26px 0 0; }
.ceo-sign { display: flex; align-items: baseline; justify-content: flex-end; gap: 20px; max-width: 620px; margin: 36px 0 0; }
.ceo-sign span { color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.ceo-sign strong { font-family: "Yuji Syuku", serif; font-size: 18px; font-weight: 400; letter-spacing: .1em; transform: rotate(-1.5deg); display: inline-block; }
.company { border-top: 1px solid var(--line); background: #fff; }
.company-layout { display: grid; grid-template-columns: minmax(280px,.7fr) minmax(0,1.3fr); gap: 7vw; align-items: start; }
@media (max-width: 900px) { .company-layout { grid-template-columns: minmax(0,1fr); gap: 32px; } }
.company-facts > div { display: grid; grid-template-columns: 110px minmax(0,1fr); gap: 18px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.company-facts dt { color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .06em; }
.company-facts dd { margin: 0; font-size: 15px; font-weight: 700; }
.principles { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 84px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.principles article { min-height: 220px; padding: 34px; border-right: 1px solid var(--line); transition: background 400ms ease; }
.principles article:hover { background: linear-gradient(160deg, rgba(150,190,255,.10), rgba(245,167,216,.07)); }
.principles article:last-child { border-right: 0; }
.principles span { display: inline-grid; width: 34px; height: 34px; place-items: center; border: 1px solid rgba(25,93,247,.25); border-radius: 50%; color: var(--blue); font-size: 11px; font-weight: 850; }
.principles h3 { display: flex; align-items: center; gap: 14px; margin: 40px 0 12px; font-size: 27px; letter-spacing: .01em; }
.principles h3::after { content: ""; flex: 0 0 30px; height: 3px; border-radius: 2px; background: linear-gradient(90deg, var(--cyan), var(--pink)); opacity: .8; }
.principles p { margin: 0; color: var(--muted); font-size: 14px; font-weight: 650; line-height: 1.8; }

.flow-band { overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(242,249,255,.72); }
/* マーキーは .flow-seq を2組並べ、translateX(-50%) でちょうど1組ぶん動かす。
   2つの落とし穴:
   1) 1組が画面幅より短いと、送りきったあとに空白が出る（1024px以上で発生していた）。
      1組を5繰り返し（約2695px）にして 2560px の画面でも空白が出ないようにした。
   2) gap を .flow-track 側に置くと、2組の「間」の gap が1つぶん足りず継ぎ目がずれる。
      gap は .flow-seq の内側に置き、末尾に padding-right で1つぶん足して
      1組を「項目＋区切り」で完結させる。 */
.flow-track { display: flex; align-items: center; width: max-content; color: #607188; font-size: 12px; font-weight: 850; letter-spacing: .12em; animation: marquee 140s linear infinite; }
.flow-seq { display: flex; align-items: center; gap: 30px; padding: 18px 30px 18px 0; }
.flow-track i { width: 6px; height: 6px; border-radius: 50%; background: linear-gradient(135deg,var(--cyan),var(--pink)); }
@keyframes marquee { to { transform: translateX(-50%); } }

.business { background: linear-gradient(180deg,rgba(247,251,255,.75),#fff); }
.business-heading { display: grid; grid-template-columns: minmax(300px,1fr) minmax(0,.65fr); align-items: end; gap: 6vw; }
.business-heading > .lead { margin: 0 0 4px; }

.recruit-band { position: relative; padding: 118px 7vw; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: linear-gradient(135deg,#f4faff,#fff 58%,#fff7fb); overflow: hidden; scroll-margin-top: 96px; }
.recruit-wave { position: absolute; top: -20%; right: -8%; width: 58vw; height: 130%; border-radius: 51% 49% 64% 36% / 46% 50% 50% 54%; background: radial-gradient(circle at 38% 35%,rgba(255,255,255,.95),transparent 17%),radial-gradient(circle at 62% 55%,rgba(245,167,216,.36),transparent 30%),linear-gradient(135deg,rgba(125,218,242,.48),rgba(183,167,255,.27)); opacity: .72; transform: rotate(-9deg); animation: breathe 10s ease-in-out infinite; }
.recruit-inner { position: relative; z-index: 1; max-width: 1180px; }
.recruit-heading { max-width: 850px; font-size: clamp(42px,6vw,86px); }
.recruit-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; max-width: 940px; margin-top: 50px; }
.recruit-bottom p { max-width: 610px; margin: 0; color: #344962; font-size: 16px; font-weight: 650; line-height: 1.95; }
.recruit-tags { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 54px; }
.recruit-tags span { padding: 9px 13px; border: 1px solid rgba(25,93,247,.18); border-radius: 999px; background: rgba(255,255,255,.62); color: #506e8c; font-size: 10px; font-weight: 850; }

.contact { background: #fff; }
.contact-layout { display: grid; grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr); align-items: start; gap: 7vw; }
.contact-actions { display: grid; gap: 14px; }
.contact-link { position: relative; display: grid; min-height: 190px; padding: 28px; border: 1px solid var(--line); border-radius: 26px; background: linear-gradient(135deg,#f8fcff,#fff); box-shadow: 0 18px 60px rgba(36,91,158,.06); transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease; }
.contact-link:hover, .contact-link:focus-visible { border-color: rgba(25,93,247,.42); box-shadow: 0 24px 65px rgba(25,93,247,.12); transform: translateY(-4px); }
.contact-link > span { color: var(--blue); font-size: 10px; font-weight: 850; letter-spacing: .08em; }
.contact-link strong { align-self: end; font-size: 24px; line-height: 1.45; }
.contact-link i { position: absolute; top: 24px; right: 24px; display: grid; width: 44px; height: 44px; place-items: center; border-radius: 50%; background: #edf6ff; color: var(--blue); font-style: normal; }

.privacy { border-top: 1px solid var(--line); background: rgba(247,251,255,.68); }
.privacy-layout { display: grid; grid-template-columns: minmax(280px,1fr) minmax(0,.8fr); gap: 7vw; align-items: end; }
.privacy-copy { padding: 34px 0 6px; }
.privacy-copy p { margin: 0 0 28px; color: var(--muted); font-size: 16px; font-weight: 650; line-height: 1.95; }

.footer { padding: 76px 7vw 28px; background: #fff; }
.footer-main { display: grid; grid-template-columns: 1fr 1fr auto; gap: 50px; align-items: start; padding-bottom: 58px; }
.footer-main > div > p { margin: 15px 0 0; color: var(--muted); font-size: 12px; font-weight: 650; }
.footer-statement { margin: 0; font-size: 21px; font-weight: 820; line-height: 1.6; }
.footer-links { display: grid; grid-template-columns: repeat(2,auto); gap: 12px 34px; color: var(--muted); font-size: 13px; font-weight: 700; }
.footer-links a:hover { color: var(--blue); }
.footer-bottom { display: flex; justify-content: space-between; padding-top: 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; font-weight: 700; }
.footer-bottom p { margin: 0; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity 680ms ease, transform 680ms ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }

/* Recruit */
.recruit-page { background: linear-gradient(180deg,#fff,#f6fbff 48%,#fff); }
.career-hero { position: relative; display: flex; align-items: flex-end; min-height: min(850px,92svh); padding: 142px 7vw 94px; overflow: hidden; background: linear-gradient(rgba(92,135,188,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(92,135,188,.045) 1px,transparent 1px); background-size: 72px 72px; }
.career-hero::before { position: absolute; top: 4%; right: -4%; width: min(760px,64vw); aspect-ratio: 1.2; border-radius: 51% 49% 64% 36% / 46% 50% 50% 54%; background: radial-gradient(circle at 38% 35%,rgba(255,255,255,.95),transparent 17%),radial-gradient(circle at 62% 55%,rgba(255,181,157,.4),transparent 28%),radial-gradient(circle at 45% 45%,rgba(125,218,242,.64),transparent 36%),linear-gradient(135deg,rgba(183,167,255,.34),rgba(245,167,216,.24)); content: ""; opacity: .78; transform: rotate(-8deg); animation: breathe 9s ease-in-out infinite; }
.career-orbit { position: absolute; top: 11%; right: 2%; width: min(700px,58vw); aspect-ratio: 1.2; border: 1px dashed rgba(25,93,247,.23); border-radius: 50%; animation: orbit 26s linear infinite; }
.career-copy { position: relative; z-index: 2; max-width: 940px; }
.career-badge { display: inline-flex; align-items: center; gap: 9px; margin: 0 0 22px; padding: 8px 13px; border: 1px solid rgba(25,93,247,.2); border-radius: 999px; background: rgba(255,255,255,.7); color: #0b4fae; font-size: 11px; font-weight: 850; }
.career-badge i { width: 7px; height: 7px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 4px rgba(155,226,210,.22); }
.career-hero h1 { max-width: 970px; font-size: clamp(54px,8vw,118px); line-height: .96; }
.career-hero .hero-statement { max-width: 720px; font-size: clamp(24px,2.5vw,38px); }
.career-hero .lead { max-width: 650px; }
.career-fields { padding-top: 32px; background: #fff; }
.career-field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 54px; }
.career-field { min-height: 265px; padding: 30px; border: 1px solid var(--line); border-radius: 26px; background: rgba(255,255,255,.84); box-shadow: 0 18px 60px rgba(36,91,158,.06); }
.career-field span { color: var(--blue); font-size: 10px; font-weight: 850; letter-spacing: .08em; }
.career-field h3 { margin: 52px 0 12px; font-size: 27px; }
.career-field p { margin: 0; color: var(--muted); font-size: 14px; font-weight: 650; line-height: 1.85; }
.career-process { background: rgba(247,251,255,.7); }
.process-grid { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 52px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.process-step { position: relative; min-height: 210px; padding: 32px; border-right: 1px solid var(--line); }
.process-step:last-child { border-right: 0; }
.process-step span { color: var(--blue); font-size: 11px; font-weight: 850; }
.process-step h3 { margin: 45px 0 10px; font-size: 23px; }
.process-step p { margin: 0; color: var(--muted); font-size: 13px; font-weight: 650; line-height: 1.8; }
.entry-section { background: #0b1c32; color: #fff; }
.entry-section .section-index { color: #a9bad0; }
.entry-section .section-index span { border-color: rgba(255,255,255,.2); color: var(--cyan); }
.entry-heading { display: grid; grid-template-columns: 1fr .8fr; gap: 7vw; align-items: end; }
.entry-heading h2 { color: #fff; }
.entry-heading p { margin: 0; color: #b9c8d9; font-size: 15px; font-weight: 650; line-height: 1.9; }
.intern-form { margin-top: 58px; padding: 38px; border: 1px solid rgba(255,255,255,.16); border-radius: 28px; background: rgba(255,255,255,.06); box-shadow: 0 28px 90px rgba(0,0,0,.14); }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 20px; }
.form-field { display: grid; gap: 10px; }
.form-field-wide { grid-column: 1 / -1; }
.form-field label { color: #eef5ff; font-size: 13px; font-weight: 800; }
.required { margin-left: 6px; color: #9be2d2; font-size: 10px; }
.optional { margin-left: 6px; color: #879bb2; font-size: 10px; }
.form-field input, .form-field select, .form-field textarea { width: 100%; border: 1px solid rgba(255,255,255,.18); border-radius: 14px; outline: 0; background: rgba(255,255,255,.09); color: #fff; transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease; }
.form-field input, .form-field select { min-height: 54px; padding: 0 16px; }
.form-field textarea { min-height: 166px; padding: 15px 16px; resize: vertical; line-height: 1.7; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--cyan); background: rgba(255,255,255,.12); box-shadow: 0 0 0 3px rgba(125,218,242,.12); }
.form-field option { color: var(--ink); }
.field-note { color: #8ea2ba; font-size: 10px; }
.form-consent { display: flex; align-items: flex-start; gap: 12px; margin-top: 26px; color: #b9c8d9; font-size: 12px; font-weight: 650; line-height: 1.7; }
.form-consent input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--cyan); }
.form-consent a { color: #a7e5f5; text-decoration: underline; text-underline-offset: 3px; }
.form-submit { display: flex; align-items: center; gap: 22px; margin-top: 30px; }
.form-submit .pill-button { border-color: #fff; background: #fff; color: #0b4fa8; }
.form-status { margin: 0; color: #a7e5f5; font-size: 12px; font-weight: 700; line-height: 1.7; }
.recruit-page .footer { background: #07152b; color: #fff; }
.recruit-page .footer-main > div > p, .recruit-page .footer-links, .recruit-page .footer-bottom { color: #9fb0c5; }
.recruit-page .footer-bottom { border-color: rgba(255,255,255,.14); }

@media (max-width: 1100px) {
  .nav { gap: 16px; }
  .nav-links { gap: 18px; }
  .hero { padding-right: 5vw; padding-left: 5vw; }
  .hero-business-rail { padding-right: 5vw; padding-left: 5vw; }
  .hero-business-rail > a { padding-right: 14px; padding-left: 14px; }
  .hero-business-rail strong { font-size: 12px; }
  .contact-layout { grid-template-columns: .8fr 1.2fr; gap: 4vw; }
}

@media (max-width: 900px) {
  .nav { grid-template-columns: 1fr auto; }
  .nav-links { display: none; }
  .menu-toggle { display: grid; }
  .mobile-menu { position: absolute; top: calc(100% + 10px); right: 0; left: 0; display: grid; gap: 0; padding: 12px; border: 1px solid var(--line); border-radius: 24px; background: rgba(255,255,255,.96); box-shadow: 0 24px 70px rgba(30,73,122,.16); backdrop-filter: blur(18px); }
  .mobile-menu[hidden] { display: none; }
  .mobile-menu a { display: flex; align-items: center; gap: 14px; min-height: 48px; padding: 0 14px; border-bottom: 1px solid var(--line); font-weight: 800; }
  .mobile-menu a:last-child { border-bottom: 0; }
  .mobile-menu span { color: var(--blue); font-size: 10px; }
  .hero { min-height: 860px; padding: 126px 7vw 224px; }
  .hero-copy { max-width: 650px; }
  .hero-business-rail { grid-template-columns: repeat(2,minmax(0,1fr)); min-height: 190px; padding: 0 7vw; }
  .hero-business-rail > a { min-height: 95px; border-bottom: 1px solid var(--line); }
  .hero-business-rail > a:nth-child(3) { border-left: 1px solid var(--line); }
  .hero-business-rail > a:nth-child(n+3) { border-bottom: 0; }
  .section-grid, .business-heading, .contact-layout, .privacy-layout, .entry-heading { grid-template-columns: minmax(0,1fr); }
  .about-copy { padding-top: 0; }
  .principles, .process-grid { grid-template-columns: 1fr; }
  .principles article, .process-step { min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .principles article:last-child, .process-step:last-child { border-bottom: 0; }
  .business-heading > .lead { margin-top: 24px; }
  .contact-actions { margin-top: 18px; }
  .recruit-bottom { align-items: flex-start; flex-direction: column; }
  .footer-main { grid-template-columns: 1fr 1fr; }
  .footer-links { grid-column: 1 / -1; }
  .career-hero::before { top: 9%; right: -30%; width: 92vw; }
  .career-orbit { top: 12%; right: -25%; width: 82vw; }
}

@media (max-width: 640px) {
  .nav { inset: 10px 12px auto; min-height: 58px; padding: 5px 6px 5px 14px; }
  .brand { font-size: 17px; }
  .mark { width: 25px; height: 25px; }
  .nav-contact { display: none; }
  .menu-toggle { width: 46px; height: 46px; }
  .hero { min-height: 844px; padding: 112px 20px 216px; }
  h1 { font-size: clamp(46px,15.3vw,60px); }
  h2 { font-size: 34px; }
  .hero-statement { margin-top: 22px; font-size: 24px; }
  .lead { font-size: 14px; line-height: 1.9; }
  .hero .lead { max-width: 350px; margin-top: 16px; font-size: 13px; line-height: 1.75; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 14px; }
  .hero-business-rail { min-height: 190px; padding: 0 20px; }
  .hero-business-rail > a { gap: 8px; min-height: 95px; padding: 12px 8px; }
  .hero-business-rail > a > span { font-size: 10px; }
  .hero-business-rail small { margin-bottom: 4px; font-size: 7px; }
  .hero-business-rail strong { font-size: 11px; line-height: 1.4; }
  .section { padding: 88px 20px; }
  .section-index { margin-bottom: 42px; }
  .principles { margin-top: 58px; }
  .principles article { padding: 26px 8px; }
  .principles h3 { margin-top: 30px; }
  .company-name { align-items: flex-start; flex-direction: column; gap: 6px; }
  .career-field-grid { grid-template-columns: 1fr; }
  .recruit-band { padding: 88px 20px; }
  .recruit-wave { top: 5%; right: -54%; width: 110vw; height: 82%; }
  /* 42px固定だと「盛り上げませんか。」（9文字=378px）が 320〜414px で入らず
     語中で割れる。幅に追従させて必ず1行に収める。 */
  .recruit-heading { font-size: min(42px, 9.4vw); }
  .contact-link { min-height: 175px; padding: 23px; }
  .contact-link strong { font-size: 21px; }
  .footer { padding: 64px 20px 24px; }
  .footer-main { grid-template-columns: 1fr; gap: 32px; }
  .footer-links { grid-column: auto; }
  .footer-bottom { gap: 20px; }
  .career-hero { min-height: 780px; padding: 126px 20px 72px; align-items: center; }
  .career-hero h1 { font-size: clamp(46px,13.8vw,58px); }
  .career-hero::before { top: 18%; right: -55%; width: 140vw; }
  .career-orbit { top: 22%; right: -48%; width: 120vw; }
  .career-field { min-height: 235px; padding: 24px; }
  .career-field h3 { margin-top: 36px; }
  .intern-form { margin-top: 42px; padding: 24px 18px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-field-wide { grid-column: auto; }
  .form-submit { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Hero v5: interactive backdrop, magnetic type, ripples */
.hero-blob { position: absolute; border-radius: 50%; filter: blur(26px); will-change: transform; }
.hero-blob-1 { top: 36%; left: 34%; width: 920px; height: 920px; margin: -460px 0 0 -460px; background: radial-gradient(circle, rgba(150,190,255,.5), transparent 62%); }
.hero-blob-2 { top: 12%; left: 62%; width: 760px; height: 760px; margin: -380px 0 0 -380px; background: radial-gradient(circle, rgba(245,167,216,.42), transparent 60%); }
.hero-blob-3 { top: 52%; left: 88%; width: 820px; height: 820px; margin: -410px 0 0 -410px; background: radial-gradient(circle, rgba(255,181,157,.48), transparent 60%); }
.hero-blob-4 { top: 80%; left: 16%; width: 700px; height: 700px; margin: -350px 0 0 -350px; background: radial-gradient(circle, rgba(125,218,242,.4), transparent 60%); }
.hero-tilt { position: absolute; inset: 0; will-change: transform; }
.hero-rings { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.hero h1, .hero-statement { white-space: nowrap; }
.hero { display: flex; align-items: center; }
.hero-copy { max-width: none; }
.hero-headline { display: block; font-size: clamp(26px, 7vw, 94px); font-weight: 900; line-height: 1.42; letter-spacing: .02em; }
.hero-line { display: flex; white-space: nowrap; }
.hero-line-2 { padding-left: .9em; }
.hero-scroll { position: absolute; left: 50%; bottom: 134px; z-index: 5; display: flex; flex-direction: column; align-items: center; gap: 10px; transform: translateX(-50%); color: #506e8c; font-size: 11px; font-weight: 850; letter-spacing: .18em; pointer-events: none; }
.hero-scroll i { position: relative; width: 1px; height: 44px; overflow: hidden; background: rgba(73,113,164,.3); }
.hero-scroll b { width: 8px; height: 8px; margin-top: -13px; border-right: 1.5px solid rgba(73,113,164,.55); border-bottom: 1.5px solid rgba(73,113,164,.55); transform: rotate(45deg); }
.hero-scroll i::after { position: absolute; inset: 0; content: ""; background: var(--blue); animation: scrollDash 2.2s ease-in-out infinite; }
@keyframes scrollDash { 0% { transform: translateY(-100%); } 55% { transform: translateY(0); } 100% { transform: translateY(100%); } }
.nav { transition: opacity 350ms ease, transform 350ms ease; }
.nav-hero-hidden { opacity: 0; transform: translateY(-14px); pointer-events: none; }
.hx-char { display: inline-block; will-change: transform; font-variation-settings: 'wght' 900; animation: hxCharIn 800ms cubic-bezier(.22,1,.36,1) backwards; }
@keyframes hxCharIn {
  from { opacity: 0; transform: translateY(.55em) scale(.92); filter: blur(10px); }
  to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
.hx-ripple { position: absolute; z-index: 8; border: 1.5px dashed; border-radius: 50%; pointer-events: none; animation: hxRipple 950ms cubic-bezier(.2,.7,.3,1) both; }
@keyframes hxRipple {
  from { transform: scale(.12); opacity: .9; }
  to { transform: scale(1); opacity: 0; }
}
@media (max-width: 640px) {
  .hero { padding-bottom: 240px; }
  .hero-business-rail { min-height: 150px; }
  .hero-business-rail > a { min-height: 72px; }
  .hero-blob { filter: blur(20px); }
  .hero-blob-1 { width: 560px; height: 560px; margin: -280px 0 0 -280px; }
  .hero-blob-2 { width: 480px; height: 480px; margin: -240px 0 0 -240px; }
  .hero-blob-3 { width: 520px; height: 520px; margin: -260px 0 0 -260px; }
  .hero-blob-4 { width: 440px; height: 440px; margin: -220px 0 0 -220px; }
}

/* Home page design-system pass. The hero remains intentionally unchanged. */
body[data-page="home"] .section {
  padding: var(--section-space) var(--layout-gutter);
}
body[data-page="home"] .section > *,
body[data-page="home"] .recruit-inner,
body[data-page="home"] .footer-main,
body[data-page="home"] .footer-bottom {
  width: min(100%, var(--layout-max));
  margin-right: auto;
  margin-left: auto;
}
body[data-page="home"] .about { padding-top: 64px; }
body[data-page="home"] .section-index { margin-bottom: var(--space-6); }
body[data-page="home"] .section-grid,
body[data-page="home"] .business-heading {
  gap: clamp(36px, 4vw, var(--space-7));
}
body[data-page="home"] .section h2 { font-size: var(--type-section); }
body[data-page="home"] .section .eyebrow,
body[data-page="home"] .recruit-band .eyebrow {
  margin-bottom: var(--space-3);
  font-size: 13px;
}
body[data-page="home"] .section .lead { line-height: var(--leading-body); }
body[data-page="home"] .about-copy { padding-top: var(--space-4); }
body[data-page="home"] .about-copy .lead {
  font-size: var(--type-lead);
  line-height: 1.9;
}
body[data-page="home"] .company-name {
  margin-top: var(--space-5);
  padding-top: var(--space-4);
}
body[data-page="home"] .principles {
  margin-top: var(--space-7);
}
body[data-page="home"] .principles article {
  min-height: 184px;
  padding: 28px;
}
body[data-page="home"] .principles span { font-size: var(--type-label); }
body[data-page="home"] .principles h3 {
  margin: 26px 0 12px;
  font-size: 28px;
}
body[data-page="home"] .principles p {
  font-size: var(--type-body);
  line-height: 1.7;
}
body[data-page="home"] .business-heading > .lead { margin-bottom: 0; }
body[data-page="home"] .recruit-band {
  padding: var(--section-space) var(--layout-gutter);
}
body[data-page="home"] .recruit-heading {
  max-width: 760px;
  font-size: clamp(46px, 5vw, 72px);
}
body[data-page="home"] .recruit-bottom {
  margin-top: var(--space-6);
}
body[data-page="home"] .recruit-bottom p {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}
body[data-page="home"] .recruit-tags { margin-top: var(--space-6); }
body[data-page="home"] .recruit-tags span {
  padding: var(--space-1) var(--space-2);
  font-size: var(--type-label);
}
body[data-page="home"] .contact-layout,
body[data-page="home"] .privacy-layout {
  gap: clamp(40px, 5vw, 64px);
}
body[data-page="home"] .contact-actions { gap: var(--space-2); }
body[data-page="home"] .contact-link {
  min-height: 168px;
  padding: var(--space-4);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
}
body[data-page="home"] .contact-link > span { font-size: var(--type-label); }
body[data-page="home"] .contact-link strong { font-size: 26px; }
body[data-page="home"] .privacy-copy { padding: 0 0 4px; }
body[data-page="home"] .privacy-copy p {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}
body[data-page="home"] .footer {
  padding: 60px var(--layout-gutter) var(--space-4);
}
body[data-page="home"] .footer-main {
  gap: var(--space-6);
  padding-bottom: var(--space-6);
}
body[data-page="home"] .footer-main > div > p { font-size: 13px; }
body[data-page="home"] .footer-statement { font-size: 22px; }
body[data-page="home"] .footer-links { font-size: 14px; }
body[data-page="home"] .footer-bottom { font-size: var(--type-label); }

@media (max-width: 900px) {
  body[data-page="home"] .section-grid,
  body[data-page="home"] .business-heading,
  body[data-page="home"] .contact-layout,
  body[data-page="home"] .privacy-layout {
    gap: var(--space-5);
  }
  body[data-page="home"] .about-copy { padding-top: 0; }
}

@media (max-width: 640px) {
  body[data-page="home"] .section { padding: var(--space-8) 20px; }
  body[data-page="home"] .about { padding-top: var(--space-7); }
  body[data-page="home"] .section-index { margin-bottom: var(--space-5); }
  body[data-page="home"] .section h2 {
    font-size: 36px;
    line-height: 1.25;
  }
  body[data-page="home"] .section .lead { font-size: var(--type-body); }
  body[data-page="home"] .about-copy .lead {
    font-size: var(--type-body);
    line-height: var(--leading-body);
  }
  body[data-page="home"] .company-name {
    margin-top: var(--space-4);
    padding-top: 20px;
  }
  body[data-page="home"] .principles { margin-top: 44px; }
  body[data-page="home"] .principles article {
    min-height: 0;
    padding: var(--space-4) 4px;
  }
  body[data-page="home"] .principles h3 {
    margin-top: 14px;
    font-size: 26px;
  }
  body[data-page="home"] .business-heading > .lead { margin-top: 20px; }
  body[data-page="home"] .recruit-band { padding: var(--space-8) 20px; }
  body[data-page="home"] .recruit-heading { font-size: min(42px, 9.4vw); }
  body[data-page="home"] .recruit-bottom { margin-top: var(--space-5); }
  body[data-page="home"] .recruit-tags { margin-top: 28px; }
  body[data-page="home"] .contact-link {
    min-height: 156px;
    padding: 22px;
    border-radius: 18px;
  }
  body[data-page="home"] .contact-link strong { font-size: 22px; }
  body[data-page="home"] .privacy-copy { padding-top: 0; }
  body[data-page="home"] .footer { padding: var(--space-7) 20px var(--space-4); }
  body[data-page="home"] .footer-main {
    gap: 28px;
    padding-bottom: 36px;
  }
}

/* Business menu (replaces cards) */
.business-menu { margin-top: 56px; border-top: 1px solid var(--line); }
.business-row { position: relative; display: grid; grid-template-columns: 90px 1.05fr 1fr 56px; gap: 28px; align-items: center; padding: 38px 18px; border-bottom: 1px solid var(--line); overflow: hidden; }
.business-row::before { position: absolute; inset: 0; content: ""; background: linear-gradient(120deg, rgba(150,190,255,.16), rgba(245,167,216,.12) 55%, rgba(255,181,157,.14)); opacity: 0; transition: opacity 450ms ease; }
.business-row:hover::before { opacity: 1; }
.business-row > * { position: relative; margin: 0; }
.row-index { color: var(--blue); font-size: 13px; font-weight: 850; }
.row-main small { display: block; margin-bottom: 10px; color: #5c6d81; font-size: 11px; font-weight: 850; letter-spacing: .14em; }
.row-main h3 { margin: 0; font-size: clamp(26px, 2.6vw, 38px); line-height: 1.3; transition: transform 350ms ease; }
.business-row:hover .row-main h3 { transform: translateX(8px); }
.row-desc { color: var(--muted); font-size: 15px; font-weight: 650; line-height: 1.85; }
.row-arrow { display: grid; width: 48px; height: 48px; place-items: center; justify-self: end; border: 1px solid var(--line); border-radius: 50%; background: rgba(255,255,255,.7); color: var(--blue); font-style: normal; transition: transform 350ms ease, background 350ms ease; }
.business-row:hover .row-arrow { transform: translate(4px, -4px); background: #fff; }
@media (max-width: 900px) {
  .business-row { grid-template-columns: 44px 1fr 48px; grid-template-rows: auto auto; gap: 14px 16px; padding: 30px 8px; }
  .row-arrow { grid-row: 1; grid-column: 3; }
  .row-desc { grid-row: 2; grid-column: 2; }
}
@media (max-width: 640px) {
  /* 番号44px + 矢印48px + gap16px×2 で124px を占め、360px では見出しに192pxしか
     残らない。「オンライン診療事業」（9文字=216px）が入らず「オンライン診療事／業」と
     語中で割れていた。番号と矢印を詰めて見出しに220pxを渡す。 */
  .business-row { padding: 24px 2px; grid-template-columns: 32px 1fr 40px; gap: 14px 12px; }
  .row-main h3 { font-size: 24px; }
  .row-desc { font-size: 14px; line-height: 1.8; }
  .row-arrow { width: 40px; height: 40px; }
}

/* ---------- 下層ページ（contact / privacy / terms） ---------- */
/* v2 の既存部品（section / section-index / privacy-layout / contact-layout /
   intern-form / pill-button）に乗せ、足りない分だけをここで定義する。 */
body[data-page="legal"] .section { padding-top: calc(var(--section-space) + 40px); }
body[data-page="legal"] h1 { font-size: var(--type-section); line-height: 1.2; }

.legal-body { display: grid; gap: var(--space-6); margin-top: var(--space-8); max-width: 76ch; }
.legal-item h2 { font-size: 20px; font-weight: 800; line-height: 1.5; color: var(--ink); }
.legal-item p { margin: var(--space-3) 0 0; color: var(--muted); font-size: 15px; line-height: 1.95; }
.legal-item ul { margin: var(--space-3) 0 0; padding-left: 1.2em; color: var(--muted); font-size: 15px; line-height: 1.95; }
.legal-item li + li { margin-top: 6px; }
.legal-item a { color: var(--blue); }
.legal-item + .legal-item { padding-top: var(--space-6); border-top: 1px solid var(--line); }

.contact-facts { display: grid; gap: var(--space-5); }
.contact-fact span { display: block; color: var(--blue); font-size: 11px; font-weight: 850; letter-spacing: .14em; }
.contact-fact strong { display: block; margin-top: 8px; font-size: 19px; font-weight: 850; letter-spacing: .01em; color: var(--ink); }
.contact-fact p { margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.9; }
.contact-fact + .contact-fact { padding-top: var(--space-5); border-top: 1px solid var(--line); }

/* 入力欄は濃紺地を前提にした配色（白文字・白枠）なので、
   contact も recruit の応募フォームと同じ濃紺の面に置く。
   明るい地に置くと白文字が読めない。 */
body[data-page="legal"] .contact-page { background: #0b1c32; color: #fff; }
body[data-page="legal"] .contact-page .section-index { color: #a9bad0; }
body[data-page="legal"] .contact-page .section-index span { border-color: rgba(255,255,255,.2); color: var(--cyan); }
body[data-page="legal"] .contact-page h1 { color: #fff; }
body[data-page="legal"] .contact-page .lead,
body[data-page="legal"] .contact-page .contact-layout > p { color: #b9c8d9; }
body[data-page="legal"] .contact-page .contact-fact strong { color: #fff; }
body[data-page="legal"] .contact-page .contact-fact p { color: #b9c8d9; }
body[data-page="legal"] .contact-page .contact-fact span { color: var(--cyan); }
body[data-page="legal"] .contact-page .eyebrow { color: var(--cyan); }  /* 濃紺地では --blue が 3.22:1 で不足 */
body[data-page="legal"] .contact-page .contact-fact + .contact-fact { border-top-color: rgba(255,255,255,.14); }
body[data-page="legal"] .intern-form { margin-top: var(--space-8); }

@media (max-width: 760px) {
  .legal-body { gap: var(--space-5); margin-top: var(--space-6); }
  .legal-item h2 { font-size: 18px; }
}

/* 先頭のセクションが濃紺のページ（thanks / thanks-recruit）では、ナビの
   rgba(255,255,255,.78) が地と合成されて rgb(201,203,206) の灰色の板になり、
   浮いて見える。地に合わせて濃色のガラスへ切り替える。 */
body[data-ground="dark"] .nav {
  border-color: rgba(255, 255, 255, .17);
  background: rgba(9, 24, 43, .72);
  box-shadow: 0 16px 60px rgba(0, 0, 0, .3);
}
body[data-ground="dark"] .nav-links { color: #d5e2f3; }
body[data-ground="dark"] .brand { color: #fff; }
body[data-ground="dark"] .menu-toggle { background: rgba(255, 255, 255, .14); }
body[data-ground="dark"] .menu-toggle span { background: #fff; }

/* 404 の行き先リスト。a は color:inherit なのでリンクだと分かるよう明示する */
.nf-link { color: var(--blue); }
.nf-link:hover, .nf-link:focus-visible { text-decoration: underline; text-underline-offset: 4px; }

/* 濃色地では pill-button の rgba(255,255,255,.76) が rgb(200,203,208) の
   くすんだ灰色になる。AAは満たすがボタンに見えないので不透明の白にする。 */
body[data-ground="dark"] .pill-button {
  border-color: rgba(255, 255, 255, .28);
  background: #fff;
  box-shadow: 0 12px 34px rgba(0, 0, 0, .28);
}

/* --- 日本語の折り返し ---------------------------------------------------
   最終行に1〜3文字だけ残る「ぶら下がり」が全ページで45種・延べ74件出ていた
   （「…支援しま／す。」「オンライン診療マーケティ／ング」など）。

   手で <br> を入れる対処はしない。ある幅で直しても別の幅で崩れるため。
   ブラウザの折り返しアルゴリズムに任せる:

   - text-wrap: balance  見出し向け。行の長さを揃え、短い最終行を作らない
   - text-wrap: pretty   本文向け。最終行が極端に短くならないよう調整する
   - word-break: auto-phrase  日本語を文節の切れ目で折り返す（Chromium系）

   いずれも**非対応ブラウザでは無視されるだけ**で、現在の見た目に戻る。
   退行しないので、対応状況を待たずに入れてよい。 */

h1, h2, h3,
.recruit-heading,
.footer-statement,
.career-field h3,
.legal-item h2,
.contact-fact strong {
  text-wrap: balance;
}

p, li, dd,
.lead,
.row-desc {
  text-wrap: pretty;
}

/* 文節で折り返す。「マーケティ／ング」のような語中での分断を防ぐ */
h1, h2, h3, p, li, dd, .lead, .row-desc,
.recruit-heading, .footer-statement {
  word-break: auto-phrase;
}

/* 禁則処理を厳密にする。既定の auto は長音符「ー」や小書き仮名が行頭に来るのを
   許してしまう（実際に「プライバシ／ーポリシー」と割れていた）。 */
h1, h2, h3, p, li, dd, .lead, .row-desc,
.recruit-heading, .footer-statement {
  line-break: strict;
}

/* word-break: auto-phrase は min-content 幅を「文節の長さ」まで押し上げる。
   グリッドの列が auto / 1fr だと列そのものが縮まなくなり、狭い幅ではみ出す
   （実際に privacy が 320px で 79px はみ出した）。子に min-width: 0 を与えて
   列を縮められるようにする。文字は必要なら文節の途中でも折り返す。 */
.section-grid > *,
.business-heading > *,
.contact-layout > *,
.privacy-layout > *,
.entry-heading > *,
.company-layout > *,
.company-facts > div > *,
.career-field,
.legal-item {
  min-width: 0;
}

/* 会社概要は狭い幅で「ラベル110px + 値」の2列だと値の幅が足りず、
   「オンライン診療マーケティン／グ、」のように語中で割れる。縦に積んで値に全幅を渡す。 */
@media (max-width: 560px) {
  .company-facts > div { grid-template-columns: minmax(0,1fr); gap: 6px; }
}

/* 語や固有名詞の途中で折り返させたくない箇所に付ける。
   会社概要の事業内容が「システム・／受託開発」と事業名の途中で割れていた。 */
.nb { white-space: nowrap; }

/* 事業一覧の列は、狭い幅でだけ縮められるようにする。
   全幅で min-width: 0 にすると、デスクトップで1行だった事業名が
   「オンライン診療マーケティ／ング」と折り返してしまう（列が min-content 未満に
   縮むため）。切れが起きていたのは 414px 以下だけなので、そこだけに効かせる。 */
@media (max-width: 900px) {
  .business-row > *,
  .row-main > * {
    min-width: 0;
  }
}

/* honeypot（ボット判定用の隠しフィールド）の入れ物。
   style 属性を使わないのは、CSP の style-src に 'unsafe-inline' を
   入れずに済ませるため。 */
.hp { display: none; }

