/* EDENAI site — partner stylesheet + merged-site additions at the end */

:root {
  --font-ja: "Inter", "Noto Sans JP", sans-serif;
  --font-en: "Inter", "Noto Sans JP", sans-serif;
  --cyan: #00d4ff;
  --cyan-deep: #027f9b;
  --ink: #12171b;
  --dark: #20262b;
  --dark-2: #171c20;
  --white: #ffffff;
  --ice: #f6fafb;
  --mist: #e8eff1;
  --line: #d6e0e3;
  --muted: #67737a;
  --page: 1200px;
  --gutter: 0px;
  --section: 104px;
  --radius: 16px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: var(--font-ja);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
  overflow-wrap: normal;
  word-break: normal;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; touch-action: none; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img { display: block; max-width: 100%; }
:focus-visible { outline: 3px solid rgba(0, 212, 255, 0.62); outline-offset: 3px; }
::selection { color: var(--ink); background: var(--cyan); }

.container { width: min(var(--page), calc(100% - 48px)); margin-inline: auto; }
.section { padding: var(--section) 0; }
.section--ice { background: var(--ice); }
.section--dark { color: var(--white); background: var(--dark); }
.section--ink { color: var(--white); background: var(--ink); }
.skip-link { position: fixed; z-index: 300; top: 12px; left: 12px; padding: 10px 14px; background: var(--cyan); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  min-height: calc(106px + env(safe-area-inset-top));
  padding-top: env(safe-area-inset-top);
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid rgba(18, 23, 27, 0.1);
  backdrop-filter: blur(16px);
}
.header-inner { width: min(var(--page), calc(100% - 48px)); min-height: 106px; margin: auto; display: flex; align-items: center; gap: 24px; }
.brand-lockup { display: inline-flex; align-items: center; gap: 8px; min-width: 0; flex: 0 0 auto; }
.logo { display: inline-flex; align-items: center; flex: 0 0 auto; }
.logo img { width: 171px; height: 32px; object-fit: contain; object-position: left center; }
.brand-slogan { display: inline-flex; align-items: center; gap: 8px; border: 0; padding: 0; color: #000000; font-size: 16px; font-weight: 300; letter-spacing: 0; line-height: 20px; white-space: nowrap; }
.brand-slogan::before { content: "｜"; color: #666666; font-weight: 300; }
.main-nav { margin-left: auto; display: flex; align-items: center; gap: clamp(12px, 1.7vw, 28px); }
.main-nav a { position: relative; min-height: 44px; padding: 12px 0 10px; display: inline-flex; align-items: center; color: #000000; font-family: var(--font-ja); font-size: 12px; font-weight: 400; letter-spacing: 0; white-space: nowrap; }
.main-nav a::after { content: ""; position: absolute; left: 50%; bottom: 2px; width: 47.5px; height: 2px; background: #00d4ff; transform: translateX(-50%) scaleX(0); transform-origin: center; transition: transform 0.22s ease; }
.main-nav a:hover::after, .main-nav a[aria-current="page"]::after { transform: translateX(-50%) scaleX(1); }
.main-nav a[aria-current="page"] { color: var(--cyan); }
.menu-toggle { display: none; margin-left: auto; width: 44px; height: 44px; flex: 0 0 44px; padding: 11px 9px; border: 0; border-radius: 8px; background: transparent; cursor: pointer; }
.menu-toggle:hover { background: var(--ice); }
.menu-toggle span { display: block; height: 2px; margin: 6px 0; background: currentColor; transition: transform 0.22s ease; }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }

.eyebrow, .hero-en, .footer-en, .case-category, .summary-card__no, .service-group__no, .capability__no, .ratio-badge, .copyright, .platform-wordmark, .channel-tags span, .poster-label {
  font-family: var(--font-en);
}
.eyebrow { margin: 0; color: var(--cyan-deep); font-size: 20px; font-weight: 700; letter-spacing: 0; line-height: 30px; text-transform: uppercase; }
.home-hero .eyebrow { color: var(--cyan); }
.hero-aside .eyebrow { color: #67737a; }
.section--dark .eyebrow, .section--ink .eyebrow, .dark-hero .eyebrow { color: var(--cyan); }
.display { margin: 20px 0 0; font-size: 100px; font-weight: 800; line-height: 1.2; letter-spacing: -0.04em; }
.page-title { margin: 18px 0 0; font-size: 100px; font-weight: 800; line-height: 1.2; letter-spacing: -0.04em; }
.section-title { margin: 14px 0 0; font-size: 64px; font-weight: 800; line-height: 1.125; letter-spacing: -0.04em; }
html.design-fit { overflow-x: hidden; }
.sub-title { margin: 0; font-size: clamp(26px, 3vw, 40px); font-weight: 700; line-height: 1.35; letter-spacing: -0.035em; }
.lead { max-width: 760px; margin: 28px 0 0; color: var(--muted); font-size: clamp(16px, 1.6vw, 20px); line-height: 2; }
.section--dark .lead, .section--ink .lead, .dark-hero .lead { color: #c7d0d5; font-size: 20px; font-weight: 400; line-height: 30px; }
.kicker-line { width: 72px; height: 2px; margin-top: 24px; background: var(--cyan); }
.section-heading { display: grid; grid-template-columns: 701px 478px; justify-content: space-between; align-items: start; column-gap: 21px; row-gap: 14px; width: 100%; margin-bottom: 52px; }
.section-heading .section-title { max-width: 701px; margin-top: 0; text-wrap: wrap; word-break: keep-all; }
.section-heading > div { display: contents; }
.section-heading .eyebrow { grid-column: 1; grid-row: 1; }
.section-heading .section-title { grid-column: 1; grid-row: 2; }
.section-heading > p:last-child { grid-column: 2; grid-row: 2; align-self: center; justify-self: end; width: 478px; max-width: 100%; margin: 0; color: #67737a; font-size: 20px; font-weight: 400; line-height: 30px; }
.section--dark .section-heading > p:last-child, .section--ink .section-heading > p:last-child { color: #8f9aa0; }

.button-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.button { min-height: 48px; padding: 12px 22px; display: inline-flex; align-items: center; justify-content: center; gap: 20px; border: 1px solid transparent; border-radius: 999px; font-size: 16px; font-weight: 700; cursor: pointer; transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease; }
.button:hover { transform: translateY(-2px); }
.button--primary { color: var(--ink); background: var(--cyan); }
.button--primary:hover { background: #67e9ff; }
.button--dark { color: var(--white); background: var(--ink); }
.button--dark:hover { color: var(--ink); background: var(--cyan); }
.button--outline { border-color: currentColor; background: transparent; }
.button--outline:hover { color: var(--ink); border-color: var(--cyan); background: var(--cyan); }
.arrow { font-family: var(--font-en); font-size: 1.1em; }
.text-link { display: inline-flex; gap: 12px; align-items: center; min-height: 44px; padding-bottom: 2px; border-bottom: 1px solid; font-size: 16px; font-weight: 400; }
.text-link:hover { color: var(--cyan-deep); }

.home-hero { position: relative; min-height: 720px; overflow: hidden; display: flex; align-items: center; background-color: #ffffff; background-image: url("assets/home-hero-arc.png"); background-repeat: no-repeat; background-position: center top; background-size: 1440px 720px; }
.home-hero::after { content: none; }
.hero-grid { position: relative; z-index: 1; width: min(var(--page), calc(100% - 48px)); padding: 0; display: grid; grid-template-columns: minmax(0, 642px) 374px; justify-content: space-between; gap: 48px; align-items: end; }
.hero-en { margin: 22px 0 0; font-size: 20px; font-weight: 400; letter-spacing: 0; line-height: 30px; }
.hero-copy { max-width: 760px; margin-top: 32px; color: #12171b; font-size: 20px; font-weight: 400; line-height: 30px; }
.hero-aside { position: relative; width: 374px; margin-bottom: 84px; padding: 0; border: 0; }
.hero-aside::before { content: ""; position: absolute; top: 50%; left: -28px; width: 1px; height: 253px; background: #c5d0d4; transform: translateY(-50%); }
.hero-aside strong { display: block; margin-top: 10px; color: #12171b; font-family: var(--font-en); font-size: 80px; font-weight: 800; line-height: 1; letter-spacing: 0; }
.hero-aside p:not(.eyebrow) { margin: 18px 0 0; color: #67737a; font-size: 20px; font-weight: 400; line-height: 30px; }
.dark-hero { position: relative; overflow: hidden; padding: 124px 0 96px; color: var(--white); background: var(--ink); }
.dark-hero::before { content: ""; position: absolute; top: 0; right: 25%; bottom: 0; width: 1px; background: rgba(255,255,255,0.045); box-shadow: 25vw 0 0 rgba(255,255,255,0.045), -25vw 0 0 rgba(255,255,255,0.045); }
.dark-hero .container { position: relative; }
.light-hero { padding: 104px 0 82px; background: #f4fbfd; }
.container.page-intro-grid { display: grid; grid-template-columns: minmax(0, 701px) minmax(0, 478px); justify-content: space-between; align-items: center; column-gap: 21px; width: min(1200px, calc(100% - 48px)); margin-inline: auto; }
.page-intro-grid .page-title { max-width: 701px; }
.page-intro-grid .lead { width: 478px; max-width: 100%; margin: 0; justify-self: end; font-size: 20px; font-weight: 400; line-height: 30px; }
.light-hero .lead { color: #12171b; }

.brand-poster { position: relative; min-width: 0; width: 100%; overflow: hidden; aspect-ratio: 16 / 9; border: 1px solid #354047; border-radius: var(--radius); color: var(--white); background: var(--dark); }
.brand-poster--vertical { width: 100%; max-width: 394px; max-height: none; aspect-ratio: 9 / 16; justify-self: center; }
.brand-poster img { width: 100%; height: 100%; object-fit: cover; opacity: 0.64; }
.brand-poster::after { content: ""; position: absolute; inset: 0; background: rgba(18, 23, 27, 0.34); }
.brand-poster__copy { position: absolute; z-index: 1; inset: 0; padding: clamp(24px, 5vw, 64px); display: flex; flex-direction: column; justify-content: space-between; }
.poster-label { align-self: flex-start; padding: 0; border: 0; color: #ffffff; font-size: 20px; font-weight: 400; letter-spacing: 0; line-height: 20px; }
.brand-poster h2, .brand-poster h3 { max-width: 720px; margin: auto 0 6px; color: #f5fbff; font-family: var(--font-en); font-size: 64px; font-weight: 800; line-height: 1; letter-spacing: 0; }
.brand-poster p { margin: 0; color: #ffffff; font-size: 20px; font-weight: 400; line-height: 20px; }
.video-showcase { display: grid; grid-template-columns: 872fr 283fr; gap: 47px; align-items: stretch; }
.video-showcase .brand-poster,
.video-showcase .brand-poster--vertical { width: 100%; max-width: none; height: 503px; aspect-ratio: auto; justify-self: stretch; }
.video-showcase .brand-poster--vertical img { object-position: center center; }
.video-showcase .brand-poster__copy { justify-content: flex-end; padding: 40px; }
.video-showcase .brand-poster--vertical .brand-poster__copy { padding: 40px 20px; }
.video-showcase .brand-poster h3 { max-width: 100%; font-size: 56px; line-height: 56px; white-space: normal; }
.video-showcase .brand-poster--vertical h3 { max-width: 246px; }

.ticker { height: 56px; overflow: hidden; display: flex; align-items: center; border-block: 1px solid var(--line); white-space: nowrap; }
.ticker-track { width: max-content; color: #027f9b; font-family: var(--font-en); font-size: 20px; font-weight: 700; line-height: 20px; letter-spacing: 0; animation: ticker 28s linear infinite; }
@keyframes ticker { to { transform: translateX(-50%); } }
.channel-band { padding: 28px 0; border-block: 1px solid var(--line); background: var(--white); }
.channel-band .container { display: flex; align-items: center; gap: 24px; }
.channel-band .eyebrow { flex: 0 0 auto; }
.channel-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.channel-tags span { padding: 7px 11px; border: 1px solid var(--line); border-radius: 999px; color: #151716; font-size: 16px; font-weight: 700; line-height: 30px; }
.section--dark .channel-tags span, .section--ink .channel-tags span { border-color: #4a565d; }

.summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.summary-card { min-height: 300px; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); transition: transform 0.24s ease, border-color 0.24s ease; }
.summary-card:hover { transform: none; border-color: #d6e0e3; }
.step-grid { gap: 40px; }
.step-grid .summary-card { min-height: 252px; padding: 12px 20px 24px; border: 1px solid #d6e0e3; border-radius: 10px; background: #ffffff; box-sizing: border-box; }
.step-grid .summary-card:hover { transform: none; border-color: #d6e0e3; background: #ffffff; }
.lead-grid .summary-card { background: #ffffff; border: 1px solid #e3ecef; border-radius: 10px; }
.lead-grid .summary-card:hover,
.lead-grid .summary-card:focus-within { transform: none; background: #f4fbfd; border-color: #d5e4e8; }
.summary-card__no { color: #027f9b; font-size: 16px; font-weight: 700; line-height: 30px; }
.summary-grid--index .summary-card__no { color: #cce5ea; font-size: clamp(56px, 6vw, 96px); font-weight: 700; letter-spacing: -0.04em; line-height: 1; }
.summary-grid--index .summary-card h3 { margin-top: 16px; }
.summary-card h3 { margin: 28px 0 16px; color: #12171b; font-size: 24px; font-weight: 700; line-height: 30px; }
.summary-card p { margin: 0; color: #8f9aa0; font-size: 16px; font-weight: 400; line-height: 24px; }
.summary-card .text-link { margin-top: 28px; }
.image-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.visual-card { position: relative; overflow: hidden; aspect-ratio: 16 / 9; min-height: 0; border-radius: var(--radius); background: var(--dark); }
.visual-card:nth-child(n) { grid-column: auto; }
.visual-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 0.45s ease; }
.visual-card:hover img { transform: scale(1.03); }
.visual-card__caption { position: absolute; right: 16px; bottom: 16px; left: 16px; padding: 18px; border: 1px solid rgba(255,255,255,0.24); border-radius: 12px; color: var(--white); background: rgba(17, 20, 23, 0.76); backdrop-filter: blur(10px); }
.visual-card__caption small { color: #00d4ff; font-family: var(--font-en); font-size: 20px; font-weight: 700; letter-spacing: 0; line-height: 20px; }
.visual-card__caption h3 { margin: 5px 0 0; color: #ffffff; font-size: 20px; font-weight: 700; line-height: 20px; }
.egp-teaser { position: relative; padding: 64px; overflow: hidden; border-radius: 24px; color: var(--white); background: var(--dark); }
.egp-teaser::after { content: "EGP"; position: absolute; right: -12px; bottom: -56px; color: rgba(255,255,255,0.045); font-family: var(--font-en); font-size: 210px; font-weight: 800; line-height: 1; }
.egp-teaser > * { position: relative; z-index: 1; }
.egp-teaser .eyebrow { color: #8f9aa0; font-weight: 700; }
.egp-teaser p:not(.eyebrow) { max-width: 700px; color: #8f9aa0; font-size: 20px; font-weight: 400; line-height: 30px; }
.egp-teaser .pill-list li { color: #ffffff; font-size: 16px; font-weight: 400; }
.split-cta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cta-panel { min-height: 460px; padding: 120px 34px 80px; display: flex; flex-direction: column; justify-content: space-between; color: var(--white); background: var(--dark); min-width: 0; }
.split-cta .cta-panel:first-child { padding-left: var(--content-inset, 120px); padding-right: 34px; }
.split-cta .cta-panel:last-child { padding-left: 24px; padding-right: 32px; }
.split-cta .cta-panel { align-items: flex-start; text-align: left; }
.split-cta .cta-panel > div,
.split-cta .cta-panel > .text-link { width: min(566px, 100%); max-width: 566px; }
.split-cta .cta-panel:last-child > div,
.split-cta .cta-panel:last-child > .text-link { margin-left: auto; }
.cta-panel + .cta-panel { color: var(--ink); background: var(--cyan); }
.cta-panel .eyebrow { color: #8f9aa0; opacity: 1; font-weight: 700; }
.cta-panel + .cta-panel .eyebrow { color: #1b5060; }
.cta-panel h2 { margin: 16px 0; font-size: 56px; font-weight: 800; line-height: 72px; white-space: nowrap; text-wrap: nowrap; word-break: keep-all; }
.cta-panel p:not(.eyebrow) { width: auto; max-width: 100%; margin: 0; font-size: 20px; font-weight: 400; line-height: 30px; }
.cta-panel .text-link { align-self: flex-start; margin-top: 36px; font-size: 20px; font-weight: 400; line-height: 30px; }

.service-groups { display: grid; border-top: 1px solid var(--line); }
.service-group { display: grid; grid-template-columns: 72px 374px minmax(0, 680px); column-gap: 37px; align-items: start; padding: 40px 0; border-bottom: 1px solid var(--line); }
.service-group__no { color: #027f9b; font-size: 32px; font-weight: 800; line-height: 72px; }
.service-group h2 { margin: 0; max-width: 374px; font-size: 54px; font-weight: 800; line-height: 72px; }
.service-group p { margin: 0 0 16px; max-width: 680px; color: #67737a; font-size: 20px; font-weight: 400; line-height: 30px; }
.pill-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pill-list li { padding: 7px 11px; border: 1px solid var(--line); border-radius: 999px; color: #151716; font-size: 16px; font-weight: 400; line-height: 30px; }
.advantages { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid #414b50; }
.advantage { min-height: 0; padding: 36px 40px 40px; border-right: 1px solid #414b50; border-bottom: 1px solid #414b50; background: transparent; }
.advantage:nth-child(2n) { border-right: 0; }
.advantage:nth-last-child(-n+2) { border-bottom: 0; }
.advantage__icon { display: inline-flex; align-items: center; justify-content: center; min-width: 88px; height: 56px; padding: 0 18px; border: 1px solid #3e4c52; border-radius: 12px; color: #00d4ff; font-family: var(--font-en); font-size: 32px; font-weight: 700; line-height: 1; }
.advantage h3 { margin: 24px 0 12px; font-size: 24px; font-weight: 700; line-height: 30px; }
.advantage p { margin: 0; color: #8f9aa0; font-size: 16px; font-weight: 400; line-height: 30px; }

.case-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.case-card { overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: var(--white); transition: transform 0.24s ease, border-color 0.24s ease; }
.case-card:hover { transform: translateY(-4px); border-color: #aac1c8; }
.case-card[hidden] { display: none; }
.case-media { position: relative; overflow: hidden; height: auto; padding: 10px 10px 0; background: var(--white); }
.case-media.is-vertical { display: flex; justify-content: center; max-height: none; margin: 0; }
.case-media img { width: 100%; height: 323px; border-radius: 10px; object-fit: cover; object-position: center; transition: transform 0.45s ease; }
.case-media video { display: block; width: 100%; height: auto; aspect-ratio: 1922 / 1080; object-fit: contain; background: #111417; }
.case-frame { position: relative; overflow: hidden; border-radius: 12px; clip-path: inset(0 round 12px); transform: translateZ(0); isolation: isolate; }
.case-media.is-vertical img { width: 208px; height: 360px; }
.case-media img.crop-apparel { object-position: 16% 32%; }
.case-media img.crop-wellness { object-position: 32% 42%; }
.case-media img.crop-drama { object-position: 50% 40%; }
.case-card:hover img:not(.case-cover) { transform: scale(1.025); }
.case-player:not(.is-playing) video { visibility: hidden; }
.case-player .case-cover { position: absolute; top: 10px; right: 10px; left: 10px; width: auto; height: auto; aspect-ratio: 1922 / 1080; border-radius: 10px; object-fit: cover; cursor: pointer; }
.case-frame .case-cover { inset: 0; top: 0; right: 0; bottom: 0; left: 0; z-index: 1; width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; }
.case-play { position: absolute; top: 10px; right: 10px; bottom: auto; left: 10px; aspect-ratio: 1922 / 1080; height: auto; padding: 0; border: 0; background: transparent; cursor: pointer; }
.case-frame .case-play { inset: 0; top: 0; right: 0; bottom: 0; left: 0; z-index: 2; width: 100%; height: 100%; aspect-ratio: auto; }
.case-play span { position: absolute; left: 50%; top: 50%; width: 68px; height: 68px; display: grid; place-items: center; border-radius: 50%; background: rgba(18, 23, 27, 0.72); transform: translate(-50%, -50%); }
.case-play span::before { content: ""; display: block; width: 0; height: 0; margin-left: 4px; border-style: solid; border-width: 10px 0 10px 16px; border-color: transparent transparent transparent #fff; }
.case-player.is-playing .case-cover,
.case-player.is-playing .case-play { display: none; }
.brand-film video { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; border-radius: inherit; background: #111417; }
.brand-film .case-cover { inset: 0; top: 0; right: 0; left: 0; width: 100%; height: 100%; aspect-ratio: auto; opacity: 0.64; }
.brand-film .case-play { z-index: 3; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; }
.brand-film .case-play span { width: 100px; height: 100px; background: transparent; border: 1px solid #fff; opacity: 0.9; }
.brand-film .case-play span::before { border-width: 13px 0 13px 22px; margin-left: 6px; }
.brand-film::after,
.brand-film .brand-poster__copy { pointer-events: none; }
.brand-film.is-playing::after,
.brand-film.is-playing .brand-poster__copy { display: none; }
.ratio-badge { position: absolute; top: 20px; right: 20px; width: 80px; height: 40px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border-radius: 10px; color: #ffffff; background: rgba(17,20,23,0.8); font-size: 16px; font-weight: 700; line-height: 24px; }
.case-body { padding: 28px; }
.case-category { margin: 0; color: var(--cyan-deep); font-size: 16px; font-weight: 700; letter-spacing: 0.04em; }
.case-body h2 { margin: 8px 0 20px; font-size: 24px; font-weight: 700; line-height: 1.45; }
.case-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; margin: 0; }
.case-specs div { min-width: 0; padding-top: 10px; border-top: 1px solid var(--mist); }
.case-specs dt { color: #65737a; font-size: 14px; font-weight: 400; }
.case-specs dd { margin: 3px 0 0; font-size: 16px; font-weight: 700; }
.channel-marquee { grid-column: 1 / -1; max-width: 100%; margin: 42px 0; overflow: hidden; border-block: 1px solid var(--line); background: var(--ink); color: var(--white); }
.channel-marquee__track { width: max-content; display: flex; animation: channel-scroll 32s linear infinite; }
.channel-marquee__group { display: flex; flex: none; }
.marquee-item { min-width: 300px; padding: 25px 34px; display: flex; align-items: baseline; gap: 12px; border-right: 1px solid #39444a; }
.platform-wordmark { color: #00d4ff; font-size: 20px; font-weight: 700; letter-spacing: 0; line-height: 30px; }
.marquee-item { gap: 11px; }
.marquee-item small { color: #67737a; font-size: 16px; font-weight: 400; line-height: 30px; white-space: nowrap; }
@keyframes channel-scroll { to { transform: translateX(-50%); } }
.platform-strip { padding: 0; border: 0; background: #12171b; }
.platform-strip__inner { min-height: 100px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; align-items: center; }
.platform-strip .platform-wordmark { min-height: 100px; padding: 0; display: flex; align-items: center; justify-content: center; gap: 10px; color: #8f9aa0; border: 0; font-size: 20px; font-weight: 700; text-align: center; }
.platform-strip svg { display: block; flex: none; }

.price-hero { padding: 104px 0; color: var(--white); background: var(--ink); }
.price-intro { display: grid; grid-template-columns: minmax(0, 701px) minmax(0, 478px); justify-content: space-between; align-items: center; column-gap: 21px; }
.price-intro-note { width: min(478px, 100%); color: #c7d0d5; font-size: 20px; font-weight: 400; line-height: 30px; }
.price-intro-note p { margin: 0; }
.price-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; align-items: start; margin-top: 64px; }
.price-card { position: relative; min-height: 370px; padding: 40px 20px 24px; display: flex; flex-direction: column; border: 0; border-radius: 20px; color: #ffffff; background: #171c20; }
.price-card.is-featured { color: #12171b; background: #00d4ff; transform: translateY(-30px); }
.price-card h2 { margin: 0; font-size: 32px; font-weight: 700; line-height: 30px; }
.price-card .cuts { margin: 14px 0 0; color: #8f9aa0; font-size: 16px; font-weight: 400; line-height: 24px; }
.price-card.is-featured .cuts,
.price-card.is-featured .price-tax { color: #12171b; }
.price-value { margin: 27px 0 0; font-family: var(--font-en); font-size: 46px; font-weight: 700; line-height: 42px; letter-spacing: 0; }
.price-value small { margin-left: 0; font-family: var(--font-ja); font-size: 24px; font-weight: 400; line-height: 30px; vertical-align: 4px; }
.price-tax { margin: 27px 0 0; color: #8f9aa0; font-size: 16px; font-weight: 400; line-height: 24px; }
.use-list { margin: 31px 0 0; padding: 16px 0 0; border-top: 1px solid rgba(255,255,255,0.28); list-style: none; font-size: 16px; font-weight: 400; line-height: 24px; }
.use-list li + li { margin-top: 0; }
.price-card.is-featured .use-list { border-color: rgba(18,23,27,0.28); }
.price-highlights { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.price-highlight { padding: 24px; border: 1px solid #3e484f; border-radius: 14px; }
.price-highlight strong { display: block; color: var(--cyan); font-size: 21px; }
.price-highlight p { margin: 6px 0 0; color: #afbbc0; font-size: 12px; }
.menu-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.menu-card { padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); }
.menu-card h3 { margin: 0 0 18px; font-size: 22px; }
.menu-card ul, .menu-card ol { margin: 0; padding-left: 1.25em; color: var(--muted); }
.menu-card li + li { margin-top: 8px; }
.notice-box { padding: 24px; border-left: 4px solid #00d4ff; background: #f4fbfd; }
.notice-box p { margin: 0; }
.notice-box p + p { margin-top: 8px; }
.pricing-notes { padding: 58px 0; }
.pricing-notes .section-heading { margin-bottom: 22px; }
.pricing-notes .eyebrow { font-size: 9px; }
.pricing-notes .section-title { font-size: clamp(22px, 2.7vw, 34px); }
.pricing-notes .notice-box { padding: 18px 20px; border: 1px solid var(--line); border-left-width: 1px; color: var(--muted); background: #fbfcfc; font-size: 12px; line-height: 1.75; }
.pricing-notes .button-row { margin-top: 24px; }

.flow-diagram { display: grid; grid-template-columns: repeat(6, minmax(0, 180px)); justify-content: space-between; gap: 24px; margin-top: 56px; }
.flow-node { position: relative; min-height: 207px; padding: 20px 16px; border: 1px solid #3e4c52; border-radius: 12px; background: transparent; }
.flow-node:not(:last-child)::after { content: ""; position: absolute; z-index: 2; top: 50%; right: -27px; width: 30px; height: 30px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath d='M0 17L15 0L30 17L24 17L24 30L6 30L6 17L0 17Z' fill='%2300D4FF' transform='matrix(0,1,-1,0,30,0)'/%3E%3C/svg%3E") center / 30px 30px no-repeat; transform: translateY(-50%); }
.flow-node small { color: #00d4ff; font-family: var(--font-en); font-size: 16px; font-weight: 700; letter-spacing: 0; }
.flow-node h2 { margin: 16px 0 10px; color: #ffffff; font-size: 24px; font-weight: 700; line-height: 30px; }
.flow-node p { margin: 0; color: #8f9aa0; font-size: 14px; font-weight: 400; line-height: 22px; }
.capability-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 41px; }
.capability { min-height: 290px; padding: 50px 20px 28px; border: 1px solid var(--line); border-radius: 16px; background: #ffffff; }
.capability__no { color: #cce5ea; font-size: 96px; font-weight: 700; line-height: 1; }
.capability h3 { margin: 24px 0 16px; color: #12171b; font-size: 24px; font-weight: 700; line-height: 30px; }
.capability p { margin: 0; color: #8f9aa0; font-size: 16px; font-weight: 400; line-height: 24px; }
.dark-hero.services-hero { min-height: 640px; background-color: #12171b; background-image: url("assets/services-hero-mask.png?v=3"); background-repeat: no-repeat; background-position: center top; background-size: 1440px 640px; }
.dark-hero.services-hero::before,
.dark-hero.services-hero::after { content: none; }
.dark-hero.services-hero .container { position: relative; z-index: 1; }
.dark-hero.egp-hero { min-height: 750px; background-color: #12171b; background-image: url("assets/egp-hero-mask.png"); background-repeat: no-repeat; background-position: center top; background-size: 1440px 750px; }
.dark-hero.egp-hero::before,
.dark-hero.egp-hero::after { content: none; }
.dark-hero.egp-hero .container { position: relative; z-index: 1; }
.egp-hero .lead { color: #ffffff; }
.egp-points { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 0; padding: 0; list-style: none; }
.egp-points li { height: 40px; padding: 5px 16px; border: 1px solid #d5dfe2; border-radius: 20px; color: #ffffff; font-size: 16px; font-weight: 400; line-height: 30px; }
.egp-hero .button-row { margin-top: 24px; }
.egp-hero .button { min-height: 56px; padding: 13px 15px; gap: 8px; border-radius: 28px; }
.egp-hero .button svg { display: block; flex: none; }
.architecture { padding: 8px 0 0; border-radius: 0; background: transparent; }
.architecture-row { position: relative; display: grid; grid-template-columns: 269px minmax(0, 1fr); column-gap: 39px; align-items: start; min-height: 110px; padding: 0; border: 0; }
.architecture-row:not(:last-child)::after { content: ""; position: absolute; left: 0; top: 70px; width: 100%; height: 0; border-top: 1px solid rgba(213, 223, 226, 1); pointer-events: none; }
.architecture-row h3 { margin: 0; color: #12171b; font-family: var(--font-en); font-size: 20px; font-weight: 700; line-height: 30px; }
.architecture-row p { margin: 0; color: #8f9aa0; font-size: 20px; font-weight: 400; line-height: 30px; }

.dark-hero.about-hero { min-height: 560px; padding: 120px 0; background-color: #12171b; background-image: url("assets/about-hero-grid.png"); background-repeat: no-repeat; background-position: center top; background-size: 1440px 560px; }
.dark-hero.about-hero::before, .dark-hero.about-hero::after { content: none; }
.about-hero .display { margin-top: 20px; font-size: 100px; font-weight: 800; line-height: 120px; letter-spacing: 0; }
.about-hero .hero-en { margin-top: 20px; color: #ffffff; }
.about-company, .about-role, .about-why, .about-profile { padding: 120px 0; }
.about-intro { display: grid; grid-template-columns: 476px minmax(0, 1fr); column-gap: 40px; align-items: center; }
.about-media { position: relative; width: 476px; height: 540px; min-height: 540px; overflow: hidden; border-radius: 20px; background: #f6fafb; }
.about-media > img:not(.about-media__logo) { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center center; }
.about-media__logo { position: absolute; top: 57px; left: 56px; width: 268px; height: 38px; max-width: none; object-fit: fill; }
.about-copy { display: flex; flex-direction: column; justify-content: center; }
.about-copy .section-title { margin-top: 20px; line-height: 72px; letter-spacing: 0; }
.about-copy .statement { max-width: 683px; margin: 20px 0 0; color: #12171b; font-size: 20px; font-weight: 400; line-height: 30px; letter-spacing: 0; }
.role-grid .capability { border: 1px solid #d6e0e3; border-radius: 10px; }
.role-grid .capability__no { color: #cce5ea; }
.reasons-intro { max-width: 701px; margin-bottom: 50px; }
.reasons-intro .section-title { margin-top: 20px; line-height: 72px; letter-spacing: 0; }
.reasons-intro p:last-child { max-width: 478px; margin: 30px 0 0; color: #67737a; font-size: 20px; font-weight: 400; line-height: 30px; }
.reason-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #d5dfe2; border-bottom: 1px solid #d5dfe2; }
.reason-card { padding: 30px 20px 48px; border-right: 1px solid #d5dfe2; }
.reason-card:last-child { border-right: 0; }
.reason-card .eyebrow { min-height: 0; color: #8f9aa0; font-size: 18px; font-weight: 700; line-height: 30px; text-transform: none; }
.reason-card h3 { min-height: 60px; margin: 33px 0 10px; color: #12171b; font-size: 20px; font-weight: 700; line-height: 30px; }
.reason-card p { margin: 0; color: #8f9aa0; font-size: 16px; font-weight: 400; line-height: 24px; }
.about-profile .section-heading { margin-bottom: 40px; }
.company-table { width: 100%; border-collapse: collapse; }
.company-table th, .company-table td { padding: 40px 0; border-bottom: 1px solid #d5dfe2; text-align: left; vertical-align: top; font-size: 20px; line-height: 30px; }
.company-table th { width: 308px; padding-right: 39px; color: #8f9aa0; font-weight: 400; }
.company-table td { color: #12171b; font-weight: 700; }

.contact-hero { min-height: 560px; padding: 140px 0 80px; background: #f6fafb; }
.contact-hero .eyebrow { color: #00d4ff; }
.contact-hero .page-title { margin-top: 10px; color: #12171b; font-size: 100px; font-weight: 800; line-height: 120px; letter-spacing: 0; }
.contact-hero .page-intro-grid { align-items: start; }
.contact-hero .page-intro-grid > div:last-child { padding-top: 74px; }
.contact-hero .lead,
.contact-hero .page-intro-grid > div:last-child p { width: 478px; max-width: 100%; color: #8f9aa0; font-weight: 400; }
.contact-hero .lead { font-size: 20px; line-height: 28px; }
.contact-hero .page-intro-grid > div:last-child p:last-child { margin: 20px 0 0; font-size: 16px; line-height: 28px; }
.contact-channels { padding: 38px 0; border-block: 1px solid #d5dfe2; background: #ffffff; }
.contact-channels .container { gap: 40px; }
.contact-channels .channel-tags { gap: 12px; }
.contact-channels .channel-tags span { height: 40px; padding: 5px 16px; border: 1px solid #d5dfe2; border-radius: 20px; color: #12171b; font-size: 16px; font-weight: 700; line-height: 30px; }
.contact-section { padding: 80px 0 120px; background: #f6fafb; }
.contact-layout { display: grid; grid-template-columns: 478px 683px; column-gap: 38px; justify-content: space-between; align-items: start; }
.contact-aside { position: static; }
.contact-aside .sub-title { margin-top: 20px; color: #12171b; font-size: 64px; font-weight: 800; line-height: 72px; letter-spacing: 0; }
.contact-aside .eyebrow { color: #027f9b; font-weight: 700; }
.contact-aside p:not(.eyebrow) { margin: 30px 0 0; color: #67737a; font-size: 20px; font-weight: 400; line-height: 30px; }
.contact-aside p:last-child { color: #8f9aa0; }
.contact-aside strong { color: #12171b; font-size: 20px; font-weight: 700; }
.contact-aside a { color: #8f9aa0; font-weight: 400; }
.contact-form { min-width: 0; padding: 39px 40px 40px; border: 1px solid #d6e0e3; border-radius: 10px; background: #ffffff; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.form-field { min-width: 0; display: grid; gap: 10px; }
.form-field--full { grid-column: 1 / -1; }
.form-field label, .form-label { color: #12171b; font-size: 16px; font-weight: 400; line-height: 14px; }
.required { margin-left: 8px; color: #027f9b; font-size: 12px; font-weight: 500; }
.optional { display: inline-block; margin-left: 8px; padding: 1px 3px; border-radius: 2px; background: #e8eff1; color: #65737a; font-size: 10px; font-weight: 500; line-height: 12px; vertical-align: 1px; }
.form-field input, .form-field select, .form-field textarea { width: 100%; min-width: 0; min-height: 56px; padding: 13px 16px; border: 1px solid #d6e0e3; border-radius: 10px; color: var(--ink); background: var(--white); }
.form-field select { appearance: none; padding: 13px 40px 13px 20px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M15.545 7.35356L9.5957 13.3026L3.64645 7.35356L4.35355 6.64644L9.94925 12.2419L9.5957 12.5955L9.24216 12.2419L14.8379 6.64644L15.545 7.35356Z' fill='%2312171B'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 20px center; background-size: 20px 20px; }
.form-field textarea { height: 180px; min-height: 180px; max-height: 180px; resize: none; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--cyan-deep); box-shadow: 0 0 0 4px rgba(0,212,255,.12); outline: 0; }
.form-field .check-field { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 10px; width: 100%; min-height: 24px; font-size: 16px; font-weight: 400; line-height: 24px; text-align: left; }
.form-field .check-field input { appearance: none; width: 18px; height: 18px; min-width: 18px; min-height: 18px; margin: 0; padding: 0; border: 1px solid #d6e0e3; border-radius: 4px; box-shadow: none; flex: 0 0 18px; background-color: #ffffff; background-repeat: no-repeat; background-position: center; background-size: 12px 12px; }
.form-field .check-field input:checked { background-color: rgba(0, 212, 255, 1); border-color: rgba(0, 212, 255, 1); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.2L4.6 8.8L10 3.2' fill='none' stroke='%2312171B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.form-note { color: var(--muted); font-size: 12px; }
.summary-output { margin-top: 28px; padding: 24px; border: 1px solid var(--cyan); border-radius: 12px; background: var(--ice); }
.summary-output pre { margin: 0; white-space: pre-wrap; font-family: var(--font-ja); font-size: 13px; line-height: 1.8; }
.summary-output .button-row { margin-top: 18px; }
.toast { position: fixed; z-index: 300; right: max(22px, env(safe-area-inset-right)); bottom: max(22px, env(safe-area-inset-bottom)); padding: 12px 17px; border-radius: 10px; color: var(--white); background: var(--ink); opacity: 0; transform: translateY(12px); pointer-events: none; transition: .2s ease; }
.toast.is-visible { opacity: 1; transform: translateY(0); }

.site-footer { padding: 72px 0 0; color: #d4dde0; background: var(--dark-2); }
.footer-main { display: grid; grid-template-columns: 1fr 1.1fr; gap: 68px; padding-bottom: 48px; }
.footer-logo { width: 148px; filter: invert(1) grayscale(1) brightness(3); }
.footer-slogan { margin: 26px 0 0; color: #ffffff; font-size: 32px; font-weight: 400; letter-spacing: 0; line-height: 30px; }
.footer-en { margin: 2px 0 0; color: #666666; font-size: 20px; font-weight: 300; line-height: 30px; letter-spacing: 0; text-transform: none; }
.footer-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 28px; align-content: start; }
.footer-nav a { min-height: 44px; padding: 9px 0; border-bottom: 1px solid #394247; color: #ffffff; font-size: 16px; font-weight: 400; line-height: 30px; }
.footer-nav a:hover { color: var(--cyan); }
.footer-legal { padding: 18px 0 max(20px, env(safe-area-inset-bottom)); color: #77848a; background: #121619; }
.footer-legal__inner { display: flex; justify-content: space-between; gap: 24px; align-items: center; }
.legal-list { display: flex; flex-wrap: wrap; gap: 8px 22px; color: #666666; font-size: 16px; font-weight: 400; }
.legal-item { white-space: nowrap; }
.copyright { color: #666666; font-size: 16px; font-weight: 400; letter-spacing: 0; line-height: 30px; white-space: nowrap; }

.reveal { opacity: 0; transform: translateY(20px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
.price-card.is-featured.reveal,
.price-card.is-featured.reveal.is-visible { transform: translateY(-30px); }
@keyframes price-float {
  0%, 100% { transform: translateY(-30px); }
  50% { transform: translateY(-4px); }
}
.price-card.is-featured.reveal.is-visible { animation: price-float 3.4s ease-in-out infinite; }

@media (max-width: 1200px) {html:not(.design-fit) { --section: 92px; }html:not(.design-fit) .header-inner { width: calc(100% - 48px); gap: 14px; }html:not(.design-fit) .brand-lockup { gap: 8px; }html:not(.design-fit) .logo img { width: 150px; height: 28px; }html:not(.design-fit) .brand-slogan { padding-left: 14px; font-size: 16px; letter-spacing: 0; }html:not(.design-fit) .main-nav { gap: 10px; }html:not(.design-fit) .main-nav a { font-size: 12px; font-weight: 400; }html:not(.design-fit) .advantages { grid-template-columns: repeat(2, minmax(0, 1fr)); }html:not(.design-fit) .advantage:nth-child(2) { border-right: 0; }html:not(.design-fit) .advantage:nth-child(-n+2) { border-bottom: 1px solid #414b50; }html:not(.design-fit) .flow-diagram { grid-template-columns: repeat(3, minmax(0, 1fr)); }html:not(.design-fit) .flow-node:nth-child(3)::after { display: none; }
}

@media (max-width: 940px) {html:not(.design-fit) { --gutter: 24px; }html:not(.design-fit) .site-header { min-height: calc(72px + env(safe-area-inset-top)); }html:not(.design-fit) .header-inner { min-height: 72px; width: calc(100% - 32px); }html:not(.design-fit) .logo img { width: 132px; height: auto; }html:not(.design-fit) .hero-grid, html:not(.design-fit) .home-hero { min-height: 0; }html:not(.design-fit) .home-hero { min-height: auto; padding: 48px 0; }html:not(.design-fit) .hero-grid { width: min(100% - 48px, 1200px); grid-template-columns: 1fr; }html:not(.design-fit) .hero-aside { width: auto; }html:not(.design-fit) .hero-aside::before { display: none; }html:not(.design-fit) .brand-slogan { font-size: 16px; }html:not(.design-fit) .menu-toggle { display: block; }html:not(.design-fit) .main-nav { position: fixed; z-index: 110; top: calc(72px + env(safe-area-inset-top)); right: 0; bottom: 0; left: 0; max-height: calc(100dvh - 72px - env(safe-area-inset-top)); margin: 0; padding: 16px 24px max(28px, env(safe-area-inset-bottom)); display: none; flex-direction: column; align-items: stretch; overflow-y: auto; overscroll-behavior: contain; color: var(--white); background: rgba(23, 28, 32, .99); }html:not(.design-fit) .main-nav.is-open { display: flex; }html:not(.design-fit) .main-nav a { min-height: 52px; padding: 13px 0; border-bottom: 1px solid #414b50; font-size: 15px; }html:not(.design-fit) .main-nav a::after { display: none; }html:not(.design-fit) .main-nav a[aria-current="page"] { color: var(--cyan); }html:not(.design-fit) .hero-grid, html:not(.design-fit) .page-intro-grid, html:not(.design-fit) .price-intro, html:not(.design-fit) .contact-layout { grid-template-columns: 1fr; gap: 44px; }html:not(.design-fit) .home-hero { min-height: auto; }html:not(.design-fit) .hero-aside { max-width: 520px; padding-left: 24px; }html:not(.design-fit) .section-heading { grid-template-columns: 1fr; gap: 20px; }html:not(.design-fit) .section-heading { grid-template-columns: 1fr; }html:not(.design-fit) .section-heading .eyebrow, html:not(.design-fit) .section-heading .section-title, html:not(.design-fit) .section-heading > p:last-child { grid-column: 1; grid-row: auto; width: auto; justify-self: start; }html:not(.design-fit) .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }html:not(.design-fit) .summary-card:last-child { grid-column: 1 / -1; }html:not(.design-fit) .image-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }html:not(.design-fit) .visual-card:nth-child(n) { grid-column: auto; }html:not(.design-fit) .service-group { grid-template-columns: 60px minmax(0, 1fr); }html:not(.design-fit) .service-group > div:last-child { grid-column: 2; }html:not(.design-fit) .price-grid { grid-template-columns: 1fr; }html:not(.design-fit) .price-card { min-height: 330px; }html:not(.design-fit) .price-card.is-featured { transform: none; }html:not(.design-fit) .price-highlights, html:not(.design-fit) .capability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }html:not(.design-fit) .flow-diagram { grid-template-columns: repeat(2, minmax(0, 1fr)); }html:not(.design-fit) .flow-node:nth-child(3)::after { display: block; }html:not(.design-fit) .flow-node:nth-child(even)::after { display: none; }html:not(.design-fit) .contact-aside { position: static; }html:not(.design-fit) .about-intro { grid-template-columns: 1fr; gap: 40px; }html:not(.design-fit) .about-media { min-height: 460px; order: -1; }html:not(.design-fit) .reason-grid { grid-template-columns: 1fr; }html:not(.design-fit) .reason-card { border-right: 0; border-bottom: 1px solid var(--line); }html:not(.design-fit) .reason-card:last-child { border-bottom: 0; }
}

@media (max-width: 640px) {html:not(.design-fit) { --gutter: 16px; --section: 72px; }html:not(.design-fit) body { font-size: 15px; }html:not(.design-fit) .header-inner { width: calc(100% - 24px); }html:not(.design-fit) .brand-lockup { gap: 8px; }html:not(.design-fit) .logo img { width: 112px; }html:not(.design-fit) .brand-slogan { padding-left: 10px; font-size: 13px; letter-spacing: 0; }html:not(.design-fit) .eyebrow { font-size: 14px; }html:not(.design-fit) .display { font-size: clamp(44px, 15.5vw, 72px); }html:not(.design-fit) .page-title { font-size: clamp(40px, 13.5vw, 64px); }html:not(.design-fit) .section-title { font-size: clamp(31px, 10vw, 48px); }html:not(.design-fit) .expo__in { flex-wrap: wrap; }html:not(.design-fit) .expo__in > span { white-space: normal; }html:not(.design-fit) .dark-hero, html:not(.design-fit) .light-hero, html:not(.design-fit) .price-hero { padding: 80px 0 68px; }html:not(.design-fit) .hero-grid { padding: 68px 0 60px; }html:not(.design-fit) .hero-copy { font-size: 16px; line-height: 26px; }html:not(.design-fit) .hero-aside strong { font-size: 56px; }html:not(.design-fit) .brand-poster h2, html:not(.design-fit) .brand-poster h3 { font-size: 36px; }html:not(.design-fit) .footer-slogan { font-size: 24px; letter-spacing: 0; }html:not(.design-fit) .legal-list, html:not(.design-fit) .copyright { font-size: 13px; }html:not(.design-fit) .button { width: 100%; min-height: 48px; }html:not(.design-fit) .button-row { align-items: stretch; }html:not(.design-fit) .channel-band .container { align-items: flex-start; flex-direction: column; gap: 14px; }html:not(.design-fit) .video-showcase, html:not(.design-fit) .summary-grid, html:not(.design-fit) .image-grid, html:not(.design-fit) .case-list, html:not(.design-fit) .menu-grid, html:not(.design-fit) .price-highlights, html:not(.design-fit) .capability-grid, html:not(.design-fit) .split-cta { grid-template-columns: 1fr; }html:not(.design-fit) .summary-card:last-child { grid-column: auto; }html:not(.design-fit) .brand-poster--vertical { max-width: 310px; margin-inline: auto; }html:not(.design-fit) .visual-card { min-height: 0; aspect-ratio: 16 / 9; }html:not(.design-fit) .egp-teaser { padding: 34px 24px; }html:not(.design-fit) .egp-teaser::after { font-size: 116px; }html:not(.design-fit) .cta-panel, html:not(.design-fit) .split-cta .cta-panel:first-child, html:not(.design-fit) .split-cta .cta-panel:last-child { min-height: 290px; padding: 34px 24px; }html:not(.design-fit) .split-cta .cta-panel:last-child > div, html:not(.design-fit) .split-cta .cta-panel:last-child > .text-link { margin-left: 0; width: 100%; }html:not(.design-fit) .service-group { grid-template-columns: 36px minmax(0, 1fr); gap: 14px; }html:not(.design-fit) .advantages { grid-template-columns: 1fr; }html:not(.design-fit) .advantage { border-right: 0; border-bottom: 1px solid #414b50; }html:not(.design-fit) .advantage:last-child { border-bottom: 0; }html:not(.design-fit) .case-body { padding: 22px; }html:not(.design-fit) .case-specs { grid-template-columns: 1fr; }html:not(.design-fit) .channel-marquee { margin-top: 24px; margin-bottom: 24px; }html:not(.design-fit) .marquee-item { min-width: 264px; padding: 22px 24px; }html:not(.design-fit) .platform-strip__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }html:not(.design-fit) .price-card { padding: 26px; }html:not(.design-fit) .flow-diagram { grid-template-columns: 1fr; }html:not(.design-fit) .flow-node:not(:last-child)::after { display: block; content: "↓"; top: auto; right: 50%; bottom: -14px; transform: translateX(50%); }html:not(.design-fit) .architecture { padding: 24px; }html:not(.design-fit) .architecture-row { grid-template-columns: 1fr; gap: 8px; }html:not(.design-fit) .about-media { min-height: 340px; }html:not(.design-fit) .about-media__logo { left: 7%; width: 46%; padding: 12px; }html:not(.design-fit) .about-copy .statement { font-size: 19px; }html:not(.design-fit) .company-table th, html:not(.design-fit) .company-table td { display: block; width: 100%; padding: 14px 8px; }html:not(.design-fit) .company-table th { padding-bottom: 0; border-bottom: 0; }html:not(.design-fit) .contact-form { padding: 24px 18px; }html:not(.design-fit) .form-grid { grid-template-columns: 1fr; }html:not(.design-fit) .form-field--full { grid-column: auto; }html:not(.design-fit) .footer-main { grid-template-columns: 1fr; gap: 42px; }html:not(.design-fit) .footer-nav { grid-template-columns: 1fr; }html:not(.design-fit) .footer-legal__inner { align-items: flex-start; flex-direction: column; gap: 14px; }html:not(.design-fit) .legal-list { flex-direction: column; gap: 6px; }
}

@media (max-width: 360px) {html:not(.design-fit) { --gutter: 14px; }html:not(.design-fit) .header-inner { width: calc(100% - 20px); }html:not(.design-fit) .logo img { width: 102px; }html:not(.design-fit) .brand-slogan { font-size: 12px; }html:not(.design-fit) .menu-toggle { width: 44px; padding-inline: 10px; }html:not(.design-fit) .page-title { font-size: clamp(38px, 13vw, 52px); }html:not(.design-fit) .display { font-size: clamp(42px, 15vw, 58px); }html:not(.design-fit) .section-title { font-size: clamp(29px, 9.5vw, 40px); }html:not(.design-fit) .price-value { font-size: 38px; }html:not(.design-fit) .about-media { min-height: 300px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  .reveal { opacity: 1; transform: none; }
  .price-card.is-featured.reveal,
  .price-card.is-featured.reveal.is-visible { animation: none; transform: translateY(-30px); }
  .channel-marquee { overflow-x: auto; }
  .channel-marquee__track { animation: none; }
  .channel-marquee__group[aria-hidden="true"] { display: none; }
}

/* ---- additions for the merged site ---- */

.display,.page-title,.section-title,.sub-title,.summary-card h3{word-break:auto-phrase;text-wrap:balance}
.split-cta .cta-panel h2{width:max-content;max-width:100%;margin-left:0;margin-right:auto;text-align:left;text-wrap:nowrap;word-break:keep-all;align-self:flex-start}
.summary-grid.even .summary-card:last-child{grid-column:auto}
.summary-grid.even .summary-card{min-height:0}
.io{margin:22px 0 0;padding-top:16px;border-top:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:12.5px}
.io dt{font-family:var(--font-en);font-weight:800;letter-spacing:.12em;font-size:10.5px;color:var(--cyan-deep);padding-top:3px}
.io dd{margin:0}
.section--ink .summary-card,.section--dark .summary-card{color:var(--ink)}
.expo{background:#222222;color:#ffffff;font-size:14px;line-height:1.5}
.expo__in{width:min(var(--page),calc(100% - 48px));margin:auto;padding:9px 0;display:flex;gap:6px 16px;align-items:center;justify-content:center;flex-wrap:nowrap;text-align:center}
.expo b{font-family:var(--font-en);font-size:14px;font-weight:600;letter-spacing:0;color:#00d4ff;white-space:nowrap}
.expo__in > span{white-space:nowrap}
.expo a{color:var(--cyan);font-size:14px;font-weight:600;border-bottom:1px solid currentColor;white-space:nowrap}
.required.optional { display: inline-block; margin-left: 8px; padding: 1px 3px; border-radius: 2px; background: #e8eff1; color: #65737a; font-size: 10px; font-weight: 500; line-height: 12px; vertical-align: 1px; }

/* Phones and tablets: stacked layout. These rules only apply when the
   1440-frame zoom is off (see app.js). */
@media (max-width: 940px) {
  html:not(.design-fit) .home-hero,
  html:not(.design-fit) .dark-hero.services-hero,
  html:not(.design-fit) .dark-hero.egp-hero,
  html:not(.design-fit) .dark-hero.about-hero {
    min-height: 0;
    background-size: cover;
    background-position: center top;
  }
  html:not(.design-fit) .dark-hero,
  html:not(.design-fit) .light-hero,
  html:not(.design-fit) .price-hero,
  html:not(.design-fit) .contact-hero {
    padding: 48px 0 40px;
  }
  html:not(.design-fit) .display,
  html:not(.design-fit) .page-title,
  html:not(.design-fit) .about-hero .display,
  html:not(.design-fit) .contact-hero .page-title {
    font-size: clamp(40px, 11vw, 64px);
    line-height: 1.15;
    letter-spacing: -0.03em;
  }
  html:not(.design-fit) .section-title,
  html:not(.design-fit) .about-copy .section-title,
  html:not(.design-fit) .reasons-intro .section-title {
    font-size: clamp(30px, 8vw, 44px);
    line-height: 1.25;
  }
  html:not(.design-fit) .page-intro-grid .lead,
  html:not(.design-fit) .contact-hero .lead,
  html:not(.design-fit) .contact-hero .page-intro-grid > div:last-child,
  html:not(.design-fit) .contact-hero .page-intro-grid > div:last-child p,
  html:not(.design-fit) .price-intro-note,
  html:not(.design-fit) .section-heading > p:last-child {
    width: auto;
    max-width: none;
    padding-top: 0;
    justify-self: start;
  }
  html:not(.design-fit) .hero-grid { padding: 12px 0 28px; }
  html:not(.design-fit) .home-hero { padding: 20px 0 8px; }
  html:not(.design-fit) .hero-aside { margin-bottom: 0; }
  html:not(.design-fit) .hero-aside strong { font-size: 52px; }
  html:not(.design-fit) .about-media {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    max-height: 480px;
  }
  html:not(.design-fit) .about-media__logo {
    top: 8%;
    left: 7%;
    width: min(220px, 52%);
    height: auto;
  }
  html:not(.design-fit) .service-group {
    grid-template-columns: 36px minmax(0, 1fr);
    column-gap: 12px;
    row-gap: 10px;
    padding: 28px 0;
  }
  html:not(.design-fit) .service-group__no {
    grid-column: 1;
    grid-row: 1;
    font-size: 18px;
    line-height: 1.3;
  }
  html:not(.design-fit) .service-group h2 {
    grid-column: 2;
    grid-row: 1;
    max-width: none;
    margin: 0;
    font-size: clamp(26px, 7vw, 34px);
    line-height: 1.3;
    align-self: center;
  }
  html:not(.design-fit) .service-group > div { grid-column: 1 / -1; grid-row: 2; }
  html:not(.design-fit) .service-group p { font-size: 16px; line-height: 1.7; }
  html:not(.design-fit) .cta-panel,
  html:not(.design-fit) .split-cta .cta-panel:first-child,
  html:not(.design-fit) .split-cta .cta-panel:last-child {
    min-height: 0;
    padding: 40px 24px 32px;
  }
  html:not(.design-fit) .cta-panel h2,
  html:not(.design-fit) .split-cta .cta-panel h2 {
    width: auto;
    max-width: 100%;
    margin: 12px 0;
    font-size: clamp(30px, 8.5vw, 42px);
    line-height: 1.25;
    white-space: normal;
    text-wrap: wrap;
  }
  html:not(.design-fit) .split-cta .cta-panel > div,
  html:not(.design-fit) .split-cta .cta-panel > .text-link,
  html:not(.design-fit) .split-cta .cta-panel:last-child > div,
  html:not(.design-fit) .split-cta .cta-panel:last-child > .text-link {
    width: 100%;
    max-width: none;
    margin-left: 0;
  }
  html:not(.design-fit) .contact-aside .sub-title {
    font-size: clamp(30px, 8.5vw, 42px);
    line-height: 1.25;
  }
  html:not(.design-fit) .video-showcase { gap: 20px; }
  html:not(.design-fit) .video-showcase .brand-poster,
  html:not(.design-fit) .video-showcase .brand-poster--vertical { height: auto; }
  html:not(.design-fit) .video-showcase .brand-poster { aspect-ratio: 16 / 9; }
  html:not(.design-fit) .video-showcase .brand-poster--vertical {
    aspect-ratio: 9 / 16;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    justify-self: stretch;
  }
  html:not(.design-fit) .brand-poster h2,
  html:not(.design-fit) .brand-poster h3,
  html:not(.design-fit) .video-showcase .brand-poster h3 {
    max-width: 100%;
    font-size: clamp(28px, 8vw, 40px);
    line-height: 1.15;
    white-space: normal;
  }
  html:not(.design-fit) .architecture-row {
    min-height: 0;
    padding: 0 0 22px;
    row-gap: 4px;
  }
  html:not(.design-fit) .architecture-row:not(:last-child)::after { top: auto; bottom: 6px; }
  html:not(.design-fit) .architecture-row h3,
  html:not(.design-fit) .architecture-row p { font-size: 16px; line-height: 1.6; }
  html:not(.design-fit) .egp-points li { height: auto; line-height: 1.4; }
  html:not(.design-fit) .capability { min-height: 0; padding: 28px 20px 22px; }
  html:not(.design-fit) .capability__no,
  html:not(.design-fit) .summary-grid--index .summary-card__no { font-size: 48px; }
  html:not(.design-fit) .reason-card h3 { min-height: 0; }
  html:not(.design-fit) .price-card,
  html:not(.design-fit) .price-card.is-featured,
  html:not(.design-fit) .price-card.is-featured.reveal { transform: none; }
  html:not(.design-fit) .price-card.is-featured.reveal.is-visible { animation: price-float-stack 3.4s ease-in-out infinite; }
@keyframes price-float-stack {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-14px); }
}
  html:not(.design-fit) .price-value { font-size: 40px; }
  html:not(.design-fit) .form-field .check-field { align-items: flex-start; }
  html:not(.design-fit) .form-field .check-field span { min-width: 0; }
  html:not(.design-fit) .channel-band .container,
  html:not(.design-fit) .contact-channels .container { align-items: flex-start; flex-direction: column; gap: 12px; }
  html:not(.design-fit) .platform-strip__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 0;
  }
  html:not(.design-fit) .platform-strip .platform-wordmark {
    min-height: 96px;
    height: 100%;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    padding: 16px 8px;
    font-size: 13px;
    line-height: 1.2;
    white-space: nowrap;
    text-align: center;
  }
  html:not(.design-fit) .platform-strip svg { width: 28px; height: 28px; }
  html:not(.design-fit) .flow-diagram { gap: 28px 16px; }
  /* Header uses backdrop-filter, which traps position:fixed. Anchor the
     drawer to the header's bottom edge so it covers the page. */
  html:not(.design-fit) .main-nav.is-open {
    top: 100%;
    right: 0;
    bottom: auto;
    left: 0;
    height: 100dvh;
    max-height: none;
    padding-bottom: 120px;
    background: #171c20;
  }
  html:not(.design-fit) .main-nav.is-open a { font-size: 17px; color: #f4f7f8; }
  html:not(.design-fit) .main-nav.is-open a[aria-current="page"] { color: var(--cyan); }
}

@media (max-width: 640px) {
  html:not(.design-fit) .flow-node:not(:last-child)::after {
    content: "";
    top: auto;
    right: auto;
    bottom: -22px;
    left: 16px;
    width: 14px;
    height: 14px;
    background: none;
    border-right: 2px solid #00d4ff;
    border-bottom: 2px solid #00d4ff;
    transform: translateY(0) rotate(45deg);
  }
  html:not(.design-fit) .expo__in { justify-content: flex-start; text-align: left; }
  html:not(.design-fit) .button { width: auto; max-width: 100%; }
  html:not(.design-fit) .button-row .button { width: 100%; }
  html:not(.design-fit) .visual-card { min-height: 0; aspect-ratio: 16 / 9; }
  html:not(.design-fit) .case-media img { height: 220px; }
  html:not(.design-fit) .case-media video { height: auto; }
  html:not(.design-fit) .company-table th,
  html:not(.design-fit) .company-table td { font-size: 16px; line-height: 1.6; }
}

.policy { max-width: 800px; }
.policy .lead { max-width: none; margin-top: 0; }
.policy h2 { margin: 40px 0 12px; font-size: 22px; font-weight: 700; line-height: 1.4; }
.policy p { margin: 0 0 14px; color: #3d4047; font-size: 16px; line-height: 1.85; }
.policy ul { margin: 0 0 14px; padding-left: 1.3em; color: #3d4047; font-size: 16px; line-height: 1.85; }
.policy .policy-meta { margin-top: 28px; color: var(--muted); }
