/* Factory-to-DTC: industrial editorial system. All styles are page-scoped. */
.solution-factory .sol-hero > .container { display: block; }
.solution-factory .sol-hero { display: block; min-height: 0; padding-bottom: 47px; }
.solution-factory .fct-hero-top { display: grid; grid-template-columns: 1.3fr 1fr; gap: 64px; align-items: end; }
.solution-factory .fct-title-phrase { display: inline-block; white-space: nowrap; }
.solution-factory .fct-brand-word { color: #93ADFF; }
.solution-factory .fct-hero-intro { padding-bottom: 3px; }
.solution-factory .fct-hero-intro .sol-one { margin-top: 0; font-size: 16px; line-height: 1.85; max-width: 490px; }
.solution-factory .fct-hero-intro .hero-actions { margin-top: 27px; gap: 12px; }
.solution-factory .fct-hero-intro .btn { font-size: 13px; }
.solution-factory .fct-hero-art { margin-top: 54px; border-top: 1px solid var(--line-dark); position: relative; }
.solution-factory .fct-art-caption { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-block: 17px; border-bottom: 1px solid var(--line-dark); color: var(--paper-dark-soft); }
.solution-factory .fct-art-caption .mono { font-size: 10px; }
.solution-factory .fct-art-caption b { color: var(--orange); font-weight: 500; }
.solution-factory .fct-transformation { display: grid; grid-template-columns: 1fr 76px 1fr; align-items: center; background-image: linear-gradient(rgba(245,241,234,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(245,241,234,.025) 1px, transparent 1px); background-size: 32px 32px; position: relative; }
.solution-factory .fct-transformation::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, var(--black-scene), transparent 15%, transparent 85%, var(--black-scene)); }
.solution-factory .fct-stage { position: relative; min-width: 0; padding: 24px 18px 20px; z-index: 1; }
.solution-factory .fct-stage-title { display: flex; gap: 13px; align-items: center; font-size: 16px; font-weight: 550; line-height: 1.5; }
.solution-factory .fct-stage-title > span:first-child { font-family: var(--mono); font-size: 10px; color: #A8ABC0; border: 1px solid #555967; padding: 2px 5px; }
.solution-factory .fct-stage svg { width: 100%; height: auto; display: block; margin-top: 7px; }
.solution-factory .fct-stage--brand { background: linear-gradient(150deg, rgba(20,63,208,.13), rgba(20,63,208,0)); }
.solution-factory .fct-stage--brand .fct-stage-title > span:first-child { border-color: #7899FF; color: #A2B9FF; }
.solution-factory .fct-stage-tags { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 18px; padding-top: 10px; border-top: 1px solid var(--line-dark); color: #CBC6BC; font-size: 11px; }
.solution-factory .fct-stage-tags span::before { content: "+ "; color: #7A99FF; }
.solution-factory .fct-transform-arrow { align-self: center; position: relative; z-index: 1; width: 58px; height: 58px; border: 1px solid #597EDC; border-radius: 50%; display: grid; place-items: center; margin: 15px auto 0; background: #143FD0; }
.solution-factory .fct-transform-arrow svg { width: 27px; height: 27px; stroke: #fff; fill: none; stroke-width: 1.3; }
.solution-factory .fct-hero-art > figcaption { color: #AFAEA8; font-size: 11px; line-height: 1.75; margin-top: 17px; }
.solution-factory .fct-your-brand { position: absolute; bottom: 35%; right: 18%; font-size: 11px; font-weight: 600; color: #F5F1EA; transform: rotate(-4deg); }
/* Three scenes: manufacture, brand expression, direct retail. Static is the baseline. */
.solution-factory .fct-transformation {
  --fct-origin-x: 24%; --fct-origin-y: 49%;
  --fct-mid-x: 53%; --fct-mid-y: 39%;
  --fct-target-x: 83%; --fct-target-y: 61%;
}
.solution-factory .fct-transformation::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at var(--motion-light-x, 50%) var(--motion-light-y, 50%), rgba(68, 104, 216, .12), transparent 64%);
}
.solution-factory .fct-material-piece,
.solution-factory .fct-lamp-base,
.solution-factory .fct-lamp-stem,
.solution-factory .fct-lamp-shade,
.solution-factory .fct-lamp-fitting,
.solution-factory .fct-box-top,
.solution-factory .fct-box-front,
.solution-factory .fct-box-side,
.solution-factory .fct-box-marking,
.solution-factory .fct-shop-window,
.solution-factory .fct-shop-product,
.solution-factory .fct-shop-copy,
.solution-factory .fct-shop-action,
.solution-factory .fct-customer-node,
.solution-factory .fct-content-node,
.solution-factory .fct-story-node { transform-box: fill-box; transform-origin: center; }
.solution-factory .fct-box-top { transform-origin: center bottom; }
.solution-factory .fct-box-side { transform-origin: left center; }
.solution-factory .fct-motion-transfer {
  position: absolute; left: var(--fct-origin-x); top: var(--fct-origin-y);
  width: clamp(48px, 6vw, 72px); z-index: 5; pointer-events: none;
  opacity: 0; transform: translate(-50%, -50%);
  filter: drop-shadow(0 9px 16px rgba(0, 0, 0, .5));
}
.solution-factory .fct-motion-transfer svg { display: block; width: 100%; height: auto; }
.solution-factory .fct-hero-art.solution-motion-ready .fct-build-lamp.is-motion-current,
.solution-factory .fct-hero-art.solution-motion-ready .fct-packaging.is-motion-current,
.solution-factory .fct-hero-art.solution-motion-ready .fct-storefront.is-motion-current { filter: drop-shadow(0 0 8px rgba(137, 168, 255, .32)); }
.solution-factory .fct-hero-art.solution-motion-ready .fct-your-brand.is-motion-current { text-shadow: 0 0 13px rgba(255, 255, 255, .6); }
.solution-factory .fct-hero-art.solution-motion-ready .fct-customer-label.is-motion-current { color: #DCE5FF; }
.solution-factory .fct-motion-controls button { display: flex; align-items: baseline; gap: 10px; }
.solution-factory .fct-motion-controls button > span:first-child { font-family: var(--mono); color: #9FB7FF; font-size: 10px; flex-shrink: 0; }
.solution-factory .fct-motion-controls button > span:last-child { min-width: 0; }
.solution-factory .fct-motion-caption { max-width: 930px; }

.solution-factory .fct-hero-art.is-motion-running .fct-material-piece { animation: fct-material-in .6s cubic-bezier(.16, 1, .3, 1) both; }
.solution-factory .fct-hero-art.is-motion-running .fct-material-guide { stroke-dasharray: 100; animation: fct-line-draw .6s .15s ease both; }
.solution-factory .fct-hero-art.is-motion-running .fct-lamp-base { animation: fct-part-rise .6s .12s cubic-bezier(.16, 1, .3, 1) both; }
.solution-factory .fct-hero-art.is-motion-running .fct-lamp-stem { animation: fct-stem-rise .65s .3s cubic-bezier(.16, 1, .3, 1) both; }
.solution-factory .fct-hero-art.is-motion-running .fct-lamp-shade { animation: fct-shade-settle .7s .55s cubic-bezier(.16, 1, .3, 1) both; }
.solution-factory .fct-hero-art.is-motion-running .fct-lamp-fitting { animation: fct-fitting-settle .6s .65s cubic-bezier(.16, 1, .3, 1) both; }
.solution-factory .fct-hero-art.is-motion-running .fct-measure-line,
.solution-factory .fct-hero-art.is-motion-running .fct-measure-ticks { stroke-dasharray: 100; animation: fct-line-draw .7s .5s ease-out both; }
.solution-factory .fct-hero-art.is-motion-running .fct-quality-ring { stroke-dasharray: 100; animation: fct-line-draw .45s .85s ease-out both; }
.solution-factory .fct-hero-art.is-motion-running .fct-quality-mark { stroke-dasharray: 100; animation: fct-line-draw .35s 1s ease-out both; }
.solution-factory .fct-hero-art.is-motion-running .fct-transfer-direction { stroke-dasharray: 100; animation: fct-line-draw .45s 1.4s ease both; }
.solution-factory .fct-hero-art.is-motion-running .fct-motion-transfer { animation: fct-product-journey 1.55s 1.4s cubic-bezier(.4, 0, .2, 1) both; }
.solution-factory .fct-hero-art.is-motion-running .fct-box-front { animation: fct-box-rise .6s 1.9s cubic-bezier(.16, 1, .3, 1) both; }
.solution-factory .fct-hero-art.is-motion-running .fct-box-side { animation: fct-box-side-fold .6s 2.05s cubic-bezier(.16, 1, .3, 1) both; }
.solution-factory .fct-hero-art.is-motion-running .fct-box-top { animation: fct-box-top-fold .8s 2.15s cubic-bezier(.16, 1, .3, 1) both; }
.solution-factory .fct-hero-art.is-motion-running .fct-box-marking { animation: fct-part-appear .35s 2.6s ease both; }
.solution-factory .fct-hero-art.is-motion-running .fct-your-brand { animation: fct-brand-imprint .35s 2.65s ease-out both; }
.solution-factory .fct-hero-art.is-motion-running .fct-shop-window { animation: fct-store-rise .6s 3s cubic-bezier(.16, 1, .3, 1) both; }
.solution-factory .fct-hero-art.is-motion-running .fct-shop-product { animation: fct-part-rise .5s 3.25s cubic-bezier(.16, 1, .3, 1) both; }
.solution-factory .fct-hero-art.is-motion-running .fct-shop-copy { animation: fct-copy-in .5s 3.4s ease-out both; }
.solution-factory .fct-hero-art.is-motion-running .fct-shop-action { animation: fct-part-appear .4s 3.65s ease-out both; }
.solution-factory .fct-hero-art.is-motion-running .fct-channel-lines { animation: fct-part-appear .5s 3.8s ease-out both; }
.solution-factory .fct-hero-art.is-motion-running .fct-customer-node { animation: fct-channel-in .5s 3.95s cubic-bezier(.16, 1, .3, 1) both; }
.solution-factory .fct-hero-art.is-motion-running .fct-content-node { animation: fct-channel-in .45s 4.1s cubic-bezier(.16, 1, .3, 1) both; }
.solution-factory .fct-hero-art.is-motion-running .fct-story-node { animation: fct-channel-in .4s 4.25s cubic-bezier(.16, 1, .3, 1) both; }
.solution-factory .fct-hero-art.is-motion-running .fct-customer-label { animation: fct-part-appear .4s 4.3s ease both; }

@keyframes fct-material-in { from { opacity: 0; transform: translate(-24px, 7px); } to { opacity: 1; transform: translate(0, 0); } }
@keyframes fct-part-rise { from { opacity: 0; transform: translateY(20px) scale(.92); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes fct-stem-rise { from { opacity: 0; transform: translateY(35px) scaleY(.55); } to { opacity: 1; transform: translateY(0) scaleY(1); } }
@keyframes fct-shade-settle { from { opacity: 0; transform: translateY(-32px) rotate(-8deg); } to { opacity: 1; transform: translateY(0) rotate(0deg); } }
@keyframes fct-fitting-settle { from { opacity: 0; transform: translateY(-13px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fct-line-draw { from { opacity: 0; stroke-dashoffset: 100; } to { opacity: 1; stroke-dashoffset: 0; } }
@keyframes fct-product-journey {
  0% { opacity: 0; left: var(--fct-origin-x); top: var(--fct-origin-y); transform: translate(-50%, -50%) scale(1); }
  12% { opacity: 1; }
  54% { opacity: 1; left: var(--fct-mid-x); top: var(--fct-mid-y); transform: translate(-50%, -50%) rotate(-7deg) scale(.8); }
  90% { opacity: 1; left: var(--fct-target-x); top: var(--fct-target-y); transform: translate(-50%, -50%) rotate(0deg) scale(.42); }
  100% { opacity: 0; left: var(--fct-target-x); top: var(--fct-target-y); transform: translate(-50%, -50%) scale(.3); }
}
@keyframes fct-box-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fct-box-side-fold { from { opacity: 0; transform: skewY(-13deg) scaleX(.25); } to { opacity: 1; transform: skewY(0deg) scaleX(1); } }
@keyframes fct-box-top-fold { from { opacity: 0; transform: translateY(-17px) scaleY(.2); } to { opacity: 1; transform: translateY(0) scaleY(1); } }
@keyframes fct-part-appear { from { opacity: 0; } to { opacity: 1; } }
@keyframes fct-brand-imprint { from { opacity: 0; transform: rotate(-4deg) scale(1.14); } to { opacity: 1; transform: rotate(-4deg) scale(1); } }
@keyframes fct-store-rise { from { opacity: 0; transform: translateY(20px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes fct-copy-in { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: translateX(0); } }
@keyframes fct-channel-in { from { opacity: 0; transform: translateY(9px) scale(.7); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 520px) {
  .solution-factory .fct-transformation {
    --fct-origin-x: 50%; --fct-origin-y: 26%;
    --fct-mid-x: 50%; --fct-mid-y: 52%;
    --fct-target-x: 69%; --fct-target-y: 78%;
  }
  .solution-factory .fct-motion-transfer { width: 54px; }
  .solution-factory .fct-motion-controls button { flex-direction: column; align-items: flex-start; gap: 3px; }
}
.solution-factory .fct-header { margin-bottom: 39px; }
.solution-factory .fct-header .sol-h2 { max-width: 900px; }
.solution-factory .fct-story-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 70px; align-items: start; }
.solution-factory .fct-story-grid .sol-body { margin: 0; font-size: 16px; line-height: 1.95; max-width: 640px; }
.solution-factory .fct-story .fct-header { margin-bottom: 0; }
.solution-factory .fct-story-copy { min-width: 0; }
.solution-factory .fct-story-copy .sol-body + .sol-body { margin-top: 20px; }
.solution-factory .fct-story-link { display: inline-flex; align-items: center; gap: 17px; margin-top: 28px; padding-block: 7px; color: var(--cobalt); border-bottom: 1px solid currentColor; text-decoration: none; font-size: 13px; line-height: 1.6; }
.solution-factory .fct-story-link > span:last-child { font-size: 20px; }
.solution-factory .fct-readiness { background: var(--warm-2); }
.solution-factory .fct-readiness-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 75px; }
.solution-factory .fct-readiness .fct-header { margin-bottom: 0; }
.solution-factory .fct-ready-list { list-style: none; border-top: 1px solid var(--line-strong); }
.solution-factory .fct-ready-list li { display: grid; grid-template-columns: 42px 1fr; gap: 21px; padding: 27px 0; border-bottom: 1px solid var(--line); }
.solution-factory .fct-ready-no { font-family: var(--mono); color: var(--cobalt); font-size: 15px; padding-top: 2px; }
.solution-factory .fct-ready-list h3 { font-size: 18px; font-weight: 620; margin-bottom: 10px; }
.solution-factory .fct-ready-list p { font-size: 14px; line-height: 1.9; color: var(--ink-soft); }
.solution-factory .fct-capability-table { width: 100%; border-collapse: collapse; margin-top: 37px; text-align: left; }
.solution-factory .fct-capability-table th { padding: 0 20px 18px 0; font-size: 10px; font-weight: 500; letter-spacing: .12em; color: var(--ink-soft); border-bottom: 2px solid var(--ink); }
.solution-factory .fct-capability-table th:last-child { color: var(--cobalt); }
.solution-factory .fct-capability-table td { padding: 27px 30px 27px 0; border-bottom: 1px solid var(--line); width: 46%; font-size: 16px; line-height: 1.8; vertical-align: top; }
.solution-factory .fct-capability-table td:last-child { color: var(--cobalt); font-weight: 560; }
.solution-factory .fct-capability-table .fct-capability-index { width: 8%; color: var(--ink-soft); font-size: 11px; font-family: var(--mono); padding-top: 33px; }
.solution-factory .fct-capability-table .fct-capability-index::before { content: "["; margin-right: 3px; }
.solution-factory .fct-capability-table .fct-capability-index::after { content: "]"; margin-left: 3px; }
.solution-factory .fct-roadmap { background: var(--cobalt); color: #F5F1EA; border: 0; overflow: hidden; }
.solution-factory .fct-roadmap .sec-label, .solution-factory .fct-roadmap .sec-no { color: #E0E7FF; }
.solution-factory .fct-roadmap .dot { background: #F0782D; }
.solution-factory .fct-roadmap .sol-h2 { color: #FFF; }
.solution-factory .fct-roadmap .sol-body { color: #E1E7FC; font-size: 15px; max-width: 790px; }
.solution-factory .fct-roadmap-top { display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: center; }
.solution-factory .fct-dtc-mark { font-weight: 800; line-height: 1; font-size: 108px; color: transparent; -webkit-text-stroke: 1px #7394F4; letter-spacing: .04em; padding-top: 20px; opacity: .7; }
.solution-factory .fct-path { list-style: none; display: grid; grid-template-columns: repeat(5,1fr); gap: 0; margin-top: 53px; border-top: 1px solid #8CA7FD; }
.solution-factory .fct-path li { padding: 24px 21px 0 0; min-width: 0; position: relative; }
.solution-factory .fct-path li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #FBF8F3; position: absolute; top: -4px; left: 0; }
.solution-factory .fct-path-no { color: #B9CCFF; font-family: var(--mono); font-size: 12px; display: block; margin-bottom: 20px; }
.solution-factory .fct-path h3 { font-size: 18px; line-height: 1.6; font-weight: 550; max-width: 180px; }
.solution-factory .fct-roadmap-note { font-size: 10px; margin-top: 35px; color: #C9D7FF; }
.solution-factory .fct-services > .container > .fct-header { margin-bottom: 50px; }
.solution-factory .fct-service-chapter { border-top: 1px solid var(--line-strong); padding: 41px 0 47px; display: grid; grid-template-columns: .9fr 1.1fr; gap: 74px; align-items: center; }
.solution-factory .fct-service-chapter:last-of-type { padding-bottom: 34px; border-bottom: 1px solid var(--line-strong); }
.solution-factory .fct-chapter-kicker { display: flex; align-items: center; gap: 15px; color: var(--ink-soft); margin-bottom: 19px; }
.solution-factory .fct-chapter-kicker b { font-size: 15px; color: var(--cobalt); font-weight: 550; }
.solution-factory .fct-chapter-kicker span { font-size: 10px; }
.solution-factory .fct-chapter-title { font-size: clamp(25px, 2.7vw, 35px); font-weight: 580; line-height: 1.45; max-width: 490px; margin-bottom: 27px; }
.solution-factory .fct-service-item + .fct-service-item { border-top: 1px solid var(--line); padding-top: 22px; margin-top: 23px; }
.solution-factory .fct-service-item h4 { font-size: 17px; line-height: 1.5; font-weight: 650; margin-bottom: 9px; }
.solution-factory .fct-service-item > p { font-size: 14px; color: var(--ink-soft); line-height: 1.85; }
.solution-factory .fct-service-item .fct-deliverable { margin-top: 12px; font-size: 11px; color: var(--cobalt); line-height: 1.7; }
.solution-factory .fct-deliverable::before { content: "↗ "; }
.solution-factory .fct-delivery-art { position: relative; margin: 0; min-width: 0; }
.solution-factory .fct-delivery-art svg { display: block; width: 100%; height: auto; }
.solution-factory .fct-delivery-art figcaption { font-size: 11px; color: var(--ink-soft); line-height: 1.75; display: flex; flex-wrap: wrap; gap: 9px 23px; border-top: 1px solid var(--line); padding-top: 14px; }
.solution-factory .fct-delivery-art figcaption span::before { content: "+ "; color: var(--cobalt); }
.solution-factory .fct-brand-cover-label { position: absolute; top: 29%; left: 24%; max-width: 53%; color: var(--paper-dark); font-weight: 620; font-size: clamp(19px, 2.2vw, 29px); line-height: 1.3; transform: rotate(-6deg); }
.solution-factory .fct-site-label { position: absolute; top: 21%; left: 14%; color: var(--ink); font-size: 12px; font-weight: 600; }
.solution-factory .fct-launch-label { position: absolute; top: 20%; left: 17%; color: #fff; font-size: 12px; letter-spacing: .08em; }
.solution-factory .fct-services-note { margin-top: 27px; color: var(--ink-soft); font-size: 14px; line-height: 1.8; }
.solution-factory .fct-case { background: var(--warm-2); }
.solution-factory .fct-case-top { display: grid; grid-template-columns: 1.1fr 1fr; align-items: start; gap: 70px; }
.solution-factory .fct-case .fct-header { margin: 0; }
.solution-factory .fct-case .fct-header .sol-h2 { font-size: clamp(29px, 3.5vw, 45px); }
.solution-factory .fct-case-copy { font-size: 15px; color: var(--ink-soft); line-height: 1.95; padding-top: 50px; }
.solution-factory .fct-case-badge { display: inline-flex; gap: 8px; align-items: center; font-size: 10px; color: var(--cobalt); padding: 7px 0; margin-top: 21px; font-weight: 550; }
.solution-factory .fct-case-badge::before { content: ""; width: 6px; height: 6px; background: var(--orange); }
.solution-factory .fct-timeline { display: grid; grid-template-columns: .8fr 1fr 1fr; gap: 0; margin: 52px 0 30px; border-top: 1px solid var(--line-strong); list-style: none; }
.solution-factory .fct-timeline li { min-width: 0; position: relative; padding: 30px 25px 0 0; }
.solution-factory .fct-timeline li::before { content: ""; width: 9px; height: 9px; background: var(--cobalt); position: absolute; top: -5px; left: 0; border-radius: 50%; }
.solution-factory .fct-timeline li:first-child::before { background: var(--ink-soft); }
.solution-factory .fct-year { display: block; font-family: var(--font-en); font-size: clamp(45px, 5.9vw, 77px); line-height: 1.05; font-weight: 560; color: var(--cobalt); letter-spacing: 0; margin-bottom: 19px; }
.solution-factory .fct-year--early { font-size: 12px; font-family: var(--mono); line-height: 1.5; color: var(--ink-soft); padding-top: 10px; margin-bottom: 29px; }
.solution-factory .fct-timeline h3 { font-size: 16px; font-weight: 570; line-height: 1.6; }
.solution-factory .fct-timeline svg { display: block; width: 42px; height: 42px; margin-top: 20px; stroke: var(--cobalt); fill: none; stroke-width: 1.2; }
.solution-factory .fct-timeline li:first-child svg { stroke: var(--ink-soft); }
.solution-factory .fct-case .sol-src { padding-top: 23px; border-top: 1px solid var(--line); }
.solution-factory .fct-case .sol-src a { font-size: 11px; }
.solution-factory .fct-contact-label { color: var(--paper-dark-soft); margin-bottom: 28px; font-size: 10px; }
@media (max-width: 1080px) {
  .solution-factory .fct-hero-top { gap: 40px; grid-template-columns: 1.12fr 1fr; }
  .solution-factory .fct-hero-intro .sol-one { font-size: 14px; }
  .solution-factory .fct-story-grid, .solution-factory .fct-readiness-grid, .solution-factory .fct-case-top { gap: 45px; }
  .solution-factory .fct-service-chapter { gap: 44px; grid-template-columns: .85fr 1.15fr; }
  .solution-factory .fct-transformation { grid-template-columns: 1fr 48px 1fr; }
  .solution-factory .fct-transform-arrow { width: 42px; height: 42px; }
  .solution-factory .fct-stage-title { font-size: 14px; }
}
@media (max-width: 800px) {
  .solution-factory .fct-hero-top { grid-template-columns: 1fr; gap: 27px; }
  .solution-factory .fct-hero-intro .sol-one { font-size: 15px; max-width: 620px; }
  .solution-factory .fct-hero-intro .hero-actions { margin-top: 22px; }
  .solution-factory .fct-hero-art { margin-top: 34px; }
  .solution-factory .fct-stage { padding-inline: 6px; }
  .solution-factory .fct-stage-tags { justify-content: flex-start; gap: 5px 12px; font-size: 10px; }
  .solution-factory .fct-stage-title { min-height: 43px; align-items: flex-start; font-size: 13px; gap: 9px; }
  .solution-factory .fct-your-brand { font-size: 8px; }
  .solution-factory .fct-story-grid { grid-template-columns: 1fr; gap: 36px; }
  .solution-factory .fct-readiness-grid { grid-template-columns: 1fr; gap: 30px; }
  .solution-factory .fct-roadmap-top { grid-template-columns: 1fr; }
  .solution-factory .fct-dtc-mark { display: none; }
  .solution-factory .fct-path { gap: 22px; grid-template-columns: repeat(3,1fr); border: none; margin-top: 38px; }
  .solution-factory .fct-path li { border-top: 1px solid #8CA7FD; padding-top: 18px; }
  .solution-factory .fct-path h3 { font-size: 16px; }
  .solution-factory .fct-path-no { margin-bottom: 12px; }
  .solution-factory .fct-service-chapter { grid-template-columns: 1fr; gap: 20px; }
  .solution-factory .fct-delivery-art { width: min(470px,100%); margin-inline: auto; grid-row: 2; }
  .solution-factory .fct-service-chapter .fct-chapter-content { grid-row: 1; }
  .solution-factory .fct-brand-cover-label { font-size: 26px; }
  .solution-factory .fct-case-top { grid-template-columns: 1fr; gap: 23px; }
  .solution-factory .fct-case-copy { padding-top: 0; }
  .solution-factory .fct-year { font-size: 57px; }
  .solution-factory .fct-year--early { font-size: 10px; }
}
@media (max-width: 520px) {
  .solution-factory .sol-hero { padding-bottom: 34px; }
  .solution-factory .fct-hero-intro .btn { width: 100%; justify-content: center; }
  .solution-factory .fct-hero-intro .hero-actions { gap: 10px; }
  .solution-factory .fct-transformation { grid-template-columns: 1fr; padding-block: 3px; }
  .solution-factory .fct-stage { padding: 20px 7px 18px; }
  .solution-factory .fct-stage svg { width: min(330px,100%); margin-inline: auto; }
  .solution-factory .fct-stage-title { min-height: 0; font-size: 15px; }
  .solution-factory .fct-transform-arrow { margin: 1px auto; transform: rotate(90deg); width: 36px; height: 36px; }
  .solution-factory .fct-transform-arrow svg { width: 22px; height: 22px; }
  .solution-factory .fct-stage-tags { font-size: 11px; justify-content: space-between; }
  .solution-factory .fct-your-brand { font-size: 9px; bottom: 35%; }
  .solution-factory .fct-art-caption .mono { font-size: 8px; letter-spacing: .08em; }
  .solution-factory .fct-art-caption { gap: 12px; }
  .solution-factory .fct-header { margin-bottom: 28px; }
  .solution-factory .fct-story-grid .sol-body { font-size: 14px; }
  .solution-factory .fct-ready-list li { grid-template-columns: 30px 1fr; gap: 17px; padding: 23px 0; }
  .solution-factory .fct-ready-list h3 { font-size: 17px; }
  .solution-factory .fct-capability-table thead { display: none; }
  .solution-factory .fct-capability-table, .solution-factory .fct-capability-table tbody { display: block; }
  .solution-factory .fct-capability-table tr { display: grid; grid-template-columns: 34px 1fr; gap: 9px 8px; border-top: 1px solid var(--line); padding: 22px 0; }
  .solution-factory .fct-capability-table tr:last-child { border-bottom: 1px solid var(--line); }
  .solution-factory .fct-capability-table td { display: block; border: none; padding: 0; font-size: 14px; width: auto; }
  .solution-factory .fct-capability-table .fct-capability-index { width: auto; padding-top: 4px; grid-row: span 2; font-size: 10px; }
  .solution-factory .fct-capability-table td:last-child { grid-column: 2; }
  .solution-factory .fct-path { grid-template-columns: 1fr; border-left: 1px solid #8CA7FD; padding-left: 21px; gap: 26px; margin-left: 4px; }
  .solution-factory .fct-path li { border: none; padding: 0; display: grid; grid-template-columns: 28px 1fr; gap: 12px; align-items: baseline; }
  .solution-factory .fct-path li::before { left: -25px; top: 7px; }
  .solution-factory .fct-path-no { margin-bottom: 0; }
  .solution-factory .fct-path h3 { max-width: none; font-size: 17px; }
  .solution-factory .fct-chapter-title { font-size: 25px; }
  .solution-factory .fct-chapter-kicker span { font-size: 9px; }
  .solution-factory .fct-service-chapter { padding-block: 29px 34px; }
  .solution-factory .fct-brand-cover-label { font-size: 22px; }
  .solution-factory .fct-site-label { font-size: 10px; }
  .solution-factory .fct-launch-label { font-size: 10px; }
  .solution-factory .fct-timeline { grid-template-columns: 1fr; border-top: 0; border-left: 1px solid var(--line-strong); margin-left: 5px; padding-left: 22px; gap: 27px; }
  .solution-factory .fct-timeline li { padding: 0 0 0 2px; display: grid; grid-template-columns: 1fr 42px; column-gap: 20px; align-items: center; }
  .solution-factory .fct-timeline li::before { top: 16px; left: -27px; }
  .solution-factory .fct-timeline .fct-year { font-size: 53px; margin-bottom: 10px; }
  .solution-factory .fct-timeline .fct-year--early { font-size: 11px; padding: 8px 0 0; margin-bottom: 8px; }
  .solution-factory .fct-timeline h3 { font-size: 15px; grid-column: 1; }
  .solution-factory .fct-timeline svg { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .solution-factory .fct-hero-art *, .solution-factory .fct-delivery-art * { animation: none !important; transition: none !important; }
}
