:root {
  --pink: #e81e7c;
  --pink-bright: #ff4ba1;
  --blue: #007cc5;
  --blue-bright: #24c8ff;
  --green: #00fa9a;
  --green-deep: #00b96f;
  --ink: #1d2330;
  --muted: #667085;
  --line: #dce2ea;
  --paper: #f7f9fc;
  --white: #fff;
  --max: 1240px;
  --header: 88px;
  --shadow: 0 24px 80px rgba(24, 35, 52, .12);
}

/* 基本設定 ------------------------------------------------------------ */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--white); font-family: "Noto Sans JP", sans-serif; line-height: 1.8; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { color: white; background: var(--pink); }

.skip-link { position: fixed; z-index: 1000; top: 8px; left: 8px; padding: 10px 18px; color: white; background: var(--ink); transform: translateY(-150%); }
.skip-link:focus { transform: none; }
/* 共通ヘッダー -------------------------------------------------------- */
.site-header { position: fixed; z-index: 100; inset: 0 0 auto; height: var(--header); display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(24px, 3vw, 56px); transition: .3s ease; }
.site-header.is-scrolled, .site-header.solid { height: 76px; background: rgba(255,255,255,.9); border-bottom: 1px solid rgba(226,231,238,.85); box-shadow: 0 12px 36px rgba(24,35,52,.06); backdrop-filter: blur(16px); }
.brand { display: inline-flex; align-items: center; gap: 12px; font-family: Inter, sans-serif; font-size: clamp(20px, 2vw, 28px); font-weight: 800; letter-spacing: -.05em; line-height: 1; }
.brand-mark { display: inline-flex; letter-spacing: -.22em; font-size: 43px; font-weight: 800; line-height: 1; }
.brand-mark i { font-style: normal; background: linear-gradient(140deg, #f00472, #c52b99 55%, #7c4aa6); -webkit-background-clip: text; background-clip: text; color: transparent; }
.brand-mark i:last-child { background-image: linear-gradient(140deg, #5d54a5, #007cc5 62%, #26a7df); }
.global-nav { display: flex; align-items: center; gap: clamp(18px, 2.4vw, 42px); font-size: 14px; font-weight: 700; }
.global-nav > a { position: relative; white-space: nowrap; }
.global-nav > a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 2px; background: linear-gradient(90deg, var(--pink), var(--blue), var(--green)); transition: right .25s ease; }
.global-nav > a:hover::after, .global-nav > a.active::after { right: 0; }
.nav-cta { display: inline-flex; align-items: center; gap: 8px; padding: 13px 20px; color: white; border-radius: 8px; background: linear-gradient(130deg, #d91269, var(--pink)); box-shadow: 0 10px 28px rgba(232,30,124,.28), inset 0 1px rgba(255,255,255,.3); transition: .25s ease; }
.nav-cta:hover { transform: translateY(-2px); box-shadow: 0 14px 36px rgba(232,30,124,.4); }
.menu-button { display: none; width: 44px; height: 44px; border: 0; background: transparent; padding: 10px; }
.menu-button span { display: block; height: 2px; margin: 6px 0; background: var(--ink); transition: .25s ease; }

/* トップ：ヒーロービュー -------------------------------------------- */
.hero { position: relative; min-height: min(920px, 100svh); overflow: hidden; display: flex; align-items: center; padding: calc(var(--header) + 40px) clamp(28px, 5vw, 78px) 165px; }
.hero-media, .hero-shade { position: absolute; inset: 0; }
.hero-media { background: #fff url("../images/hero-collage-pc.webp") center / cover no-repeat; transform: scale(1.005); }
.hero-shade { background: linear-gradient(90deg, rgba(255,255,255,.54) 0%, rgba(255,255,255,.28) 27%, rgba(255,255,255,.02) 49%, transparent 68%); }
.hero-content { position: relative; z-index: 2; width: min(710px, 55vw); }
.eyebrow, .section-kicker { margin: 0 0 18px; font-family: Inter, sans-serif; color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .18em; }
.eyebrow { display: flex; align-items: center; gap: 10px; color: #3b4350; }
.eyebrow span { width: 34px; height: 2px; background: linear-gradient(90deg, var(--pink), var(--blue)); }
.hero h1 { margin: 0; font-family: Inter, "Noto Sans JP", sans-serif; font-size: clamp(50.4px, 5.67vw, 97.2px); line-height: .89; letter-spacing: -.065em; font-weight: 700; }
.hero h1 em, .hero h1 strong { font-style: normal; font-weight: inherit; color: transparent; -webkit-background-clip: text; background-clip: text; }
.hero h1 em { background-image: linear-gradient(90deg, #d70d69, var(--pink-bright)); text-shadow: 0 8px 28px rgba(232,30,124,.08); }
.hero h1 strong { background-image: linear-gradient(90deg, #0372b5, #269bd8); }
.hero-copy { margin: 30px 0; font-size: clamp(17px, 1.5vw, 22px); font-weight: 700; line-height: 1.9; letter-spacing: .05em; }
.hero-actions { display: flex; align-items: center; gap: 30px; }
.button { position: relative; overflow: hidden; min-width: 240px; display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; padding: 17px 24px 17px 30px; border: 0; border-radius: 999px; color: white; font-weight: 700; line-height: 1.4; cursor: pointer; transition: transform .25s ease, box-shadow .3s ease; }
.button::before { content: ""; position: absolute; top: -55%; left: -48%; width: 28%; height: 210%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.48), transparent); transform: rotate(18deg); pointer-events: none; }
.button span { position: relative; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,.18); transition: transform .25s ease, background-color .25s ease; }
.button-pink { background: linear-gradient(135deg, #ee176e, #d91679); box-shadow: 0 15px 35px rgba(232,30,124,.3), inset 0 1px rgba(255,255,255,.35); }
.button:hover { transform: translateY(-3px); }
.button-pink:hover { box-shadow: 0 20px 45px rgba(232,30,124,.42), 0 0 22px rgba(255,75,161,.2); }
.button:hover::before { animation: button-light-sweep .75s ease both; }
.button:hover span { transform: translateX(4px); background: rgba(255,255,255,.28); }
.button:active { transform: translateY(-1px) scale(.985); }
.text-link, .arrow-link { display: inline-flex; align-items: center; gap: 15px; font-size: 14px; font-weight: 700; }
.text-link span, .arrow-link span { transition: transform .2s ease; }
.text-link:hover span { transform: translateY(4px); }
.arrow-link:hover span { transform: translateX(6px); }
.hero-pillar-bar { position: absolute; z-index: 3; left: clamp(28px, 5vw, 78px); bottom: 42px; display: flex; padding: 20px 0; border-radius: 18px; background: rgba(255,255,255,.77); box-shadow: 0 18px 60px rgba(21,42,64,.11); backdrop-filter: blur(14px); }
.mini-pillar { min-width: 238px; display: flex; align-items: center; gap: 16px; padding: 0 26px; border-right: 1px solid rgba(36,47,63,.16); transition: .25s ease; }
.mini-pillar:last-child { border-right: 0; }
.mini-pillar:hover { transform: translateY(-4px); }
.mini-pillar b { font-family: Inter, sans-serif; font-size: 26px; }
.mini-pillar span { font-size: 14px; font-weight: 700; line-height: 1.45; }
.mini-pillar small { display: block; margin-bottom: 3px; color: var(--muted); font-size: 10px; font-weight: 700; }
.mini-pillar.pink b { color: var(--pink); text-shadow: 0 0 18px rgba(232,30,124,.3); }
.mini-pillar.blue b { color: var(--blue); text-shadow: 0 0 18px rgba(0,124,197,.3); }
.mini-pillar.green b { color: var(--green-deep); text-shadow: 0 0 18px rgba(0,250,154,.4); }

.section { padding: 120px max(28px, calc((100vw - var(--max)) / 2)); }
.section-heading { margin-bottom: 56px; }
.section-heading h2 { margin: 0; font-size: clamp(36px, 5vw, 64px); line-height: 1.25; letter-spacing: -.035em; }
.section-kicker { color: var(--pink); }
/* トップ：About Us --------------------------------------------------- */
.about-section { position: relative; overflow: hidden; }
.about-grid { display: grid; grid-template-columns: .92fr 1.08fr; gap: clamp(60px, 10vw, 150px); }
.about-statement .lead { margin: 0; font-size: clamp(30px, 3.4vw, 50px); font-weight: 800; line-height: 1.45; letter-spacing: -.04em; }
.gradient-text { color: transparent; background: linear-gradient(90deg, var(--pink), var(--blue), var(--green-deep)); -webkit-background-clip: text; background-clip: text; }
.tricolor-line { display: flex; gap: 8px; margin-top: 38px; }
.tricolor-line i { display: block; width: 68px; height: 5px; border-radius: 5px; box-shadow: 0 0 15px currentColor; }
.tricolor-line i:nth-child(1) { color: var(--pink); background: currentColor; }
.tricolor-line i:nth-child(2) { color: var(--blue); background: currentColor; }
.tricolor-line i:nth-child(3) { color: var(--green); background: currentColor; }
.about-copy { color: #515967; font-size: 15px; }
.about-copy p { margin: 0 0 22px; }
.about-copy .arrow-link { margin-top: 16px; color: var(--ink); }
.about-version-02 { display: grid; }

.about-version-02 { position: relative; isolation: isolate; grid-template-columns: 1.08fr .92fr; grid-template-rows: auto 1fr; grid-template-areas: "photos heading" "photos copy"; column-gap: clamp(55px, 7vw, 110px); min-height: 630px; padding: 30px 0 0; }
.about02-heading { position: relative; z-index: 3; grid-area: heading; align-self: end; padding-top: 42px; }
.about02-heading h2, .about09-copy h2 { margin: 0; font-size: clamp(38px, 4.6vw, 64px); line-height: 1.35; letter-spacing: -.045em; }
.about02-photos { position: relative; grid-area: photos; min-height: 560px; }
.about02-photos figure { position: absolute; overflow: hidden; margin: 0; border-radius: 20px; background: white; box-shadow: 0 25px 70px rgba(23,35,52,.16); }
.about02-photos img, .about09-orbit img { width: 100%; height: 100%; object-fit: cover; }
.about02-photo-main { top: 0; left: 0; width: 78%; height: 330px; }
.about02-photo-sub { right: 0; bottom: 0; width: 66%; height: 280px; border: 6px solid white; }
.about02-photo-accent { left: 2%; bottom: 18px; width: 36%; height: 205px; border: 6px solid white; border-radius: 20px !important; }
.about02-copy { position: relative; z-index: 2; grid-area: copy; align-self: start; max-width: 480px; padding: 28px 0 18px; color: var(--muted); }
.about02-copy p { margin: 0 0 17px; }
.about02-copy .arrow-link { color: var(--ink); }

.about02-background-orbits { display: none; position: absolute; z-index: -1; inset: -120px calc(50% - 50vw); overflow: hidden; pointer-events: none; }
.about02-background-orbits i { position: absolute; width: 780px; height: 610px; border: 2px solid; border-radius: 50%; opacity: .3; }
.about02-background-orbits i:nth-child(1) { left: -570px; top: 130px; border-color: var(--pink); box-shadow: 0 0 26px rgba(232,30,124,.35), inset 0 0 18px rgba(232,30,124,.16); transform: rotate(-15deg); }
.about02-background-orbits i:nth-child(2) { right: -550px; top: -20px; border-color: var(--blue-bright); box-shadow: 0 0 26px rgba(36,200,255,.35), inset 0 0 18px rgba(36,200,255,.15); transform: rotate(16deg); }
.about02-background-orbits i:nth-child(3) { right: -590px; top: 125px; border-color: var(--green); box-shadow: 0 0 26px rgba(0,250,154,.35), inset 0 0 18px rgba(0,250,154,.15); transform: rotate(16deg); }

.about-section { background: linear-gradient(135deg, #fff 0%, #f7fbff 72%, #f2fff9 100%); }
.about02-background-orbits { display: block; }
html[data-about-variant="02"][data-about-bg="02"] .about-section { background: radial-gradient(circle at 14% 18%, rgba(232,30,124,.17), transparent 31%), linear-gradient(135deg, #fff9fc, #fff 57%, #f7fbff); }
html[data-about-variant="02"][data-about-bg="03"] .about-section { background: radial-gradient(circle at 15% 75%, rgba(0,124,197,.18), transparent 34%), linear-gradient(130deg, #f2faff, #fff 61%, #f7fffB); }
html[data-about-variant="02"][data-about-bg="04"] .about-section { background: radial-gradient(circle at 12% 45%, rgba(0,250,154,.17), transparent 34%), linear-gradient(135deg, #f2fff9, #fff 64%, #f6faff); }
html[data-about-variant="02"][data-about-bg="05"] .about-section { background: radial-gradient(circle at 5% 12%, rgba(232,30,124,.16), transparent 26%), radial-gradient(circle at 52% 100%, rgba(0,124,197,.16), transparent 35%), radial-gradient(circle at 100% 5%, rgba(0,250,154,.15), transparent 30%), #fff; }
html[data-about-variant="02"][data-about-bg="06"] .about-section { color: white; background: radial-gradient(circle at 8% 38%, rgba(0,124,197,.25), transparent 32%), radial-gradient(circle at 92% 15%, rgba(232,30,124,.2), transparent 29%), radial-gradient(circle at 72% 100%, rgba(0,250,154,.14), transparent 34%), #111724; }
html[data-about-variant="02"][data-about-bg="06"] .about02-copy { color: #c2cad5; }
html[data-about-variant="02"][data-about-bg="06"] .about02-copy .arrow-link { color: white; }
html[data-about-variant="02"][data-about-bg="06"] .about-preview-switch { color: var(--ink); }

.about-version-09 { grid-template-columns: 1.08fr .92fr; align-items: center; gap: clamp(45px, 7vw, 105px); min-height: 600px; padding-top: 25px; }
.about09-orbit { position: relative; min-height: 540px; }
.about09-rings, .about09-rings::before, .about09-rings::after { position: absolute; border: 1px solid var(--blue); border-radius: 50%; box-shadow: 0 0 18px rgba(0,124,197,.25); }
.about09-rings { inset: 5% 8% 2% 4%; }
.about09-rings::before, .about09-rings::after { content: ""; inset: 7%; border-color: var(--pink); box-shadow: 0 0 18px rgba(232,30,124,.24); transform: rotate(15deg); }
.about09-rings::after { inset: 14% 3% 5% 16%; border-color: var(--green); box-shadow: 0 0 18px rgba(0,250,154,.25); transform: rotate(-18deg); }
.about09-photo-main { position: absolute; z-index: 2; top: 10%; left: 13%; overflow: hidden; width: 66%; aspect-ratio: 1; margin: 0; border: 8px solid white; border-radius: 50%; box-shadow: 0 28px 70px rgba(24,35,52,.2); }
.about09-photo-main img { object-position: center; }
.about09-photo-sub { position: absolute; z-index: 3; overflow: hidden; width: 25%; aspect-ratio: 1; margin: 0; border: 6px solid white; border-radius: 50%; box-shadow: 0 18px 45px rgba(24,35,52,.18); }
.about09-photo-city { top: 14%; right: 0; }
.about09-photo-strategy { left: 5%; bottom: 0; }
.about09-copy { position: relative; z-index: 2; }
.about09-copy::before { content: "09"; position: absolute; z-index: -1; top: -100px; right: -15px; color: rgba(0,124,197,.055); font: 800 clamp(130px, 15vw, 220px)/1 Inter, sans-serif; }
.about09-copy > p:not(.section-kicker) { margin: 25px 0 0; color: var(--muted); }
.about09-copy .arrow-link { margin-top: 30px; }

.about-version-glass { position: relative; isolation: isolate; overflow: hidden; width: 100vw; min-height: 680px; align-items: center; margin: -120px 0 -120px calc(50% - 50vw); padding: 64px max(28px, calc((100vw - var(--max)) / 2)); color: var(--ink); background: #111a2b; }
.about-glass-background { position: absolute; z-index: -3; inset: 0; background: url("../images/about-strategy-clean.webp") center 44% / cover no-repeat; transform: scale(1.02); }
.about-glass-background::after { content: ""; position: absolute; inset: 0; background: linear-gradient(96deg, rgba(17,26,43,.92) 0%, rgba(17,26,43,.66) 45%, rgba(17,26,43,.26) 78%), linear-gradient(180deg, rgba(17,26,43,.3), rgba(17,26,43,.66)); }
.about-glass-panel { position: relative; z-index: 3; width: min(600px, 52vw); padding: clamp(35px, 4vw, 56px); border: 1px solid rgba(255,255,255,.72); border-radius: 12px; background: linear-gradient(140deg, rgba(255,255,255,.96), rgba(246,249,253,.89)); box-shadow: 0 32px 80px rgba(0,0,0,.42); backdrop-filter: blur(18px); }
.about-glass-panel::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; border-radius: 12px 12px 0 0; background: linear-gradient(90deg, var(--pink) 0 33.333%, var(--blue) 33.333% 66.666%, var(--green) 66.666%); }
.about-glass-panel h2 { margin: 0 0 16px; font-size: clamp(28px, 3vw, 42px); }
.about-glass-statement { margin: 0; font-size: clamp(26px, 3.2vw, 42px); font-weight: 800; line-height: 1.5; letter-spacing: -.035em; }
.about-glass-panel .tricolor-line { margin-top: 24px; }
.about-glass-copy { margin-top: 26px; color: var(--muted); font-size: 13px; }
.about-glass-copy p { margin: 0 0 13px; }
.about-glass-panel .arrow-link { margin-top: 14px; }
.about-glass-rings { position: absolute; z-index: 2; right: -5%; bottom: -22%; width: clamp(280px, 30vw, 440px); aspect-ratio: 1; opacity: .9; }
.about-glass-rings i { position: absolute; inset: 0; border: 1px solid var(--pink); border-radius: 50%; box-shadow: 0 0 27px rgba(232,30,124,.42); }
.about-glass-rings i:nth-child(2) { inset: 16%; border-color: var(--blue-bright); box-shadow: 0 0 27px rgba(36,200,255,.38); }
.about-glass-rings i:nth-child(3) { inset: 32%; border-color: var(--green); box-shadow: 0 0 27px rgba(0,250,154,.35); }
.about-glass-rings i:nth-child(4) { inset: 48%; }

.about-version-city { position: relative; isolation: isolate; overflow: hidden; width: 100vw; min-height: 720px; margin: -120px 0 -120px calc(50% - 50vw); padding: 85px max(28px, calc((100vw - var(--max)) / 2)) 150px; background: radial-gradient(circle at 50% 30%, #fff 0%, rgba(255,255,255,.94) 52%, rgba(241,248,255,.9) 100%); }
.about-city-skyline { position: absolute; z-index: -2; inset: auto 0 0; height: 210px; opacity: .28; background: url("../images/about-city-clean.webp") center 58% / cover no-repeat; -webkit-mask-image: linear-gradient(transparent, #000 52%); mask-image: linear-gradient(transparent, #000 52%); }
.about-city-skyline::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(232,30,124,.22), rgba(0,124,197,.05) 48%, rgba(0,250,154,.13)); mix-blend-mode: color; }
.about-city-orbits { position: absolute; z-index: -1; inset: 0; pointer-events: none; }
.about-city-orbits i { position: absolute; width: 720px; height: 600px; border: 2px solid var(--pink); border-radius: 50%; box-shadow: 0 0 22px rgba(232,30,124,.28); opacity: .38; }
.about-city-orbits i:nth-child(1) { left: -470px; top: 180px; transform: rotate(-18deg); }
.about-city-orbits i:nth-child(2) { right: -460px; top: 80px; border-color: var(--blue-bright); box-shadow: 0 0 22px rgba(36,200,255,.3); transform: rotate(14deg); }
.about-city-orbits i:nth-child(3) { right: -510px; top: 180px; border-color: var(--green); box-shadow: 0 0 22px rgba(0,250,154,.3); transform: rotate(14deg); }
.about-city-header { text-align: center; }
.about-city-header .section-kicker { margin-bottom: 10px; }
.about-city-header h2 { margin: 0; font-size: clamp(40px, 5vw, 64px); letter-spacing: -.04em; }
.about-city-header .tricolor-line { justify-content: center; margin-top: 25px; }
.about-city-header .tricolor-line i { width: 52px; }
.about-city-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(65px, 9vw, 140px); max-width: var(--max); margin: 62px auto 0; }
.about-city-statement > p { margin: 0; font-size: clamp(42px, 5.2vw, 70px); font-weight: 800; line-height: 1.48; letter-spacing: -.055em; }
.about-city-statement .tricolor-line { margin-top: 38px; }
.about-city-copy { color: #495366; font-size: 15px; line-height: 2.1; }
.about-city-copy p { margin: 0 0 22px; }
.about-city-copy .arrow-link { margin-top: 12px; color: var(--ink); }

/* トップ：Business Details ------------------------------------------ */
.business-section { position: relative; isolation: isolate; overflow: hidden; padding: 130px max(28px, calc((100vw - 1440px) / 2)) 150px; clip-path: polygon(0 0, 100% 2.97vw, 100% 100%, 0 calc(100% - 2.97vw)); color: white; background: linear-gradient(145deg, #101827 0%, #111a2b 48%, #0b1524 100%); }
.business-section::before { content: ""; position: absolute; z-index: -2; inset: -18%; background: conic-gradient(from 205deg at 46% 50%, transparent 0 7%, rgba(232,30,124,.38) 14%, transparent 27%, rgba(0,124,197,.36) 39%, transparent 55%, rgba(0,250,154,.25) 68%, transparent 83%); filter: blur(72px); transform: rotate(-7deg) scale(1.08); pointer-events: none; }
.business-section::after { content: ""; position: absolute; z-index: -1; inset: 0; background: radial-gradient(circle at 50% 8%, rgba(255,255,255,.055), transparent 34%), linear-gradient(90deg, rgba(3,8,17,.38), transparent 24% 76%, rgba(3,8,17,.42)), repeating-linear-gradient(116deg, rgba(255,255,255,.022) 0 1px, transparent 1px 76px); pointer-events: none; }
.business-intro { display: flex; flex-direction: column; align-items: center; gap: 0; margin: 0 auto 72px; text-align: center; }
.business-intro h2 { margin: 0; color: white; font: 700 clamp(48px, 5.2vw, 76px)/1.1 Georgia, "Times New Roman", serif; letter-spacing: -.025em; }
.business-tricolor { position: relative; overflow: hidden; width: clamp(243.6px, 26.39vw, 385.7px); height: 3.5px; margin: 11.55px 0 31px; border-radius: 999px; background: linear-gradient(90deg, var(--pink) 0%, var(--blue-bright) 50%, var(--green) 100%); box-shadow: 0 0 15px rgba(36,200,255,.5); }
.business-tricolor::after { content: ""; position: absolute; inset: -4px auto -4px -35%; width: 24%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.95), transparent); transform: skewX(-22deg); opacity: 0; }
.business-intro.is-visible .business-tricolor::after { animation: tricolor-light-scan 1.35s .25s ease-out both; }
.business-intro > p { margin: 0; color: #c5ccd6; font-size: clamp(15px, 1.35vw, 19px); line-height: 2.05; }
.business-list { display: grid; gap: 51px; width: min(99%, 1307px); margin-inline: auto; }
.business-story { --accent: var(--pink); --accent-bright: #fa4c9c; overflow: hidden; display: grid; grid-template-columns: 47.5% 52.5%; grid-template-rows: 397px 46px; grid-template-areas: "photo copy" "photo result"; border-radius: 6px; color: var(--ink); background: white; box-shadow: 0 28px 70px rgba(4,10,20,.22); }
.business-story-reverse { grid-template-columns: 52.5% 47.5%; grid-template-areas: "copy photo" "result photo"; }
.business-story-green { --accent: #00966e; --accent-bright: #31d8ad; }
.business-story-blue { --accent: #007cc5; --accent-bright: #37aaf0; }
.business-story-photo { grid-area: photo; overflow: hidden; min-height: 397px; margin: 0; background: #e9ebef; }
.business-story-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .55s ease; }
.business-story:hover .business-story-photo img { transform: scale(1.025); }
.business-story-copy { grid-area: copy; align-self: center; padding: clamp(26px, 3vw, 40px); }
.business-story-number { margin: 0 0 12px; color: var(--accent); font: 800 clamp(30px, 2.8vw, 40px)/1 Inter, sans-serif; }
.business-story-label { margin: 0 0 12px; color: var(--accent); font: 800 11px/1.4 Inter, "Noto Sans JP", sans-serif; letter-spacing: .22em; }
.business-story-label span { letter-spacing: .08em; }
.business-story-copy h3 { margin: 0 0 14px; font-size: clamp(25px, 2.2vw, 34px); line-height: 1.3; letter-spacing: -.035em; }
.business-story-title-row { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: clamp(18px, 2.2vw, 34px); margin-bottom: 12px; }
.business-story-title-row .business-story-number, .business-story-copy .business-story-title-row h3 { margin: 0; }
.business-story-copy > p:not(.business-story-number):not(.business-story-label) { margin: 0 0 12px; color: #596477; font-size: clamp(13px, 1.05vw, 15px); line-height: 1.7; }
.business-story-cta { display: inline-flex; align-items: center; gap: 24px; min-width: 230px; padding: 7px 0 9px; border-bottom: 1px solid var(--accent); color: #46505e; font-weight: 800; }
.business-story-cta span { transition: transform .25s ease; }
.business-story-cta:hover span { transform: translateX(7px); }
.business-story-result { grid-area: result; display: flex; align-items: center; justify-content: space-between; padding: 0 40px; color: white; background: linear-gradient(100deg, var(--accent), var(--accent-bright)); font-size: 14px; font-weight: 800; letter-spacing: .06em; }
.business-story-result span:last-child { font-size: 24px; font-weight: 400; transition: transform .25s ease; }
.business-story-result:hover span:last-child { transform: translate(5px,-5px); }

/* トップ：Recruit ---------------------------------------------------- */
.recruit-section { overflow: hidden; background: radial-gradient(circle at 12% 35%, rgba(232,30,124,.07), transparent 25%), radial-gradient(circle at 88% 38%, rgba(0,124,197,.08), transparent 27%), radial-gradient(circle at 72% 92%, rgba(0,250,154,.06), transparent 24%), #f9fbfe; }
.recruit-panel { position: relative; isolation: isolate; overflow: hidden; display: grid; grid-template-columns: 55% 45%; height: 550px; padding: 0; border: 1px solid rgba(255,255,255,.85); border-radius: 0; background: rgba(255,255,255,.95); box-shadow: 0 30px 80px rgba(32,54,82,.14); }
.recruit-panel::before, .recruit-panel::after { content: ""; position: absolute; z-index: 4; border: 1px solid; border-radius: 50%; pointer-events: none; }
.recruit-panel::before { left: 38%; top: -185px; width: 350px; height: 350px; border-color: rgba(232,30,124,.35); }
.recruit-panel::after { left: -95px; bottom: -205px; width: 300px; height: 300px; border-color: rgba(0,124,197,.38); }
.recruit-home-message { position: relative; z-index: 3; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding: 50px clamp(45px, 5vw, 78px); text-align: left; background: rgba(255,255,255,.98); }
.recruit-home-message::after { content: ""; position: absolute; z-index: -1; right: -130px; bottom: -220px; width: 310px; height: 310px; border: 1px solid rgba(0,250,154,.28); border-radius: 50%; pointer-events: none; }
.recruit-home-message .section-kicker { margin: 0 0 28px; color: var(--pink); font: 800 12px/1 Inter, sans-serif; letter-spacing: .28em; }
.recruit-home-message h2 { margin: 0; font-size: clamp(34px, 3vw, 48px); line-height: 1.55; letter-spacing: -.045em; }
.recruit-pink { color: transparent; background: linear-gradient(90deg, #e81e7c 0%, #d82a91 55%, #9250b5 100%); -webkit-background-clip: text; background-clip: text; }
.recruit-blue { color: transparent; background: linear-gradient(90deg, var(--blue), var(--green-deep)); -webkit-background-clip: text; background-clip: text; }
.recruit-home-message > p:not(.section-kicker) { margin: 24px 0 26px; color: #515d6e; font-size: 14px; line-height: 1.8; }
.recruit-cta { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-width: 260px; min-height: 48px; padding: 0 0 0 2px; border-bottom: 1px solid rgba(232,30,124,.45); color: var(--pink); font-size: 14px; font-weight: 800; }
.recruit-cta span { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(232,30,124,.25); border-radius: 50%; color: var(--pink); background: white; transition: transform .25s ease; }
.recruit-cta:hover span { transform: translateX(4px); }
.recruit-wide-photo { position: relative; z-index: 2; overflow: hidden; min-width: 0; height: 100%; margin: 0; background: #eaf1f7; }
.recruit-wide-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, white 0, rgba(255,255,255,.78) 8%, transparent 31%); pointer-events: none; }
.recruit-wide-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 60% center; transition: transform 1.8s cubic-bezier(.2,.7,.2,1); }
.recruit-panel.reveal .recruit-wide-photo img { transform: scale(1.05); }
.recruit-panel.reveal.is-visible .recruit-wide-photo img { transform: scale(1); }
.recruit-panel.reveal.is-visible:hover .recruit-wide-photo img { transform: scale(1.02); transition-duration: .55s; }

/* 全ページ共通：Contactバナー --------------------------------------- */
.contact-banner { position: relative; overflow: hidden; display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 80px; min-height: 430px; padding: 80px max(28px, calc((100vw - var(--max)) / 2)); color: white; background: #151a26; }
.contact-banner > *:not(.contact-glow) { position: relative; z-index: 1; }
.contact-banner > div > p:first-child { margin: 0 0 12px; color: var(--pink-bright); font: 800 12px/1 Inter, sans-serif; letter-spacing: .2em; }
.contact-banner h2 { margin: 0; font-size: clamp(38px, 5vw, 66px); line-height: 1.28; }
.contact-banner > div:nth-child(3) > p { margin: 0 0 30px; color: #b7c0cc; }
.contact-glow { position: absolute; inset: auto -5% -75% 25%; height: 520px; border: 2px solid var(--blue-bright); border-radius: 50%; box-shadow: 0 0 22px rgba(36,200,255,.45), inset 0 0 36px rgba(0,250,154,.22); transform: rotate(-8deg); }
.contact-glow::before, .contact-glow::after { content: ""; position: absolute; inset: 25px; border: 1px solid var(--green); border-radius: 50%; box-shadow: 0 0 25px rgba(0,250,154,.35); }
.contact-glow::after { inset: -55px 90px 130px -50px; border-color: var(--pink); box-shadow: 0 0 25px rgba(232,30,124,.35); }
.contact-banner.compact { min-height: 350px; }

.contact-home-slim { isolation: isolate; grid-template-columns: 1.25fr .9fr; gap: clamp(40px, 6vw, 90px); min-height: 290px; padding-block: 34px; background: #14253e; }
.contact-home-slim::after { content: ""; position: absolute; z-index: 0; left: 0; right: 0; bottom: 0; height: 3px; background: linear-gradient(90deg, var(--pink), var(--blue), var(--green)); box-shadow: 0 0 12px rgba(36,200,255,.26); pointer-events: none; }
.contact-home-slim > *:not(.contact-city) { position: relative; z-index: 2; }
.contact-banner.contact-home-slim > .contact-city { position: absolute; z-index: -2; inset: 0; margin: 0; }
.contact-city::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,18,33,.94), rgba(7,18,33,.66) 58%, rgba(7,18,33,.25)), linear-gradient(0deg, rgba(0,124,197,.28), transparent); }
.contact-city img { width: 100%; height: 100%; object-fit: cover; object-position: center 58%; transform: translate3d(0, var(--contact-parallax, 0px), 0) scale(1.08); will-change: transform; }
.contact-home-slim > div > p:first-child { margin-bottom: 9px; }
.contact-home-slim h2 { font-size: clamp(28px, 3vw, 42px); line-height: 1.25; }
.contact-home-slim > div:nth-child(3) { width: max-content; max-width: 100%; }
.contact-home-slim > div:nth-child(3) > p { margin: 0 0 25px; color: #d0d8e4; font-size: 13px; line-height: 1.75; white-space: nowrap; }
.contact-home-slim .button-pink { width: 100%; min-width: 0; min-height: 48px; border: 1px solid rgba(255,255,255,.65); border-radius: 8px; color: white; background: rgba(11,25,43,.28); box-shadow: none; }
.contact-home-slim .button-pink:hover { border-color: white; background: rgba(255,255,255,.1); }

/* 404エラーページ ---------------------------------------------------- */
.error-page { position: relative; isolation: isolate; overflow: hidden; min-height: 760px; display: grid; place-items: center; padding: calc(var(--header) + 90px) max(28px, calc((100vw - var(--max)) / 2)) 100px; background: radial-gradient(circle at 15% 30%, rgba(232,30,124,.08), transparent 30%), radial-gradient(circle at 86% 72%, rgba(0,250,154,.08), transparent 28%), #f8fbff; }
.error-content { position: relative; z-index: 2; width: min(760px, 100%); text-align: center; }
.error-content .section-kicker { margin-bottom: 10px; }
.error-code { margin: 0; color: transparent; background: linear-gradient(90deg, var(--pink), var(--blue), var(--green-deep)); -webkit-background-clip: text; background-clip: text; font: 800 clamp(118px, 17vw, 230px)/.88 Inter, sans-serif; letter-spacing: -.08em; }
.error-content h1 { margin: 28px 0 20px; font-size: clamp(34px, 4.4vw, 56px); line-height: 1.35; letter-spacing: -.045em; }
.error-copy { max-width: 620px; margin: 0 auto; color: var(--muted); }
.error-actions { display: flex; align-items: center; justify-content: center; gap: 34px; margin-top: 42px; }
.error-orbits { position: absolute; z-index: 1; inset: 0; pointer-events: none; }
.error-orbits i { position: absolute; width: 680px; height: 460px; border: 1px solid; border-radius: 50%; opacity: .25; }
.error-orbits i:nth-child(1) { left: -460px; top: 75px; border-color: var(--pink); transform: rotate(-16deg); }
.error-orbits i:nth-child(2) { right: -470px; top: 150px; border-color: var(--blue-bright); transform: rotate(13deg); }
.error-orbits i:nth-child(3) { right: -510px; top: 245px; border-color: var(--green); transform: rotate(13deg); }

/* 全ページ共通：フッター ------------------------------------------- */
.site-footer { position: relative; min-height: 360px; padding: 70px max(28px, calc((100vw - var(--max)) / 2)) 28px; color: #c0c7d0; background: linear-gradient(115deg, #090f19, #101b2b); }
.site-footer::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--pink), var(--blue), var(--green)); box-shadow: 0 0 12px rgba(36,200,255,.22); }
.footer-top { display: grid; grid-template-columns: 1.15fr 1.25fr; gap: 70px; padding-bottom: 72px; }
.footer-brand { margin-bottom: 36px; color: white; }
.footer-top p { margin: 0 0 12px; color: white; font-weight: 700; }
.footer-top address { color: #8f99a7; font-size: 13px; font-style: normal; }
.footer-nav { display: grid; grid-template-columns: repeat(2, 1fr); align-content: start; gap: 18px 60px; padding-top: 16px; font-size: 14px; }
.footer-nav a { padding-bottom: 12px; border-bottom: 1px solid #272d38; transition: color .2s; }
.footer-nav a:hover { color: var(--green); }
.footer-bottom { display: flex; justify-content: space-between; padding-top: 22px; border-top: 1px solid #252b35; color: #697483; font: 600 10px/1.5 Inter, sans-serif; letter-spacing: .12em; }

.page-hero { position: relative; overflow: hidden; min-height: 490px; display: flex; align-items: center; justify-content: space-between; gap: 60px; padding: 170px max(28px, calc((100vw - var(--max)) / 2)) 75px; color: white; background: linear-gradient(125deg, #171d2b, #202b3a); }
.page-hero > *:not(.page-orbits) { position: relative; z-index: 1; }
.page-hero p { margin: 0 0 12px; color: var(--pink-bright); font: 800 12px/1 Inter, sans-serif; letter-spacing: .25em; }
.page-hero h1 { margin: 0; font-size: clamp(48px, 7vw, 82px); line-height: 1.1; letter-spacing: -.04em; }
.page-hero > span { padding-bottom: 10px; color: #d4d9e0; font-size: 18px; font-weight: 600; }
.page-orbits { position: absolute; inset: 0; background: radial-gradient(circle at 76% 45%, rgba(36,200,255,.13), transparent 23%), radial-gradient(circle at 90% 82%, rgba(0,250,154,.13), transparent 21%), radial-gradient(circle at 35% 115%, rgba(232,30,124,.15), transparent 35%); }
.page-orbits::before, .page-orbits::after { content: ""; position: absolute; width: 650px; height: 210px; right: -70px; top: 80px; border: 1px solid var(--pink); border-radius: 50%; box-shadow: 0 0 18px rgba(232,30,124,.35); transform: rotate(-9deg); opacity: .55; }
.page-orbits::after { right: -180px; top: 260px; border-color: var(--green); box-shadow: 0 0 18px rgba(0,250,154,.35); }
.company-section { background: var(--paper); }
.company-table { margin: 0; border-top: 1px solid #cfd6df; background: white; box-shadow: 0 24px 70px rgba(31,43,60,.06); }
.company-table > div { display: grid; grid-template-columns: 260px 1fr; border-bottom: 1px solid #dfe4eb; }
.company-table dt, .company-table dd { margin: 0; padding: 30px 36px; }
.company-table dt { position: relative; font-size: 14px; font-weight: 700; }
.company-table dt::before { content: ""; position: absolute; left: 0; top: 30px; width: 4px; height: 26px; border-radius: 3px; background: linear-gradient(180deg, var(--pink) 0%, var(--blue) 50%, var(--green) 100%); box-shadow: 0 0 10px rgba(232,30,124,.2); }
.company-table dd { color: #596270; }

.recruit-page-hero .page-orbits { filter: hue-rotate(25deg); }
.recruit-message { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: start; background: var(--paper); }
.recruit-message h2 { margin: 0; font-size: clamp(38px, 5vw, 62px); line-height: 1.35; }
.message-card { position: relative; padding: 55px 60px; border-radius: 25px; background: white; box-shadow: var(--shadow); }
.message-card .status-dot { display: block; width: 14px; height: 14px; margin-bottom: 30px; border-radius: 50%; background: var(--blue-bright); box-shadow: 0 0 0 8px rgba(36,200,255,.1), 0 0 18px rgba(36,200,255,.55); }
.message-card p { color: #58616e; }
.message-card .arrow-link { margin-top: 20px; }

.contact-page-hero .page-orbits { filter: hue-rotate(-16deg); }
.contact-section { display: grid; grid-template-columns: .72fr 1.28fr; gap: 90px; align-items: start; background: var(--paper); }
.contact-intro { position: sticky; top: 120px; }
.contact-intro h2 { margin: 0 0 24px; font-size: clamp(40px, 5vw, 62px); }
.contact-intro > p:not(.section-kicker) { color: var(--muted); }
.contact-direct { display: grid; gap: 12px; margin-top: 36px; }
.contact-direct a { padding: 20px 24px; border: 1px solid #dfe4eb; border-radius: 12px; color: var(--ink); background: white; font-family: Inter, sans-serif; font-weight: 700; transition: .2s; }
.contact-direct a:hover { border-color: var(--blue); box-shadow: 0 10px 24px rgba(0,124,197,.1); }
.contact-direct small { display: block; margin-bottom: 4px; color: var(--blue); font-size: 9px; letter-spacing: .16em; }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 22px; padding: 54px; border-radius: 26px; background: white; box-shadow: var(--shadow); }
.form-field.full, .privacy-check.full, .form-note.full, .form-submit.full { grid-column: 1 / -1; }
.form-field label { display: block; margin-bottom: 9px; font-size: 13px; font-weight: 700; }
.form-field b, .privacy-check b { margin-left: 7px; color: var(--pink); font-size: 10px; }
.form-field input, .form-field select, .form-field textarea { width: 100%; border: 1px solid #d5dce5; border-radius: 8px; outline: 0; background: #fbfcfe; transition: .2s; }
.form-field input, .form-field select { height: 54px; padding: 0 16px; }
.form-field textarea { resize: vertical; padding: 15px 16px; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--blue); background: white; box-shadow: 0 0 0 4px rgba(0,124,197,.09), 0 0 15px rgba(36,200,255,.08); }
.form-field [aria-invalid="true"] { border-color: var(--pink); }
.field-error { display: block; min-height: 20px; padding-top: 4px; color: var(--pink); font-size: 11px; }
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.privacy-check { display: flex; align-items: flex-start; gap: 12px; font-size: 13px; }
.privacy-check input { width: 18px; height: 18px; margin-top: 5px; accent-color: var(--pink); }
.privacy-check a { color: var(--blue); text-decoration: underline; }
.form-note { margin: 0; color: #7a8491; font-size: 12px; }
.form-submit { display: flex; align-items: center; gap: 24px; }
.form-status { margin: 0; color: var(--pink); font-size: 12px; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .75s ease, transform .75s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
.business-story.reveal { transform: translateX(-52px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.72,.2,1); }
.business-story-reverse.reveal { transform: translateX(52px); }
.business-story.reveal.is-visible { transform: none; }
.business-story.reveal .business-story-photo img { transform: scale(1.045); transition: transform 1.15s cubic-bezier(.2,.72,.2,1); }
.business-story.reveal.is-visible .business-story-photo img { transform: scale(1); }
.business-story.reveal.is-visible:hover .business-story-photo img { transform: scale(1.025); transition-duration: .55s; }
#business-subsidy.reveal { transition-delay: .08s; }
#business-consulting.reveal { transition-delay: .14s; }
@keyframes tricolor-light-scan { 0% { left: -35%; opacity: 0; } 18% { opacity: 1; } 82% { opacity: 1; } 100% { left: 115%; opacity: 0; } }
@keyframes button-light-sweep { from { left: -48%; } to { left: 122%; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } .reveal { opacity: 1; transform: none; } }

@media (max-width: 1060px) {
  :root { --header: 76px; }
  .site-header .brand { position: relative; z-index: 102; }
  .menu-button { display: block; position: relative; z-index: 102; }
  .menu-button[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .menu-button[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .menu-button[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  .global-nav { position: fixed; z-index: 101; inset: var(--header) 0 0; width: 100%; min-height: calc(100vh - var(--header)); height: calc(100vh - var(--header)); height: calc(100dvh - var(--header)); display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; padding: 24px 30px 35px; overflow-y: auto; overscroll-behavior: contain; background: rgba(255,255,255,.98); transform: translateX(100%); transition: transform .35s ease; }
  .global-nav.is-open { transform: none; }
  .global-nav > a { padding: 17px 6px; border-bottom: 1px solid #e4e8ee; font-size: 17px; }
  .global-nav > a:not(.nav-cta)::after { display: none; }
  .nav-cta { justify-content: center; margin-top: 25px; border: 0 !important; }
  .hero { min-height: 850px; align-items: flex-start; padding-top: 150px; }
  .hero-content { width: 62vw; }
  .hero h1 { font-size: clamp(49.5px, 7.74vw, 79.2px); }
  .hero-pillar-bar { right: 28px; overflow-x: auto; }
  .mini-pillar { min-width: 210px; }
  .business-story { grid-template-columns: 45.6% 54.4%; }
  .business-story-reverse { grid-template-columns: 54.4% 45.6%; }
  .business-story-copy { padding: 28px 32px; }
  .recruit-panel { grid-template-columns: 54% 46%; height: 482px; }
  .recruit-home-message { padding: 38px 36px; }
  .recruit-home-message .section-kicker { margin-bottom: 22px; }
  .recruit-home-message h2 { font-size: clamp(29px, 3.5vw, 39px); }
  .recruit-home-message > p:not(.section-kicker) { margin: 18px 0 22px; font-size: 12px; }
  .recruit-cta { min-width: 225px; }
  .contact-section { grid-template-columns: 1fr; }
  .contact-intro { position: static; }
}

@media (max-width: 760px) {
  .site-header { padding-inline: 18px; background: rgba(255,255,255,.92); border-bottom: 1px solid rgba(222,228,236,.8); backdrop-filter: blur(12px); }
  .brand { font-size: 20px; }
  .brand-mark { font-size: 34px; }
  .hero { min-height: clamp(837px, 135vw, 1026px); align-items: flex-start; padding: clamp(324px, 79.2vw, 468px) 22px 167px; background: #fff; }
  .hero-media { background-image: url("../images/hero-collage-mobile-full.webp"); background-position: center top; background-size: 100% 100%; background-repeat: no-repeat; transform: none; }
  .hero-shade {
    background: linear-gradient(180deg, transparent 0 29%, rgba(255,255,255,.05) 32%, rgba(255,255,255,.22) 60%, rgba(255,255,255,.28) 100%);
  }
  .hero-shade::after {
    content: "";
    position: absolute;
    inset: 30% 0 0;
    background: linear-gradient(105deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.96) 50%, rgba(255,255,255,.68) 69%, rgba(255,255,255,.08) 100%);
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.45) 12%, #000 28%);
    mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.45) 12%, #000 28%);
  }
  .hero-content {
    width: 100%;
    margin-top: clamp(70px, 18.9vw, 97px);
    transform: none;
  }
  .hero .eyebrow {
    position: absolute;
    left: 0;
    bottom: calc(100% + 8.4px);
    display: flex;
    margin: 0;
    font-size: 10px;
    letter-spacing: .12em;
    white-space: nowrap;
  }
  .hero .eyebrow span { width: 28px; }
  .hero h1 { font-size: clamp(40.5px, 11.25vw, 61.2px); line-height: .96; }
  .hero-copy { margin: 20px 0; font-size: 16px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 14px; }
  .hero-actions .text-link { display: none; }
  .button { min-width: 218px; }
  .hero-pillar-bar { left: 18px; right: 18px; bottom: 10px; display: grid; grid-template-columns: repeat(3, 1fr); overflow: visible; padding: 12px 8px; }
  .mini-pillar { min-width: 0; flex-direction: column; gap: 5px; padding: 4px 8px; border-right: 1px solid rgba(36,47,63,.12); border-bottom: 0; text-align: center; }
  .mini-pillar:last-child { border-right: 0; }
  .mini-pillar b { font-size: 22px; }
  .mini-pillar span { font-size: 10px; line-height: 1.45; }
  .mini-pillar small { font-size: 8px; }
  .section { padding: 82px 22px; }
  .about-preview-switch { top: 18px; right: 22px; }
  .about-preview-switch span { display: none; }
  .about-version-02, html[data-about-variant="02"] .about-version-02,
  .about-version-09, html[data-about-variant="09"] .about-version-09 { grid-template-columns: 1fr; grid-template-rows: auto; min-height: 0; padding-top: 18px; }
  .about-version-02, html[data-about-variant="02"] .about-version-02 { grid-template-areas: "heading" "photos" "copy"; }
  .about02-heading { padding: 25px 0 28px; }
  .about02-heading h2, .about09-copy h2 { font-size: clamp(36px, 10.5vw, 50px); }
  .about02-photos { grid-column: 1; grid-row: auto; min-height: 420px; }
  .about02-photo-main { width: 82%; height: 245px; }
  .about02-photo-sub { width: 67%; height: 200px; }
  .about02-photo-accent { width: 40%; height: 150px; }
  .about02-copy { max-width: none; padding: 36px 0 0; }
  .about02-background-orbits { inset: -82px calc(50% - 50vw); }
  .about02-background-orbits i { width: 500px; height: 430px; opacity: .2; }
  .about02-background-orbits i:nth-child(1) { left: -385px; top: 255px; }
  .about02-background-orbits i:nth-child(2) { right: -390px; top: 10px; }
  .about02-background-orbits i:nth-child(3) { right: -410px; top: 165px; }
  .about09-orbit { min-height: 410px; margin-top: 30px; }
  .about09-photo-main { top: 10%; left: 16%; width: 65%; }
  .about09-copy { padding-top: 35px; }
  .about09-copy::before { top: -25px; right: 0; }
  .about-version-glass { min-height: 0; flex-direction: column; align-items: stretch; margin: -82px 0 -82px calc(50% - 50vw); padding: 0 0 28px; }
  .about-glass-background { position: relative; inset: auto; z-index: 0; height: 275px; width: 100%; transform: none; }
  .about-glass-panel { width: auto; margin: -48px 17px 0; padding: 34px 25px; }
  .about-glass-statement { font-size: 28px; }
  .about-glass-rings { display: none; }
  .about-version-city { min-height: 0; margin: -82px 0 -82px calc(50% - 50vw); padding: 72px 22px 130px; }
  .about-city-grid { grid-template-columns: 1fr; gap: 42px; margin-top: 48px; }
  .about-city-statement > p { font-size: clamp(38px, 11vw, 52px); }
  .about-city-copy { font-size: 14px; }
  .about-city-skyline { height: 165px; }
  .about-city-orbits i { opacity: .22; }
  .section-heading { margin-bottom: 40px; }
  .about-grid, .business-intro, .recruit-panel, .contact-banner, .recruit-message, .contact-section { grid-template-columns: 1fr; gap: 42px; }
  .business-section { padding: 88px 20px 96px; background: linear-gradient(155deg, #101827 0%, #111a2b 50%, #0b1524 100%); }
  .business-intro { gap: 0; margin-bottom: 50px; }
  .business-intro h2 { font-size: clamp(30px, 9vw, 35px); white-space: nowrap; }
  .business-tricolor { width: clamp(151.9px, 45.5vw, 177.8px); height: 3.5px; margin: 8.58px 0 28px; }
  .business-intro > p { font-size: 14px; line-height: 1.95; }
  .business-list { gap: 32px; width: 100%; }
  .business-story, .business-story-reverse { grid-template-columns: 1fr; grid-template-rows: auto auto 32px; grid-template-areas: "photo" "copy" "result"; border-radius: 6px; }
  .business-story-photo { min-height: 0; aspect-ratio: 1.47; }
  .business-story-copy { padding: 35px 28px 40px; }
  .business-story-number { margin-bottom: 23px; font-size: 32px; }
  .business-story-label { margin-bottom: 20px; font-size: 10px; letter-spacing: .18em; }
  .business-story-copy h3 { margin-bottom: 23px; font-size: 25px; line-height: 1.45; }
  .business-story-copy > p:not(.business-story-number):not(.business-story-label) { margin-bottom: 22px; font-size: 14px; line-height: 2; }
  .business-story-cta { min-width: 0; gap: 24px; font-size: 14px; }
  .business-story-result { padding: 0 28px; font-size: 12.75px; line-height: 1; }
  .business-story-result span:last-child { font-size: 21.25px; }
  .recruit-panel { grid-template-columns: 1fr; gap: 0; height: auto; min-height: 0; padding: 0; border-radius: 0; }
  .recruit-panel::before, .recruit-panel::after, .recruit-home-message::after { display: none; }
  .recruit-home-message { padding: 46px 26px 41px; }
  .recruit-home-message h2 { font-size: clamp(31px, 9.5vw, 43px); }
  .recruit-home-message > p:not(.section-kicker) br { display: none; }
  .recruit-cta { min-width: min(270px, 100%); }
  .recruit-wide-photo { height: 280px; }
  .recruit-wide-photo::after { background: linear-gradient(180deg, white 0, rgba(255,255,255,.42) 13%, transparent 35%); }
  .contact-banner { min-height: 500px; padding-block: 70px; }
  .contact-home-slim { grid-template-columns: 1fr; gap: 24px; min-height: 0; padding: 48px 24px; }
  .contact-home-slim h2 { font-size: 34px; }
  .contact-home-slim > div:nth-child(3) { width: 100%; }
  .contact-home-slim > div:nth-child(3) > p { white-space: normal; }
  .contact-home-slim > div:nth-child(3) > p br { display: none; }
  .contact-banner.compact { min-height: 460px; }
  .footer-top { grid-template-columns: 1fr; gap: 40px; }
  .footer-nav { grid-template-columns: 1fr; }
  .page-hero { min-height: 430px; flex-direction: column; align-items: flex-start; justify-content: center; padding: 135px 22px 55px; }
  .page-hero > span { font-size: 15px; }
  .error-page { min-height: 680px; padding: 120px 22px 76px; }
  .error-code { font-size: clamp(108px, 38vw, 148px); }
  .error-content h1 { margin-top: 24px; font-size: 32px; }
  .error-copy { font-size: 14px; }
  .error-actions { align-items: stretch; flex-direction: column; gap: 24px; margin-top: 34px; }
  .error-actions .button { width: 100%; }
  .error-actions .arrow-link { justify-content: center; }
  .error-orbits i { opacity: .18; }
  .company-table > div { grid-template-columns: 1fr; }
  .company-table dt { padding-bottom: 5px; }
  .company-table dd { padding-top: 10px; }
  .company-table dt::before { top: 31px; }
  .message-card { padding: 38px 28px; }
  .contact-form { grid-template-columns: 1fr; padding: 35px 24px; }
  .form-field.full, .privacy-check.full, .form-note.full, .form-submit.full { grid-column: auto; }
  .form-submit { align-items: flex-start; flex-direction: column; }
}

/* Tablet hero: keep the CTA clear of the independently positioned pillar bar. */
@media (min-width: 761px) and (max-width: 1060px) {
  .hero {
    padding-top: 118px;
    padding-bottom: 185px;
  }
  .hero-content { width: min(650px, 68vw); }
  .hero-pillar-bar {
    left: 28px;
    right: 28px;
    bottom: 28px;
  }
  .mini-pillar {
    flex: 1 1 0;
    min-width: 0;
    padding-inline: 18px;
  }
}

/* Large-phone hero: move the text group up without changing other mobile widths. */
@media (min-width: 400px) and (max-width: 480px) {
  .hero-content {
    margin-top: 50px;
    transform: none;
  }
  .hero-copy { margin-block: 18px; }
}
