/* Linval One-Pager components. The global shell lives in the theme. */
.lv3-page {
	--lv3-night: var(--wp--preset--color--night, #050816);
	--lv3-navy: var(--wp--preset--color--navy, #06185b);
	--lv3-blue: var(--wp--preset--color--digital-blue, #2388ff);
	--lv3-indigo: var(--wp--preset--color--tech-indigo, #3246d3);
	--lv3-cyan: var(--wp--preset--color--soft-cyan, #ddf3ff);
	--lv3-surface: var(--wp--preset--color--surface, #f6f8fc);
	--lv3-ink: var(--wp--preset--color--ink, #080d18);
	--lv3-slate: var(--wp--preset--color--slate, #3d4a5c);
	--lv3-border: rgba(35, 136, 255, .2);
	--lv3-ease: cubic-bezier(.22, 1, .36, 1);
	--lv3-shadow: 0 20px 50px rgba(17, 48, 105, .14), 0 0 0 1px rgba(35, 136, 255, .08);
	--lv3-radius: 18px;
	background: var(--lv3-surface);
	color: var(--lv3-ink);
	overflow: clip;
}

.lv3-page > * { margin-block-start: 0 !important; }
.lv3-section { box-sizing: border-box; isolation: isolate; min-width: 0; padding: clamp(4.5rem, 8vw, 8.5rem) max(1.25rem, env(safe-area-inset-left)); position: relative; scroll-margin-top: 5.5rem; }
.lv3-section > * { position: relative; z-index: 1; }
.lv3-section--light { background: linear-gradient(180deg, #fff 0%, var(--lv3-surface) 100%); }
.lv3-section--dark { background: radial-gradient(circle at 75% 35%, rgba(35, 136, 255, .17), transparent 32rem), var(--lv3-night); color: #fff; }
.lv3-section--dark :where(h1, h2, h3), .lv3-section--dark p { color: inherit; }
.lv3-section--dark::after { background-image: radial-gradient(circle, rgba(35, 136, 255, .4) 1px, transparent 1.4px); background-size: 14px 14px; bottom: -3rem; content: ""; height: 11rem; mask-image: linear-gradient(to top, #000, transparent); opacity: .45; pointer-events: none; position: absolute; right: -7rem; transform: rotate(-8deg); width: min(58vw, 48rem); z-index: 0; }
.lv3-eyebrow { color: var(--lv3-blue); font-size: clamp(.72rem, 1.5vw, .84rem); font-weight: 750; letter-spacing: .13em; margin: 0 0 1rem; text-transform: uppercase; }
.lv3-section :where(h1, h2, h3, p) { margin-top: 0; }
.lv3-section h2 { font-size: clamp(2rem, 4.6vw, 3.8rem); font-weight: 760; letter-spacing: -.045em; line-height: 1.03; margin-bottom: 0; }
.lv3-section h2 mark, .lv3-display mark { background: transparent; color: var(--lv3-blue); padding: 0; }
.lv3-section-head { gap: clamp(1.5rem, 5vw, 6rem); margin-bottom: clamp(2.25rem, 5vw, 4.5rem); }
.lv3-section-head--stacked { margin-inline: 0 !important; max-width: 57rem; }
.lv3-section-head--stacked .lv3-section-intro { margin-top: 1.35rem; max-width: 46rem; }
.lv3-section-intro { color: var(--lv3-slate); font-size: clamp(1rem, 1.7vw, 1.16rem); line-height: 1.65; margin-bottom: .15rem; }
.lv3-section--dark .lv3-section-intro { color: rgba(255, 255, 255, .75); }
.lv3-display { font-size: clamp(2.75rem, 7.2vw, 6.6rem); font-weight: 780; letter-spacing: -.06em; line-height: .96; margin: 0 0 1.4rem; }

/* Hero */
.lv3-hero { min-height: min(61rem, 100svh); padding-bottom: clamp(4rem, 8vw, 7rem); padding-top: clamp(8.5rem, 14vw, 12.5rem); }
.lv3-hero::before { background: radial-gradient(circle, rgba(35, 136, 255, .3) 0 1px, transparent 1.6px); background-size: 22px 22px; content: ""; inset: 0; mask-image: linear-gradient(120deg, transparent 10%, #000 65%, transparent 100%); opacity: .27; pointer-events: none; position: absolute; }
.lv3-hero__grid { gap: clamp(2.5rem, 5vw, 6rem); }
.lv3-hero__visual { min-width: 0; overflow: visible; padding: 1rem 0; }
.lv3-hero__lead { color: rgba(255, 255, 255, .83); font-size: clamp(1.12rem, 2.1vw, 1.45rem); line-height: 1.55; max-width: 37rem; }
.lv3-actions { gap: .85rem; margin-top: 2rem; }
.lv3-button .wp-block-button__link { align-items: center; border: 1px solid transparent; border-radius: 9px; display: inline-flex; font-size: .96rem; font-weight: 700; gap: .8rem; justify-content: center; min-height: 3.25rem; padding: .78rem 1.2rem; text-decoration: none; transition: background-color 420ms var(--lv3-ease), border-color 420ms var(--lv3-ease), box-shadow 420ms var(--lv3-ease), color 420ms var(--lv3-ease), transform 420ms var(--lv3-ease); }
.lv3-button .wp-block-button__link span { display: inline-block; transition: transform 420ms var(--lv3-ease); }
.lv3-button--primary .wp-block-button__link { background: var(--lv3-blue); box-shadow: 0 10px 30px rgba(35, 136, 255, .3); color: #fff; }
.lv3-button--ghost .wp-block-button__link { background: rgba(255, 255, 255, .045); border-color: rgba(255, 255, 255, .2); color: #fff; }
.lv3-button .wp-block-button__link:is(:hover, :focus-visible) { box-shadow: 0 16px 40px rgba(35, 136, 255, .43), 0 0 0 1px rgba(145, 210, 255, .4); transform: translateY(-4px); }
.lv3-button .wp-block-button__link:is(:hover, :focus-visible) span { transform: translateX(4px); }
.lv3-button .wp-block-button__link:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.lv3-benefits { gap: 1rem; margin-top: clamp(3rem, 7vw, 6rem); }
.lv3-benefit { align-items: center; color: rgba(255, 255, 255, .78); gap: .8rem; transition: color 420ms var(--lv3-ease), transform 420ms var(--lv3-ease); }
.lv3-benefit:hover { color: #fff; transform: translateY(-3px); }
.lv3-benefit p { font-size: .88rem; line-height: 1.35; margin: 0; }

/* Inline icon system */
.lv3-icon { align-items: center; color: var(--lv3-blue); display: inline-flex; flex: 0 0 auto; height: 2rem; justify-content: center; position: relative; width: 2rem; }
.lv3-icon__svg, svg.lv3-system-map__icon { display: block; height: 100%; overflow: visible; width: 100%; }
.lv3-icon__editor-label { font-size: .58rem; font-weight: 800; letter-spacing: -.03em; }
.lv3-icon.has-svg::before, .lv3-icon.has-svg::after { content: none !important; }

/* Cards */
.lv3-card-grid { gap: clamp(1rem, 2vw, 1.45rem); }
.lv3-card { background: rgba(255, 255, 255, .88); border: 1px solid var(--lv3-border); border-radius: var(--lv3-radius); box-shadow: 0 1px 2px rgba(20, 50, 100, .04); box-sizing: border-box; min-width: 0; position: relative; transition: border-color 420ms var(--lv3-ease), box-shadow 420ms var(--lv3-ease), transform 420ms var(--lv3-ease); }
.lv3-card:is(:hover, :focus-within) { border-color: rgba(35, 136, 255, .62); box-shadow: var(--lv3-shadow), 0 0 32px rgba(35, 136, 255, .12); transform: translateY(-6px); }
.lv3-card--service, .lv3-card--solution { min-height: 17rem; overflow: hidden; padding: clamp(1.4rem, 2.5vw, 2.15rem); }
.lv3-card--service::after, .lv3-card--solution::after { background: linear-gradient(135deg, transparent 26%, rgba(35, 136, 255, .08) 27% 42%, rgba(35, 136, 255, .19) 43% 58%, rgba(50, 70, 211, .15) 59%); bottom: -3.5rem; content: ""; height: 9rem; position: absolute; right: -3rem; transform: rotate(45deg); transition: transform 620ms var(--lv3-ease), opacity 420ms ease; width: 9rem; }
.lv3-card:is(:hover, :focus-within)::after { transform: rotate(45deg) translate(-5px, -5px) scale(1.08); }
.lv3-card .lv3-icon { height: 2.75rem; margin-bottom: 1.25rem; transition: filter 420ms var(--lv3-ease), transform 420ms var(--lv3-ease); width: 2.75rem; }
.lv3-card:is(:hover, :focus-within) .lv3-icon { filter: drop-shadow(0 0 8px rgba(35, 136, 255, .5)); transform: translateY(-3px) scale(1.06); }
.lv3-card h3 { font-size: clamp(1.1rem, 1.7vw, 1.3rem); letter-spacing: -.025em; margin-bottom: .55rem; }
.lv3-card p { color: var(--lv3-slate); line-height: 1.5; }
.lv3-card__link { bottom: 1.5rem; left: clamp(1.4rem, 2.5vw, 2.15rem); margin: 0; position: absolute; z-index: 1; }
.lv3-card__link a { align-items: center; border: 1px solid var(--lv3-border); border-radius: 50%; color: var(--lv3-navy); display: inline-flex; height: 2.4rem; justify-content: center; text-decoration: none; transition: background-color 420ms var(--lv3-ease), border-color 420ms var(--lv3-ease), color 420ms var(--lv3-ease), transform 420ms var(--lv3-ease); width: 2.4rem; }
.lv3-card__link a:is(:hover, :focus-visible), .lv3-card:focus-within .lv3-card__link a { background: var(--lv3-blue); border-color: var(--lv3-blue); color: #fff; transform: translateX(4px); }
.lv3-card__link a:focus-visible { outline: 3px solid var(--lv3-navy); outline-offset: 3px; }

/* Hero system map */
.lv3-system-map { aspect-ratio: 620 / 430; contain: layout; margin: 0 auto; max-width: 43rem; min-height: 20rem; position: relative; width: min(100%, 43rem); }
.lv3-system-map::before { background: radial-gradient(circle, rgba(35, 136, 255, .24), transparent 64%); content: ""; inset: 7%; pointer-events: none; }
.lv3-system-map__connections { height: 100%; inset: 0; overflow: visible; position: absolute; width: 100%; }
.lv3-system-map__line { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.lv3-system-map__line--base { stroke: rgba(96, 178, 255, .32); stroke-width: 1.4; }
.lv3-system-map__line--energy { filter: drop-shadow(0 0 5px rgba(35, 136, 255, .9)); stroke: rgba(74, 169, 255, .95); stroke-dasharray: .18 .82; stroke-dashoffset: 0; stroke-width: 2.2; }
.lv3-system-map__signal { fill: #fff; filter: drop-shadow(0 0 7px #fff) drop-shadow(0 0 12px var(--lv3-blue)); opacity: 0; }
.lv3-system-map__node, .lv3-system-map__core { align-items: center; backdrop-filter: blur(12px); background: rgba(5, 8, 22, .82); border: 1px solid rgba(96, 178, 255, .55); border-radius: 11px; box-shadow: 0 0 28px rgba(35, 136, 255, .11); display: flex; flex-direction: column; font-size: clamp(.7rem, 1.6vw, .93rem); font-weight: 650; gap: .45rem; justify-content: center; line-height: 1.2; min-height: clamp(4.6rem, 10vw, 6.5rem); position: absolute; text-align: center; transition: border-color 420ms var(--lv3-ease), box-shadow 420ms var(--lv3-ease), transform 420ms var(--lv3-ease); width: clamp(5.4rem, 18vw, 7.6rem); }
.lv3-system-map__node .lv3-system-map__icon { color: var(--lv3-blue); height: 1.65rem; width: 1.65rem; }
.lv3-system-map__node.is-data { left: 1%; top: 7%; }
.lv3-system-map__node.is-process { right: 1%; top: 7%; }
.lv3-system-map__node.is-people { bottom: 7%; left: 1%; }
.lv3-system-map__node.is-systems { bottom: 7%; right: 1%; }
.lv3-system-map__core { background: rgba(6, 24, 91, .94); border-color: var(--lv3-blue); box-shadow: 0 0 16px var(--lv3-blue), 0 0 52px rgba(35, 136, 255, .35); font-size: clamp(.68rem, 1.5vw, .88rem); left: 50%; min-height: clamp(5.5rem, 13vw, 8.3rem); top: 50%; transform: translate(-50%, -50%); width: clamp(5.5rem, 19vw, 8.3rem); }
.lv3-system-map__core .lv3-system-map__icon { color: #fff; height: 2.35rem; width: 2.35rem; }
.lv3-system-map.is-active .lv3-system-map__line--energy { animation: lv3-energy-line 5.2s linear infinite; }
.lv3-system-map.is-active .lv3-system-map__signal { animation: lv3-signal-show 4.8s linear infinite; }
.lv3-system-map.is-active .lv3-system-map__node { animation: lv3-map-node 5.4s ease-in-out infinite; }
.lv3-system-map.is-active .lv3-system-map__node.is-process { animation-delay: -1.35s; }
.lv3-system-map.is-active .lv3-system-map__node.is-systems { animation-delay: -2.7s; }
.lv3-system-map.is-active .lv3-system-map__node.is-people { animation-delay: -4.05s; }
.lv3-system-map.is-active .lv3-system-map__core { animation: lv3-core-pulse 3.8s ease-in-out infinite; }

/* Automation flow and process timeline */
.lv3-flow { gap: clamp(.75rem, 2vw, 1.6rem); position: relative; }
.lv3-flow::before, .lv3-flow::after { content: ""; height: 2px; left: 8%; position: absolute; right: 8%; top: 50%; z-index: -1; }
.lv3-flow::before { background: rgba(96, 178, 255, .3); }
.lv3-flow::after { background: linear-gradient(90deg, transparent 0 42%, #fff 48% 52%, var(--lv3-blue) 58% 68%, transparent 78%); background-size: 32% 100%; opacity: 0; }
.lv3-motion-active.lv3-flow::after { animation: lv3-rail 4.8s linear infinite; opacity: 1; }
.lv3-flow__step { align-items: center; background: rgba(5, 8, 22, .82); border: 1px solid rgba(96, 178, 255, .46); border-radius: 10px; display: flex; flex-direction: column; min-height: 9.5rem; padding: 1.3rem .65rem; text-align: center; transition: border-color 420ms var(--lv3-ease), box-shadow 420ms var(--lv3-ease), transform 420ms var(--lv3-ease); }
.lv3-flow__step:is(:hover, :focus-within) { border-color: var(--lv3-blue); box-shadow: 0 0 30px rgba(35, 136, 255, .32); transform: translateY(-5px); }
.lv3-flow__step .lv3-icon { height: 2.65rem; width: 2.65rem; }
.lv3-flow__step p { font-size: .93rem; font-weight: 650; line-height: 1.3; margin: .7rem 0 0; }
.lv3-flow__step--active { border-color: var(--lv3-blue); box-shadow: 0 0 18px rgba(35, 136, 255, .75), 0 0 50px rgba(35, 136, 255, .22); transform: scale(1.04); }
.lv3-motion-active .lv3-flow__step--active { animation: lv3-flow-pulse 3.8s ease-in-out infinite; }
.lv3-timeline { gap: 0; position: relative; }
.lv3-timeline::before, .lv3-timeline::after { content: ""; height: 2px; left: 5%; position: absolute; right: 5%; top: 0; }
.lv3-timeline::before { background: rgba(96, 178, 255, .3); }
.lv3-timeline::after { background: linear-gradient(90deg, transparent 0 43%, #fff 49% 51%, var(--lv3-blue) 58% 68%, transparent 78%); background-size: 35% 100%; opacity: 0; }
.lv3-motion-active.lv3-timeline::after { animation: lv3-rail 5.5s linear infinite; opacity: 1; }
.lv3-timeline__step { border: 1px solid rgba(96, 178, 255, .42); border-radius: 9px; min-height: 11rem; padding: 2.3rem 1.25rem 1.35rem; position: relative; transition: background-color 420ms var(--lv3-ease), border-color 420ms var(--lv3-ease), box-shadow 420ms var(--lv3-ease), transform 420ms var(--lv3-ease); }
.lv3-timeline__step:is(:hover, :focus-within) { background: rgba(35, 136, 255, .08); border-color: var(--lv3-blue); box-shadow: 0 18px 38px rgba(0, 0, 0, .2), 0 0 26px rgba(35, 136, 255, .15); transform: translateY(-5px); }
.lv3-timeline__number { align-items: center; background: var(--lv3-blue); border-radius: 50%; box-shadow: 0 0 20px rgba(35, 136, 255, .5); display: flex; font-size: .8rem; font-weight: 750; height: 2rem; justify-content: center; left: 1.1rem; margin: 0; position: absolute; top: -1rem; transition: transform 420ms var(--lv3-ease); width: 2rem; }
.lv3-motion-active .lv3-timeline__number { animation: lv3-number-pulse 5.2s ease-in-out infinite; }
.lv3-timeline__step:nth-child(2) .lv3-timeline__number { animation-delay: -1.3s; }
.lv3-timeline__step:nth-child(3) .lv3-timeline__number { animation-delay: -2.6s; }
.lv3-timeline__step:nth-child(4) .lv3-timeline__number { animation-delay: -3.9s; }
.lv3-timeline__step h3 { font-size: 1.05rem; margin-bottom: .4rem; }
.lv3-timeline__step p:last-child { color: rgba(255, 255, 255, .74); font-size: .9rem; line-height: 1.5; }

/* Cases and technologies */
.lv3-case-list > .lv3-case-item, .lv3-case-item > .lv3-case, .lv3-case-item > .lv3-project-detail, .lv3-project-detail > .lv3-project-detail__grid { box-sizing: border-box; max-width: none !important; width: 100%; }
.lv3-case-list > .lv3-case-item, .lv3-case-item > .lv3-project-detail { margin-block-start: 0 !important; }
.lv3-case-item + .lv3-case-item { border-top: 1px solid var(--lv3-border); }
.lv3-project-detail { background: #fff; border-top: 1px solid var(--lv3-border); padding: clamp(1.4rem, 3vw, 2.5rem); scroll-margin-top: 6rem; }
.lv3-project-detail > .lv3-eyebrow, .lv3-project-detail > h3 { max-width: none !important; width: 100%; }
.lv3-project-detail[hidden] { display: none !important; }
.lv3-project-detail h3 { font-size: clamp(1.35rem, 2.5vw, 2rem); margin-bottom: 1.5rem; }
.lv3-project-detail__grid { gap: clamp(1.1rem, 2.5vw, 2rem); }
.lv3-project-detail__part { min-width: 0; }
.lv3-project-detail__part h4 { color: var(--lv3-ink); font-size: 1rem; margin: 0 0 .5rem; }
.lv3-project-detail__part p { color: var(--lv3-slate); line-height: 1.6; margin: 0; }

/* FAQ uses native details so every answer remains available without JavaScript. */
.lv3-faq-list { border: 1px solid var(--lv3-border); border-radius: var(--lv3-radius); overflow: hidden; }
.lv3-faq-list > .lv3-faq-item { box-sizing: border-box; max-width: none !important; width: 100%; }
.lv3-faq-item { background: rgba(255, 255, 255, .85); margin: 0; padding: 0; }
.lv3-faq-item + .lv3-faq-item { border-top: 1px solid var(--lv3-border); }
.lv3-faq-item[open] { background: #fff; }
.lv3-faq-item summary { align-items: center; color: var(--lv3-ink); cursor: pointer; display: flex; font-size: clamp(1rem, 1.7vw, 1.15rem); font-weight: 680; gap: 1rem; justify-content: space-between; line-height: 1.4; list-style: none; padding: 1.25rem clamp(1.25rem, 3vw, 2rem); }
.lv3-faq-item summary::-webkit-details-marker { display: none; }
.lv3-faq-item summary::after { color: var(--lv3-blue); content: "+"; flex: 0 0 1.25rem; font-size: 1.5rem; font-weight: 400; line-height: 1; text-align: center; }
.lv3-faq-item[open] summary::after { content: "−"; }
.lv3-faq-item summary:focus-visible { outline: 3px solid var(--lv3-blue); outline-offset: -3px; }
.lv3-faq-item > p { color: var(--lv3-slate); line-height: 1.65; margin: 0; max-width: 75ch; padding: 0 clamp(1.25rem, 3vw, 2rem) 1.4rem; }

.lv3-case-list { border: 1px solid var(--lv3-border); border-radius: var(--lv3-radius); overflow: hidden; }
.lv3-case { align-items: center; background: rgba(255, 255, 255, .76); gap: clamp(1rem, 3vw, 2.5rem); padding: 1.25rem; position: relative; transition: background-color 420ms var(--lv3-ease), box-shadow 420ms var(--lv3-ease), transform 420ms var(--lv3-ease); }
.lv3-case:is(:hover, :focus-within), .lv3-case.is-active { background: #fff; box-shadow: inset 4px 0 0 var(--lv3-blue); }
.lv3-case:focus-within { outline: 3px solid var(--lv3-blue); outline-offset: -3px; }
.lv3-case__industry a { color: var(--lv3-ink); text-decoration: none; }
.lv3-case__industry a::after { content: ""; inset: 0; position: absolute; z-index: 1; }
.lv3-case > p { position: relative; }
.lv3-case > p:not(:last-child)::after { color: var(--lv3-blue); content: "→"; font-size: 1.15rem; font-weight: 700; position: absolute; right: clamp(-1.7rem, -2vw, -.75rem); top: .45rem; transition: transform 420ms var(--lv3-ease); }
.lv3-case:hover > p:not(:last-child)::after { transform: translateX(4px); }
.lv3-case p { line-height: 1.35; margin: 0; }
.lv3-case small { color: var(--lv3-slate); font-size: .75rem; }
.lv3-case strong { font-size: clamp(.98rem, 1.5vw, 1.15rem); }
.lv3-case > p:last-child small { color: var(--lv3-blue); font-weight: 750; }
.lv3-case__industry { align-items: center; gap: .75rem; }
.lv3-case__industry .lv3-icon { background: rgba(35, 136, 255, .07); border-radius: 9px; height: 2.75rem; padding: .55rem; width: 2.75rem; }
.lv3-tech-grid { gap: .8rem; }
.lv3-tech { align-items: center; background: #fff; border: 1px solid var(--lv3-border); border-radius: 10px; gap: .9rem; min-height: 4.8rem; padding: .9rem 1rem; transition: border-color 420ms var(--lv3-ease), box-shadow 420ms var(--lv3-ease), transform 420ms var(--lv3-ease); }
.lv3-tech:is(:hover, :focus-within) { border-color: var(--lv3-blue); box-shadow: 0 15px 34px rgba(20, 70, 145, .13), 0 0 24px rgba(35, 136, 255, .1); transform: translateY(-5px); }
.lv3-tech .lv3-icon { height: 2.1rem; transition: filter 420ms var(--lv3-ease), transform 420ms var(--lv3-ease); width: 2.1rem; }
.lv3-tech:is(:hover, :focus-within) .lv3-icon { filter: drop-shadow(0 0 6px rgba(35, 136, 255, .45)); transform: scale(1.08); }
.lv3-tech p { font-size: .93rem; font-weight: 680; margin: 0; }

/* About and contact */
.lv3-about { padding-bottom: clamp(5rem, 9vw, 9rem); }
.lv3-about__grid { gap: clamp(2.5rem, 5vw, 5rem); }
.lv3-about__copy { color: var(--lv3-slate); line-height: 1.7; max-width: 52rem; }
.lv3-values { gap: .85rem; margin-top: 2rem; }
.lv3-value { min-height: 9rem; padding: 1.25rem; }
.lv3-value .lv3-icon { height: 1.75rem; margin-bottom: .7rem; width: 1.75rem; }
.lv3-value h3 { font-size: .98rem; margin-bottom: .3rem; }
.lv3-value p { font-size: .76rem; margin: 0; }
.lv3-cubes { aspect-ratio: 1 / 1.05; background: radial-gradient(circle at 42% 45%, rgba(35, 136, 255, .42), transparent 35%), linear-gradient(145deg, #071641, #050816); border-radius: 20px; color: #fff; overflow: hidden; padding: 2rem; position: relative; }
.lv3-cubes::before, .lv3-cubes::after { border: 1px solid rgba(96, 178, 255, .7); box-shadow: 0 0 30px rgba(35, 136, 255, .4), 4rem 2.4rem 0 -1px rgba(35, 136, 255, .22), -2rem 4.8rem 0 -1px rgba(50, 70, 211, .35); content: ""; height: 4rem; left: 24%; position: absolute; top: 26%; transform: rotate(30deg) skew(-5deg); width: 4rem; }
.lv3-cubes::after { left: 48%; top: 48%; transform: rotate(-30deg) skew(5deg); }
.lv3-cubes__words { font-size: .7rem; letter-spacing: .1em; line-height: 1.65; margin-left: auto; text-transform: uppercase; width: 42%; }
.lv3-cubes__claim { bottom: 1.8rem; font-size: .75rem; font-weight: 700; letter-spacing: .08em; line-height: 1.5; margin: 0; position: absolute; right: 1.8rem; text-transform: uppercase; width: 40%; }
.lv3-contact { padding-bottom: clamp(5rem, 9vw, 9rem); }
.lv3-contact__grid { gap: clamp(2.5rem, 6vw, 6rem); }
.lv3-contact__copy { color: rgba(255, 255, 255, .74); line-height: 1.65; margin-top: 1.5rem; }
.lv3-contact__form { background: rgba(255, 255, 255, .06); border: 1px solid rgba(96, 178, 255, .32); border-radius: var(--lv3-radius); padding: clamp(1.25rem, 3vw, 2.5rem); }

/* Reveal is applied to an inner visual state so component hover transforms win. */
.lv3-js .lv3-reveal { opacity: 0; translate: 0 22px; transition: opacity .66s ease var(--lv3-reveal-delay, 0ms), translate .66s var(--lv3-ease) var(--lv3-reveal-delay, 0ms); }
.lv3-js .lv3-reveal.is-visible { opacity: 1; translate: none; }

@keyframes lv3-energy-line { to { stroke-dashoffset: -1; } }
@keyframes lv3-signal-show { 0%, 6%, 94%, 100% { opacity: 0; } 16%, 82% { opacity: 1; } }
@keyframes lv3-map-node { 0%, 100% { border-color: rgba(96, 178, 255, .5); box-shadow: 0 0 18px rgba(35, 136, 255, .08); } 50% { border-color: rgba(120, 195, 255, .9); box-shadow: 0 0 28px rgba(35, 136, 255, .32); } }
@keyframes lv3-core-pulse { 0%, 100% { box-shadow: 0 0 16px rgba(35, 136, 255, .65), 0 0 48px rgba(35, 136, 255, .25); } 50% { box-shadow: 0 0 30px rgba(35, 136, 255, 1), 0 0 78px rgba(35, 136, 255, .48); } }
@keyframes lv3-rail { from { background-position: -45% 0; } to { background-position: 165% 0; } }
@keyframes lv3-flow-pulse { 0%, 100% { box-shadow: 0 0 18px rgba(35, 136, 255, .65), 0 0 44px rgba(35, 136, 255, .2); } 50% { box-shadow: 0 0 30px rgba(35, 136, 255, .95), 0 0 65px rgba(35, 136, 255, .35); } }
@keyframes lv3-number-pulse { 0%, 100% { box-shadow: 0 0 14px rgba(35, 136, 255, .42); transform: scale(1); } 50% { box-shadow: 0 0 26px rgba(35, 136, 255, .85); transform: scale(1.08); } }

@media (max-width: 781px) {
	.lv3-project-detail__grid { grid-template-columns: 1fr !important; }
	.lv3-section-head { gap: 1rem; }
	.lv3-card-grid { display: grid; grid-template-columns: 1fr; }
	.lv3-card--service, .lv3-card--solution { min-height: 15.5rem; }
	.lv3-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.lv3-flow { grid-template-columns: 1fr !important; padding-left: 1.8rem; }
	.lv3-flow::before, .lv3-flow::after { bottom: 8%; height: auto; left: .55rem; right: auto; top: 8%; width: 2px; }
	.lv3-flow::after { background: linear-gradient(180deg, transparent 0 42%, #fff 48% 52%, var(--lv3-blue) 58% 68%, transparent 78%); background-size: 100% 32%; }
	.lv3-motion-active.lv3-flow::after { animation-name: lv3-rail-vertical; }
	.lv3-flow__step { min-height: 7rem; }
	.lv3-flow__step--active { transform: none; }
	.lv3-case { grid-template-columns: 1fr 1fr !important; }
	.lv3-case > p:not(:last-child)::after { content: none; }
	.lv3-timeline { gap: 1.2rem; grid-template-columns: 1fr !important; padding-left: 1.3rem; }
	.lv3-timeline::before, .lv3-timeline::after { bottom: 2%; height: auto; left: .3rem; right: auto; top: 0; width: 2px; }
	.lv3-timeline::after { background: linear-gradient(180deg, transparent 0 43%, #fff 49% 51%, var(--lv3-blue) 58% 68%, transparent 78%); background-size: 100% 35%; }
	.lv3-motion-active.lv3-timeline::after { animation-name: lv3-rail-vertical; }
	.lv3-timeline__step { min-height: auto; padding: 1.25rem 1.2rem 1.25rem 2rem; }
	.lv3-timeline__number { left: -2rem; top: 1rem; }
	.lv3-tech-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.lv3-values { display: grid; grid-template-columns: 1fr; }
	.lv3-about__visual { max-width: 28rem; }
}

@media (max-width: 650px) {
	.lv3-hero__grid { gap: 1.5rem; }
	.lv3-hero__visual { padding-inline: .25rem; }
	.lv3-system-map { min-height: 18.5rem; width: 100%; }
	.lv3-system-map__node { min-height: 4.4rem; width: 5.4rem; }
	.lv3-system-map__node.is-data, .lv3-system-map__node.is-people { left: 0; }
	.lv3-system-map__node.is-process, .lv3-system-map__node.is-systems { right: 0; }
	.lv3-system-map__core { min-height: 5.8rem; width: 5.8rem; }
}

@media (min-width: 782px) and (max-width: 1100px) {
	.lv3-card-grid--four { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.lv3-card-grid--three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.lv3-tech-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* Requested layout refinements are deliberately desktop-only. */
@media (min-width: 1101px) {
	.lv3-display { font-size: clamp(2.75rem, 5.76vw, 5.28rem); }
	.lv3-section h2 { font-size: clamp(2rem, 3.68vw, 3.04rem); }
	.lv3-benefit { justify-content: center; }
	.lv3-section-head:not(.lv3-section-head--stacked) > .wp-block-column:last-child { align-self: center; position: relative; top: 1rem; }
	.lv3-section-head--stacked { column-gap: clamp(1.5rem, 5vw, 6rem); display: grid; grid-template-areas: "eyebrow eyebrow" "title intro"; grid-template-columns: minmax(0, 62fr) minmax(0, 38fr); margin-inline: auto !important; max-width: var(--wp--style--global--wide-size, 1240px); row-gap: .75rem; width: 100%; }
	.lv3-section-head--stacked > .lv3-eyebrow { grid-area: eyebrow; margin-bottom: 0; }
	.lv3-section-head--stacked > h2 { grid-area: title; }
	.lv3-section-head--stacked > .lv3-section-intro { align-self: center; grid-area: intro; margin-top: 0; position: relative; top: .5rem; }
	.lv3-case-list > .lv3-case-item { margin-inline: 0 !important; }
	.lv3-about h2 + .lv3-about__copy { margin-top: clamp(1.4rem, 2vw, 2rem); }
	.lv3-timeline::before, .lv3-timeline::after { left: 0; right: 0; }
}

@media (max-width: 520px) {
	.lv3-section { padding-inline: 1rem; }
	.lv3-display { font-size: clamp(2.5rem, 13vw, 3.5rem); }
	.lv3-actions { align-items: stretch; flex-direction: column; }
	.lv3-actions .wp-block-button, .lv3-actions .wp-block-button__link { width: 100%; }
	.lv3-benefits { gap: 1.25rem .65rem; }
	.lv3-benefit { align-items: flex-start; }
	.lv3-benefit p { font-size: .78rem; }
	.lv3-system-map { aspect-ratio: 1 / .92; }
	.lv3-system-map__node { font-size: .67rem; min-height: 4.15rem; width: 4.85rem; }
	.lv3-system-map__node .lv3-system-map__icon { height: 1.25rem; width: 1.25rem; }
	.lv3-case { grid-template-columns: 1fr !important; padding: 1rem; }
	.lv3-case > p { border-top: 1px solid var(--lv3-border); padding-top: .7rem; }
	.lv3-tech-grid { grid-template-columns: 1fr !important; }
	.lv3-cubes { min-height: 22rem; }
}

@keyframes lv3-rail-vertical { from { background-position: 0 -45%; } to { background-position: 0 165%; } }

@media (prefers-reduced-motion: reduce) {
	.lv3-page *, .lv3-page *::before, .lv3-page *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
	.lv3-js .lv3-reveal { opacity: 1; translate: none; }
	.lv3-system-map__signal { display: none; }
	.lv3-system-map__line--energy { stroke-dasharray: none; }
}

@media (forced-colors: active) {
	.lv3-card, .lv3-flow__step, .lv3-timeline__step, .lv3-tech, .lv3-system-map__node, .lv3-system-map__core { border: 2px solid CanvasText; }
	.lv3-section h2 mark, .lv3-display mark, .lv3-eyebrow, .lv3-icon { color: LinkText; }
	.lv3-system-map__signal { fill: Highlight; }
}
