:root {
  --ink: #102c57;
  --ink-soft: #405574;
  --blue: #3c91b8;
  --blue-bright: #6ebeda;
  --pink: #6ebeda;
  --green: #2f78a0;
  --lavender: #9fd6e6;
  --paper: #f4f7fb;
  --pale-blue: #e3f2f7;
  --pale-pink: #edf7fa;
  --white: #fff;
  --line: rgba(0, 57, 83, .16);
  --shadow: 0 22px 55px rgba(0, 57, 83, .10);
  --shell: min(1152px, calc(100% - 64px));
  --ease: cubic-bezier(.16, 1, .3, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
section[id] { scroll-margin-top:110px; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Poppins, "Hiragino Sans", "Yu Gothic", YuGothic, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.9;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3, p, dd { line-break: strict; word-break: auto-phrase; text-wrap: pretty; }
h1, h2, h3 { line-height: 1.35; letter-spacing: .035em; }
.shell { width: var(--shell); margin-inline: auto; }
.narrow { max-width: 820px; }
.section { position: relative; padding: 140px 0; overflow: clip; isolation: isolate; }
.section--tint { background: rgba(255,255,255,.46); }
.section--navy { background: var(--ink); color: var(--white); }
.section[data-section-word]::before {
  content: attr(data-section-word);
  position: absolute;
  z-index: -1;
  top: 48px;
  left: -1vw;
  color: transparent;
  -webkit-text-stroke: 1px rgba(5,153,217,.17);
  font-size: clamp(6rem, 15vw, 13rem);
  font-weight: 400;
  letter-spacing: -.06em;
  line-height: 1;
  white-space: nowrap;
  pointer-events: none;
}
.screen-reader-text { position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.skip-link { position:fixed;left:12px;top:-80px;z-index:9999;padding:10px 16px;background:#fff;color:var(--ink); }
.skip-link:focus { top:12px; }

.eyebrow { margin:0 0 16px; color:var(--pink); font-size:.78rem; font-weight:800; letter-spacing:.12em; }
.eyebrow::before { content:""; display:inline-block; width:8px; height:8px; margin-right:10px; border-radius:50%; background:currentColor; }
.eyebrow--light { color:#c8edf8; }
.button { display:inline-flex;align-items:center;justify-content:center;gap:32px;min-height:64px;padding:0 32px;border:0;border-radius:999px;color:#fff;background:linear-gradient(135deg,var(--blue-bright),var(--blue));box-shadow:0 12px 30px rgba(5,153,217,.2);font-size:.84rem;font-weight:800;letter-spacing:.03em;transition:transform .3s var(--ease),box-shadow .3s; }
.button:hover { transform:translateY(-4px);box-shadow:0 18px 34px rgba(5,153,217,.28); }
.button--small { min-height:56px;padding:0 27px; }
.button--contact { min-width:150px;background:linear-gradient(135deg,#72c6df,#398fb7); }
.button--light { color:var(--ink);background:#fff;box-shadow:none; }
.text-link { display:inline-flex;align-items:center;gap:16px;font-size:.82rem;font-weight:800; }
.text-link span { display:grid;place-items:center;width:46px;height:46px;border:1px solid currentColor;border-radius:50%;transition:.25s; }
.text-link:hover span { color:#fff;background:var(--blue);border-color:var(--blue);transform:translate(3px,-3px); }

.site-header { position:fixed;inset:0 0 auto;z-index:100;height:134px;pointer-events:none;transition:.4s var(--ease); }
.site-header__inner { height:100%;display:flex;align-items:flex-start;justify-content:space-between;padding-top:28px; }
.brand { display:inline-flex;align-items:center;pointer-events:auto; }
.brand picture { display:block; }
.brand__logo { width:166px;height:66px;object-fit:contain;object-position:left center; }
.primary-nav { pointer-events:auto;height:84px;display:flex;align-items:center;gap:38px;padding:0 18px 0 50px;border-radius:50px;background:rgba(255,255,255,.96);box-shadow:0 8px 30px rgba(16,44,87,.06); }
.primary-nav > a:not(.button),.nav-solutions__parent { position:relative;display:flex;flex-direction:column;justify-content:center;min-width:76px;line-height:1.15; }
.primary-nav > a:not(.button)::before,.nav-solutions__parent::before { content:"";position:absolute;left:-20px;top:8px;width:7px;height:7px;border-radius:50%;background:var(--ink);transition:.25s; }
.nav-solutions__parent::before { background:var(--pink); }
.primary-nav b { font-size:.82rem;white-space:nowrap; }
.primary-nav small { margin-top:4px;font-size:.54rem;font-weight:700;letter-spacing:.06em;white-space:nowrap; }
.primary-nav > a:hover::before,.nav-solutions__parent:hover::before { transform:scale(1.55);background:var(--pink); }
.nav-solutions { position:relative;display:flex;align-items:center;height:100%; }
.nav-mega { position:absolute;top:calc(100% - 5px);left:50%;width:min(760px,calc(100vw - 40px));display:grid;grid-template-columns:1.1fr 1.2fr .8fr;gap:26px;padding:30px;border:1px solid rgba(16,44,87,.1);border-radius:22px;background:rgba(255,255,255,.98);box-shadow:0 22px 55px rgba(16,44,87,.15);opacity:0;visibility:hidden;transform:translate(-50%,12px);transition:.25s var(--ease); }
.nav-solutions:hover .nav-mega,.nav-solutions:focus-within .nav-mega { opacity:1;visibility:visible;transform:translate(-50%,0); }
.nav-mega p { margin:0 0 12px;color:var(--blue);font-size:.68rem;font-weight:800;letter-spacing:.08em; }
.nav-mega a { display:block;padding:7px 0;color:var(--ink-soft);font-size:.75rem;font-weight:750;line-height:1.5; }
.nav-mega a:hover,.nav-mega a:focus { color:var(--blue); }
.nav-mega__links { padding-left:22px;border-left:1px solid var(--line); }
.site-header.is-scrolled { height:105px; }
.site-header.is-scrolled .site-header__inner { padding-top:12px; }
.site-header.is-scrolled .brand__logo { width:145px;height:58px; }
.site-header.is-scrolled .primary-nav { height:70px; }
.menu-toggle { display:none;pointer-events:auto;width:44px;height:44px;border:0;background:transparent;padding:11px; }
.menu-toggle > span:not(.screen-reader-text) { display:block;height:2px;margin:5px 0;background:var(--ink);transition:.25s; }

.hero { position:relative;min-height:900px;padding:0 0 70px;overflow:hidden;background-color:var(--paper);background-image:radial-gradient(rgba(16,44,87,.13) 1.2px,transparent 1.2px);background-size:24px 24px;isolation:isolate; }
.hero::before { content:"";position:absolute;z-index:-2;width:880px;height:880px;left:-185px;top:-140px;border:135px solid rgba(255,255,255,.7);border-radius:50%; }
.hero::after { content:"";position:absolute;z-index:-1;width:520px;height:360px;right:-150px;bottom:-140px;border-radius:52% 0 0 0;background:var(--pale-pink);opacity:.8; }
.hero__inner { position:relative;min-height:830px;display:grid;grid-template-columns:50% 50%;align-items:center; }
.hero__copy { position:relative;z-index:4;padding:170px 0 110px; }
.hero__tagline { position:absolute;top:92px;left:0;font-size:.67rem;line-height:1.35;letter-spacing:.05em;opacity:.72; }
.hero h1 { margin:0 0 24px;font-size:clamp(3.25rem,5.1vw,4.7rem);line-height:1.28;letter-spacing:.06em;font-weight:800;white-space:nowrap; }
.hero h1 span { color:transparent;background:linear-gradient(70deg,var(--ink),var(--blue-bright),var(--blue),var(--ink));background-size:700% 700%;-webkit-background-clip:text;background-clip:text;animation:gradientFlow 9s ease infinite; }
.hero__lead { max-width:550px;margin-bottom:34px;font-size:.92rem;font-weight:700;line-height:2.25; }
.hero__actions { display:flex;align-items:center;gap:28px;flex-wrap:wrap; }
.hero__visual { position:absolute;z-index:1;top:0;right:min(-11vw,-80px);width:63vw;height:830px;overflow:hidden;border-radius:0 0 0 48% / 0 0 0 35%;clip-path:polygon(25% 0,100% 0,100% 100%,8% 100%,0 66%,10% 30%); }
.hero__visual::after { content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.08),transparent 55%); }
.hero__visual picture,.hero__visual img { width:100%;height:100%; }
.hero__visual img { object-fit:cover;object-position:center;animation:heroZoom 14s ease-in-out infinite alternate; }
.hero__orbit { position:absolute;z-index:2;border:1px solid rgba(5,153,217,.24);border-radius:50%;pointer-events:none; }
.hero__orbit--one { width:680px;height:680px;left:7%;top:-310px; }
.hero__orbit--two { width:520px;height:520px;left:26%;bottom:-360px; }
.hero__decor { position:absolute;z-index:3;width:4px;height:290px;overflow:hidden;border-radius:3px;transform:rotate(54deg); }
.hero__decor::before,.motion-line::before { content:"";position:absolute;inset:0;background:linear-gradient(0deg,#1c8ef4,#6d6afe);animation:lineRun 3.3s var(--ease) infinite; }
.hero__decor--one { left:5%;top:190px; }
.hero__decor--two { right:15%;bottom:110px;animation-delay:1.2s; }
.hero__decor--two::before { background:linear-gradient(0deg,#3d90b7,#b8e5ef);animation-delay:1.2s; }
.scroll-cue { position:absolute;right:18px;bottom:138px;z-index:6;display:flex;flex-direction:column;align-items:center;gap:10px;font-size:.62rem;font-weight:800;writing-mode:vertical-rl;letter-spacing:.12em; }
.scroll-cue i { position:relative;width:2px;height:70px;overflow:hidden;background:var(--blue); }
.scroll-cue i::before { content:"";position:absolute;inset:0;background:var(--pink);animation:scrollLine 3s infinite; }
.hero-news { position:absolute;z-index:5;right:0;bottom:22px;width:min(560px,44vw);min-height:112px;padding:23px 58px 20px 28px;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:14px;border-radius:12px 0 0 12px;background:#fff;box-shadow:var(--shadow);font-size:.78rem; }
.hero-news span { padding:6px 20px;border-radius:30px;color:#fff;background:var(--blue);font-weight:800;letter-spacing:.06em; }
.hero-news time { font-weight:800; }
.hero-news strong { grid-column:1/4;font-size:.84rem;line-height:1.45; }
.hero-news i { position:absolute;right:26px;top:42px;font-style:normal; }

.motion-line { position:absolute;z-index:3;width:4px;height:260px;overflow:hidden;border-radius:4px;transform:rotate(54deg);pointer-events:none; }
.motion-line--pink { right:8%;top:20px; }
.motion-line--pink::before { background:linear-gradient(0deg,#3d90b7,#b8e5ef); }
.motion-line--blue { right:16%;top:70px; }
.motion-line--green { left:8%;top:40px; }
.motion-line--green::before { background:linear-gradient(0deg,#50b783,#b1e0ac); }
.section-heading h2 { margin-bottom:26px;font-size:clamp(2.5rem,4.5vw,4.3rem);letter-spacing:.06em;font-weight:800; }
.section-heading > p:not(.eyebrow) { max-width:520px;color:var(--ink-soft); }
.section-heading--row { display:flex;justify-content:space-between;align-items:end;gap:70px;margin-bottom:56px; }
.section-heading--row h2 { margin-bottom:0; }
.section-heading--row > p { margin:0 0 12px; }
.section-heading--light h2 { color:var(--ink); }
.section-heading--light > p { color:var(--ink-soft)!important; }

.concerns { padding-top:180px;background:linear-gradient(180deg,var(--paper),#fff 62%,var(--paper)); }
.concerns__layout { display:grid;grid-template-columns:38% 1fr;gap:54px;align-items:start; }
.concerns .section-heading h2 { font-size:clamp(2.25rem,3.5vw,3rem);letter-spacing:.035em; }
.concern-list { display:grid;grid-template-columns:repeat(2,1fr);gap:16px; }
.concern-card { position:relative;min-height:170px;padding:28px 24px 24px;border:1px solid rgba(16,44,87,.1);border-radius:16px;background:rgba(255,255,255,.92);box-shadow:0 12px 30px rgba(16,44,87,.05);transition:.35s var(--ease); }
.concern-card:hover { transform:translateY(-7px);box-shadow:var(--shadow); }
.concern-card span { color:var(--pink);font-size:1.15rem;font-weight:800; }
.concern-card p { margin:17px 0 0;font-weight:700;line-height:1.7; }
.concerns-answer { display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:52px;margin-top:54px;padding:38px 42px;border:1px solid rgba(60,145,184,.2);border-radius:22px;background:linear-gradient(135deg,#fff,rgba(227,242,247,.78));box-shadow:0 16px 38px rgba(16,44,87,.07); }
.concerns-answer h3 { margin:0;font-size:clamp(1.45rem,2.4vw,2.15rem);line-height:1.55; }
.concerns-answer p { margin:0;color:var(--ink-soft);font-size:.88rem;font-weight:600;line-height:2; }

.philosophy { min-height:880px;background-color:#edf4f8;background-image:radial-gradient(rgba(16,44,87,.1) 1px,transparent 1px);background-size:20px 20px; }
.philosophy::after { content:"";position:absolute;z-index:-1;width:850px;height:850px;right:-260px;top:-220px;border:120px solid rgba(5,153,217,.08);border-radius:50%; }
.philosophy__grid { display:grid;grid-template-columns:40% 1fr;align-items:center;gap:62px; }
.philosophy__copy { padding-top:80px; }
.philosophy__copy h2 { font-size:clamp(2.45rem,4vw,3.8rem);letter-spacing:.07em; }
.philosophy__copy > p:not(.eyebrow) { margin-bottom:34px;color:var(--ink-soft);font-weight:600; }
.philosophy__visual { position:relative; }
.philosophy__visual::before { content:"STRATEGY / AI / SYSTEM";position:absolute;z-index:-1;top:-115px;left:-35px;color:rgba(110,190,218,.28);font-size:clamp(2.8rem,5vw,5.5rem);font-weight:800;line-height:1;white-space:nowrap;transform:rotate(-4deg); }
.philosophy__visual img { width:100%;aspect-ratio:3/2;object-fit:contain;padding:22px;border-radius:0 140px 0 140px;background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(227,242,247,.2));filter:drop-shadow(0 24px 38px rgba(16,44,87,.12)); }

.services { background:var(--pale-blue); }
.services::after { content:"";position:absolute;z-index:-1;width:980px;height:980px;left:calc(50% - 490px);top:170px;border:95px solid rgba(255,255,255,.52);border-radius:50%; }
.services-keyvisual { position:relative;margin:0 0 46px;overflow:hidden;border-radius:26px;background:#fff;box-shadow:var(--shadow); }
.services-keyvisual img { width:100%;height:auto;object-fit:contain; }
.services-keyvisual figcaption { position:absolute;left:26px;bottom:22px;max-width:430px;padding:12px 18px;border-radius:999px;color:#fff;background:rgba(16,44,87,.84);font-size:.76rem;font-weight:800;backdrop-filter:blur(8px); }
.slider-controls { display:flex;justify-content:flex-end;gap:16px;margin:-24px 0 24px; }
.slider-controls button { width:64px;height:64px;border:1px solid var(--ink);border-radius:50%;color:var(--ink);background:#fff;cursor:pointer;font-size:1.2rem;transition:.25s var(--ease); }
.slider-controls button:hover { color:#fff;background:var(--ink);transform:scale(1.06); }
.service-grid,.project-grid { display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:6px max(0px,calc((100vw - 1152px)/2)) 32px;margin-inline:calc(50% - 50vw); }
.service-grid::-webkit-scrollbar,.project-grid::-webkit-scrollbar { display:none; }
.service-cluster { margin-top:58px; }
.service-cluster--challenge { padding-top:55px;border-top:1px solid rgba(16,44,87,.13); }
.service-cluster__heading { display:flex;align-items:end;justify-content:space-between;margin-bottom:25px; }
.service-cluster__heading .eyebrow { margin:0; }
.service-cluster__heading h3 { margin:0;font-size:1.65rem; }
.service-grid--group { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;overflow:visible;margin:0;padding:0; }
.service-grid--group .service-card { min-width:0;min-height:440px; }
.services__all { margin-top:42px; }
.service-card { position:relative;flex:0 0 min(390px,78vw);min-height:440px;padding:34px 32px;border:5px solid var(--blue-bright);border-radius:22px;background:#fff;scroll-snap-align:center;box-shadow:0 16px 36px rgba(16,44,87,.07);transition:.35s var(--ease); }
.service-card:nth-child(3n+2) { border-color:var(--blue); }
.service-card:nth-child(3n) { border-color:var(--ink); }
.service-card:hover { transform:translateY(-8px);box-shadow:var(--shadow); }
.service-card__top { display:flex;justify-content:space-between;align-items:start;margin-bottom:32px;color:var(--blue);font-size:2.8rem;font-weight:800;line-height:1; }
.service-card__top img { width:135px;height:135px;object-fit:contain; }
.service-card h3 { margin-bottom:16px;font-size:1.5rem; }
.service-card p { color:var(--ink-soft);font-size:.88rem; }
.round-arrow { position:absolute;right:28px;bottom:25px;width:50px;height:50px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--blue); }

.projects { padding-top:165px;background:linear-gradient(180deg,#dceef5 0%,#e9f5f8 72%,var(--paper) 100%); }
.projects::after { content:"";position:absolute;z-index:-1;width:680px;height:420px;right:-120px;bottom:-120px;border-radius:55% 0 0 0;background:rgba(110,190,218,.28); }
.featured-project { display:grid;grid-template-columns:52% 48%;min-height:610px;overflow:hidden;border:1px solid rgba(16,44,87,.12);border-radius:28px;background:#fff;box-shadow:var(--shadow); }
.featured-project__image,.project-card__image,.about__image { position:relative;overflow:hidden; }
.featured-project__image img { width:100%;height:100%;min-height:610px;object-fit:cover; }
.featured-project__image small,.project-card__image small,.about__image small { position:absolute;right:10px;bottom:8px;padding:2px 7px;border-radius:4px;color:rgba(255,255,255,.9);background:rgba(16,44,87,.62);font-size:.58rem; }
.featured-project__body { padding:48px 46px;display:flex;flex-direction:column;justify-content:center; }
.featured-project__body h3 { margin-bottom:18px;font-size:clamp(1.75rem,2.7vw,2.45rem);letter-spacing:.04em; }
.featured-project__body > p:not(.project-tag) { color:var(--ink-soft); }
.featured-project__body .button { align-self:flex-start;margin-top:18px; }
.project-tag { color:var(--pink);font-size:.72rem;font-weight:800;letter-spacing:.1em; }
.featured-project__facts { margin:14px 0 4px;border-top:1px solid var(--line); }
.featured-project__facts div { display:grid;grid-template-columns:64px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.74rem;line-height:1.55; }
.featured-project__facts dt { color:var(--blue);font-weight:800; }
.featured-project__facts dd { margin:0;color:var(--ink-soft);font-weight:700; }
.project-index-label { display:flex;align-items:center;gap:20px;margin-top:54px; }
.project-index-label span { color:var(--ink);font-size:1.2rem;font-weight:800;letter-spacing:.08em; }
.project-index-label p { margin:0;color:var(--ink-soft);font-size:.78rem; }
.slider-controls--projects { margin-top:-48px; }
.project-card { flex:0 0 min(520px,82vw);overflow:hidden;border:1px solid rgba(16,44,87,.12);border-radius:22px;background:#fff;scroll-snap-align:center;box-shadow:0 12px 30px rgba(16,44,87,.06); }
.project-card__image { aspect-ratio:16/8.5; }
.project-card__image img { width:100%;height:100%;object-fit:cover;transition:.6s var(--ease); }
.project-card:hover img { transform:scale(1.045); }
.project-card > div:last-child { padding:28px 30px 30px; }
.project-card h3 { margin:0 0 14px;font-size:1.18rem;line-height:1.65; }
.project-card__summary { margin-bottom:17px;color:var(--ink-soft);font-size:.78rem;line-height:1.7; }
.project-card__link { color:var(--blue);font-size:.74rem;font-weight:800; }

.approach { background:#fff; }
.approach::after { content:"";position:absolute;z-index:-1;inset:auto -130px -250px auto;width:620px;height:620px;border:90px solid rgba(110,190,218,.13);border-radius:50%; }
.approach-grid { display:grid;grid-template-columns:repeat(4,1fr);margin-top:70px;border-radius:22px;background:var(--paper);box-shadow:var(--shadow); }
.approach-card { position:relative;padding:34px 24px 38px;text-align:center; }
.approach-card:not(:last-child) { border-right:1px solid var(--line); }
.approach-card:not(:last-child)::after { content:"→";position:absolute;right:-20px;top:140px;z-index:2;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--blue); }
.approach-card__number { color:var(--pink);font-size:2rem;font-weight:800; }
.approach-card img { width:150px;height:150px;object-fit:contain;margin:12px auto 18px; }
.approach-card h3 { font-size:1.05rem; }
.approach-card p { margin:0;color:var(--ink-soft);font-size:.78rem;line-height:1.75; }

.insights { background-color:var(--paper);background-image:radial-gradient(rgba(16,44,87,.1) 1px,transparent 1px);background-size:22px 22px; }
.insight-grid { display:grid;grid-template-columns:1.25fr 1fr;gap:24px; }
.insight-card { display:grid;grid-template-columns:42% 1fr;overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 10px 25px rgba(16,44,87,.06);transition:.3s var(--ease); }
.insight-card:hover { transform:translateY(-6px);box-shadow:var(--shadow); }
.insight-card + .insight-card { min-height:220px; }
.insight-card--featured { grid-row:span 2;display:block; }
.insight-card img { width:100%;height:100%;object-fit:contain;background:#f4f9fc; }
.insight-card--featured img { height:auto;aspect-ratio:16/9; }
.insight-card > div { padding:24px; }
.insight-card h3 { margin-bottom:12px;font-size:1.12rem; }
.insight-card--featured h3 { font-size:1.55rem; }
.insight-card p:not(.project-tag) { color:var(--ink-soft);font-size:.82rem; }
.insight-card time { color:#738a94;font-size:.7rem; }

.about { min-height:860px;background:linear-gradient(180deg,var(--paper),var(--pale-blue)); }
.about::after { content:"";position:absolute;z-index:-1;width:780px;height:450px;left:-180px;bottom:-210px;border-radius:50%;background:var(--pale-pink); }
.about__grid { display:grid;grid-template-columns:53% 1fr;gap:66px;align-items:center; }
.about__image { border-radius:0 150px 0 150px;box-shadow:var(--shadow); }
.about__image img { width:100%;min-height:560px;object-fit:cover; }
.about__copy h2 { font-size:clamp(2.35rem,4vw,3.7rem);letter-spacing:.06em; }
.about__copy > p:not(.eyebrow) { color:var(--ink-soft);font-weight:600; }
.about__link { margin-top:24px; }
.company-summary { margin:34px 0 0;border-top:1px solid var(--line); }
.company-summary div { display:grid;grid-template-columns:88px 1fr;padding:12px 0;border-bottom:1px solid var(--line);font-size:.8rem; }
.company-summary dt { color:var(--ink-soft); }
.company-summary dd { margin:0;font-weight:800; }

.contact { padding:100px 0 130px;background:linear-gradient(180deg,var(--pale-blue),#fff); }
.contact__card { position:relative;display:grid;grid-template-columns:54% 46%;min-height:500px;overflow:hidden;border-radius:26px;color:#fff;background:linear-gradient(135deg,#102c57,#347fa4);box-shadow:0 30px 70px rgba(16,44,87,.18); }
.contact__card::before { content:"CONTACT";position:absolute;left:-10px;bottom:-62px;color:rgba(255,255,255,.18);font-size:8rem;font-weight:800;line-height:1; }
.contact__copy { position:relative;z-index:1;padding:72px 36px 62px 72px; }
.contact__copy h2 { font-size:clamp(2.15rem,3.4vw,3.2rem);letter-spacing:.05em; }
.contact__copy > p:not(.eyebrow) { color:rgba(255,255,255,.88); }
.contact__copy .button { margin-top:20px; }
.contact__image { overflow:hidden;border-radius:48% 0 0 48% / 25% 0 0 25%; }
.contact__image img { width:100%;height:100%;object-fit:cover; }

.company-page { overflow:hidden; }
.company-hero { position:relative;min-height:760px;padding:180px 0 110px;overflow:hidden;background-color:var(--paper);background-image:radial-gradient(rgba(16,44,87,.11) 1.2px,transparent 1.2px);background-size:22px 22px; }
.company-hero::before { content:"COMPANY";position:absolute;left:-25px;bottom:-45px;color:transparent;-webkit-text-stroke:1px rgba(110,190,218,.28);font-size:clamp(7rem,17vw,15rem);line-height:1;font-weight:600;letter-spacing:-.05em; }
.company-hero__orb { position:absolute;width:720px;height:720px;left:-260px;top:-300px;border:110px solid rgba(255,255,255,.7);border-radius:50%; }
.company-hero__grid { position:relative;display:grid;grid-template-columns:42% minmax(0,1fr);align-items:center;gap:60px; }
.company-hero__copy { position:relative;z-index:2; }
.company-hero h1 { margin-bottom:30px;font-size:clamp(3rem,5vw,4.8rem);line-height:1.38;letter-spacing:.045em; }
.company-hero__copy > p:not(.eyebrow) { max-width:560px;color:var(--ink-soft);font-weight:650; }
.company-hero__image { position:relative;overflow:hidden;border-radius:0 145px 0 145px;box-shadow:var(--shadow); }
.company-hero__image { background:#f4f9fc; }
.company-hero__image img { width:100%;min-height:470px;object-fit:contain; }
.company-hero__image small { position:absolute;right:10px;bottom:8px;padding:2px 7px;border-radius:4px;color:rgba(255,255,255,.9);background:rgba(16,44,87,.62);font-size:.58rem; }
.company-belief { background:#fff; }
.company-belief__grid { display:grid;grid-template-columns:44% 1fr;gap:100px;align-items:start; }
.company-belief .section-heading h2 { max-width:500px;font-size:clamp(2.2rem,3.6vw,3.45rem);line-height:1.4;letter-spacing:.035em;text-wrap:balance; }
.company-belief__body { padding-top:38px; }
.company-belief__body p { color:var(--ink-soft);font-size:1rem;font-weight:600;line-height:2.15; }
.company-belief__body p + p { margin-top:30px; }
.company-values { background:var(--pale-blue); }
.company-values__grid { display:grid;grid-template-columns:repeat(3,1fr);gap:22px; }
.company-value { min-height:320px;padding:35px 30px;border:1px solid rgba(16,44,87,.1);border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(16,44,87,.06); }
.company-value span { color:var(--blue);font-size:2.2rem;font-weight:800; }
.company-value h3 { margin:45px 0 16px;font-size:1.35rem; }
.company-value p { margin:0;color:var(--ink-soft);font-size:.84rem; }
.company-profile { background:linear-gradient(180deg,var(--paper),#fff); }
.company-profile__grid { display:grid;grid-template-columns:34% 1fr;gap:95px;align-items:start; }
.company-profile__table { margin:0;border-top:2px solid var(--ink); }
.company-profile__table div { display:grid;grid-template-columns:140px 1fr;gap:24px;padding:23px 8px;border-bottom:1px solid var(--line); }
.company-profile__table dt { color:var(--blue);font-size:.78rem;font-weight:800; }
.company-profile__table dd { margin:0;font-size:.9rem;font-weight:700;line-height:1.8; }
.company-contact { padding-top:70px;background:#fff; }
.company-contact__card { position:relative;padding:75px 70px;border-radius:26px;color:#fff;background:linear-gradient(135deg,var(--ink),#347fa4);overflow:hidden; }
.company-contact__card::after { content:"CONTACT";position:absolute;right:-20px;bottom:-55px;color:rgba(255,255,255,.08);font-size:9rem;font-weight:800;line-height:1; }
.company-contact__card h2 { position:relative;z-index:1;max-width:780px;font-size:clamp(2.2rem,4vw,3.7rem); }
.company-contact__card > p:not(.eyebrow) { position:relative;z-index:1;color:rgba(255,255,255,.82); }
.company-contact__card .button { position:relative;z-index:1;margin-top:20px; }

.site-footer { position:relative;padding:90px 0 26px;color:#c9dce4;background:var(--ink);overflow:hidden; }
.site-footer::before { content:"AYlab";position:absolute;right:-30px;bottom:-90px;color:rgba(255,255,255,.035);font-size:16rem;font-weight:800;line-height:1; }
.site-footer__grid { position:relative;display:grid;grid-template-columns:1.35fr 1fr 1fr 1.35fr;gap:52px; }
.brand--footer { display:inline-flex;align-items:center;padding:10px 14px;border-radius:14px;background:#fff;box-shadow:0 10px 28px rgba(0,0,0,.12); }
.brand--footer .brand__logo { width:145px;height:55px; }
.site-footer__lead { margin-top:22px;font-size:.8rem; }
.site-footer__company { margin:20px 0 0;color:#8eabb7;font-size:.7rem;line-height:1.7; }
.site-footer__title { margin-bottom:15px;color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.12em; }
.site-footer__grid > div > a:not(.brand):not(.button) { display:block;margin:8px 0;color:#c0d3db;font-size:.74rem; }
.site-footer__contact { padding:25px;border:1px solid rgba(255,255,255,.24);border-radius:16px; }
.site-footer__contact p:not(.eyebrow) { color:#fff;font-weight:700;line-height:1.65; }
.site-footer__contact .button { width:100%;min-height:50px;padding:0 14px;gap:14px; }
.site-footer__bottom { position:relative;display:flex;justify-content:space-between;margin-top:58px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);color:#8eabb7;font-size:.68rem; }

.page-main { min-height:70vh;padding-top:120px; }
.page-hero,.article-header { padding-top:100px;padding-bottom:65px; }
.page-hero h1,.article-header h1,.archive-hero h1 { font-size:clamp(2.5rem,5vw,5rem);letter-spacing:-.03em; }
.prose { padding-bottom:100px; }.prose h2{margin-top:2.3em;font-size:2rem}.prose h3{margin-top:2em;font-size:1.35rem}.prose p,.prose li{color:#354963}.prose a{color:var(--blue);text-decoration:underline}.article-header time{color:var(--ink-soft);font-size:.8rem}
.article-cover{max-width:1180px;margin-bottom:70px}.article-cover img{width:100%;max-height:650px;object-fit:cover;border-radius:20px}.archive-hero{padding-top:105px;padding-bottom:65px;display:flex;justify-content:space-between;align-items:end;gap:60px;border-bottom:1px solid var(--line)}.archive-hero h1{margin:0}.archive-hero>p{max-width:480px;margin-bottom:14px;color:var(--ink-soft)}.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding-top:60px;padding-bottom:110px}.post-card{overflow:hidden;border-radius:18px;background:#fff}.post-card__image{aspect-ratio:16/10;overflow:hidden}.post-card__image img{width:100%;height:100%;object-fit:cover}.post-card__body{padding:22px}.post-card__body time{color:var(--ink-soft);font-size:.7rem}.post-card__body h2{font-size:1.2rem}.post-card__body p{color:var(--ink-soft);font-size:.82rem}.project-detail__header{display:grid;grid-template-columns:46% 54%;align-items:center;min-height:650px;padding-top:115px}.project-detail__header h1{font-size:clamp(2.5rem,4.5vw,4.8rem)}.project-detail__header>div:last-child{overflow:hidden;border-radius:180px 0 0 180px}.project-detail__header img{width:100%;min-height:500px;object-fit:cover}

.breadcrumb { display:flex;align-items:center;gap:10px;padding-top:28px;color:var(--ink-soft);font-size:.7rem;font-weight:700; }
.breadcrumb a { color:var(--blue); }
.lower-page { padding-top:105px;overflow-x:hidden; }
.lower-hero { position:relative;padding-top:92px;padding-bottom:105px; }
.lower-hero::after { content:"";position:absolute;z-index:-1;right:-170px;top:5px;width:510px;height:510px;border:78px solid rgba(110,190,218,.13);border-radius:50%; }
.lower-hero h1 { max-width:980px;margin-bottom:28px;font-size:clamp(2.8rem,5.1vw,5rem);line-height:1.34;letter-spacing:.025em; }
.lower-hero > p:not(.eyebrow) { max-width:760px;margin:0;color:var(--ink-soft);font-weight:650;line-height:2; }
.lower-section { padding:110px 0;background:#fff; }
.lower-section--tint { background:linear-gradient(180deg,var(--paper),#eef7fa); }
.lower-section--navy { color:#fff;background:linear-gradient(135deg,var(--ink),#245d82); }
.lower-heading { max-width:690px;margin-bottom:48px; }
.lower-heading h2 { margin-bottom:20px;font-size:clamp(2.2rem,4vw,3.65rem); }
.lower-heading > p:not(.eyebrow) { color:var(--ink-soft); }
.lower-heading--light > p:not(.eyebrow) { color:rgba(255,255,255,.78); }
.solution-overview-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px; }
.solution-overview-card { position:relative;min-height:400px;padding:38px;border:1px solid rgba(16,44,87,.1);border-radius:20px;background:#fff;box-shadow:0 15px 38px rgba(16,44,87,.08);transition:.35s var(--ease); }
.solution-overview-card:hover { transform:translateY(-7px);box-shadow:var(--shadow); }
.solution-overview-card > span { color:var(--blue);font-size:2.2rem;font-weight:800; }
.solution-overview-card h2 { margin:26px 0 16px;font-size:1.65rem; }
.solution-overview-card p { color:var(--ink-soft);font-size:.88rem; }
.solution-overview-card ul { display:flex;gap:7px;flex-wrap:wrap;margin:22px 0 34px;padding:0;list-style:none; }
.solution-overview-card li { padding:5px 10px;border-radius:20px;background:var(--pale-blue);font-size:.68rem;font-weight:700; }
.solution-overview-card strong,.post-card strong { color:var(--blue);font-size:.76rem; }
.problem-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px; }
.problem-card { display:grid;grid-template-columns:62px 1fr;align-items:center;min-height:145px;padding:28px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(16,44,87,.05); }
.problem-card span { color:var(--blue-bright);font-size:1.7rem;font-weight:800; }
.problem-card p { margin:0;font-weight:750; }
.detail-split { display:grid;grid-template-columns:38% minmax(0,1fr);gap:90px;align-items:start; }
.action-list { margin:0;padding:0;list-style:none;border-top:2px solid var(--ink); }
.action-list li { display:grid;grid-template-columns:70px 1fr;gap:20px;padding:26px 8px;border-bottom:1px solid var(--line); }
.action-list span { color:var(--blue);font-weight:800; }
.action-list p { margin:0;font-weight:700; }
.deliverable-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px; }
.deliverable-grid span { min-height:105px;display:grid;place-items:center;padding:18px;border:1px solid rgba(255,255,255,.24);border-radius:14px;background:rgba(255,255,255,.08);text-align:center;font-weight:800; }
.mini-flow { display:flex;gap:10px;align-items:stretch; }
.mini-flow span { position:relative;flex:1;min-height:120px;display:flex;flex-direction:column;justify-content:center;padding:22px 15px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:center;font-size:.76rem;font-weight:800; }
.mini-flow span:not(:last-child)::after { content:"→";position:absolute;z-index:2;right:-17px;top:42px;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--blue); }
.mini-flow b { margin-bottom:8px;color:var(--blue);font-size:.68rem; }
.lower-more { margin-top:30px; }
.related-project { display:grid;grid-template-columns:34% 1fr;gap:70px;align-items:center; }
.related-project .lower-heading { margin:0; }
.related-project__card { display:block;padding:42px;border-radius:20px;color:#fff;background:linear-gradient(135deg,var(--ink),var(--blue));box-shadow:var(--shadow); }
.related-project__card span { color:#c9edf7;font-size:.7rem;font-weight:800;letter-spacing:.12em; }
.related-project__card h3 { margin:18px 0 26px;font-size:1.75rem; }
.related-project__card strong { font-size:.78rem; }
.solution-case-section { position:relative;padding:130px 0;overflow:hidden; }
.solution-case { position:relative;display:grid;align-items:center; }
.solution-case__visual { position:relative;min-width:0;margin:0;overflow:hidden;box-shadow:var(--shadow); }
.solution-case__visual img { width:100%;height:100%;object-fit:cover; }
.solution-case__visual figcaption { position:absolute;left:24px;bottom:22px;display:flex;align-items:baseline;gap:10px;padding:9px 16px;border-radius:999px;color:#fff;background:rgba(16,44,87,.86);backdrop-filter:blur(8px); }
.solution-case__visual figcaption span { font-size:.65rem;font-weight:800;letter-spacing:.14em; }
.solution-case__visual figcaption b { font-size:1.35rem;line-height:1; }
.solution-case__body { position:relative;z-index:2; }
.solution-case__industry { margin:0 0 10px;color:var(--blue);font-size:.72rem;font-weight:800;letter-spacing:.08em; }
.solution-case__body h2 { margin-bottom:18px;font-size:clamp(1.8rem,3.2vw,3rem);line-height:1.5;letter-spacing:.035em; }
.solution-case__summary { color:var(--ink-soft);font-size:.88rem;font-weight:650; }
.solution-case__facts { margin:28px 0 30px;border-top:1px solid var(--line); }
.solution-case__facts div { display:grid;grid-template-columns:74px 1fr;gap:16px;padding:13px 0;border-bottom:1px solid var(--line);font-size:.76rem;line-height:1.65; }
.solution-case__facts dt { color:var(--blue);font-weight:800; }
.solution-case__facts dd { margin:0;color:var(--ink-soft);font-weight:700; }
.solution-case--1 { grid-template-columns:58% 42%; }
.solution-case-section--1 { background:linear-gradient(180deg,#eef7fa,var(--paper)); }
.solution-case--1 .solution-case__visual { height:590px;border-radius:0 110px 0 110px; }
.solution-case--1 .solution-case__body { margin-left:-72px;padding:50px 48px;border-radius:22px;background:#fff;box-shadow:var(--shadow); }
.solution-case--2 { grid-template-columns:43% 57%;gap:74px; }
.solution-case-section--2 { color:#fff;background:linear-gradient(135deg,var(--ink),#245d82); }
.solution-case-section--2::before { content:"PROJECT";position:absolute;right:-35px;bottom:-55px;color:rgba(255,255,255,.055);font-size:11rem;font-weight:800;line-height:1; }
.solution-case--2 .solution-case__visual { order:2;height:570px;border-radius:120px 0 120px 0; }
.solution-case--2 .solution-case__body { order:1; }
.solution-case--2 .eyebrow,.solution-case--2 .solution-case__industry,.solution-case--2 .solution-case__facts dt { color:#bfe9f5; }
.solution-case--2 .solution-case__summary,.solution-case--2 .solution-case__facts dd { color:rgba(255,255,255,.84); }
.solution-case--2 .solution-case__facts { border-color:rgba(255,255,255,.22); }
.solution-case--2 .solution-case__facts div { border-color:rgba(255,255,255,.18); }
.solution-case--2 .button { color:var(--ink);background:#fff;box-shadow:none; }
.solution-case-section--3 { background:#fff; }
.solution-case--3 { display:block; }
.solution-case--3 .solution-case__visual { width:88%;height:520px;margin-left:auto;border-radius:26px; }
.solution-case--3 .solution-case__visual figcaption { left:auto;right:24px;top:22px;bottom:auto; }
.solution-case--3 .solution-case__body { width:min(760px,72%);margin:-126px 0 0;padding:48px 52px;border:1px solid var(--line);border-radius:0 24px 24px 24px;background:var(--paper);box-shadow:var(--shadow); }
.related-service-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px; }
.related-service-grid a { position:relative;min-height:130px;display:flex;flex-direction:column;justify-content:center;padding:25px 66px 25px 26px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(16,44,87,.05);transition:.3s var(--ease); }
.related-service-grid a:hover { transform:translateY(-4px);box-shadow:var(--shadow); }
.related-service-grid span { margin-bottom:8px;color:var(--blue);font-size:.68rem;font-weight:800;letter-spacing:.08em; }
.related-service-grid strong { font-size:1.04rem; }
.related-service-grid i { position:absolute;right:24px;top:calc(50% - 21px);width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--blue);font-style:normal; }
.faq-layout { display:grid;grid-template-columns:32% 1fr;gap:80px;align-items:start; }
.faq-layout .lower-heading { margin:0; }
.faq-list { border-top:2px solid var(--ink); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { position:relative;padding:24px 52px 24px 8px;cursor:pointer;font-weight:800;list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"＋";position:absolute;right:8px;top:20px;color:var(--blue);font-size:1.35rem; }
.faq-list details[open] summary::after { content:"−"; }
.faq-list details p { margin:0;padding:0 50px 25px 8px;color:var(--ink-soft);font-size:.86rem; }
.lower-cta { padding:90px 0;color:#fff;background:linear-gradient(135deg,var(--ink),#347fa4); }
.lower-cta h2 { max-width:850px;font-size:clamp(2.15rem,4vw,3.6rem); }
.lower-cta .button { margin-top:18px; }
.flow-list { max-width:980px; }
.flow-item { display:grid;grid-template-columns:150px 1fr;gap:45px;padding:34px 8px;border-bottom:1px solid var(--line); }
.flow-item > span { color:var(--blue);font-size:.8rem;font-weight:800;letter-spacing:.08em; }
.flow-item h2 { margin-bottom:10px;font-size:1.6rem; }
.flow-item p { margin:0;color:var(--ink-soft); }
.price-factor-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px; }
.price-plan-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px; }
.price-plan { min-height:330px;padding:38px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 15px 38px rgba(16,44,87,.07); }
.price-plan--featured { background:#f8fcfd;box-shadow:0 18px 44px rgba(16,44,87,.1); }
.price-plan h2 { margin-bottom:28px;font-size:1.65rem; }
.price-plan > p:last-child { margin:24px 0 0;color:var(--ink-soft);font-size:.86rem; }
.price-plan__amount { display:flex;align-items:baseline;gap:7px;margin:0;color:var(--ink-soft);font-size:.85rem;font-weight:800; }
.price-plan__amount strong { color:var(--ink);font-size:clamp(1.8rem,3.3vw,2.7rem);line-height:1.2; }
.price-plan__amount small { font-size:.72rem; }
.price-contract-note { margin:22px 0 0;padding:18px 22px;border-radius:12px;background:rgba(255,255,255,.66);color:var(--ink-soft);font-size:.8rem; }
.price-factor-grid > span { display:grid;grid-template-columns:52px 1fr;align-items:center;min-height:84px;padding:16px 22px;border-radius:13px;background:#fff;box-shadow:0 9px 24px rgba(16,44,87,.05);font-weight:750; }
.price-factor-grid b { color:var(--blue); }
.check-list { margin:0;padding:0;list-style:none; }
.check-list li { position:relative;padding:15px 10px 15px 42px;border-bottom:1px solid var(--line);font-weight:700; }
.check-list li::before { content:"✓";position:absolute;left:10px;color:var(--blue);font-weight:900; }
.faq-page-grid { display:grid;gap:80px; }
.faq-page-grid > section { display:grid;grid-template-columns:30% 1fr;gap:70px; }
.faq-page-grid h2 { font-size:1.75rem; }
.contact-layout { display:grid;grid-template-columns:34% 1fr;gap:70px;align-items:start; }
.contact-guidance { position:sticky;top:120px;padding:30px;border-radius:18px;background:#fff; }
.contact-guidance h2 { font-size:1.35rem; }
.contact-guidance > p { margin:26px 0 0;color:var(--ink-soft);font-size:.8rem; }
.contact-form-card { padding:44px;border-radius:22px;background:#fff;box-shadow:var(--shadow); }
.contact-form { display:grid;gap:26px; }
.contact-form > label > span,.contact-form legend { display:block;margin-bottom:8px;font-size:.82rem;font-weight:800; }
.contact-form b { margin-left:6px;padding:3px 7px;border-radius:5px;color:#fff;background:var(--blue);font-size:.62rem; }
.contact-form em { margin-left:6px;color:var(--ink-soft);font-size:.68rem;font-style:normal; }
.contact-form input[type="text"],.contact-form input[type="email"],.contact-form input[type="tel"],.contact-form textarea { width:100%;padding:15px 16px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fbfdff; }
.contact-form textarea { resize:vertical; }
.contact-form fieldset { display:flex;gap:18px;flex-wrap:wrap;padding:0;border:0; }
.contact-form fieldset label { display:flex;align-items:center;gap:7px;font-size:.82rem; }
.contact-form__privacy { display:flex;align-items:center;gap:10px; }
.contact-form__privacy > span { margin:0!important; }
.contact-form__privacy a { color:var(--blue);text-decoration:underline; }
.contact-form__hp { position:absolute!important;left:-9999px!important; }
.form-message { padding:13px 16px;border-radius:9px;font-size:.82rem;font-weight:700; }
.form-message--error { color:#842029;background:#f8d7da; }
.thanks-card { max-width:900px;margin-top:95px;margin-bottom:120px;padding:75px;border-radius:24px;background:#fff;box-shadow:var(--shadow); }
.thanks-card h1 { font-size:clamp(2.4rem,5vw,4rem); }
.thanks-card > p:not(.eyebrow) { color:var(--ink-soft); }
.thanks-card .button { margin-top:25px; }
.policy-body { padding-top:5px;padding-bottom:10px; }
.policy-body h2 { margin:50px 0 15px;font-size:1.45rem; }
.policy-body p { color:var(--ink-soft); }
.policy-date { margin-top:60px; }
.topic-filter { display:flex;gap:10px;flex-wrap:wrap;margin-bottom:36px; }
.topic-filter a { padding:9px 16px;border:1px solid var(--line);border-radius:30px;background:#fff;font-size:.74rem;font-weight:800; }
.topic-filter a.is-active { color:#fff;background:var(--ink);border-color:var(--ink); }
.insight-list-grid { padding-top:0; }
.company-representative { background:#fff; }
.company-representative__grid { display:grid;grid-template-columns:32% 1fr;gap:90px; }
.company-member-list { display:grid;gap:22px; }
.representative-card { padding:42px;border-radius:20px;background:var(--paper);box-shadow:var(--shadow); }
.representative-card h3 { font-size:2rem; }
.representative-card h3 small { display:block;margin-top:5px;color:var(--ink-soft);font-size:.68rem;font-weight:700;letter-spacing:.08em; }
.representative-card > p:not(.project-tag) { color:var(--ink-soft); }
.representative-card dl { margin-top:28px;border-top:1px solid var(--line); }
.representative-card dl div { display:grid;grid-template-columns:110px 1fr;gap:18px;padding:17px 0;border-bottom:1px solid var(--line); }
.representative-card dt { color:var(--blue);font-size:.76rem;font-weight:800; }
.representative-card dd { margin:0;font-size:.82rem;font-weight:700; }
.company-profile__table a { color:var(--blue);text-decoration:underline; }
.post-card strong { display:block;margin-top:18px; }

.reveal { opacity:0;transform:translateY(42px);transition:opacity .9s var(--ease),transform .9s var(--ease); }
.reveal.is-visible { opacity:1;transform:none; }
.reveal--delay { transition-delay:.14s; }
@keyframes gradientFlow { 0%,100%{background-position:0 70%}50%{background-position:100% 31%} }
@keyframes heroZoom { from{transform:scale(1)}to{transform:scale(1.055)} }
@keyframes scrollLine { 0%{transform:translateY(-100%)}50%{transform:translateY(0)}100%{transform:translateY(100%)} }
@keyframes lineRun { 0%{transform:translateY(100%)}50%{transform:translateY(0)}90%,100%{transform:translateY(-100%)} }

@media (max-width:1080px) {
  :root { --shell:min(100% - 38px,960px); }
  .primary-nav { gap:19px;padding-left:35px; }.primary-nav small{display:none}.primary-nav>a:not(.button),.nav-solutions__parent{min-width:auto}.primary-nav>a:not(.button)::before,.nav-solutions__parent::before{left:-12px}.nav-mega{left:30%;}
  .hero h1 { font-size:clamp(3rem,5vw,4rem); }.concerns__layout{grid-template-columns:1fr;gap:45px}.philosophy__grid{grid-template-columns:40% 1fr;gap:35px}.featured-project{grid-template-columns:50% 50%}.approach-card{padding-inline:14px}.about__grid{gap:35px}.contact__copy{padding-left:50px}.site-footer__grid{grid-template-columns:1.2fr 1fr 1fr}.site-footer__contact{grid-column:1/-1}
}

@media (max-width:920px) {
  .site-header,.site-header.is-scrolled { height:72px;background:rgba(244,247,251,.96);border-bottom:1px solid rgba(16,44,87,.08);backdrop-filter:blur(12px); }
  .site-header__inner,.site-header.is-scrolled .site-header__inner { width:calc(100% - 24px);padding-top:9px;align-items:flex-start; }
  .brand { position:relative;z-index:4; }
  .brand__logo,.site-header.is-scrolled .brand__logo { width:50px;height:50px;object-fit:contain; }
  .menu-toggle { display:block;position:absolute;z-index:4;right:12px;top:9px;width:50px;height:50px;border-radius:50%;background:#fff;box-shadow:0 6px 18px rgba(16,44,87,.1); }
  .menu-toggle::after { content:"MENU";position:absolute;left:0;right:0;bottom:-3px;font-size:.46rem;font-weight:800;line-height:1; }
  .menu-toggle[aria-expanded="true"]::after { content:"CLOSE"; }
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .primary-nav,.site-header.is-scrolled .primary-nav { position:fixed;inset:0;z-index:3;height:auto;min-height:100vh;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;padding:82px 20px 28px;border-radius:0;background:var(--paper);opacity:0;visibility:hidden;transform:translateY(-24px);transition:.45s var(--ease);overflow-y:auto;overscroll-behavior:contain; }
  .primary-nav.is-open,.site-header.is-scrolled .primary-nav.is-open { opacity:1;visibility:visible;transform:none; }
  .primary-nav > a:not(.button),.nav-solutions__parent { width:100%;padding:13px 10px;border-bottom:1px solid var(--line); }
  .primary-nav > a:not(.button)::before,.nav-solutions__parent::before { left:auto;right:10px;top:25px; }
  .primary-nav b { font-size:1.16rem; }.primary-nav small{display:block;font-size:.58rem}
  .primary-nav .button { display:none; }
  .nav-solutions { width:100%;height:auto;display:block; }
  .nav-mega,.nav-solutions:hover .nav-mega,.nav-solutions:focus-within .nav-mega { position:static;left:auto;width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 18px;padding:15px 10px 19px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;opacity:1;visibility:visible;transform:none;transition:none; }
  .nav-mega p { margin-bottom:7px;font-size:.64rem; }
  .nav-mega__links { grid-column:1/-1;display:flex;gap:7px 18px;flex-wrap:wrap;padding:11px 0 0;border-left:0;border-top:1px solid var(--line); }
  .nav-mega__links p { width:100%;margin:0; }
  .nav-mega a { padding:3px 0;font-size:.7rem;line-height:1.55; }
}

@media (max-width:760px) {
  :root { --shell:calc(100% - 38px); }
  body { font-size:15px; }
  .section { padding:96px 0; }
  .section[data-section-word]::before { top:28px;font-size:5.8rem; }
  .primary-nav > a:not(.button),.nav-solutions__parent { padding-block:14px; }

  .hero { min-height:970px;padding-bottom:28px;background-size:18px 18px; }
  .hero::before { width:520px;height:520px;left:-230px;top:140px;border-width:78px; }
  .hero::after { width:260px;height:250px;right:-90px;bottom:35px; }
  .hero__inner { min-height:900px;display:block; }
  .hero__tagline { display:none; }
  .hero__visual { top:56px;right:-19px;width:73vw;height:290px;border-radius:0 0 0 42%;clip-path:polygon(25% 0,100% 0,100% 100%,7% 100%,0 63%,10% 28%); }
  .hero__visual img { object-position:center; }
  .hero__copy { padding:365px 0 145px; }
  .hero .eyebrow { margin-bottom:12px; }
  .hero h1 { margin-bottom:19px;font-size:clamp(2.25rem,10vw,3rem);line-height:1.48;letter-spacing:.045em;white-space:normal; }
  .hero__lead { margin-bottom:22px;font-size:.82rem;line-height:2; }
  .hero__lead br { display:none; }
  .hero__actions { gap:18px; }.hero__actions .button{width:100%;min-height:54px;padding-inline:18px}.hero__actions .text-link{margin-left:4px}
  .hero__orbit--one { width:390px;height:390px;left:-120px;top:35px; }.hero__orbit--two{width:310px;height:310px;left:12%;bottom:-210px}
  .hero__decor { width:2px;height:155px; }.hero__decor--one{left:7%;top:215px}.hero__decor--two{right:17%;bottom:100px}
  .scroll-cue { right:5px;bottom:168px; }.scroll-cue i{height:48px}
  .hero-news { left:19px;right:auto;bottom:18px;width:calc(100% - 38px);min-height:104px;padding:16px 42px 14px 16px;gap:9px;border-radius:10px;grid-template-columns:auto 1fr; }
  .hero-news span { padding:4px 15px; }.hero-news strong{grid-column:1/3;font-size:.75rem}.hero-news i{right:18px;top:42px}

  .motion-line { width:2px;height:150px; }
  .section-heading h2 { font-size:clamp(2.25rem,10vw,3.2rem);line-height:1.45; }
  .section-heading--row { display:block;margin-bottom:38px; }.section-heading--row h2{margin-bottom:20px}
  .concerns { padding-top:125px; }.concerns__layout{gap:30px}.concern-list{grid-template-columns:1fr;gap:12px}.concern-card{min-height:116px;padding:20px}.concern-card p{margin-top:8px;line-height:1.65}.concerns-answer{grid-template-columns:1fr;gap:18px;margin-top:30px;padding:27px 23px}.concerns-answer h3{font-size:1.35rem}.concerns-answer p{font-size:.82rem;line-height:1.9}
  .philosophy { min-height:auto; }.philosophy__grid{grid-template-columns:1fr}.philosophy__copy{padding-top:30px}.philosophy__visual{margin-top:40px}.philosophy__visual::before{top:-45px;left:-5px;font-size:2rem}.philosophy__visual img{border-radius:0 65px 0 65px}
  .services::after{width:600px;height:600px;left:-115px;top:220px;border-width:65px}.services-keyvisual{margin-bottom:30px;border-radius:18px}.services-keyvisual figcaption{position:static;max-width:none;padding:13px 16px;border-radius:0;font-size:.72rem}.slider-controls{margin:-10px 0 20px}.slider-controls button{width:52px;height:52px}.service-grid,.project-grid{padding-left:19px;padding-right:19px}.service-card{flex-basis:84vw;min-height:410px;padding:28px 25px;border-width:5px}.service-card__top{font-size:2.2rem}.service-card__top img{width:110px;height:110px}.service-cluster{margin-top:42px}.service-cluster--challenge{padding-top:42px}.service-cluster__heading{display:block;margin-bottom:20px}.service-cluster__heading .eyebrow{margin-bottom:5px}.service-cluster__heading h3{font-size:1.4rem}.service-grid--group{display:grid;grid-template-columns:1fr;gap:16px;margin:0;padding:0}.service-grid--group .service-card{min-height:380px;width:100%;max-width:none}.services__all{margin-top:30px}
  .projects{padding-top:115px}.featured-project{grid-template-columns:1fr}.featured-project__image img{min-height:260px}.featured-project__body{padding:31px 24px}.featured-project__body h3{font-size:1.7rem}.featured-project__facts div{grid-template-columns:55px 1fr}.project-index-label{display:block;margin-top:40px}.project-index-label p{margin-top:4px}.slider-controls--projects{margin-top:-52px}.project-card{flex-basis:84vw}.project-card>div:last-child{padding:23px}
  .approach-grid { grid-template-columns:1fr;margin-top:40px; }.approach-card{display:grid;grid-template-columns:48px 100px 1fr;grid-template-rows:auto 1fr;align-items:center;padding:22px 15px;text-align:left}.approach-card:not(:last-child){border-right:0;border-bottom:1px solid var(--line)}.approach-card:not(:last-child)::after{content:"↓";right:auto;left:19px;top:auto;bottom:-18px;width:35px;height:35px}.approach-card__number{grid-row:1/3;font-size:1.35rem}.approach-card img{grid-row:1/3;width:88px;height:88px;margin:0}.approach-card h3{margin-bottom:4px}.approach-card p{margin:0}
  .insight-grid{grid-template-columns:1fr}.insight-card{grid-template-columns:40% 1fr;min-height:175px}.insight-card--featured{display:block}.insight-card--featured h3{font-size:1.25rem}.insight-card>div{padding:18px}
  .about { min-height:auto; }.about__grid{grid-template-columns:1fr}.about__image{border-radius:0 80px 0 80px}.about__image img{min-height:330px}.about__copy{padding-top:28px}.about__copy h2{font-size:2.25rem}
  .contact { padding:70px 0; }.contact__card{grid-template-columns:1fr;border-radius:20px}.contact__copy{padding:56px 24px 38px}.contact__card::before{font-size:5rem;bottom:-30px}.contact__image{height:260px;order:-1;border-radius:0 0 50% 50%/0 0 22% 22%}
  .site-footer__grid{grid-template-columns:1fr 1fr;gap:38px 20px}.site-footer__grid>div:first-child,.site-footer__contact{grid-column:1/-1}.site-footer__bottom{display:block}.site-footer__bottom a{display:block;margin-top:8px}.archive-hero{display:block;padding-top:105px}.post-grid{grid-template-columns:1fr}.project-detail__header{grid-template-columns:1fr;gap:35px;padding-top:110px;padding-bottom:60px}.project-detail__header>div:last-child{border-radius:90px 0 0 90px}.project-detail__header img{min-height:300px}

  .projects .section-heading h2 { font-size:clamp(1.95rem,8.5vw,2.2rem);letter-spacing:.015em; }
  .projects .section-heading h2 br,.featured-project h3 br,.project-card h3 br,.about__copy h2 br,.contact__copy h2 br { display:none; }
  .about__copy h2 { font-size:clamp(1.95rem,8.5vw,2.2rem);letter-spacing:.015em; }

  .company-hero { min-height:auto;padding:120px 0 80px; }
  .company-hero::before { bottom:-8px;font-size:5.6rem; }
  .company-hero__orb { width:420px;height:420px;left:-220px;top:-150px;border-width:70px; }
  .company-hero__grid { grid-template-columns:1fr;gap:38px; }
  .company-hero h1 { font-size:clamp(2.15rem,9vw,2.6rem);letter-spacing:.02em; }
  .company-hero__image { border-radius:0 70px 0 70px; }
  .company-hero__image img { min-height:0; }
  .company-belief__grid { grid-template-columns:1fr;gap:18px; }
  .company-belief .section-heading h2 { max-width:330px;font-size:clamp(1.95rem,8.3vw,2.35rem);line-height:1.48; }
  .company-belief__body { padding-top:0; }
  .company-belief__body p { font-size:.92rem;line-height:2; }
  .company-values__grid { grid-template-columns:1fr;gap:14px; }
  .company-value { min-height:auto;padding:26px 24px 30px; }
  .company-value span { font-size:1.7rem; }
  .company-value h3 { margin:20px 0 10px;font-size:1.18rem; }
  .company-profile__grid { grid-template-columns:1fr;gap:25px; }
  .company-profile__table div { grid-template-columns:82px 1fr;gap:14px;padding:18px 4px; }
  .company-contact { padding-top:35px; }
  .company-contact__card { padding:54px 24px 50px; }
  .company-contact__card h2 { font-size:clamp(1.9rem,8vw,2.25rem);letter-spacing:.015em; }
  .company-contact__card::after { right:-10px;bottom:-18px;font-size:5rem; }

  .lower-page { padding-top:76px; }
  .breadcrumb { padding-top:18px;overflow-x:auto;white-space:nowrap; }
  .lower-hero { padding-top:55px;padding-bottom:72px; }
  .lower-hero::after { right:-185px;width:360px;height:360px;border-width:55px; }
  .lower-hero h1 { font-size:clamp(2.15rem,10vw,2.75rem);line-height:1.46; }
  .lower-hero > p:not(.eyebrow) { font-size:.88rem;line-height:1.95; }
  .lower-section { padding:76px 0; }
  .lower-heading { margin-bottom:32px; }
  .lower-heading h2 { font-size:clamp(1.95rem,9vw,2.45rem); }
  .solution-overview-grid,.problem-grid,.detail-split,.related-project,.faq-layout,.faq-page-grid>section,.contact-layout,.company-representative__grid { grid-template-columns:1fr;gap:24px; }
  .solution-overview-card { min-height:auto;padding:28px 24px; }
  .solution-overview-card > span { font-size:1.7rem; }
  .solution-overview-card h2 { margin-top:18px;font-size:1.35rem; }
  .problem-card { grid-template-columns:52px 1fr;min-height:120px;padding:22px 18px; }
  .action-list li { grid-template-columns:48px 1fr;gap:10px;padding:22px 4px; }
  .deliverable-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
  .deliverable-grid span { min-height:86px;padding:12px;font-size:.8rem; }
  .mini-flow { display:grid;grid-template-columns:1fr;gap:9px; }
  .mini-flow span { min-height:80px; }
  .mini-flow span:not(:last-child)::after { content:"↓";right:auto;left:calc(50% - 15px);top:auto;bottom:-19px;width:30px;height:30px; }
  .related-project__card { padding:30px 24px; }
  .related-project__card h3 { font-size:1.45rem; }
  .solution-case-section { padding:82px 0; }
  .solution-case,.solution-case--1,.solution-case--2 { display:grid;grid-template-columns:1fr;gap:0; }
  .solution-case--1 .solution-case__visual,.solution-case--2 .solution-case__visual,.solution-case--3 .solution-case__visual { order:1;width:100%;height:285px;margin:0;border-radius:0 62px 0 62px; }
  .solution-case--1 .solution-case__body,.solution-case--2 .solution-case__body,.solution-case--3 .solution-case__body { order:2;width:calc(100% - 18px);margin:-24px 0 0 18px;padding:30px 23px;border-radius:18px;background:#fff;box-shadow:var(--shadow); }
  .solution-case--2 .solution-case__body { color:var(--ink); }
  .solution-case--2 .eyebrow,.solution-case--2 .solution-case__industry,.solution-case--2 .solution-case__facts dt { color:var(--blue); }
  .solution-case--2 .solution-case__summary,.solution-case--2 .solution-case__facts dd { color:var(--ink-soft); }
  .solution-case--2 .solution-case__facts { border-color:var(--line); }
  .solution-case--2 .solution-case__facts div { border-color:var(--line); }
  .solution-case__visual figcaption,.solution-case--3 .solution-case__visual figcaption { left:auto;right:15px;top:14px;bottom:auto;padding:7px 13px; }
  .solution-case__body h2 { font-size:clamp(1.55rem,7.6vw,1.95rem); }
  .solution-case__summary { font-size:.82rem; }
  .solution-case__facts { margin:23px 0 26px; }
  .solution-case__facts div { grid-template-columns:62px 1fr;gap:11px;padding:11px 0; }
  .solution-case__body .button { width:100%;padding-inline:16px; }
  .faq-list summary { padding:20px 42px 20px 4px; }
  .faq-list details p { padding:0 34px 22px 4px; }
  .lower-cta { padding:68px 0; }
  .lower-cta h2 { font-size:clamp(1.9rem,9vw,2.35rem); }
  .flow-item { grid-template-columns:1fr;gap:8px;padding:27px 4px; }
  .flow-item h2 { font-size:1.35rem; }
  .price-factor-grid { grid-template-columns:1fr; }
  .price-plan-grid { grid-template-columns:1fr; }
  .price-plan { min-height:auto;padding:29px 23px; }
  .price-plan h2 { margin-bottom:20px; }
  .price-contract-note { padding:16px 18px; }
  .price-factor-grid > span { min-height:74px; }
  .faq-page-grid { gap:55px; }
  .faq-page-grid>section { gap:12px; }
  .contact-guidance { position:static;padding:23px; }
  .contact-form-card { padding:27px 20px; }
  .contact-form fieldset { display:grid;gap:11px; }
  .contact-form .button { width:100%;padding-inline:15px; }
  .thanks-card { margin-top:55px;margin-bottom:80px;padding:48px 23px; }
  .topic-filter { gap:7px; }
  .topic-filter a { padding:7px 12px; }
  .representative-card { padding:28px 22px; }
  .representative-card dl div { grid-template-columns:1fr;gap:5px; }
  .company-representative__grid { gap:25px; }
  .related-service-grid { grid-template-columns:1fr; }
}

@media (max-width:380px) { .menu-toggle{right:12px}.hero h1{font-size:2.15rem}.hero__copy{padding-top:350px}.hero__visual{height:275px}.approach-card{grid-template-columns:42px 82px 1fr}.approach-card img{width:72px;height:72px} }

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