/* ===== base ===== */
:root {
  color-scheme: light;
  --ink: #123D3D;
  --muted: #526C6B;
  --teal: #006A68;
  --teal-deep: #004E4E;
  --aqua: #00B8B5;
  --lime: #6BBB00;
  --lime-light: #CCF39C;
  --line: #DCE8E4;
  --paper: #FBFDFC;
  --mint: #F0F7F3;
  --font: "Aptos", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --ease: cubic-bezier(.22,.68,0,1.02);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 104px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body, button, input, select, textarea { font-family: var(--font); }
button, input, select, textarea { font-size: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { color: inherit; cursor: pointer; }
button:disabled { cursor: default; }
button, input, select, textarea { border-radius: 0; }
img, svg { display: block; max-width: 100%; }
svg { overflow: visible; }
[hidden] { display: none !important; }
::selection { background: #C9F0CE; color: #153A31; }
:focus-visible { outline: 3px solid #0B8784; outline-offset: 5px; }
.assistant :focus-visible, .site-footer :focus-visible { outline-color: #CCF39C; }
p, h1, h2, h3, h4, figure { margin: 0; }
p { text-wrap: pretty; }
h1, h2, h3, h4 { line-height: 1.1; text-wrap: balance; }
h1 { font-size: clamp(44px, 4.75vw, 66px); letter-spacing: -.055em; font-weight: 750; }
h2 { font-size: clamp(31px, 3.1vw, 44px); letter-spacing: -.045em; font-weight: 700; }
h3 { font-size: 23px; letter-spacing: -.03em; font-weight: 650; }
h4 { font-size: 23px; letter-spacing: -.025em; }
.container { width: min(1200px, calc(100% - 88px)); margin-inline: auto; }
.section { padding-block: 104px; position: relative; }
.eyebrow { color: var(--teal); font-size: 11px; line-height: 1.5; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.section-intro { max-width: 730px; margin-bottom: 46px; }
.section-intro h2 { margin-top: 16px; }
.section-intro > p:last-child:not(.eyebrow) { margin-top: 20px; color: var(--muted); max-width: 650px; }
.compact-intro { max-width: 800px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 20px; background: var(--teal); color: white; font-size: 14px; font-weight: 650; padding: 16px 24px; min-height: 54px; border: 1px solid var(--teal); border-radius: 10px; line-height: 1.35; transition: background .2s ease, transform .2s ease, box-shadow .2s ease; }
.button:hover { background: var(--teal-deep); transform: translateY(-2px); box-shadow: 0 7px 15px #004E4E14; }
.button:active { transform: translateY(0); }
.arrow { width: 17px; height: 17px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.6; transition: transform .2s ease; }
a:hover > .arrow, button:hover > .arrow { transform: translateX(3px); }
.button-small { padding: 12px 17px; min-height: 44px; font-size: 13px; }
.button-outline { color: var(--teal); background: transparent; border-color: #88B6A9; }
.button-outline:hover { color: var(--teal-deep); background: #EAF4EF; }
.button-lime { background: var(--lime-light); border-color: var(--lime-light); color: #173D23; }
.button-lime:hover { background: #DDFCB7; box-shadow: 0 8px 24px #001F2129; }
.text-link { display: inline-flex; align-items: center; gap: 12px; color: var(--teal); font-size: 14px; line-height: 1.5; font-weight: 650; }
.text-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.skip-link { position: fixed; left: 20px; top: -100px; z-index: 300; background: var(--ink); color: white; padding: 12px 20px; border-radius: 8px; }
.skip-link:focus { top: 10px; }
.asset-library { position: absolute; width: 0; height: 0; pointer-events: none; overflow: hidden; }
.glass-brand { display: block; width: 100%; height: 100%; overflow: visible; }
.glass-icon { width: 80px; height: 80px; overflow: hidden; flex-shrink: 0; }
.site-header { position: sticky; top: 0; z-index: 100; background: #FBFDFCF2; border-bottom: 1px solid #DCE8E496; backdrop-filter: blur(16px); }
.nav-shell { height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 36px; }
.brand { display: inline-flex; align-items: center; gap: 2px; min-height: 48px; flex-shrink: 0; }
.brand-word { font-size: 23px; line-height: 1; letter-spacing: .13em; font-weight: 750; color: #132E2E; }
.brand .glass-brand { width: 57px; height: 57px; transition: transform .6s var(--ease); }
.brand:hover .glass-brand { transform: translateY(-2px) rotate(-7deg); }
.main-nav { display: flex; align-items: center; gap: 29px; font-size: 13px; font-weight: 550; }
.main-nav > a:not(.button) { display: inline-flex; gap: 7px; align-items: center; min-height: 44px; }
.main-nav > a:not(.button):hover { color: var(--teal); text-decoration: underline; text-underline-offset: 5px; }
.nav-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--lime); }
.menu-toggle { display: none; width: 44px; height: 44px; background: transparent; border: 1px solid var(--line); border-radius: 8px; padding: 12px; }
.menu-toggle span { display: block; height: 2px; background: var(--ink); margin: 5px 0; transition: transform .2s ease; }
.hero { padding-top: 66px; padding-bottom: 0; overflow: hidden; }
.hero-wash { position: absolute; inset: 0 0 auto 35%; height: 650px; pointer-events: none; background: radial-gradient(ellipse at 67% 34%, #DFF5E8AB 0%, #EDFAF570 33%, transparent 68%); }
.hero-grid { display: grid; grid-template-columns: 1.08fr 1fr; gap: 35px; align-items: center; position: relative; }
.hero-copy { padding-bottom: 30px; }
.hero-copy .eyebrow { display: flex; gap: 9px; align-items: center; letter-spacing: .11em; font-size: 10px; }
.tiny-orb { width: 7px; height: 7px; border-radius: 50%; background: var(--lime); flex-shrink: 0; box-shadow: 0 0 0 4px #6BBB0014; }
.hero h1 { margin-top: 22px; max-width: 650px; }
.hero h1 span { color: var(--teal); }
.hero-description { margin-top: 25px; font-size: 16px; max-width: 540px; color: var(--muted); line-height: 1.75; }
.hero-actions { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 19px 24px; align-items: center; }
.hero-actions .text-link { font-size: 13px; }
.action-note { margin-top: 16px; max-width: 470px; color: #617574; font-size: 12px; line-height: 1.6; }
.hero-visual { align-self: center; min-width: 0; }
.scene-heading { display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--teal); font-size: 12px; font-weight: 600; }
.status-dot { height: 6px; width: 6px; border-radius: 50%; background: var(--aqua); }
.scene-kicker { margin-left: 8px; font-size: 8px; letter-spacing: .13em; color: #607775; }
.glass-stage { position: relative; aspect-ratio: 1 / 1.04; isolation: isolate; perspective: 1000px; }
.stage-atmosphere { position: absolute; inset: 12% 9% 10%; border-radius: 50%; background: radial-gradient(ellipse at 50% 48%, #D2F2DF99 0%, #D2F2E636 45%, transparent 69%); filter: blur(8px); }
.orbit { position: absolute; border: 1px solid #5CB39E30; border-radius: 50%; pointer-events: none; }
.orbit-one { inset: 11% 5% 10%; transform: rotate(-16deg); }
.orbit-two { inset: 23% 0 24%; transform: rotate(-32deg); border-style: dashed; border-color: #5CB39E26; }
.avatar-perspective { position: absolute; width: 73%; height: auto; aspect-ratio: 1; top: 14%; left: 13.5%; transform: rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)); transition: transform .5s ease-out; pointer-events: none; }
.avatar-float { width: 100%; height: 100%; animation: avatar-float 7s ease-in-out infinite; filter: drop-shadow(0 22px 24px #0785721B); }
.avatar-ground { position: absolute; left: 30%; right: 30%; bottom: 18%; height: 5%; border-radius: 50%; background: #12765A14; filter: blur(10px); z-index: -1; animation: ground-breathe 7s ease-in-out infinite; }
.orbit-item { --delay: 0s; position: absolute; display: flex; align-items: center; flex-direction: column; justify-content: center; width: 82px; min-height: 91px; border-radius: 18px; background: linear-gradient(145deg, #FFFFFFBD, #FFFFFF43); border: 1px solid #FFFFFFD6; box-shadow: 0 8px 25px #17594A0C, inset 0 1px 0 #FFFFFF; backdrop-filter: blur(6px); animation: icon-float 6s ease-in-out var(--delay) infinite; transition: box-shadow .2s ease, border-color .2s ease; }
.orbit-item:hover { border-color: #7CCAACA3; box-shadow: 0 12px 30px #0C71531A; }
.orbit-item .glass-icon { width: 75px; height: 65px; transition: transform .4s var(--ease); }
.orbit-item:hover .glass-icon { transform: rotate(-8deg) scale(1.1); }
.orbit-item span { font-size: 10px; font-weight: 650; padding: 0 5px 9px; letter-spacing: .015em; }
.orbit-item-0 { left: 15%; top: 6%; --delay: -1.2s; }
.orbit-item-1 { right: 14%; top: 5%; --delay: -3.1s; }
.orbit-item-2 { right: 0%; top: 38%; --delay: -.4s; }
.orbit-item-3 { right: 14%; bottom: 7%; --delay: -2s; }
.orbit-item-4 { left: 14%; bottom: 6%; --delay: -4.3s; }
.orbit-item-5 { left: 0%; top: 38%; --delay: -2.8s; }
.scene-bottom { display: flex; gap: 8px; justify-content: space-between; align-items: center; padding: 0 16px; color: #587470; font-size: 10px; margin-top: 4px; }
.motion-toggle { display: inline-flex; gap: 6px; align-items: center; border: 0; border-radius: 6px; background: transparent; color: #496B65; font-size: 10px; min-height: 44px; padding: 8px 6px; }
.motion-toggle:hover { background: #E5F0E9; }
.motion-icon { width: 12px; height: 12px; stroke: currentColor; fill: none; stroke-width: 1.8; }
.trust-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 29px; border-top: 1px solid var(--line); margin-top: 50px; position: relative; }
.trust-item { display: flex; align-items: center; gap: 10px; font-size: 12px; color: #4C6660; }
.trust-check { width: 18px; height: 18px; border: 1px solid #94C7AC; color: var(--teal); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 10px; flex-shrink: 0; }
.audiences { background: var(--mint); padding-block: 82px; border-top: 1px solid #E2EDE6; }
.audience-columns { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 40px; gap: 37px; }
.audience-item { border-left: 1px solid #CADBD2; padding-left: 26px; }
.audience-item:first-child { border-left-color: var(--lime); }
.audience-label { display: inline-block; font-size: 11px; text-transform: uppercase; letter-spacing: .09em; color: var(--teal); font-weight: 700; }
.audience-item h3 { margin-top: 18px; max-width: 295px; font-size: 23px; }
.audience-item > p:last-child { font-size: 14px; color: var(--muted); margin-top: 16px; }
.problem-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; }
.problem-intro h2 { margin: 16px 0 23px; font-size: clamp(31px, 2.9vw, 40px); }
.problem-intro > p:not(.eyebrow) { color: var(--muted); font-size: 15px; }
.problem-intro .problem-closing { margin-top: 22px; color: var(--teal); font-weight: 550; }
.problem-item { display: grid; grid-template-columns: 34px 1fr; gap: 20px; padding-block: 26px; border-bottom: 1px solid var(--line); }
.problem-item:first-child { padding-top: 0; }
.problem-item:last-child { border-bottom: 0; padding-bottom: 0; }
.problem-number { color: var(--teal); font-size: 12px; padding-top: 5px; font-weight: 650; }
.problem-item h3 { font-size: 22px; line-height: 1.25; max-width: 355px; }
.problem-item p { font-size: 14px; color: var(--muted); margin-top: 11px; }
.processes { background: #F5F9F7; border-block: 1px solid #E2EBE5; }
.processes .section-intro { max-width: 820px; }
.process-workspace { display: grid; grid-template-columns: 360px 1fr; gap: 20px; }
.process-selectors { display: flex; flex-direction: column; gap: 8px; }
.process-selector { display: flex; align-items: center; gap: 14px; width: 100%; text-align: left; padding: 17px 18px; min-height: 72px; border: 1px solid transparent; background: transparent; border-radius: 12px; color: #5D7670; line-height: 1.35; font-size: 14px; font-weight: 550; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.selector-number { font-size: 10px; font-weight: 600; color: #688579; }
.process-selector .arrow { width: 14px; height: 14px; margin-left: auto; opacity: 0; }
.process-selector:hover { background: #EBF3ED; color: var(--teal); }
.process-selector[aria-pressed="true"] { background: white; color: var(--ink); border-color: #CCE1D4; box-shadow: 0 4px 12px #14382A04; }
.process-selector[aria-pressed="true"] .selector-number { color: var(--teal); }
.process-selector[aria-pressed="true"] .arrow { opacity: 1; }
.process-panel { padding: 29px 42px 36px; background: white; border: 1px solid #DBE9E0; border-radius: 20px; overflow: hidden; position: relative; display: flex; flex-direction: column; min-height: 472px; box-shadow: 0 10px 40px #183E2C05; }
.process-panel-top { display: flex; justify-content: space-between; align-items: center; }
.process-counter { color: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.pill { font-size: 9px; color: var(--teal); letter-spacing: .12em; border: 1px solid #D6E7DE; border-radius: 20px; padding: 5px 10px; font-weight: 600; }
.process-art { height: 137px; display: flex; align-items: center; justify-content: flex-start; margin-left: -22px; }
.process-art .glass-icon { width: 175px; height: 160px; animation: process-sway 9s ease-in-out infinite; }
.process-content .eyebrow { font-size: 10px; letter-spacing: .08em; }
.process-content h3 { margin-top: 13px; font-size: clamp(26px, 2.3vw, 32px); max-width: 540px; line-height: 1.12; }
.process-content > p:last-child { margin-top: 16px; font-size: 14px; color: var(--muted); max-width: 585px; }
.process-cta { margin-top: auto; padding-top: 26px; font-size: 13px; }
.process-closing { margin-top: 32px; display: flex; align-items: center; justify-content: space-between; gap: 48px; }
.process-closing h3 { font-size: 19px; }
.process-closing p { color: var(--muted); margin-top: 9px; font-size: 14px; max-width: 750px; }
.process-closing .button { flex-shrink: 0; }
.noscript-processes { margin-top: 30px; }
.noscript-processes article { padding-block: 20px; border-top: 1px solid var(--line); }
.noscript-processes p { color: var(--muted); margin-top: 12px; }
.assistant { padding-block: 90px; }
.assistant-panel { display: grid; grid-template-columns: 1.35fr .9fr; gap: 48px; padding: 64px 66px; background: #073D3F; color: white; border-radius: 28px; position: relative; overflow: hidden; isolation: isolate; }
.assistant-copy { position: relative; z-index: 2; }
.assistant-glow { position: absolute; inset: 0; background: radial-gradient(ellipse at 88% 39%, #00958850, transparent 53%); z-index: -1; pointer-events: none; }
.launch-badge { display: inline-flex; align-items: center; gap: 8px; font-size: 10px; letter-spacing: .12em; font-weight: 650; color: #D3F6AE; border: 1px solid #B1E8A44D; background: #A2E9860A; border-radius: 30px; padding: 7px 12px; }
.launch-badge span { width: 5px; height: 5px; border-radius: 50%; background: #C7F593; }
.assistant h2 { margin-top: 23px; font-size: clamp(33px, 3.2vw, 44px); line-height: 1.08; max-width: 620px; }
.assistant-copy > p:not(.launch-badge):not(.assistant-note) { margin-top: 23px; color: #BFDDD5; font-size: 15px; max-width: 600px; }
.assistant-copy .button { margin-top: 28px; }
.assistant-note { margin-top: 19px; color: #A3CAC0; font-size: 11px; max-width: 435px; }
.assistant-art { position: relative; align-self: center; text-align: center; min-width: 0; }
.assistant-avatar { width: 94%; margin: -23px auto -4px; aspect-ratio: 1; transform-origin: 50% 64%; animation: assistant-sway 10s ease-in-out infinite; filter: drop-shadow(0 22px 25px #001A1944); }
.assistant-halo { position: absolute; inset: 10% 0 17%; border: 1px solid #6ABCAC24; border-radius: 50%; z-index: -1; }
.assistant-art p { font-size: 14px; line-height: 1.7; color: #B7D8CC; letter-spacing: .01em; }
.assistant-art strong { font-weight: 600; color: #E3F5DC; }
.differentiators { padding-top: 20px; }
.difference-grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: 110px; }
.difference-grid h2 { margin-top: 16px; }
.origin-mark { display: flex; gap: 14px; align-items: center; margin-top: 37px; }
.origin-mark > span { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #BED8C4; border-radius: 50%; font-weight: 650; font-size: 12px; letter-spacing: .05em; color: var(--teal); }
.origin-mark p { font-size: 12px; line-height: 1.5; color: var(--muted); }
.origin-mark strong { font-weight: 600; color: var(--teal); }
.difference-item { padding-block: 25px; border-bottom: 1px solid var(--line); }
.difference-item:first-child { padding-top: 0; }
.difference-item:last-child { border-bottom: none; padding-bottom: 0; }
.difference-item h3 { font-size: 20px; line-height: 1.2; }
.difference-item p { margin-top: 12px; font-size: 14px; color: var(--muted); }
.testimonials { background: #EDF5EF; }
.testimonials h2 { max-width: 580px; }
.quote-grid { display: grid; grid-template-columns: 1.08fr 1fr; gap: 60px; margin-top: 46px; }
.quote-card { display: flex; flex-direction: column; padding-left: 27px; border-left: 2px solid #91CDA8; }
.quote-card blockquote { margin: 0; font-size: clamp(19px, 1.8vw, 24px); line-height: 1.55; letter-spacing: -.025em; color: #264C42; }
.quote-card figcaption { margin-top: auto; padding-top: 26px; font-size: 12px; line-height: 1.5; max-width: 430px; }
.quote-card figcaption strong { display: block; font-size: 13px; font-weight: 700; color: var(--teal); margin-bottom: 4px; }
.quote-card figcaption span { color: var(--muted); }
.source-note { margin-top: 35px; font-size: 10px; color: var(--muted); }
.steps-heading { display: grid; grid-template-columns: 1.1fr 1fr; gap: 90px; align-items: end; }
.steps-heading h2 { margin-top: 16px; }
.steps-heading > p { font-size: 15px; color: var(--muted); margin-bottom: 4px; }
.steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 48px; }
.step-item { border-top: 1px solid #BCD6C6; padding-top: 26px; }
.step-number { color: var(--teal); font-size: 12px; font-weight: 650; }
.step-item h3 { margin-top: 20px; font-size: 22px; }
.step-item p { font-size: 14px; color: var(--muted); margin-top: 13px; }
.faq { background: #F5F9F6; border-top: 1px solid var(--line); }
.faq-grid { display: grid; grid-template-columns: .76fr 1.24fr; gap: 90px; }
.faq h2 { margin-top: 15px; }
.faq-grid > div:first-child > p:not(.eyebrow) { margin-top: 20px; color: var(--muted); font-size: 14px; max-width: 300px; }
.faq .text-link { margin-top: 25px; font-size: 13px; }
.faq-item { border-bottom: 1px solid #CFDFD4; }
.faq-item:first-child { border-top: 1px solid #CFDFD4; }
.faq-item summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 2px; font-size: 15px; font-weight: 550; line-height: 1.45; }
.faq-item summary::-webkit-details-marker, .optional-fields summary::-webkit-details-marker { display: none; }
.faq-plus { width: 17px; height: 17px; position: relative; flex-shrink: 0; transition: transform .2s ease; }
.faq-plus::before, .faq-plus::after { content: ""; position: absolute; background: var(--teal); border-radius: 1px; }
.faq-plus::before { left: 0; right: 0; height: 1.5px; top: 7.75px; }
.faq-plus::after { top: 0; bottom: 0; width: 1.5px; left: 7.75px; }
.faq-item[open] .faq-plus { transform: rotate(45deg); }
.faq-item p { margin: -3px 30px 24px 2px; color: var(--muted); font-size: 14px; }
.conversion { background: #E8F3EB; }
.conversion-grid { display: grid; grid-template-columns: .93fr 1.07fr; gap: 90px; align-items: start; }
.conversion-copy { padding-top: 20px; }
.conversion-copy h2 { margin-top: 17px; font-size: clamp(34px, 3.5vw, 47px); }
.conversion-copy > p:not(.eyebrow):not(.conversion-signoff) { font-size: 15px; color: var(--muted); margin-top: 26px; max-width: 440px; }
.conversion-brand { width: 152px; height: 152px; margin-top: 25px; margin-left: -15px; transition: transform .7s var(--ease); }
.conversion-brand:hover { transform: rotate(6deg) translateY(-4px); }
.conversion-signoff { color: #587060; font-size: 13px; line-height: 1.8; margin-top: 2px; }
.conversion-signoff strong { color: var(--teal); font-weight: 600; }
.form-card { border: 1px solid #D4E5D8; background: white; border-radius: 21px; padding: 31px 34px 33px; box-shadow: 0 15px 50px #16482608; }
.preview-note { border-radius: 8px; background: #F1F5F2; border: 1px solid #E0E9E3; display: flex; align-items: flex-start; gap: 8px; padding: 10px 11px; margin-bottom: 23px; }
.preview-note p { font-size: 10px; line-height: 1.5; color: #52645B; }
.preview-note strong { font-weight: 650; }
.preview-dot { width: 5px; height: 5px; border-radius: 50%; background: #698D76; flex-shrink: 0; margin-top: 5px; }
.form-card h3 { font-size: 26px; line-height: 1.15; }
#form-fields { padding: 0; margin: 0; border: 0; min-width: 0; }
.form-intro { color: var(--muted); font-size: 13px; line-height: 1.65; margin-top: 12px; }
.required-note { font-size: 10px; color: var(--muted); margin-top: 23px; margin-bottom: 15px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px 16px; }
.field { min-width: 0; }
.field.full-width { grid-column: 1 / -1; }
.field label { display: block; color: #345647; font-size: 12px; font-weight: 600; line-height: 1.4; margin-bottom: 7px; }
.required-star { color: var(--teal); }
.field input, .field select, .field textarea { display: block; width: 100%; border-radius: 8px; border: 1px solid #81988B; background: #FDFEFD; color: #173F2D; padding: 11px 12px; min-height: 44px; line-height: 1.5; font-size: 13px; transition: border-color .15s ease, box-shadow .15s ease; }
.field input::placeholder, .field textarea::placeholder { color: var(--muted); opacity: 1; font-size: 12px; }
.field textarea { min-height: 102px; resize: vertical; }
.field select { padding-right: 26px; text-overflow: ellipsis; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 3px #006A6812; outline: none; }
.field [aria-invalid="true"] { border-color: #B34B35; background: #FFFDFB; }
.field-error { font-size: 11px; color: #A03828; line-height: 1.45; margin-top: 5px; }
.optional-fields { border-top: 1px solid var(--line); margin-top: 22px; padding-top: 3px; }
.optional-fields summary { display: flex; gap: 8px; align-items: center; justify-content: space-between; padding: 13px 0; list-style: none; cursor: pointer; font-size: 12px; color: var(--teal); font-weight: 600; }
.optional-fields summary span { font-size: 10px; color: var(--muted); font-weight: 400; }
.optional-fields summary::after { content: "+"; margin-left: auto; font-size: 17px; font-weight: 400; }
.optional-fields[open] summary::after { content: "−"; }
.optional-fields > .form-grid { padding-top: 7px; padding-bottom: 15px; }
.form-submit { width: 100%; margin-top: 15px; justify-content: space-between; }
.submit-note { font-size: 10px; line-height: 1.6; text-align: center; color: #62776A; margin: 11px auto 0; max-width: 340px; }
.form-error-summary { color: #A03828; background: #FFF4ED; border: 1px solid #EFCEC0; padding: 9px 12px; font-size: 12px; border-radius: 6px; margin-top: 15px; }
.preview-result { padding-top: 25px; }
.result-check { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #E5F6DE; color: var(--teal); margin-bottom: 18px; font-size: 20px; }
.preview-result > p { margin-top: 14px; color: var(--muted); font-size: 13px; }
.preview-result dl { font-size: 13px; padding-block: 16px; border-block: 1px solid var(--line); margin-block: 20px; overflow-wrap: anywhere; }
.preview-result dl div { display: grid; grid-template-columns: 90px 1fr; gap: 16px; margin: 8px 0; }
.preview-result dt { color: var(--muted); font-size: 11px; padding-top: 2px; }
.preview-result dd { margin: 0; color: var(--ink); }
.preview-result .button { width: 100%; }
.no-js-note { padding: 15px 0 0; font-size: 12px; color: #6B755F; }
.site-footer { background: #0B3335; color: #D8EADF; padding: 43px 0 23px; }
.footer-top { display: flex; align-items: center; justify-content: space-between; gap: 50px; }
.brand-footer .brand-word { color: #F3F8F2; }
.footer-top > div:first-child > p { margin-top: 12px; max-width: 310px; font-size: 12px; color: #A9C6BC; }
.footer-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 17px 28px; max-width: 560px; }
.footer-links a { font-size: 12px; display: inline-flex; align-items: center; gap: 7px; }
.footer-links .arrow { width: 12px; height: 12px; }
.footer-links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer-bottom { margin-top: 34px; padding-top: 20px; border-top: 1px solid #91B4A528; color: #9FBCAF; display: flex; gap: 25px; align-items: center; justify-content: space-between; font-size: 10px; }
.footer-bottom a { color: #DBEBDE; }
@keyframes avatar-float { 0%,100% { transform: translateY(5px) rotate(-1.3deg); } 50% { transform: translateY(-8px) rotate(1.5deg); } }
@keyframes icon-float { 0%,100% { transform: translateY(3px); } 50% { transform: translateY(-5px); } }
@keyframes ground-breathe { 0%,100% { transform: scale(1.05); opacity: .85; } 50% { transform: scale(.88); opacity: .5; } }
@keyframes assistant-sway { 0%,100% { transform: translateY(2px) rotate(3deg); } 50% { transform: translateY(-8px) rotate(-2deg); } }
@keyframes process-sway { 0%,100% { transform: rotate(-2deg) translateY(1px); } 50% { transform: rotate(3deg) translateY(-3px); } }
html.motion-paused *, html.page-hidden * { animation-play-state: paused !important; }
html.motion-paused { scroll-behavior: auto; }
html.motion-paused * { transition: none !important; }
html.motion-paused .brand:hover .glass-brand, html.motion-paused .conversion-brand:hover,
html.motion-paused .orbit-item:hover .glass-icon, html.motion-paused .button:hover,
html.motion-paused a:hover > .arrow, html.motion-paused button:hover > .arrow { transform: none; }
html.motion-paused .avatar-perspective, html.page-hidden .avatar-perspective { transform: none; }
.scene-suspended .avatar-float, .scene-suspended .orbit-item, .scene-suspended .avatar-ground { animation-play-state: paused; }
@media (max-width: 1120px) {
  .container { width: calc(100% - 64px); }
  .main-nav { gap: 22px; }
  .hero-grid { gap: 22px; grid-template-columns: 1.07fr 1fr; }
  h1 { font-size: 52px; }
  .hero-copy .eyebrow { font-size: 9px; }
  .scene-kicker { display: none; }
  .orbit-item { width: 70px; min-height: 81px; border-radius: 15px; }
  .orbit-item .glass-icon { width: 65px; height: 57px; }
  .scene-bottom { padding-inline: 0; font-size: 9px; }
  .scene-bottom p { max-width: 140px; }
  .motion-toggle { font-size: 10px; }
  .problem-grid, .difference-grid, .conversion-grid { gap: 55px; }
  .process-workspace { grid-template-columns: 310px 1fr; }
  .assistant-panel { padding: 52px 48px; gap: 25px; }
  .faq-grid { gap: 55px; }
}
@media (max-width: 900px) {
  .section { padding-block: 78px; }
  .hero { padding-bottom: 0; padding-top: 42px; }
  .nav-shell { height: 76px; }
  .brand-word { font-size: 20px; }
  .brand .glass-brand { width: 51px; height: 51px; }
  .main-nav { gap: 16px; font-size: 12px; }
  .main-nav > a:nth-child(3) { display: none; }
  .main-nav .button { padding-inline: 13px; font-size: 12px; gap: 11px; }
  .hero-grid { grid-template-columns: 1fr; gap: 25px; }
  .hero-copy { padding-bottom: 0; max-width: 650px; }
  h1 { font-size: clamp(43px, 7vw, 62px); max-width: 680px; }
  .hero h1 br { display: none; }
  .hero-description { max-width: 620px; }
  .hero-actions { flex-wrap: nowrap; }
  .hero-visual { width: min(560px, 100%); justify-self: center; }
  .glass-stage { aspect-ratio: 1 / .94; }
  .scene-heading { margin-top: 10px; }
  .scene-kicker { display: inline; }
  .orbit-item { width: 82px; min-height: 91px; }
  .orbit-item .glass-icon { width: 75px; height: 65px; }
  .avatar-perspective { width: 66%; left: 17%; top: 12%; }
  .orbit-item-0, .orbit-item-1 { top: 3%; }
  .orbit-item-3, .orbit-item-4 { bottom: 4%; }
  .scene-bottom p { max-width: none; }
  .scene-bottom, .motion-toggle { font-size: 10px; }
  .trust-row { flex-wrap: wrap; justify-content: flex-start; gap: 13px 25px; margin-top: 35px; padding-block: 22px; }
  .trust-item { font-size: 11px; }
  .audience-columns { gap: 23px; }
  .audience-item { padding-left: 20px; }
  .audience-item h3 { font-size: 20px; }
  .audience-item > p:last-child { font-size: 13px; }
  .problem-grid { gap: 40px; }
  .problem-intro h2 { font-size: 33px; }
  .problem-item { gap: 11px; grid-template-columns: 24px 1fr; }
  .problem-item h3 { font-size: 19px; }
  .process-workspace { grid-template-columns: 270px 1fr; gap: 14px; }
  .process-selector { padding: 14px 13px; font-size: 12px; gap: 10px; }
  .process-panel { padding: 25px 26px 30px; min-height: 480px; }
  .process-content h3 { font-size: 27px; }
  .process-content > p:last-child { font-size: 13px; }
  .process-closing { align-items: flex-start; gap: 25px; }
  .process-closing .button { font-size: 12px; padding: 12px 17px; gap: 12px; }
  .assistant-panel { grid-template-columns: 1.25fr .8fr; padding: 44px 37px; }
  .assistant h2 { font-size: 35px; }
  .assistant-copy > p:not(.launch-badge):not(.assistant-note) { font-size: 14px; }
  .assistant-art p { font-size: 12px; }
  .difference-grid { gap: 50px; }
  .difference-grid h2 { font-size: 34px; }
  .quote-grid { gap: 35px; }
  .quote-card blockquote { font-size: 21px; }
  .steps-heading { gap: 40px; }
  .steps-grid { gap: 25px; }
  .step-item h3 { font-size: 20px; }
  .faq-grid { grid-template-columns: .74fr 1.26fr; gap: 35px; }
  .faq-item summary { font-size: 14px; }
  .conversion-grid { grid-template-columns: 1fr 1.1fr; gap: 30px; }
  .form-card { padding: 25px 23px; }
  .form-grid { grid-template-columns: 1fr; gap: 16px; }
  .field.full-width { grid-column: auto; }
  .conversion-copy h2 { font-size: 35px; }
  .footer-top { gap: 35px; }
}
@media (max-width: 680px) {
  html { scroll-padding-top: 82px; }
  .container { width: calc(100% - 40px); }
  .section { padding-block: 62px; }
  .nav-shell { height: 68px; gap: 10px; }
  .brand-word { font-size: 20px; }
  .brand .glass-brand { width: 48px; height: 48px; }
  .menu-toggle { display: block; }
  .main-nav { display: flex; visibility: hidden; opacity: 0; pointer-events: none; position: absolute; left: 0; right: 0; top: 68px; padding: 14px 20px 22px; background: #FBFDFC; border-bottom: 1px solid var(--line); box-shadow: 0 14px 20px #17423208; flex-direction: column; align-items: stretch; gap: 5px; transform: translateY(-8px); transition: opacity .15s ease, transform .15s ease, visibility .15s ease; }
  .main-nav > a:not(.button) { padding: 8px 5px; min-height: 44px; font-size: 14px; }
  .main-nav > a:nth-child(3) { display: flex; }
  .main-nav .button { margin-top: 6px; font-size: 13px; }
  .main-nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .hero { padding-top: 38px; padding-bottom: 0; }
  .hero-grid { gap: 36px; }
  .hero-copy .eyebrow { font-size: 8px; gap: 8px; letter-spacing: .09em; }
  h1 { font-size: clamp(39px, 9.6vw, 54px); letter-spacing: -.05em; line-height: 1.06; }
  .hero h1 { margin-top: 20px; }
  .hero h1 br { display: inline; }
  .hero-description { font-size: 14px; line-height: 1.75; margin-top: 20px; }
  .hero-actions { margin-top: 24px; flex-wrap: wrap; gap: 17px; }
  .hero-actions .button { padding-inline: 22px; font-size: 13px; }
  .hero-actions .text-link { font-size: 12px; }
  .action-note { font-size: 11px; margin-top: 14px; }
  .scene-heading { margin-top: 0; font-size: 10px; }
  .scene-kicker { font-size: 7px; margin-left: 4px; }
  .glass-stage { aspect-ratio: 1 / 1.05; margin-top: 6px; }
  .avatar-perspective { width: 76%; left: 12%; top: 13%; }
  .orbit-item { width: 70px; min-height: 82px; border-radius: 14px; }
  .orbit-item .glass-icon { width: 66px; height: 58px; }
  .orbit-item span { font-size: 10px; padding-bottom: 8px; }
  .orbit-item-0 { top: 5%; left: 15%; }
  .orbit-item-1 { top: 4%; right: 13%; }
  .orbit-item-2 { top: 40%; right: 0; }
  .orbit-item-5 { top: 40%; left: 0; }
  .orbit-item-3 { bottom: 6%; right: 13%; }
  .orbit-item-4 { bottom: 5%; left: 15%; }
  .scene-bottom { font-size: 9px; padding-inline: 2px; }
  .motion-toggle { font-size: 10px; gap: 5px; padding-inline: 3px; }
  .trust-row { display: grid; gap: 11px; padding-block: 21px; margin-top: 29px; }
  .trust-item { font-size: 11px; }
  h2 { font-size: 31px; }
  .section-intro { margin-bottom: 30px; }
  .section-intro h2 { margin-top: 13px; }
  .section-intro > p:last-child:not(.eyebrow) { font-size: 14px; margin-top: 16px; }
  .eyebrow { font-size: 9px; letter-spacing: .12em; }
  .desktop-break { display: none; }
  .audience-columns { grid-template-columns: 1fr; gap: 29px; margin-top: 31px; }
  .audience-item { padding-left: 19px; border-left-color: #B7D4C0; }
  .audience-label { font-size: 10px; }
  .audience-item h3 { margin-top: 11px; font-size: 23px; max-width: none; }
  .audience-item > p:last-child { font-size: 14px; margin-top: 11px; max-width: 460px; }
  .problem-grid { grid-template-columns: 1fr; gap: 34px; }
  .problem-intro h2 { font-size: 31px; margin-top: 13px; }
  .problem-intro > p:not(.eyebrow) { font-size: 14px; }
  .problem-item { grid-template-columns: 28px 1fr; gap: 17px; padding-block: 22px; }
  .problem-item h3 { font-size: 21px; }
  .problem-item p { font-size: 14px; }
  .process-workspace { display: flex; flex-direction: column; gap: 15px; }
  .process-selectors { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
  .process-selector { gap: 7px; padding: 12px 10px; min-height: 70px; font-size: 11px; border-radius: 9px; border-color: #DDE8E0; align-items: flex-start; }
  .selector-number { font-size: 8px; padding-top: 3px; }
  .process-selector .arrow { display: none; }
  .process-selector[aria-pressed="true"] { border-color: #7BB893; }
  .process-panel { padding: 22px 24px 28px; min-height: 430px; border-radius: 16px; }
  .process-art { height: 127px; }
  .process-art .glass-icon { width: 160px; height: 150px; }
  .process-content h3 { font-size: 29px; }
  .process-content > p:last-child { font-size: 14px; }
  .process-closing { flex-direction: column; gap: 21px; }
  .process-closing h3 { font-size: 20px; line-height: 1.2; }
  .assistant { padding-block: 54px; }
  .assistant-panel { grid-template-columns: 1fr; padding: 35px 27px 30px; gap: 27px; border-radius: 21px; }
  .launch-badge { font-size: 9px; padding-inline: 10px; }
  .assistant h2 { font-size: 34px; margin-top: 20px; }
  .assistant-copy > p:not(.launch-badge):not(.assistant-note) { font-size: 14px; margin-top: 19px; }
  .assistant .button { font-size: 12px; padding: 15px 18px; gap: 13px; margin-top: 24px; }
  .assistant-note { font-size: 10px; }
  .assistant-art { width: min(260px, 85%); justify-self: center; }
  .assistant-avatar { margin-top: -16px; margin-bottom: -13px; }
  .assistant-halo { inset: 8% -8% 18%; }
  .assistant-art p { font-size: 12px; }
  .differentiators { padding-top: 12px; }
  .difference-grid { grid-template-columns: 1fr; gap: 39px; }
  .difference-grid h2 { font-size: 31px; }
  .origin-mark { margin-top: 25px; }
  .difference-item h3 { font-size: 21px; }
  .difference-item p { font-size: 14px; }
  .quote-grid { grid-template-columns: 1fr; gap: 36px; margin-top: 31px; }
  .quote-card { padding-left: 20px; }
  .quote-card blockquote { font-size: 22px; line-height: 1.5; }
  .quote-card figcaption { padding-top: 20px; font-size: 11px; }
  .quote-card figcaption strong { font-size: 12px; }
  .source-note { margin-top: 28px; font-size: 9px; }
  .steps-heading { grid-template-columns: 1fr; gap: 20px; }
  .steps-heading > p { font-size: 14px; }
  .steps-grid { grid-template-columns: 1fr; gap: 28px; margin-top: 29px; }
  .step-item { padding-top: 20px; }
  .step-item h3 { margin-top: 13px; font-size: 22px; }
  .step-item p { font-size: 14px; }
  .faq-grid { grid-template-columns: 1fr; gap: 34px; }
  .faq-grid > div:first-child > p:not(.eyebrow) { max-width: 370px; }
  .faq-item summary { padding-block: 21px; font-size: 14px; }
  .faq-item p { margin-right: 24px; font-size: 13px; }
  .conversion-grid { grid-template-columns: 1fr; gap: 34px; }
  .conversion-copy { padding-top: 0; }
  .conversion-copy h2 { font-size: 35px; }
  .conversion-copy > p:not(.eyebrow):not(.conversion-signoff) { font-size: 14px; margin-top: 20px; }
  .conversion-brand, .conversion-signoff { display: none; }
  .form-card { padding: 26px 23px 29px; border-radius: 17px; }
  .form-card h3 { font-size: 26px; }
  .form-intro { font-size: 13px; }
  .form-grid { gap: 18px; }
  .field input, .field select, .field textarea { font-size: 16px; }
  .field label { font-size: 12px; }
  .field input::placeholder, .field textarea::placeholder { font-size: 13px; }
  .form-submit { font-size: 13px; padding-inline: 19px; }
  .footer-top { flex-direction: column; align-items: flex-start; gap: 30px; }
  .footer-links { justify-content: flex-start; gap: 16px 25px; }
  .footer-links a { font-size: 11px; }
  .footer-bottom { display: grid; gap: 11px; font-size: 9px; }
}
@media (max-width: 360px) {
  .container { width: calc(100% - 32px); }
  .hero-copy .eyebrow { font-size: 7px; }
  h1 { font-size: 37px; }
  .scene-kicker { display: none; }
  .orbit-item { width: 68px; min-height: 78px; }
  .orbit-item .glass-icon { width: 63px; height: 55px; }
  .orbit-item span { font-size: 10px; }
  .scene-bottom { font-size: 9px; }
  .motion-toggle { font-size: 10px; }
  .assistant-panel { padding-inline: 23px; }
  .assistant h2 { font-size: 31px; }
  .form-card { padding-inline: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition-duration: 0.01ms !important; }
  .avatar-perspective { transform: none !important; }
  .brand:hover .glass-brand, .conversion-brand:hover, .orbit-item:hover .glass-icon { transform: none; }
}
@media print {
  @page { size: A4; margin: 15mm; }
  body { color: #153D32; background: white; font-size: 10pt; }
  .site-header { position: static; backdrop-filter: none; }
  .container { width: 100%; }
  .section { padding-block: 24px; }
  .main-nav, .motion-toggle, .menu-toggle, .skip-link { display: none !important; }
  .hero-grid, .problem-grid, .difference-grid, .steps-heading, .faq-grid, .conversion-grid { display: block; }
  h1 { font-size: 30pt; }
  h2 { font-size: 23pt; }
  .hero-visual { width: 80mm; margin: 15px auto; }
  .glass-stage { width: 80mm; }
  .orbit-item { width: 17mm; min-height: 19mm; }
  .orbit-item .glass-icon { width: 15mm; height: 14mm; }
  .orbit-item span { font-size: 6pt; }
  .process-selectors, .process-panel, .form-card, .assistant-panel, .quote-card { break-inside: avoid; }
  .process-workspace { grid-template-columns: 68mm 1fr; }
  .assistant-panel { padding: 25px; background: #073D3F !important; color: white !important; print-color-adjust: exact; }
  .faq-item:not([open]) > p { display: block; }
  .conversion-brand { display: none; }
  .conversion-copy { margin-bottom: 25px; }
  .site-footer { background: white; color: var(--ink); }
  .brand-footer .brand-word { color: var(--ink); }
  .footer-top > div:first-child > p, .footer-bottom { color: var(--muted); }
  *, *::before, *::after { animation: none !important; transition: none !important; box-shadow: none !important; }
}

/* V2: familia de vidrio en beneficios y recorridos. */
.feature-glyph { width: 78px; height: 78px; flex-shrink: 0; }
.feature-glyph .glass-icon { width: 100%; height: 100%; transition: transform .45s var(--ease); }
.audience-item > .feature-glyph { margin: -10px 0 8px -8px; }
.audience-item:hover .feature-glyph .glass-icon,
.problem-item:hover .feature-glyph .glass-icon,
.difference-item:hover .feature-glyph .glass-icon,
.step-item:hover .feature-glyph .glass-icon { transform: translateY(-3px) rotate(-3deg); }
.problem-item { grid-template-columns: 64px minmax(0, 1fr); gap: 19px; }
.problem-item > .feature-glyph { width: 64px; height: 64px; margin-top: -7px; }
.difference-item { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 20px; }
.difference-item > .feature-glyph { width: 64px; height: 64px; margin-top: -7px; }
.step-top { display: flex; align-items: center; justify-content: space-between; min-height: 66px; }
.step-top > .feature-glyph { width: 68px; height: 68px; margin: -9px 0 -3px; }
.step-item h3 { margin-top: 15px; }
.section-glyph { width: 90px; height: 90px; margin: -14px 0 10px -10px; }
.process-selector { gap: 10px; padding-left: 10px; }
.process-selector > .glass-icon { width: 42px; height: 42px; }
.form-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.form-glyph { width: 58px; height: 58px; }

/* Las respuestas abiertas adquieren el verde claro del isologo. */
.faq-item { border: 1px solid transparent; border-bottom-color: #CFDFD4; border-radius: 12px; padding-inline: 15px; transition: background-color .24s ease, border-color .24s ease, box-shadow .24s ease; }
.faq-item:first-child { border-top: 1px solid transparent; border-bottom-color: #CFDFD4; }
.faq-item:not([open]):hover { background: #EFF6E9; }
.faq-item[open], .faq-item[open]:first-child { border-color: #98CE51; background: #EAF7D6; box-shadow: inset 3px 0 0 #94CF46, 0 8px 20px #6AA0320A; margin-block: 9px; }
.faq-item[open] summary { color: #24582B; }
.faq-item[open] .faq-plus::before, .faq-item[open] .faq-plus::after { background: #427315; }
.faq-item[open] > p { color: #375633; animation: faq-answer-in .25s ease-out both; }
.faq-item summary:focus-visible { outline-offset: 1px; border-radius: 5px; }
@keyframes faq-answer-in { from { opacity: .25; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
html.motion-paused .faq-item[open] > p { animation: none !important; opacity: 1; transform: none; }
html.motion-paused .feature-glyph .glass-icon { transform: none !important; }

/* Pelotitas funcionales: el contenido cuenta con espacio propio. */
html { scroll-padding-top: calc(var(--factor-header-height, 84px) + 18px); }
.journey-companions { position: relative; z-index: 101; background: #F3F9EF; border-bottom: 1px solid #DCEBCC; }
.journey-track { position: relative; display: grid; grid-template-columns: 70px minmax(0, 1fr) 70px; align-items: center; width: min(1200px, 100%); min-height: 64px; padding: 0 12px; margin-inline: auto; }
.journey-orb { position: relative; display: flex; align-items: center; justify-content: flex-start; flex-direction: column; gap: 3px; width: 48px; height: 56px; padding: 2px 0 0; justify-self: center; color: #335F34; border: 0; background: transparent; border-radius: 24px 24px 9px 9px; pointer-events: auto; cursor: pointer; text-align: center; }
.journey-lime { grid-column: 1; grid-row: 1; }
.journey-teal { grid-column: 3; grid-row: 1; color: #006A68; }
.companion-visual { display: block; flex: 0 0 auto; width: 34px; height: 34px; transform: translate(var(--orb-drift-x, 0px), var(--orb-drift-y, 0px)); filter: drop-shadow(0 2px 2px #306A4720); pointer-events: none; }
.companion-visual svg { width: 100%; height: 100%; overflow: hidden; }
.companion-label { display: block; font-size: 9px; line-height: 1.1; font-weight: 600; pointer-events: none; }
.companion-prefix { display: none; }
.journey-orb:hover .companion-label, .journey-orb:focus-visible .companion-label { text-decoration: underline; text-underline-offset: 3px; }
.journey-caption { grid-column: 2; grid-row: 1; min-width: 0; padding: 4px 8px; text-align: center; line-height: 1.5; }
.journey-caption > span { display: block; font-size: 8px; letter-spacing: .10em; color: #486A49; }
.journey-caption strong { display: block; font-size: 12px; font-weight: 600; color: #2C5230; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
.journey-companions.is-hidden { visibility: hidden; pointer-events: none; }
.site-header #journey-slot .journey-companions { border-top: 1px solid #E0ECD8; border-bottom: 0; }

@media (min-width: 1080px) and (min-height: 480px) {
  /* Esta regla está después de los puntos de corte anteriores: reserva 72px por lado. */
  .container { width: min(1200px, calc(100% - 144px)); }
  .journey-companions { position: fixed; inset: 0; z-index: 90; border: 0; background: transparent; pointer-events: none; }
  .journey-track { width: 100%; max-width: none; height: 100%; display: block; padding: 0; }
  .journey-orb { position: absolute; left: 0; top: 0; width: 48px; height: 74px; padding-top: 2px; gap: 4px; will-change: transform; }
  .journey-lime { transform: translate(12px, 240px); }
  .journey-teal { left: auto; right: 12px; top: min(430px, calc(100vh - 82px)); }
  .journey-companions.is-enhanced .journey-teal { left: 0; right: auto; top: 0; }
  .companion-visual { width: 40px; height: 40px; }
  .companion-label { font-size: 10px; line-height: 1.2; }
  .companion-prefix { display: initial; }
  .journey-caption { display: none; }
}
@media (max-width: 900px) {
  .difference-item { gap: 13px; grid-template-columns: 56px minmax(0, 1fr); }
  .difference-item > .feature-glyph { width: 56px; height: 56px; }
  .process-selector { padding-inline: 8px 11px; gap: 7px; }
  .process-selector > .glass-icon { width: 34px; height: 34px; }
}
@media (max-width: 680px) {
  .main-nav { top: 100%; }
  .feature-glyph { width: 72px; height: 72px; }
  .audience-item > .feature-glyph { margin-bottom: 5px; }
  .problem-item { grid-template-columns: 56px minmax(0, 1fr); gap: 13px; }
  .problem-item > .feature-glyph { width: 56px; height: 56px; margin-top: -3px; }
  .difference-item > .feature-glyph { margin-top: -3px; }
  .section-glyph { width: 78px; height: 78px; margin-bottom: 8px; }
  .process-selector { display: grid; grid-template-columns: 1fr; gap: 4px; align-items: start; padding: 9px 10px 12px; min-height: 107px; }
  .process-selector > .glass-icon { width: 34px; height: 34px; margin-left: -4px; }
  .form-glyph { width: 46px; height: 46px; }
  .form-heading { gap: 8px; }
  .form-heading h3 { font-size: 24px; }
  .faq-item { padding-inline: 12px; }
  .faq-item summary { gap: 17px; }
  .faq-item p { margin-right: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .feature-glyph .glass-icon, .companion-visual { transform: none !important; }
  .faq-item[open] > p { animation: none !important; }
}
@media print {
  .journey-companions, #journey-slot { display: none !important; }
  .container { width: 100%; }
  .faq-item[open] { print-color-adjust: exact; }
}

/*
 * V3: los PNG aprobados se muestran directamente, sin <symbol> ni <use>.
 * 0–5: 1536 × 1024, grilla 3 × 2; 6–14: 1254 × 1254, grilla 3 × 3.
 * El estado del icono depende solo de data-icon. El HTML autónomo incrusta
 * estas dos URL como data:image/png; los PNG originales permanecen intactos.
 * Las imágenes se declaran directamente: una data URI grande dentro de una
 * custom property supera el límite de sustitución de var() del navegador.
 */
.glass-icon.sprite-icon {
  --sprite-grid: 300% 200%;
  --sprite-position: 0% 0%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  padding: 0;
  border: 0;
  background: none;
  font-size: 0;
  line-height: 0;
  letter-spacing: normal;
}
.glass-icon.sprite-icon::before {
  content: "";
  display: block;
  flex: 0 0 auto;
  width: var(--sprite-side, 100%);
  height: var(--sprite-side, 100%);
  max-width: 100%;
  max-height: 100%;
  background-image: url("/landing/img/iconos-modulos.890cd01e.webp");
  background-repeat: no-repeat;
  background-size: var(--sprite-grid);
  background-position: var(--sprite-position);
  pointer-events: none;
}

.sprite-icon[data-icon="0"] { --sprite-position: 0% 0%; }
.sprite-icon[data-icon="1"] { --sprite-position: 50% 0%; }
.sprite-icon[data-icon="2"] { --sprite-position: 100% 0%; }
.sprite-icon[data-icon="3"] { --sprite-position: 0% 100%; }
.sprite-icon[data-icon="4"] { --sprite-position: 50% 100%; }
.sprite-icon[data-icon="5"] { --sprite-position: 100% 100%; }

.sprite-icon[data-icon="6"],
.sprite-icon[data-icon="7"],
.sprite-icon[data-icon="8"],
.sprite-icon[data-icon="9"],
.sprite-icon[data-icon="10"],
.sprite-icon[data-icon="11"],
.sprite-icon[data-icon="12"],
.sprite-icon[data-icon="13"],
.sprite-icon[data-icon="14"] {
  --sprite-grid: 300% 300%;
}
.sprite-icon[data-icon="6"]::before,
.sprite-icon[data-icon="7"]::before,
.sprite-icon[data-icon="8"]::before,
.sprite-icon[data-icon="9"]::before,
.sprite-icon[data-icon="10"]::before,
.sprite-icon[data-icon="11"]::before,
.sprite-icon[data-icon="12"]::before,
.sprite-icon[data-icon="13"]::before,
.sprite-icon[data-icon="14"]::before {
  background-image: url("/landing/img/iconos-secciones.10c1a014.webp");
}
.sprite-icon[data-icon="6"] { --sprite-position: 0% 0%; }
.sprite-icon[data-icon="7"] { --sprite-position: 50% 0%; }
.sprite-icon[data-icon="8"] { --sprite-position: 100% 0%; }
.sprite-icon[data-icon="9"] { --sprite-position: 0% 50%; }
.sprite-icon[data-icon="10"] { --sprite-position: 50% 50%; }
.sprite-icon[data-icon="11"] { --sprite-position: 100% 50%; }
.sprite-icon[data-icon="12"] { --sprite-position: 0% 100%; }
.sprite-icon[data-icon="13"] { --sprite-position: 50% 100%; }
.sprite-icon[data-icon="14"] { --sprite-position: 100% 100%; }

/* Mantener cada celda cuadrada dentro de las cajas rectangulares existentes. */
.orbit-item .sprite-icon { --sprite-side: 65px; }
.process-art .sprite-icon { --sprite-side: 160px; }

/* Los encabezados ganan presencia sin ampliar las columnas de texto. */
.audience-item > .feature-glyph {
  width: 96px;
  height: 96px;
  margin-bottom: 12px;
}
.section-glyph {
  width: 112px;
  height: 112px;
  margin-bottom: 14px;
}
.step-top > .feature-glyph { width: 80px; height: 80px; }

@media (max-width: 1120px) {
  .orbit-item .sprite-icon { --sprite-side: 57px; }
}
@media (max-width: 900px) {
  .orbit-item .sprite-icon { --sprite-side: 65px; }
}
@media (max-width: 680px) {
  .orbit-item .sprite-icon { --sprite-side: 58px; }
  .process-art .sprite-icon { --sprite-side: 150px; }
  .audience-item > .feature-glyph { width: 84px; height: 84px; }
  .section-glyph { width: 96px; height: 96px; }
  .step-top > .feature-glyph { width: 74px; height: 74px; }
}
@media (max-width: 360px) {
  .orbit-item .sprite-icon { --sprite-side: 55px; }
}
@media (max-width: 380px) {
  .orbit-item .sprite-icon { --sprite-side: 50px; }
}
@media print {
  .orbit-item .sprite-icon { --sprite-side: 14mm; }
  .glass-icon.sprite-icon::before {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

/* FAQ V3 — cargar después de landing.css.
   Estructura: details.faq-item > summary + div.faq-answer > p.
   El atributo open y la interacción de teclado siguen siendo nativos. */

details.faq-item {
  --faq-answer-fill: var(--lime-light, #CCF39C);
  --faq-answer-border: #AEDF72;
  --faq-answer-ink: var(--ink, #123D3D);
  margin-block: 0;
  padding: 0;
  border: 1px solid transparent;
  border-bottom-color: #CFDFD4;
  border-radius: 14px;
  background: transparent;
  box-shadow: none;
  transition: background-color .22s ease, border-color .22s ease,
    box-shadow .22s ease;
}

details.faq-item:first-child {
  border-top-color: #CFDFD4;
}

details.faq-item:not([open]):hover {
  background: #EFF6E9;
}

details.faq-item[open],
details.faq-item[open]:first-child {
  margin-block: 10px;
  border-color: #BFDEA0;
  background: #F9FCF5;
  box-shadow: 0 6px 18px #345B2410;
}

details.faq-item > summary {
  min-height: 64px;
  padding: 20px 17px;
  gap: 20px;
  border-radius: 13px;
  color: var(--faq-answer-ink);
  font-size: 15px;
  line-height: 1.5;
  transition: color .22s ease;
}

details.faq-item[open] > summary {
  color: #24582B;
}

details.faq-item > summary:focus-visible {
  outline: 2px solid var(--teal, #006A68);
  outline-offset: 3px;
  border-radius: 13px;
}

/* Sustituye el margen, color y animación de las antiguas respuestas > p.
   En V3 el panel y su movimiento pertenecen al contenedor .faq-answer. */
details.faq-item > p,
details.faq-item[open] > p {
  margin: 0;
  color: var(--faq-answer-ink);
  animation: none;
  opacity: 1;
  transform: none;
}

details.faq-item > .faq-answer {
  margin: 0 14px 14px;
  padding: 20px 22px;
  border: 2px solid var(--faq-answer-border);
  border-radius: 12px;
  background: var(--faq-answer-fill);
  color: var(--faq-answer-ink);
  overflow-wrap: anywhere;
}

details.faq-item > .faq-answer > p {
  margin: 0;
  padding: 0;
  color: var(--faq-answer-ink);
  font-size: 15px;
  line-height: 1.7;
  animation: none;
  opacity: 1;
  transform: none;
}

details.faq-item > .faq-answer > p + p {
  margin-top: 14px;
}

details.faq-item[open] > .faq-answer {
  animation: faq-v3-answer-enter .3s ease-out both;
}

@keyframes faq-v3-answer-enter {
  from { opacity: .55; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Pausar el movimiento no congela una respuesta a medio aparecer. */
.motion-paused details.faq-item,
.motion-paused details.faq-item > summary,
.motion-paused details.faq-item > .faq-answer,
.motion-paused details.faq-item .faq-plus {
  animation: none !important;
  transition: none !important;
}

.motion-paused details.faq-item > .faq-answer {
  opacity: 1;
  transform: none;
}

@media (max-width: 640px) {
  details.faq-item > summary {
    min-height: 60px;
    padding: 18px 14px;
    gap: 16px;
  }

  details.faq-item > .faq-answer {
    margin: 0 11px 11px;
    padding: 17px 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  details.faq-item,
  details.faq-item > summary,
  details.faq-item > .faq-answer,
  details.faq-item .faq-plus {
    animation: none !important;
    transition: none !important;
  }

  details.faq-item > .faq-answer {
    opacity: 1;
    transform: none;
  }
}

@media print {
  details.faq-item {
    break-inside: avoid;
    box-shadow: none;
  }

  details.faq-item > .faq-answer {
    print-color-adjust: exact;
  }
}

/* V3: las dos esferas nacen del isologo y se desprenden con el scroll. */
:root {
  --factor-avatar: url("/landing/img/avatar.bf6c0cd1.webp");
  --motion-gutter: 44px;
}
.container { width: calc(100% - 64px); margin-left: 20px; margin-right: 44px; }
.avatar-art { display: block; background-image: var(--factor-avatar); background-repeat: no-repeat; background-size: 100% 100%; background-position: center; }
.glass-stage { isolation: auto; perspective: none; }
.avatar-perspective { transform: none !important; transition: none !important; }
.avatar-float { position: relative; animation: none; }
.orb-home { position: absolute; width: 23.2854864434%; aspect-ratio: 1; pointer-events: none; visibility: hidden; }
.orb-home-lime { left: 20.7336523126%; top: 15.3110047847%; }
.orb-home-teal { left: 60.8452950558%; top: 15.5502392344%; }
/* Se retiran solo las ventanas de las esferas; se conserva la parte alta de la h. */
html.orbs-ready #hero-logo > .glass-brand {
  clip-path: polygon(0 0, 20.73365% 0, 20.73365% 38.59649%, 44.01914% 38.59649%, 44.01914% 0, 60.84530% 0, 60.84530% 38.83573%, 84.13078% 38.83573%, 84.13078% 0, 100% 0, 100% 100%, 0 100%);
}
.hero-copy, .scene-heading, .scene-bottom, .trust-row { position: relative; z-index: 75; }
.orbit-item { z-index: 75; }
.factor-motion { position: fixed; inset: 0; z-index: 60; pointer-events: none; visibility: hidden; overflow: hidden; }
html.orbs-ready .factor-motion { visibility: visible; }
.factor-orb {
  --orb-size: 28px;
  --orb-box: 44px;
  --orb-bob: 0px;
  --orb-rock: 0deg;
  position: absolute; left: 0; top: 0; display: grid; place-items: center;
  width: var(--orb-box); height: var(--orb-box); padding: 0;
  background: transparent; border: 0; border-radius: 50%; pointer-events: auto;
  cursor: pointer; will-change: transform; touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.factor-orb:focus-visible { outline: 2px solid #007C72; outline-offset: -5px; }
.factor-orb .orb-sprite {
  display: block; flex: none; width: var(--orb-size); height: var(--orb-size);
  background-image: var(--factor-avatar); background-repeat: no-repeat;
  background-size: 429.4520547945% 429.4520547945%;
  pointer-events: none; filter: drop-shadow(0 3px 3px #135E4928);
  animation: factor-orb-bob 3.6s ease-in-out infinite;
}
.orb-lime { background-position: 27.027027027% 19.958419958%; }
.orb-teal { background-position: 79.313929314% 20.270270270%; }
.factor-orb-teal .orb-sprite { animation-delay: -1.7s; animation-duration: 4.1s; }
.factor-orb:hover .orb-sprite { filter: drop-shadow(0 0 6px #6BBB0066) drop-shadow(0 3px 3px #135E4928); }
.factor-orb-teal:hover .orb-sprite { filter: drop-shadow(0 0 6px #00B8B577) drop-shadow(0 3px 3px #135E4928); }
.factor-trails { position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; opacity: 0; transition: opacity .35s ease; pointer-events: none; }
.factor-motion.is-scrolling .factor-trails { opacity: .35; }
.factor-trails path { fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
#lime-trail { stroke: #94CF32; }
#teal-trail { stroke: #19BDB8; }
@keyframes factor-orb-bob {
  0%, 100% { transform: translateY(0) rotate(calc(var(--orb-rock) * -1)); }
  38% { transform: translateY(calc(var(--orb-bob) * -1)) rotate(var(--orb-rock)); }
  65% { transform: translateY(calc(var(--orb-bob) * .25)) rotate(calc(var(--orb-rock) * -.333333)); }
}
html.motion-paused .factor-orb .orb-sprite { animation: none !important; transform: none; }
html.motion-paused .factor-trails { display: none; }
@media (min-width: 681px) {
  :root { --motion-gutter: 52px; }
  .container { width: min(1200px, calc(100% - var(--motion-gutter) - var(--motion-gutter))); margin-inline: auto; }
}
@media (min-width: 1080px) {
  :root { --motion-gutter: 76px; }
}
@media (max-width: 680px) {
  .main-nav { top: 100%; }
  .glass-stage { aspect-ratio: 1 / 1.44; }
  .avatar-perspective { width: 86%; left: 7%; top: 25%; }
  .orbit-item-0, .orbit-item-1 { top: 0; }
  .orbit-item-2, .orbit-item-5 { top: 49%; }
  .orbit-item-3, .orbit-item-4 { bottom: 0; }
  .scene-bottom { align-items: flex-start; gap: 10px; }
  .scene-bottom > p { max-width: 130px; padding-top: 13px; font-size: 9px; line-height: 1.45; }
  .motion-toggle { flex-shrink: 0; }
  .scene-kicker { display: none; }
}
@media (max-width: 380px) {
  .orbit-item { width: 60px; min-height: 70px; }
  .orbit-item .glass-icon { width: 56px; height: 50px; }
  .orbit-item > span:not(.glass-icon) { font-size: 8px; padding-bottom: 6px; }
  .scene-bottom > p { max-width: 112px; }
  h1 { font-size: 36px; }
}
@media (prefers-reduced-motion: reduce) {
  .factor-orb .orb-sprite { animation: none !important; transform: none; }
  .factor-trails { display: none; }
}
@media print {
  .factor-motion { display: none !important; }
  html.orbs-ready #hero-logo > .glass-brand { clip-path: none; }
  .container { width: 100%; }
  .avatar-art { print-color-adjust: exact; }
}

/* ===== factor-v4-styles ===== */
/* Factor RH · V4. Referencias de Rita, identidad y recursos de la V3. */
:root { --v4-mint:#EAF9ED; --v4-aqua:#E4F9F7; --v4-line:#CFE8DE; }
.v4-visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.v4-center { text-align:center; margin-inline:auto; max-width:850px; }
.v4-center > p:last-child { margin-inline:auto; }
.v4-center h2 { max-width:none; }
.hero-wash { background:radial-gradient(ellipse at 68% 28%,#A5E9DC55 0%,#E5F9EF55 40%,transparent 72%); }
.hero .orbit-item { box-shadow:0 8px 28px #0B887514,inset 0 1px 0 white; }

/* Referencia 3: personas y públicos, con el lenguaje propio de Factor RH. */
.v4-audiences { background:linear-gradient(180deg,#F3FCF4 0%,#FBFDFC 54%); padding-block:90px 80px; overflow:hidden; }
.v4-audiences .section-intro { margin-bottom:42px; }
.v4-audiences .section-intro h2 { font-size:clamp(33px,3.6vw,48px); max-width:850px; }
.v4-audiences .section-intro > p:last-child { max-width:700px; }
.v4-audience-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:24px; }
.v4-audience-tab { position:relative; display:flex; flex-direction:column; align-items:flex-start; text-align:left; padding:22px 24px 24px; background:#FFFFFF80; border:1px solid #DCEAE3; border-radius:18px; min-width:0; color:#526F67; transition:background .25s,border-color .25s,box-shadow .25s; overflow:hidden; }
.v4-audience-tab::after { content:""; position:absolute; inset:auto 22px 0; height:3px; background:linear-gradient(90deg,var(--lime),var(--aqua)); transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
.v4-audience-tab[aria-selected="true"] { color:var(--ink); border-color:#9ED1B6; background:linear-gradient(135deg,#EEFAE8,#F2FCF9); box-shadow:0 8px 24px #2368490A; }
.v4-audience-tab[aria-selected="true"]::after { transform:scaleX(1); }
.v4-audience-tab:hover { background:#F2FAF4; border-color:#ADD6C3; }
.v4-audience-tab-top { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.v4-audience-tab .glass-icon { --sprite-side:48px; width:48px; height:48px; }
.v4-audience-role { font-size:14px; font-weight:700; line-height:1.35; }
.v4-audience-benefit { display:block; color:var(--teal); font-size:18px; line-height:1.25; font-weight:650; margin-bottom:10px; letter-spacing:-.025em; }
.v4-audience-description { font-size:13px; line-height:1.65; }
.v4-audience-panels { position:relative; }
.v4-audience-panel { position:relative; border-radius:26px; overflow:hidden; background:#DCECE7; }
.v4-people-photo { position:relative; aspect-ratio:16/8.6; min-height:320px; overflow:hidden; border-radius:26px; isolation:isolate; }
.v4-people-photo > img { width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.v4-audience-panel:nth-child(2) .v4-people-photo > img { object-position:center 50%; }
.v4-audience-panel:nth-child(3) .v4-people-photo > img { object-position:45% 45%; }
.v4-photo-label { position:absolute; top:24px; left:24px; background:#F7FFFAEE; color:#164E43; padding:9px 15px; border:1px solid #FFFFFFC0; border-radius:30px; font-size:11px; font-weight:650; letter-spacing:.07em; text-transform:uppercase; }
.v4-photo-caption { position:absolute; bottom:24px; left:24px; right:24px; width:fit-content; max-width:min(650px,calc(100% - 48px)); display:flex; align-items:center; gap:12px; background:#FBFFFCF2; border:1px solid white; border-radius:16px; padding:14px 20px 14px 12px; box-shadow:0 10px 35px #153F3820; backdrop-filter:blur(9px); color:var(--ink); }
.v4-photo-caption .glass-icon { --sprite-side:52px; width:52px; height:52px; }
.v4-photo-caption p { font-size:15px; line-height:1.45; font-weight:600; }
.v4-photo-caption span:not(.glass-icon) { display:block; margin-top:3px; font-size:12px; color:#55716A; font-weight:400; }
.v4-audience-bottom { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-top:22px; color:#617A71; font-size:12px; }
.v4-audience-bottom > p { max-width:510px; }
.v4-audience-panel.is-entering { animation:v4-people-arrive .55s ease both; }
@keyframes v4-people-arrive { from { opacity:.3; transform:translateY(7px); } to { opacity:1; transform:none; } }

/* Referencia 4: hechos de Factor RH y capacidades documentadas. */
.v4-facts { padding-block:74px 84px; background:#FBFDFC; }
.v4-facts .section-intro { max-width:750px; margin-bottom:38px; }
.v4-facts h2 { font-size:clamp(31px,3.1vw,42px); }
.v4-facts-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.v4-fact { position:relative; text-align:center; padding:31px 24px 32px; border-radius:23px; border:1px solid #DAEBDD; background:#F0F8EC; overflow:hidden; min-width:0; }
.v4-fact:nth-child(2) { background:#EFF9F7; border-color:#D0EBE5; }
.v4-fact:nth-child(3) { background:linear-gradient(145deg,#EAF8EE,#E8F9F8); border-color:#CDE6DA; }
.v4-fact-value { display:block; font-size:clamp(52px,5.5vw,74px); font-weight:750; color:var(--teal); letter-spacing:-.06em; line-height:1; }
.v4-fact h3 { margin:15px auto 14px; font-size:19px; line-height:1.25; max-width:230px; }
.v4-fact p { font-size:13px; line-height:1.7; color:#55736A; max-width:290px; margin-inline:auto; }
.v4-fact .glass-icon { position:absolute; right:10px; top:11px; --sprite-side:43px; width:43px; height:43px; opacity:.8; }
.v4-fact:hover .glass-icon { transform:translateY(-3px) rotate(5deg); transition:transform .3s; }
.v4-facts-link { display:flex; justify-content:center; margin-top:25px; }
.problems { padding-bottom:62px; }
.processes { background:linear-gradient(160deg,#F3FAF1,#F0FAF8); }
.process-selector[aria-pressed="true"] { background:linear-gradient(100deg,#F8FFF2,white); border-color:#9CCDAD; }
.process-panel { background:radial-gradient(ellipse at 100% 0,#E6FAF0,transparent 54%),#FFFFFF; border-color:#C5E4D2; }
.process-content > p:last-child { line-height:1.7; }
.process-selector { min-height:70px; }
.processes .process-closing { align-items:center; }
.assistant-panel { background:#063F42; }
.assistant-glow { background:radial-gradient(ellipse at 90% 38%,#12B8A76B,transparent 56%),radial-gradient(ellipse at 15% 110%,#619C2030,transparent 50%); }
.difference-item { border-color:#CEE4D7; }
.step-item { border-top-color:#94C5A6; }

/* Referencia 2: una experiencia completa por vez. */
.v4-testimonials { background:#FBFDFC; padding-bottom:28px; }
.v4-testimonials .section-intro { margin-bottom:38px; }
.v4-testimonials .section-glyph { width:76px; height:76px; margin:-10px auto 14px; }
.v4-testimonials h2 { max-width:850px; font-size:clamp(32px,3.4vw,46px); }
.v4-testimonials .section-intro > p:last-child { max-width:710px; }
.v4-testimonial-carousel { position:relative; }
.v4-quote-viewport { overflow:hidden; border-radius:28px; background:linear-gradient(120deg,#F0F8E9,#EFFCF8); border:1px solid #D9ECDD; touch-action:pan-y; }
.v4-quote { display:grid; grid-template-columns:minmax(0,1fr) 242px; gap:48px; min-height:370px; padding:48px 50px; margin:0; }
.v4-quote-main { display:flex; flex-direction:column; min-width:0; }
.v4-quote-topic { font-size:19px; line-height:1.3; font-weight:700; margin:0 0 19px; color:#15473D; }
.v4-quote blockquote { font-size:clamp(20px,2vw,26px); letter-spacing:-.02em; line-height:1.48; color:#254D42; margin:0 0 27px; }
.v4-quote figcaption { margin-top:auto; color:#006A68; font-size:15px; line-height:1.4; font-weight:700; }
.v4-quote-sidebar { border-left:1px solid #B7D8C9; padding-left:30px; display:flex; flex-direction:column; justify-content:center; gap:23px; min-width:0; }
.v4-testimonial-logo { width:142px; height:65px; display:flex; align-items:center; justify-content:flex-start; }
.v4-testimonial-logo img { width:100%; height:100%; object-fit:contain; object-position:left center; }
.v4-detail-label { display:block; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:#648377; margin-bottom:7px; }
.v4-detail-value { display:block; font-size:12px; line-height:1.6; color:#2A574A; }
.v4-quote.is-entering { animation:v4-quote-arrive .5s ease both; }
@keyframes v4-quote-arrive { from { opacity:.25; transform:translateX(24px); } to { opacity:1; transform:none; } }
.v4-testimonial-controls { display:flex; align-items:center; gap:12px; margin-top:22px; flex-wrap:wrap; }
.v4-round-button { width:45px; height:45px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #86B7A7; color:var(--teal); border-radius:50%; background:transparent; flex-shrink:0; transition:background .2s,border-color .2s; }
.v4-round-button:hover { background:#E7F7EF; border-color:#448E78; }
.v4-round-button svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; }
.v4-round-button .v4-prev-arrow { transform:rotate(180deg); }
.v4-quote-counter { font-size:12px; color:#456F61; min-width:44px; font-variant-numeric:tabular-nums; text-align:center; }
.v4-quote-dots { display:flex; align-items:center; gap:1px; margin-left:auto; }
.v4-quote-dot { border:0; background:transparent; width:32px; height:44px; padding:12px 9px; }
.v4-quote-dot::before { content:""; display:block; width:7px; height:7px; border-radius:10px; background:#C5DDD0; transition:background .2s,transform .2s; }
.v4-quote-dot[aria-current="true"]::before { background:var(--teal); transform:scale(1.4); }
.v4-quote-toggle { display:flex; align-items:center; gap:8px; min-height:44px; padding:9px 12px; font-size:11px; color:#416E5D; border:1px solid #D5E7DD; border-radius:24px; background:#FFFFFF90; }
.v4-quote-toggle svg { width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.8; }
.v4-reading-progress { height:2px; background:#DCEEE2; overflow:hidden; margin:0 34px; }
.v4-reading-progress > span { display:block; width:100%; height:100%; background:linear-gradient(90deg,var(--lime),var(--aqua)); transform:scaleX(0); transform-origin:left; }
.v4-testimonial-carousel.is-playing .v4-reading-progress > span { animation:v4-reading var(--reading-time,16000ms) linear forwards; }
@keyframes v4-reading { to { transform:scaleX(1); } }
.v4-testimonials .source-note { margin-top:18px; font-size:10px; }

/* Referencia 5: logos originales, presentación en una sola tinta. */
.v4-brands { padding:24px 0 53px; background:#FBFDFC; }
.v4-brands-row { display:flex; align-items:center; gap:30px; border-top:1px solid #E0EDE5; border-bottom:1px solid #E0EDE5; padding-block:27px; }
.v4-brands-copy { flex:0 0 255px; font-size:15px; line-height:1.45; font-weight:600; color:var(--ink); }
.v4-brands-window { min-width:0; flex:1; overflow:hidden; position:relative; -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.v4-brand-track { width:max-content; display:flex; animation:v4-brand-flow 76s linear infinite; will-change:transform; }
.v4-brand-group { display:flex; align-items:center; gap:32px; padding-right:32px; flex:none; }
.v4-client-logo { display:flex; justify-content:center; align-items:center; width:145px; height:72px; flex:0 0 auto; }
.v4-client-logo img { max-width:137px; width:100%; height:58px; object-fit:contain; }
.v4-client-logo[data-brand="ucp"] img { max-width:104px; }
.v4-client-logo[data-brand="garden"] img { max-width:92px; }
.v4-client-logo[data-brand="nissan"] img { max-width:106px; }
.v4-client-logo[data-brand="concepcion"] img { max-width:80px; }
.v4-client-logo[data-brand="ccpa"] img { max-width:90px; }
.v4-client-logo[data-brand="modiga"] img { max-width:126px; }
@keyframes v4-brand-flow { to { transform:translateX(-50%); } }
.v4-brand-track.is-paused { animation-play-state:paused!important; }
.v4-brands .v4-round-button { width:40px; height:40px; }
.v4-brands .v4-round-button svg { width:13px; height:13px; }

/* Referencia 1: un cierre con color, profundidad y un paso claro. */
.v4-cta { padding:58px 0; background:#FBFDFC; }
.v4-cta-panel { position:relative; isolation:isolate; overflow:hidden; border-radius:32px; text-align:center; padding:90px 45px 64px; background:#CFEED8; }
.v4-cta-panel::before { content:""; position:absolute; z-index:1; top:-37px; left:-6%; width:112%; height:74px; background:#FBFDFC; border-radius:0 0 50% 50%; pointer-events:none; }
.v4-cta-atmosphere { position:absolute; z-index:-1; inset:-15%; background:radial-gradient(ellipse at 5% 58%,#77C918E6 0%,transparent 48%),radial-gradient(ellipse at 96% 63%,#00BAB8D9 0%,transparent 48%),radial-gradient(ellipse at 48% 6%,#F9FFF6 0%,#E4F8DF99 30%,transparent 64%); animation:v4-atmosphere 14s ease-in-out infinite alternate; }
@keyframes v4-atmosphere { 0% { transform:translate3d(-1.5%,-1%,0) scale(1.02); } 100% { transform:translate3d(1.5%,1.5%,0) scale(1.06); } }
.v4-cta h2 { max-width:800px; margin:13px auto 0; font-size:clamp(34px,3.6vw,49px); line-height:1.12; color:#103E33; }
.v4-cta .v4-cta-support { max-width:630px; margin:21px auto 30px; color:#2F6354; font-size:15px; line-height:1.65; }
.v4-quick-form { display:flex; max-width:620px; margin:auto; background:#FFFFFFF5; padding:6px; border:1px solid white; border-radius:50px; align-items:center; gap:6px; box-shadow:0 10px 26px #14534710; }
.v4-email-entry { display:flex; align-items:center; flex:1; min-width:0; gap:12px; padding-left:19px; }
.v4-email-entry svg { width:17px; height:17px; stroke:#718D81; fill:none; stroke-width:1.5; flex-shrink:0; }
.v4-email-entry input { width:100%; min-width:0; border:0; background:transparent; padding:13px 0; color:var(--ink); outline-offset:1px; font-size:14px; }
.v4-email-entry input::placeholder { color:#70867E; }
.v4-quick-form .button { border-radius:40px; white-space:nowrap; min-height:52px; padding-inline:23px; }
.v4-quick-form:has(input[aria-invalid="true"]) { border-color:#9E302B; }
.v4-quick-error { color:#722A28; font-size:12px; margin-top:12px; }
.v4-cta-note { color:#335F4F; font-size:11px; margin-top:15px; }
.v4-footer-credits { color:#97B5AC; font-size:10px; margin-top:18px; line-height:1.7; }
.v4-footer-credits a { text-decoration:underline; text-underline-offset:3px; }

@media (min-width:681px) and (max-width:1000px) {
  .v4-audience-tab { padding:18px 17px 21px; }
  .v4-audience-role { font-size:12px; }
  .v4-audience-benefit { font-size:17px; }
  .v4-audience-description { font-size:12px; }
  .v4-quote { padding:37px 32px; gap:28px; grid-template-columns:minmax(0,1fr) 180px; min-height:365px; }
  .v4-quote-sidebar { padding-left:24px; }
  .v4-brands-copy { flex-basis:185px; font-size:13px; }
  .v4-brands-row { gap:20px; }
  .v4-fact { padding:30px 20px; }
  .v4-fact h3 { font-size:18px; }
}
@media (max-width:680px) {
  .v4-audiences { padding:60px 0; }
  .v4-audiences .section-intro h2 { font-size:31px; }
  .v4-audiences .section-intro { margin-bottom:26px; }
  .v4-audience-tabs { gap:7px; margin-bottom:15px; }
  .v4-audience-tab { padding:12px 8px 16px; border-radius:13px; align-items:center; text-align:center; }
  .v4-audience-tab-top { flex-direction:column; gap:4px; margin-bottom:0; width:100%; }
  .v4-audience-tab .glass-icon { --sprite-side:43px; width:43px; height:43px; }
  .v4-audience-role { font-size:11px; line-height:1.35; min-height:30px; }
  .v4-audience-benefit, .v4-audience-description { display:none; }
  .v4-audience-tab::after { inset-inline:13px; }
  .v4-audience-panel, .v4-people-photo { border-radius:20px; }
  .v4-people-photo { aspect-ratio:4/3; min-height:0; }
  .v4-people-photo > img { object-position:53% 35%; }
  .v4-audience-panel:nth-child(3) .v4-people-photo > img { object-position:33% 45%; }
  .v4-photo-label { top:13px; left:13px; padding:7px 11px; font-size:9px; letter-spacing:.06em; }
  .v4-photo-caption { position:relative; width:auto; max-width:none; inset:auto; margin:0; border:0; border-radius:0 0 20px 20px; padding:17px 16px; background:#EDF8F0; box-shadow:none; backdrop-filter:none; }
  .v4-photo-caption .glass-icon { --sprite-side:42px; width:42px; height:42px; }
  .v4-photo-caption p { font-size:15px; }
  .v4-photo-caption span:not(.glass-icon) { font-size:12px; margin-top:6px; line-height:1.65; }
  .v4-audience-bottom { flex-direction:column; gap:14px; align-items:flex-start; padding-top:19px; font-size:11px; }
  .v4-audience-bottom .text-link { font-size:12px; }
  .v4-facts { padding:47px 0 58px; }
  .v4-facts h2 { font-size:29px; }
  .v4-facts-grid { grid-template-columns:1fr; gap:13px; }
  .v4-fact { padding:25px 23px; display:grid; grid-template-columns:64px minmax(0,1fr); gap:0 20px; text-align:left; border-radius:18px; align-items:start; }
  .v4-fact-value { font-size:48px; grid-row:1/3; margin-top:5px; }
  .v4-fact-number { grid-row:1/3; display:flex; flex-direction:column; gap:12px; align-items:flex-start; }
  .v4-fact h3 { font-size:17px; margin:0 0 9px; max-width:none; }
  .v4-fact p { font-size:12px; margin:0; }
  .v4-fact .glass-icon { display:flex; position:static; --sprite-side:34px; width:34px; height:34px; }
  .v4-facts-link .text-link { font-size:12px; }
  .problems { padding-bottom:40px; }
  .process-selector { min-width:0; font-size:11px; }
  .v4-testimonials { padding-block:60px 20px; }
  .v4-testimonials h2 { font-size:31px; }
  .v4-testimonials .section-intro { margin-bottom:26px; }
  .v4-quote-viewport { border-radius:20px; }
  .v4-quote { grid-template-columns:1fr; gap:27px; padding:28px 24px; min-height:0; }
  .v4-quote-topic { font-size:17px; margin-bottom:18px; }
  .v4-quote blockquote { font-size:20px; line-height:1.5; margin-bottom:22px; }
  .v4-quote figcaption { font-size:14px; }
  .v4-quote-sidebar { display:grid; grid-template-columns:84px minmax(0,1fr); gap:10px 17px; padding:20px 0 0; border-left:0; border-top:1px solid #B7D8C9; align-items:center; }
  .v4-testimonial-logo { width:84px; height:57px; grid-row:1/3; }
  .v4-detail-label { font-size:9px; margin-bottom:4px; }
  .v4-detail-value { font-size:11px; line-height:1.5; }
  .v4-testimonial-controls { gap:8px; margin-top:16px; }
  .v4-round-button { width:43px; height:43px; }
  .v4-quote-dots { order:4; width:100%; justify-content:center; margin:0; }
  .v4-quote-toggle { margin-left:auto; padding:9px 11px; font-size:10px; }
  .v4-quote-counter { min-width:36px; font-size:11px; }
  .v4-testimonials .source-note { margin-top:5px; font-size:9px; }
  .v4-brands { padding-block:18px 38px; }
  .v4-brands-row { display:grid; grid-template-columns:minmax(0,1fr) 40px; gap:14px 16px; padding-block:22px; }
  .v4-brands-copy { grid-column:1; font-size:14px; max-width:270px; }
  .v4-brands-window { grid-row:2; grid-column:1/3; width:100%; }
  .v4-brands .v4-round-button { grid-row:1; grid-column:2; }
  .v4-client-logo { width:119px; height:65px; }
  .v4-client-logo img { max-width:113px; height:49px; }
  .v4-brand-group { gap:24px; padding-right:24px; }
  .v4-brand-track { animation-duration:68s; }
  .v4-cta { padding-block:39px; }
  .v4-cta-panel { border-radius:24px; padding:62px 22px 35px; }
  .v4-cta-panel::before { height:46px; top:-27px; }
  .v4-cta h2 { font-size:31px; margin-top:13px; }
  .v4-cta .v4-cta-support { font-size:13px; margin:19px auto 24px; }
  .v4-quick-form { flex-direction:column; padding:7px; border-radius:22px; gap:4px; }
  .v4-email-entry { width:100%; padding:0 11px; gap:9px; }
  .v4-email-entry input { font-size:16px; padding-block:14px; }
  .v4-quick-form .button { width:100%; font-size:13px; border-radius:17px; }
  .v4-cta-note { font-size:10px; line-height:1.5; }
  .v4-footer-credits { max-width:330px; font-size:9px; }
}
@media (max-width:360px) {
  .v4-audience-role { font-size:10px; }
  .v4-audience-tab { padding-inline:4px; }
  .v4-quote { padding:25px 20px; }
  .v4-quote blockquote { font-size:18px; }
  .v4-fact { grid-template-columns:53px minmax(0,1fr); padding-inline:18px; gap:0 15px; }
  .v4-fact-value { font-size:43px; }
  .v4-cta-panel { padding-inline:18px; }
}
html.motion-paused .v4-audience-panel,html.motion-paused .v4-quote { animation:none!important; opacity:1!important; transform:none!important; }
html.motion-paused .v4-reading-progress > span { animation:none!important; transform:scaleX(0); }
html.motion-paused .v4-brands-window { overflow-x:auto; -webkit-mask-image:none; mask-image:none; }
html.motion-paused .v4-brand-track { animation:none!important; transform:none!important; }
html.motion-paused .v4-brand-group[aria-hidden="true"] { display:none!important; }
@media (prefers-reduced-motion:reduce) {
  .v4-audience-panel,.v4-quote,.v4-cta-atmosphere { animation:none!important; opacity:1!important; transform:none!important; }
  .v4-brand-track { animation:none!important; transform:none!important; }
  .v4-brands-window { overflow-x:auto; -webkit-mask-image:none; mask-image:none; }
  .v4-brand-group[aria-hidden="true"] { display:none!important; }
  .v4-reading-progress > span { animation:none!important; transform:scaleX(0); }
}
@media print {
  .v4-audience-panel[hidden],.v4-quote[hidden] { display:block!important; }
  .v4-quote { break-inside:avoid; border-top:1px solid #C5DDCF; min-height:0; }
  .v4-quote-viewport { overflow:visible; }
  .v4-testimonial-controls,.v4-reading-progress,.v4-quick-form,.v4-brands .v4-round-button { display:none!important; }
  .v4-brands-window { overflow:visible; -webkit-mask-image:none; mask-image:none; }
  .v4-brand-track,.v4-brand-group { width:auto; flex-wrap:wrap; animation:none!important; transform:none!important; }
  .v4-brand-group[aria-hidden="true"] { display:none!important; }
  .v4-cta-panel { print-color-adjust:exact; }
}

/* ===== factor-hero-eight-styles ===== */
/* Factor RH · Hero con los ocho módulos del brochure. */
.hero--modules h1 { font-size:clamp(39px,4.15vw,57px); line-height:1.1; letter-spacing:-.05em; }
.hero--modules .hero-grid { grid-template-columns:minmax(0,1fr) minmax(0,1.04fr); gap:36px; }
.hero--modules .hero-description { max-width:535px; }
.hero--modules .glass-stage {
  --module-width:104px;
  --module-height:112px;
  position:relative;
  aspect-ratio:1/1.25;
  margin-top:18px;
}
.hero--modules .avatar-perspective {
  width:58%; height:auto; aspect-ratio:1;
  top:50%; right:auto; bottom:auto; left:21%; margin-top:-29%;
}
.hero--modules .avatar-ground { bottom:24%; width:42%; left:29%; }
.hero--modules .orbit-one { inset:11% 8%; }
.hero--modules .orbit-two { inset:19% 17%; }
.hero--modules .orbit-item {
  inset:auto; width:var(--module-width); height:var(--module-height); min-height:0;
  padding:7px 4px 8px; gap:3px; border-radius:18px;
  background:linear-gradient(145deg,#FFFFFFEC,#F0FCF4B8);
  border:1px solid #DBEFE3; justify-content:flex-start;
  animation:factor-module-float 6s ease-in-out var(--delay,0s) infinite;
}
.hero--modules .orbit-item .glass-icon {
  --sprite-side:60px; width:60px; height:60px; padding:0;
}
.hero--modules .orbit-item .orbit-label {
  display:block; padding:0 2px; font-size:10px; line-height:1.3;
  letter-spacing:0; font-weight:650; text-align:center; color:#18514A;
}
.hero--modules .orbit-item .orbit-label-short { display:none; }
.hero--modules .orbit-item .orbit-index {
  position:absolute; top:5px; left:7px; padding:0; font-size:8px;
  line-height:1; letter-spacing:.02em; color:#6D9280; font-weight:600;
}
.hero--modules .orbit-item:hover,
.hero--modules .orbit-item:focus-visible { border-color:#70BF97; background:#F2FFF7; }
.hero--modules .orbit-item-0 { left:calc(32% - var(--module-width)/2); top:6px; --delay:-1.2s; }
.hero--modules .orbit-item-1 { left:calc(68% - var(--module-width)/2); top:6px; --delay:-3.1s; }
.hero--modules .orbit-item-2 { right:0; top:calc(31% - var(--module-height)/2); --delay:-.4s; }
.hero--modules .orbit-item-3 { right:0; top:calc(69% - var(--module-height)/2); --delay:-2s; }
.hero--modules .orbit-item-4 { left:calc(68% - var(--module-width)/2); bottom:6px; --delay:-4.3s; }
.hero--modules .orbit-item-5 { left:calc(32% - var(--module-width)/2); bottom:6px; --delay:-2.8s; }
.hero--modules .orbit-item-6 { left:0; top:calc(69% - var(--module-height)/2); --delay:-4.8s; }
.hero--modules .orbit-item-7 { left:0; top:calc(31% - var(--module-height)/2); --delay:-1.8s; }
.hero--modules .scene-bottom { align-items:center; }
.hero--modules .scene-bottom > p { max-width:225px; font-size:11px; line-height:1.6; }
.hero--modules .scene-heading { font-size:12px; }
@keyframes factor-module-float {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(-4px); }
}
@media (min-width:681px) and (max-width:1100px) {
  .hero--modules .hero-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
  .hero--modules .hero-copy { max-width:710px; padding-bottom:0; }
  .hero--modules .hero-description { max-width:670px; }
  .hero--modules .hero-visual { width:min(560px,100%); justify-self:center; }
  .hero--modules h1 { font-size:52px; max-width:740px; }
  .hero--modules .glass-stage { aspect-ratio:1/1.16; }
}
@media (max-width:680px) {
  .hero--modules .hero-grid { grid-template-columns:minmax(0,1fr); gap:32px; }
  .hero--modules h1 { font-size:37px; line-height:1.12; letter-spacing:-.045em; }
  .hero--modules .hero-description { font-size:14px; line-height:1.7; }
  .hero--modules .hero-visual { width:min(380px,100%); justify-self:center; }
  .hero--modules .glass-stage { --module-width:92px; --module-height:96px; aspect-ratio:1/1.9; margin-top:16px; }
  .hero--modules .avatar-perspective { width:66%; left:17%; top:50%; margin-top:-33%; }
  .hero--modules .avatar-ground { bottom:31%; }
  .hero--modules .orbit-item { padding:6px 3px 7px; gap:3px; border-radius:15px; }
  .hero--modules .orbit-item .glass-icon { --sprite-side:55px; width:55px; height:55px; }
  .hero--modules .orbit-item .orbit-label-full { display:none; }
  .hero--modules .orbit-item .orbit-label-short { display:block; }
  .hero--modules .orbit-item .orbit-label { font-size:10px; line-height:1.35; padding:0 1px; }
  .hero--modules .orbit-item .orbit-index { font-size:8px; left:6px; }
  .hero--modules .orbit-item-2,.hero--modules .orbit-item-7 { top:calc(28.5% - var(--module-height)/2); }
  .hero--modules .orbit-item-3,.hero--modules .orbit-item-6 { top:calc(71.5% - var(--module-height)/2); }
  .hero--modules .scene-heading { font-size:11px; }
  .hero--modules .scene-bottom { gap:10px; align-items:center; }
  .hero--modules .scene-bottom > p { max-width:150px; padding:0; font-size:10px; line-height:1.6; }
}
@media (max-width:380px) {
  .hero--modules h1 { font-size:34px; }
  .hero--modules .glass-stage { --module-width:84px; --module-height:90px; }
  .hero--modules .orbit-item .glass-icon { --sprite-side:50px; width:50px; height:50px; }
  .hero--modules .orbit-item .orbit-label { font-size:9.5px; }
}
@media (max-width:340px) {
  .hero--modules h1 { font-size:31px; }
  .hero--modules .glass-stage { --module-width:76px; --module-height:82px; }
  .hero--modules .orbit-item { padding:5px 2px 6px; gap:2px; }
  .hero--modules .orbit-item .glass-icon { --sprite-side:46px; width:46px; height:46px; }
  .hero--modules .orbit-item .orbit-label { font-size:9px; }
  .hero--modules .scene-bottom > p { max-width:125px; }
}
@media (prefers-reduced-motion:reduce) {
  .hero--modules .orbit-item { animation:none!important; transform:none!important; }
}
@media print {
  .hero--modules h1 { font-size:30pt; }
  .hero--modules .hero-grid { display:block; }
  .hero--modules .hero-visual { width:125mm; margin:12mm auto; }
  .hero--modules .glass-stage { --module-width:23mm; --module-height:26mm; width:125mm; aspect-ratio:1/1.25; }
  .hero--modules .orbit-item .glass-icon { --sprite-side:14mm; width:14mm; height:14mm; }
  .hero--modules .orbit-item .orbit-label { font-size:7pt; }
  .hero--modules .orbit-item .orbit-label-full { display:block; }
  .hero--modules .orbit-item .orbit-label-short { display:none; }
}

/* ===== factor-v5-extensions ===== */
/* Dirección V5: la landing aprobada, la captura real y las referencias de Rita. */
.selection-ai { background:linear-gradient(180deg,#F8FCF9,#EDF8F2 72%,#FBFDFC); }
.selection-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:clamp(32px,5vw,72px); align-items:center; }
.selection-copy h2 { margin:16px 0 24px; }
.selection-copy > p:not(.eyebrow) { margin-top:18px; color:var(--muted); font-size:17.25px; line-height:1.75; }
.selection-copy .button { margin-top:28px; max-width:100%; text-align:left; }
.selection-copy strong,.selection-flow strong,.selection-quality strong { color:var(--ink); font-weight:650; }
.selection-story { position:relative; padding:30px; background:#FFFFFFCF; border:1px solid #D1E9DB; border-radius:24px; box-shadow:0 16px 55px #17584708; min-width:0; }
.selection-story-label { font-size:10px; font-weight:700; letter-spacing:.1em; line-height:1.65; color:#567F70; max-width:28em; }
.selection-flow { list-style:none; padding:0; margin:20px 0; position:relative; }
.selection-flow::before { content:""; position:absolute; left:13px; top:30px; bottom:38px; width:1px; background:linear-gradient(#AADF79,#48B3A6); }
.selection-flow li { position:relative; display:grid; grid-template-columns:28px 70px minmax(0,1fr); gap:12px; align-items:center; min-height:122px; padding:16px 0; }
.selection-flow-number { position:relative; display:grid; place-items:center; width:27px; height:27px; background:#F8FEF8; border:1px solid #B1D6BD; border-radius:50%; color:#477865; font-size:10px; font-weight:650; }
.selection-flow .glass-icon { --sprite-side:70px; width:70px; height:70px; }
.selection-flow h3 { font-size:20.7px; line-height:1.25; letter-spacing:-.025em; }
.selection-flow p { margin-top:8px; color:var(--muted); font-size:14.95px; line-height:1.65; }
.selection-human { display:flex; gap:12px; align-items:center; padding-top:20px; border-top:1px solid #DEEBE1; }
.selection-human .glass-icon { --sprite-side:48px; width:48px; height:48px; }
.selection-human p { font-size:13.8px; line-height:1.6; color:#507264; }
.selection-human strong { color:#123D3D; font-weight:650; }
.selection-quality { margin:26px 0 0; padding:16px 20px; border-left:3px solid #91CD63; background:#E4F3E98C; color:#526C61; font-size:14.95px; line-height:1.7; border-radius:0 10px 10px 0; }
.selection-product { margin-top:68px; }
.selection-product-heading { max-width:620px; margin-bottom:25px; }
.selection-product-heading h3 { font-size:29.9px; line-height:1.2; margin:12px 0; }
.selection-product-heading > p:last-child { font-size:16.1px; color:var(--muted); line-height:1.7; }
.assistant-art.assistant-art--mascot { width:100%; max-width:450px; justify-self:center; align-self:center; padding-top:4px; }
.assistant-mascot-stage { position:relative; isolation:isolate; }
.assistant-mascot-stage::before { content:""; position:absolute; z-index:-1; width:85%; height:68%; left:8%; top:17%; background:radial-gradient(ellipse,#9FF2BE26,#7AF3D00A 52%,transparent 73%); border-radius:50%; }
.assistant-mascot { position:relative; width:100%; height:auto; aspect-ratio:1; object-fit:contain; filter:drop-shadow(0 16px 18px #001A192B); animation:factor-mascot-breathe 7s ease-in-out infinite; transform-origin:50% 78%; }
.assistant-mascot-chip { position:absolute; display:grid; place-items:center; width:55px; height:55px; border:1px solid #D9FFE150; border-radius:15px; background:#F4FFF022; box-shadow:0 6px 20px #00262222; backdrop-filter:blur(7px); animation:factor-mascot-chip 6s ease-in-out infinite; }
.assistant-mascot-chip .glass-icon { --sprite-side:46px; width:46px; height:46px; }
.assistant-mascot-chip--documents { left:0; top:9%; animation-delay:-2s; }
.assistant-mascot-chip--data { right:0; bottom:9%; animation-delay:-4s; }
.assistant-art--mascot .assistant-mascot-caption { max-width:300px; margin:5px auto 0; color:#CCE5D7; font-size:14.95px; line-height:1.7; }
.assistant-art--mascot .assistant-mascot-caption strong { color:#E5F9D2; }
.assistant-copy strong { color:#E5F9D2; font-weight:650; }
.v4-audience-panels { display:grid; }
.v4-audience-panel { grid-area:1 / 1; min-width:0; }
.v4-audience-panel.is-entering { animation:factor-people-enter .7s ease both; }
.v4-audience-panel.is-leaving { animation:factor-people-leave .7s ease both; pointer-events:none; }
.v4-people-photo > img { object-position:center 43%; }
.v4-audience-panel:nth-child(2) .v4-people-photo > img { object-position:center 46%; }
.v4-audience-panel:nth-child(3) .v4-people-photo > img { object-position:center 45%; }
.people-counter { font-variant-numeric:tabular-nums; font-size:12px; color:#456F61; }
.field-hint { margin-top:7px; color:#526C6B; font-size:12px; line-height:1.6; }
.form-card .form-grid > .field.full-width:last-child { min-width:0; }
.hero-description strong,.problem-intro strong,.difference-item strong,.step-item strong,.faq-answer strong,.conversion-copy strong,.v4-fact strong:not(.v4-fact-value) { font-weight:700; }
@keyframes factor-mascot-breathe { 0%,100% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-9px) rotate(1deg); } }
@keyframes factor-mascot-chip { 0%,100% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-8px) rotate(3deg); } }
@keyframes factor-people-enter { from { opacity:0; } to { opacity:1; } }
@keyframes factor-people-leave { from { opacity:1; } to { opacity:0; } }
html.motion-paused .assistant-mascot,html.motion-paused .assistant-mascot-chip,
html.page-hidden .assistant-mascot,html.page-hidden .assistant-mascot-chip,
.mascot-suspended .assistant-mascot,.mascot-suspended .assistant-mascot-chip { animation-play-state:paused!important; }
html.motion-paused .v4-audience-panel.is-leaving { display:none; }
@media (max-width:1000px) { .selection-grid { gap:30px; } .selection-story { padding:24px 20px; } .selection-flow li { grid-template-columns:27px 57px minmax(0,1fr); gap:9px; } .selection-flow .glass-icon { --sprite-side:57px; width:57px; height:57px; } }
@media (max-width:900px) { .selection-grid { grid-template-columns:minmax(0,1fr); gap:35px; } .selection-story { max-width:680px; width:100%; } .selection-copy > p:not(.eyebrow) { max-width:650px; } .selection-flow li { grid-template-columns:28px 70px minmax(0,1fr); gap:14px; min-height:105px; } .selection-flow .glass-icon { --sprite-side:70px; width:70px; height:70px; } .selection-product { margin-top:48px; } }
@media (max-width:680px) {
  .selection-copy > p:not(.eyebrow) { font-size:16.1px; line-height:1.7; }
  .selection-copy h2 { margin-bottom:22px; }
  .selection-story { padding:23px 19px; border-radius:20px; }
  .selection-story-label { font-size:9px; }
  .selection-flow li { grid-template-columns:26px 50px minmax(0,1fr); gap:9px; min-height:130px; }
  .selection-flow .glass-icon { --sprite-side:50px; width:50px; height:50px; }
  .selection-flow h3 { font-size:19.55px; }
  .selection-flow p { font-size:13.8px; }
  .selection-human { align-items:flex-start; }
  .selection-human .glass-icon { --sprite-side:38px; width:38px; height:38px; }
  .selection-human p { font-size:13.8px; }
  .selection-quality { padding:15px 17px; font-size:13.8px; }
  .selection-product-heading h3 { font-size:27.6px; }
  .selection-product-heading > p:last-child { font-size:14.95px; }
  .assistant-art.assistant-art--mascot { max-width:340px; width:100%; }
  .assistant-mascot-chip { width:44px; height:44px; border-radius:12px; }
  .assistant-mascot-chip .glass-icon { --sprite-side:38px; width:38px; height:38px; }
  .assistant-art--mascot .assistant-mascot-caption { font-size:13.8px; }
  .v4-people-photo { aspect-ratio:3 / 2; }
  .v4-people-photo > img,.v4-audience-panel:nth-child(2) .v4-people-photo > img,.v4-audience-panel:nth-child(3) .v4-people-photo > img { object-position:center; }
}
@media (max-width:360px) { .selection-story { padding:20px 13px; } .selection-flow li { grid-template-columns:23px 41px minmax(0,1fr); gap:7px; } .selection-flow .glass-icon { --sprite-side:41px; width:41px; height:41px; } .selection-flow h3 { font-size:18px; } .selection-flow-number { width:23px; height:23px; } .selection-flow::before { left:11px; } }
@media (prefers-reduced-motion:reduce) {
  .assistant-mascot,.assistant-mascot-chip,.v4-audience-panel.is-entering,.v4-audience-panel.is-leaving { animation:none!important; transform:none!important; }
  .v4-audience-panel.is-leaving { display:none; }
}
@media print { .people-controls,.assistant-mascot-chip { display:none!important; } .selection-grid { grid-template-columns:1fr; } .selection-story { break-inside:avoid; } .assistant-mascot { animation:none; } .product-demo { break-inside:avoid; } }

/* ===== factor-v5-readability ===== */
/* Factor RH V5 — lectura y atmósfera.
   Integración: después de los tres bloques CSS de V4.1 y del CSS de componentes.
   Cada tamaño parte del valor efectivo anterior, multiplicado por 1.15.
   No modifica el H1, las etiquetas/íconos de órbita, el isologo ni las esferas.
   Los estilos de impresión previos se conservan: estas reglas son de pantalla. */

@media screen {
  /* Atmósfera de la referencia: el color queda detrás del contenido. */
  #inicio.hero--modules {
    background:
      radial-gradient(ellipse at 8% 73%, rgb(107 187 0 / 19%), transparent 56%),
      radial-gradient(ellipse at 96% 44%, rgb(0 184 181 / 22%), transparent 63%),
      #FBFDFC;
  }

  #inicio.hero--modules > .hero-wash {
    inset: 0;
    height: auto;
    background: linear-gradient(180deg, #FBFDFCB3, #FBFDFC00 38%, #FBFDFC00 73%, #FBFDFCF2);
  }

  #marcas.v4-brands,
  .client-brands {
    background:
      linear-gradient(105deg, rgb(107 187 0 / 38%), rgb(204 243 156 / 40%) 47%, rgb(0 184 181 / 36%)),
      #F4FCF6;
  }

  #marcas .v4-brands-row {
    border-color: #427B6233;
  }

  #marcas .v4-brands-copy {
    color: #123D3D;
  }

  #marcas .v4-round-button {
    color: #006A68;
    border-color: #427B6273;
    background: #FBFDFCA6;
  }

  /* Los archivos monocromáticos oficiales de los logos se conservan intactos. */
  #marcas .v4-client-logo img {
    opacity: 1;
  }

  /* Encabezados y apoyos. El H1 aprobado no forma parte de esta escala. */
  h2 {
    font-size: clamp(35.65px, 3.565vw, 50.6px);
  }

  .section-intro > p:last-child:not(.eyebrow) {
    font-size: 18.4px;
    line-height: 1.65;
  }

  .hero--modules .hero-description {
    font-size: 18.4px;
    line-height: 1.75;
  }

  .v4-audiences .section-intro h2 {
    font-size: clamp(37.95px, 4.14vw, 55.2px);
  }

  .v4-facts h2 {
    font-size: clamp(35.65px, 3.565vw, 48.3px);
  }

  .problem-intro h2 {
    font-size: clamp(35.65px, 3.335vw, 46px);
  }

  .assistant h2 {
    font-size: clamp(37.95px, 3.68vw, 50.6px);
  }

  .v4-testimonials h2 {
    font-size: clamp(36.8px, 3.91vw, 52.9px);
  }

  .v4-cta h2 {
    font-size: clamp(39.1px, 4.14vw, 56.35px);
  }

  .conversion-copy h2 {
    font-size: clamp(39.1px, 4.025vw, 54.05px);
  }

  /* Públicos: el mensaje móvil se presenta fuera de la fotografía. */
  .v4-audience-benefit {
    font-size: 20.7px;
    line-height: 1.3;
  }

  .v4-audience-description {
    font-size: 14.95px;
    line-height: 1.65;
  }

  .v4-photo-caption p {
    font-size: 17.25px;
    line-height: 1.45;
    min-width: 0;
  }

  .v4-photo-caption span:not(.glass-icon) {
    font-size: 13.8px;
    line-height: 1.6;
  }

  /* Problemas, beneficios y pasos: cajas de altura natural. */
  .problem-intro > p:not(.eyebrow),
  .steps-heading > p,
  .conversion-copy > p:not(.eyebrow):not(.conversion-signoff) {
    font-size: 17.25px;
    line-height: 1.65;
  }

  .problem-item h3,
  .step-item h3 {
    font-size: 25.3px;
    line-height: 1.25;
  }

  .problem-item p,
  .step-item p,
  .difference-item p,
  .process-closing p {
    font-size: 16.1px;
    line-height: 1.65;
  }

  .difference-item h3 {
    font-size: 23px;
    line-height: 1.25;
  }

  .process-content h3 {
    font-size: clamp(29.9px, 2.645vw, 36.8px);
    line-height: 1.15;
  }

  .process-content > p:last-child {
    font-size: 16.1px;
    line-height: 1.7;
  }

  .process-closing h3 {
    font-size: 21.85px;
    line-height: 1.25;
  }

  .assistant-copy > p:not(.launch-badge):not(.assistant-note) {
    font-size: 17.25px;
    line-height: 1.65;
  }

  .assistant-art p {
    font-size: 16.1px;
    line-height: 1.7;
  }

  .v4-fact h3 {
    font-size: 21.85px;
    line-height: 1.3;
  }

  .v4-fact p {
    font-size: 14.95px;
    line-height: 1.7;
  }

  /* Experiencias completas: el contenedor crece con las citas. */
  .v4-quote-topic {
    font-size: 21.85px;
    line-height: 1.3;
  }

  .v4-quote blockquote {
    font-size: clamp(23px, 2.3vw, 29.9px);
    line-height: 1.48;
  }

  .v4-quote figcaption {
    font-size: 17.25px;
    line-height: 1.4;
  }

  .v4-detail-value {
    font-size: 13.8px;
    line-height: 1.6;
  }

  /* FAQ: la regla específica vigente era 15 px, también en móvil. */
  .faq-grid > div:first-child > p:not(.eyebrow) {
    font-size: 16.1px;
    line-height: 1.65;
  }

  details.faq-item > summary,
  details.faq-item > .faq-answer > p {
    font-size: 17.25px;
  }

  details.faq-item > summary {
    line-height: 1.5;
  }

  details.faq-item > .faq-answer > p {
    line-height: 1.7;
  }

  details.faq-item {
    --faq-answer-fill: #CCF39C;
    --faq-answer-border: #AEDF72;
    --faq-answer-ink: #123D3D;
  }

  /* Cierre y título informativo del formulario. */
  .v4-cta .v4-cta-support {
    font-size: 17.25px;
    line-height: 1.65;
  }

  .form-card h3 {
    font-size: 29.9px;
    line-height: 1.2;
  }

  /* Permite nuevos saltos sin introducir recortes ni escalado del texto. */
  .problem-item > div,
  .process-content,
  .step-item,
  .difference-item,
  .v4-fact,
  .v4-quote-main,
  .v4-photo-caption > div {
    min-width: 0;
  }

  .process-content h3,
  .v4-fact h3,
  .v4-fact p,
  .v4-photo-caption p,
  .v4-quote blockquote {
    overflow-wrap: break-word;
  }

  /* Contrato de controles del carrusel de personas; la lógica pertenece a JS. */
  .people-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 20px;
    margin-top: 18px;
    min-width: 0;
    color: #456F61;
  }

  .people-motion-toggle {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-width: 44px;
    min-height: 44px;
    padding: 10px 15px;
    border: 1px solid #9BCBB6;
    border-radius: 24px;
    background: #FBFDFCEB;
    color: #006A68;
    font: inherit;
    font-size: 12px;
    line-height: 1.4;
    text-align: center;
    cursor: pointer;
    transition: background-color .2s ease, border-color .2s ease;
  }

  .people-motion-toggle:hover {
    background: #E8F8ED;
    border-color: #5B9F80;
  }

  .people-motion-toggle:focus-visible {
    outline: 2px solid #006A68;
    outline-offset: 3px;
  }

  .people-motion-toggle svg {
    width: 14px;
    height: 14px;
    flex: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
  }

  .people-motion-status {
    flex: 1 1 210px;
    font-size: 12px;
    line-height: 1.6;
    min-width: 0;
  }
}

/* Respeta los puntos en los que cambiaba el tamaño efectivo en V4.1. */
@media screen and (min-width: 681px) and (max-width: 1000px) {
  .v4-audience-benefit { font-size: 19.55px; }
  .v4-audience-description { font-size: 13.8px; }
  .v4-fact h3 { font-size: 20.7px; }
}

@media screen and (max-width: 900px) {
  .problem-intro h2 { font-size: 37.95px; }
  .problem-item h3 { font-size: 21.85px; }
  .process-content h3 { font-size: 31.05px; }
  .process-content > p:last-child { font-size: 14.95px; }
  .assistant h2 { font-size: 40.25px; }
  .assistant-copy > p:not(.launch-badge):not(.assistant-note) { font-size: 16.1px; }
  .assistant-art p { font-size: 13.8px; }
  .difference-grid h2 { font-size: 39.1px; }
  .step-item h3 { font-size: 23px; }
  .conversion-copy h2 { font-size: 40.25px; }
}

@media screen and (max-width: 680px) {
  h2,
  .v4-audiences .section-intro h2,
  .problem-intro h2,
  .difference-grid h2,
  .v4-testimonials h2,
  .v4-cta h2 { font-size: 35.65px; }

  .v4-facts h2 { font-size: 33.35px; }

  .hero--modules .hero-description {
    font-size: 16.1px;
    line-height: 1.7;
  }

  .section-intro > p:last-child:not(.eyebrow),
  .problem-intro > p:not(.eyebrow),
  .steps-heading > p,
  .conversion-copy > p:not(.eyebrow):not(.conversion-signoff) {
    font-size: 16.1px;
  }

  .problem-item h3 { font-size: 24.15px; }
  .step-item h3 { font-size: 25.3px; }
  .difference-item h3 { font-size: 24.15px; }
  .process-content h3 { font-size: 33.35px; }
  .process-content > p:last-child { font-size: 16.1px; }
  .process-closing h3 { font-size: 23px; }
  .assistant h2 { font-size: 39.1px; }
  .v4-fact h3 { font-size: 19.55px; }
  .v4-fact p { font-size: 13.8px; }
  .v4-photo-caption p { font-size: 17.25px; }
  .v4-photo-caption span:not(.glass-icon) { font-size: 13.8px; }
  .v4-quote-topic { font-size: 19.55px; }
  .v4-quote blockquote { font-size: 23px; line-height: 1.5; }
  .v4-quote figcaption { font-size: 16.1px; }
  .v4-detail-value { font-size: 12.65px; }
  .v4-cta .v4-cta-support { font-size: 14.95px; }
  .form-heading h3 { font-size: 27.6px; }

  /* Las pestañas retienen sus rótulos compactos; la leyenda visible crece. */
  .v4-photo-caption { align-items: flex-start; }
  .v4-photo-caption .glass-icon { flex-shrink: 0; }

  .people-controls {
    align-items: flex-start;
    gap: 10px 14px;
    margin-top: 15px;
  }

  .people-motion-status { flex-basis: 100%; }
  .people-motion-toggle { max-width: 100%; }
}

@media screen and (max-width: 360px) {
  .assistant h2 { font-size: 35.65px; }
  .v4-quote blockquote { font-size: 20.7px; }
}

@media screen and (prefers-reduced-motion: reduce) {
  .people-motion-toggle { transition: none; }
}

/* ===== factor-v5-logo-capsule ===== */
.product-demo-logo { background:#fff; padding:6px; border-radius:4px; height:auto; max-height:none; object-fit:contain; } .product-demo-brand { gap:8px; }

/* ===== factor-v6-styles ===== */
/* Factor RH V6 — marcas en un gris neutro oscuro.
   Los 24 SVG del carrusel (12 logos repetidos) usan fill #006A68.
   grayscale: .2126*0 + .7152*106 + .0722*104 = 83.32.
   brightness(.96): 79.9872 por canal, redondeado RGB(80,80,80), #505050.
   Se conservan geometría, archivos, transparencia y animación del carrusel. */

#marcas .v4-client-logo img {
  filter: grayscale(1) brightness(.96);
  opacity: 1;
}

/* Factor RH V6 — las esferas permanecen en el isologo de la hero.
   Cargar después de los estilos vigentes. Sin fixed, trayecto de scroll ni JS.
   Se reutilizan el recorte y las posiciones exactas del raster aprobado. */

.hero--modules #hero-logo.hero-local-orbs {
  position: relative;
}

/* Quita únicamente las dos ventanas originales; conserva la parte alta de h.
   Funciona también sin JavaScript y no depende de la clase orbs-ready. */
.hero--modules #hero-logo.hero-local-orbs > .glass-brand {
  clip-path: polygon(0 0, 20.73365% 0, 20.73365% 38.59649%, 44.01914% 38.59649%, 44.01914% 0, 60.84530% 0, 60.84530% 38.83573%, 84.13078% 38.83573%, 84.13078% 0, 100% 0, 100% 100%, 0 100%);
}

.hero-local-orb {
  position: absolute;
  z-index: 1;
  display: block;
  width: 23.2854864434%;
  aspect-ratio: 1;
  padding: 0;
  pointer-events: none;
  transform-origin: center;
  animation: factor-hero-local-lime 8.5s ease-in-out infinite;
}

.hero-local-orb--lime {
  left: 20.7336523126%;
  top: 15.3110047847%;
}

.hero-local-orb--teal {
  left: 60.8452950558%;
  top: 15.5502392344%;
  animation-name: factor-hero-local-teal;
  animation-duration: 10s;
  animation-delay: -3s;
}

.hero-local-orb > .orb-sprite {
  display: block;
  width: 100%;
  height: 100%;
  background-image: var(--factor-avatar);
  background-repeat: no-repeat;
  background-size: 429.4520547945% 429.4520547945%;
}

/* Balanceo limitado a 2.2 px, muy por debajo de la distancia a los módulos. */
@keyframes factor-hero-local-lime {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0); }
  25% { transform: translate3d(1.6px, -1.1px, 0) rotate(.6deg); }
  50% { transform: translate3d(.4px, -2.2px, 0) rotate(0); }
  75% { transform: translate3d(-1.2px, -1px, 0) rotate(-.6deg); }
}

@keyframes factor-hero-local-teal {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0); }
  25% { transform: translate3d(-1.4px, -1px, 0) rotate(-.6deg); }
  50% { transform: translate3d(-.2px, -2px, 0) rotate(0); }
  75% { transform: translate3d(1.2px, -.8px, 0) rotate(.6deg); }
}

html.motion-paused .hero-local-orb,
html.page-hidden .hero-local-orb,
.scene-suspended .hero-local-orb {
  animation-play-state: paused !important;
}

@media (max-width: 680px) {
  .hero-local-orb { animation-duration: 9.5s; }
  .hero-local-orb--teal { animation-duration: 11s; }
}

@media (prefers-reduced-motion: reduce), print {
  .hero-local-orb {
    animation: none !important;
    transform: none !important;
  }
}

/* V6: the supplied JPEG remains byte-identical. Only its display size changes. */
.product-screenshot { margin:0; min-width:0; }
.product-screenshot-frame {
  padding:0;
  border:1px solid #D5E7DE;
  border-radius:0;
  background:#FFFFFF;
  box-shadow:0 16px 50px #123D3D0D;
}
.product-screenshot-image {
  display:block;
  width:100%;
  max-width:1364px;
  height:auto;
  margin-inline:auto;
  border-radius:0;
  filter:none;
  opacity:1;
  transform:none;
  mix-blend-mode:normal;
}
.product-screenshot-caption {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px 24px;
  margin-top:17px;
  color:#355B50;
  font-size:14.95px;
  line-height:1.6;
}
.product-screenshot-caption > p { margin:0; }
.product-screenshot-caption strong { color:#123D3D; font-weight:650; }
.product-screenshot-actions { display:flex; align-items:center; gap:14px 18px; flex-wrap:wrap; }
.product-screenshot-action,
.product-screenshot-size {
  appearance:none;
  font:inherit;
  cursor:pointer;
  border:1px solid #90BCAC;
  color:#006A68;
  background:#F8FDF9;
}
.product-screenshot-action {
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:44px;
  padding:10px 15px;
  border-radius:12px;
  font-size:13px;
  line-height:1.3;
  font-weight:650;
}
.product-screenshot-action[hidden] { display:none!important; }
.product-screenshot-action svg,
.product-screenshot-close svg {
  display:block;
  flex:0 0 auto;
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.product-screenshot-download {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  color:#006A68;
  font-size:13px;
  text-decoration:underline;
  text-underline-offset:3px;
}
.product-screenshot-action:hover,
.product-screenshot-size:hover,
.product-screenshot-close:hover { background:#EAF7EF; border-color:#397C67; }
.product-screenshot-action:focus-visible,
.product-screenshot-download:focus-visible,
.product-screenshot-size:focus-visible,
.product-screenshot-close:focus-visible,
.product-screenshot-viewport:focus-visible {
  outline:3px solid #006A68;
  outline-offset:3px;
}
html.product-screenshot-modal-open { overflow:hidden; }
.product-screenshot-dialog {
  width:min(1240px,calc(100vw - 32px));
  max-width:calc(100vw - 32px);
  max-height:calc(100vh - 32px);
  max-height:calc(100dvh - 32px);
  padding:0;
  margin:auto;
  border:1px solid #BFD9CC;
  border-radius:18px;
  color:#123D3D;
  background:#FBFDFC;
  box-shadow:0 26px 90px #052A3B3D;
  overflow:hidden;
}
.product-screenshot-dialog:not([open]) { display:none; }
.product-screenshot-dialog[open] { display:flex; flex-direction:column; }
.product-screenshot-dialog::backdrop { background:#082C32B8; }
.product-screenshot-dialog-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:20px 22px 12px;
  flex:0 0 auto;
}
.product-screenshot-dialog-title-group { min-width:0; }
.product-screenshot-dialog-title-group > h2 {
  margin:0;
  font-size:20.7px;
  line-height:1.25;
  letter-spacing:-.025em;
}
.product-screenshot-dialog-title-group > p {
  max-width:70ch;
  margin:7px 0 0;
  color:#536F65;
  font-size:13.8px;
  line-height:1.5;
}
.product-screenshot-close {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 44px;
  width:44px;
  height:44px;
  padding:0;
  border:1px solid #A9CDBA;
  border-radius:50%;
  color:#006A68;
  background:#FFFFFF;
  cursor:pointer;
}
.product-screenshot-size-controls {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  padding:0 22px 14px;
  flex:0 0 auto;
}
.product-screenshot-size {
  min-height:44px;
  padding:9px 13px;
  border-radius:10px;
  font-size:13px;
  line-height:1.3;
}
.product-screenshot-size[aria-pressed="true"] { background:#006A68; border-color:#006A68; color:#FFFFFF; }
.product-screenshot-viewport {
  min-width:0;
  min-height:0;
  max-height:600px;
  overflow:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-x pan-y pinch-zoom;
  border-top:1px solid #DCE9E0;
  background:#FFFFFF;
}
.product-screenshot-viewport:focus-visible { outline-offset:-3px; }
.product-screenshot-large {
  display:block;
  width:1364px;
  max-width:none;
  height:auto;
  margin:0;
  padding:0;
  border-radius:0;
  filter:none;
  opacity:1;
  transform:none;
  mix-blend-mode:normal;
}
.product-screenshot-viewport[data-size="fit"] .product-screenshot-large { width:100%; max-width:1364px; margin-inline:auto; }
@media (max-width:680px) {
  .product-screenshot-caption { align-items:flex-start; flex-direction:column; gap:10px; font-size:13.8px; }
  .product-screenshot-actions { gap:9px 16px; }
  .product-screenshot-dialog { width:calc(100vw - 16px); max-width:calc(100vw - 16px); max-height:calc(100vh - 16px); max-height:calc(100dvh - 16px); border-radius:14px; }
  .product-screenshot-dialog-head { padding:16px 15px 11px; gap:12px; }
  .product-screenshot-dialog-title-group > h2 { font-size:19.55px; }
  .product-screenshot-dialog-title-group > p { font-size:12.65px; }
  .product-screenshot-size-controls { padding:0 15px 12px; gap:7px; }
  .product-screenshot-size { font-size:12.65px; padding-inline:11px; }
}
@media print {
  .product-screenshot { break-inside:avoid; }
  .product-screenshot-actions,.product-screenshot-dialog { display:none!important; }
  .product-screenshot-frame { box-shadow:none; }
}


/* Mascota Factor RH V6. Animación por partes, sin modificar el raster aprobado. */
.assistant-art--rig .mascot-v6-stage {
  position: relative;
  isolation: isolate;
  width: 100%;
  aspect-ratio: 1;
  overflow: visible;
}
.assistant-art--rig .mascot-v6-stage::before { content: none; }
.mascot-v6-rig {
  position: relative;
  z-index: 1;
  display: block;
  width: 91%;
  height: auto;
  margin: 0 auto;
  overflow: visible;
}
.mascot-v6-breathe { animation: mascot-v6-breathe 6.6s ease-in-out infinite; }
.mascot-v6-wave,
.mascot-v6-foot,
.mascot-v6-shadow { transform-origin: 0 0; transform-box: view-box; }
.mascot-v6-wave { animation: mascot-v6-wave 7.6s ease-in-out infinite; }
.mascot-v6-foot--left { animation: mascot-v6-left-foot 7.6s ease-in-out infinite; }
.mascot-v6-foot--right { animation: mascot-v6-right-foot 7.6s ease-in-out infinite; }
.mascot-v6-blink { opacity: 0; animation: mascot-v6-blink 7.4s linear infinite; }
.mascot-v6-shadow { animation: mascot-v6-shadow 6.6s ease-in-out infinite; }
.mascot-v6-orb {
  position: absolute;
  z-index: 2;
  display: block;
  width: clamp(28px, 3.5vw, 46px);
  height: clamp(28px, 3.5vw, 46px);
  border: 0;
  padding: 0;
  pointer-events: none;
  transform-origin: 50% -70px;
  animation: mascot-v6-orb-sway 7.4s ease-in-out infinite;
}
.mascot-v6-orb--lime { left: 1.8%; top: 51%; }
.mascot-v6-orb--teal { right: 1.8%; top: 48%; animation-duration: 8.2s; animation-delay: -3.3s; }
.mascot-v6-orb > .orb-sprite {
  display: block;
  width: 100%;
  height: 100%;
  background-image: var(--factor-avatar);
  background-repeat: no-repeat;
  background-size: 429.4520547945% 429.4520547945%;
  filter: drop-shadow(0 4px 5px #1b604526);
}
.mascot-v6-orb > .orb-lime { background-position: 27.027027027% 19.958419958%; }
.mascot-v6-orb > .orb-teal { background-position: 79.313929314% 20.270270270%; }

@keyframes mascot-v6-wave {
  0%, 12%, 44%, 100% { transform: rotate(0deg); }
  19% { transform: rotate(-6deg); }
  26% { transform: rotate(5deg); }
  33% { transform: rotate(-5deg); }
  39% { transform: rotate(3.5deg); }
}
@keyframes mascot-v6-left-foot {
  0%, 53%, 77%, 100% { transform: rotate(0deg); }
  62% { transform: rotate(-2.8deg); }
  69% { transform: rotate(1deg); }
}
@keyframes mascot-v6-right-foot {
  0%, 16%, 38%, 100% { transform: rotate(0deg); }
  24% { transform: rotate(2.6deg); }
  31% { transform: rotate(-.8deg); }
}
@keyframes mascot-v6-blink {
  0%, 29%, 32%, 79%, 82%, 100% { opacity: 0; }
  29.8%, 31.2%, 79.8%, 81.2% { opacity: 1; }
}
@keyframes mascot-v6-breathe {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
@keyframes mascot-v6-shadow {
  0%, 100% { transform: scale(1, 1); opacity: .14; }
  50% { transform: scale(1.035, .86); opacity: .105; }
}
@keyframes mascot-v6-orb-sway {
  0%, 100% { transform: translate3d(-2px, -2px, 0) rotate(-3deg); }
  50% { transform: translate3d(2px, 3px, 0) rotate(3deg); }
}

/* El control global ya existente y el observador .mascot-suspended siguen vigentes. */
html.motion-paused .assistant-art--rig *,
html.page-hidden .assistant-art--rig *,
.assistant-art--rig.mascot-suspended * { animation-play-state: paused !important; }
html.motion-paused .mascot-v6-blink { opacity: 0 !important; }
@media (max-width: 680px) {
  .mascot-v6-orb { width: 31px; height: 31px; }
  .mascot-v6-rig { width: 90%; }
}
@media (prefers-reduced-motion: reduce) {
  .mascot-v6-breathe,
  .mascot-v6-wave,
  .mascot-v6-foot,
  .mascot-v6-shadow,
  .mascot-v6-orb { animation: none !important; transform: none !important; }
  .mascot-v6-blink { animation: none !important; opacity: 0 !important; }
}
@media print {
  .assistant-art--rig * { animation: none !important; }
  .mascot-v6-blink { opacity: 0 !important; }
  .mascot-v6-orb { display: none; }
}

/* Aplicar después de los estilos anteriores del asistente, la tipografía y el rig. */
#asistente .assistant-panel {
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
  gap: clamp(24px, 3.5vw, 48px);
  padding: clamp(28px, 4.8vw, 64px);
  background: linear-gradient(116deg, #f3f9e9 0%, #e4f2d8 45%, #e0f4ed 100%);
  color: #123d3d;
  border: 1px solid #cfe6d4;
  box-shadow: 0 20px 50px -36px #225c4540;
}
#asistente .assistant-glow {
  inset: -12%;
  background: radial-gradient(ellipse at 18% 24%, #d0eda385 0%, transparent 48%), radial-gradient(ellipse at 86% 72%, #b4e8d970 0%, transparent 48%);
  opacity: .6;
  animation: assistant-v6-gradient-flow 18s ease-in-out infinite;
}
#asistente h2 { color: #123d3d; }
#asistente .assistant-copy > p:not(.launch-badge):not(.assistant-note) { color: #355c51; }
#asistente .assistant-copy strong { color: #005e59; font-weight: 700; }
#asistente .assistant-note { color: #4e6b5f; }
#asistente .launch-badge {
  color: #216342;
  border-color: #95cfa480;
  background: #ffffff73;
}
#asistente .launch-badge span { background: #6bbb00; }
#asistente .assistant-copy .button {
  background: #006a68;
  border-color: #006a68;
  color: #fff;
  box-shadow: 0 5px 12px #006a6819;
}
#asistente .assistant-copy .button:hover { background: #005653; border-color: #005653; color: #fff; }
#asistente :focus-visible { outline-color: #006a68; }
#asistente .assistant-art.assistant-art--rig {
  max-width: 480px;
  width: 100%;
  justify-self: center;
  align-self: center;
  padding-top: 10px;
  padding-bottom: 4px;
}
#asistente .assistant-art--rig .assistant-mascot-caption {
  margin: 0 auto;
  max-width: 300px;
  color: #426457;
}
#asistente .assistant-art--rig .assistant-mascot-caption strong { color: #00645b; }
@keyframes assistant-v6-gradient-flow {
  0%, 100% { transform: translate3d(-1%, -1%, 0) scale(1.015); opacity: .52; }
  50% { transform: translate3d(1%, 1%, 0) scale(1.04); opacity: .68; }
}
html.motion-paused #asistente .assistant-glow,
html.page-hidden #asistente .assistant-glow,
#asistente:has(.mascot-suspended) .assistant-glow { animation-play-state: paused !important; }
@media (max-width: 920px) {
  #asistente .assistant-panel { gap: 20px; }
}
@media (max-width: 760px) {
  #asistente .assistant-panel { grid-template-columns: minmax(0, 1fr); padding: 32px 24px 30px; }
  #asistente .assistant-art.assistant-art--rig { max-width: 360px; padding-top: 0; }
  #asistente .assistant-copy .button { max-width: 100%; }
}
@media (max-width: 380px) {
  #asistente .assistant-panel { padding-inline: 20px; }
  #asistente .assistant-art.assistant-art--rig { max-width: 295px; }
}
@media (prefers-reduced-motion: reduce) {
  #asistente .assistant-glow { animation: none !important; transform: none !important; opacity: .6; }
}
@media print {
  #asistente .assistant-panel { background: #edf6e8 !important; color: #123d3d !important; }
  #asistente .assistant-glow { display: none; }
}

/* ===== factor-v7-motion ===== */
/* Factor RH V7: órbitas continuas y dos pequeños saltos por ciclo.
   El rig y sus imágenes siguen siendo los aprobados en V6. */
.mascot-v6-stage {
  --mascot-v7-orbit-duration: 12s;
  --mascot-v7-hop-duration: 6.4s;
}

/* Círculo de radio 41%: centro 50% x 47% del escenario cuadrado.
   Los centros se mantienen entre x9–91%, y6–88%, dentro de la escena. */
.mascot-v7-orbit {
  --mascot-v7-orbit-phase: 0s;
  position: absolute;
  left: 9%;
  top: 6%;
  width: 82%;
  aspect-ratio: 1;
  display: block;
  z-index: 0;
  pointer-events: none;
  transform: rotate(-90deg);
  transform-origin: 50% 50%;
  animation:
    mascot-v7-orbit-turn var(--mascot-v7-orbit-duration) linear var(--mascot-v7-orbit-phase) infinite,
    mascot-v7-orbit-depth var(--mascot-v7-orbit-duration) steps(1, end) var(--mascot-v7-orbit-phase) infinite;
}
.mascot-v7-orbit--teal { --mascot-v7-orbit-phase: -6s; }

.mascot-v7-orbit > .mascot-v6-orb {
  left: 50%;
  right: auto;
  top: 0;
  width: clamp(26px, 3.3vw, 42px);
  height: clamp(26px, 3.3vw, 42px);
  z-index: auto;
  animation: none;
  transform: translate(-50%, -50%);
  transform-origin: 50% 50%;
}
.mascot-v7-orbit .orb-sprite {
  transform-origin: 50% 50%;
  animation: mascot-v7-orbit-sprite var(--mascot-v7-orbit-duration) linear var(--mascot-v7-orbit-phase) infinite;
}

/* En el arco superior el robot (z-index:1) queda delante de los orbes.
   El cambio de profundidad ocurre en los laterales, fuera de la cara. */
@keyframes mascot-v7-orbit-turn {
  from { transform: rotate(-90deg); }
  to { transform: rotate(270deg); }
}
@keyframes mascot-v7-orbit-depth {
  0%, 100% { z-index: 0; }
  50% { z-index: 2; }
}
/* Contrarrotación para mantener estable la luz del vidrio; escala de profundidad. */
@keyframes mascot-v7-orbit-sprite {
  0% { transform: rotate(90deg) scale(1); }
  25% { transform: rotate(0deg) scale(.78); }
  50% { transform: rotate(-90deg) scale(1); }
  75% { transform: rotate(-180deg) scale(1.06); }
  100% { transform: rotate(-270deg) scale(1); }
}

.assistant-art--rig .mascot-v6-breathe {
  transform-box: view-box;
  transform-origin: 621px 1160px;
  animation: mascot-v7-hop var(--mascot-v7-hop-duration) ease-in-out infinite;
}
.assistant-art--rig .mascot-v6-shadow {
  animation: mascot-v7-hop-shadow var(--mascot-v7-hop-duration) ease-in-out infinite;
}
@keyframes mascot-v7-hop {
  0%, 12%, 64%, 100% { transform: translateY(0) rotate(0) scale(1, 1); }
  18% { transform: translateY(4px) rotate(0) scale(1.012, .985); }
  29% { transform: translateY(-36px) rotate(-1.1deg) scale(.994, 1.012); }
  40% { transform: translateY(4px) rotate(0) scale(1.015, .98); }
  46% { transform: translateY(-18px) rotate(.55deg) scale(.997, 1.006); }
  54% { transform: translateY(2px) rotate(0) scale(1.009, .99); }
}
@keyframes mascot-v7-hop-shadow {
  0%, 12%, 64%, 100% { transform: scale(1, 1); opacity: .14; }
  18% { transform: scale(1.06, 1.04); opacity: .18; }
  29% { transform: scale(.78, .68); opacity: .085; }
  40% { transform: scale(1.08, 1.05); opacity: .18; }
  46% { transform: scale(.88, .8); opacity: .11; }
  54% { transform: scale(1.04, 1); opacity: .16; }
}

html.motion-paused .mascot-v7-orbit,
html.motion-paused .mascot-v7-orbit .orb-sprite,
html.page-hidden .mascot-v7-orbit,
html.page-hidden .mascot-v7-orbit .orb-sprite,
.mascot-suspended .mascot-v7-orbit,
.mascot-suspended .mascot-v7-orbit .orb-sprite {
  animation-play-state: paused !important;
}
@media (max-width: 680px) {
  .mascot-v7-orbit > .mascot-v6-orb { width: clamp(22px, 7vw, 28px); height: clamp(22px, 7vw, 28px); }
  #asistente .assistant-art.assistant-art--rig { padding-top: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .mascot-v7-orbit,
  .mascot-v7-orbit .orb-sprite { animation: none !important; }
  .mascot-v7-orbit { transform: rotate(-90deg) !important; z-index: 2; }
  .mascot-v7-orbit--teal { transform: rotate(90deg) !important; }
  .mascot-v7-orbit > .mascot-v6-orb { transform: translate(-50%, -50%) !important; }
  .mascot-v7-orbit--lime .orb-sprite { transform: rotate(90deg); }
  .mascot-v7-orbit--teal .orb-sprite { transform: rotate(-90deg); }
  .assistant-art--rig .mascot-v6-breathe,
  .assistant-art--rig .mascot-v6-shadow { animation: none !important; transform: none !important; }
}
@media print {
  .mascot-v7-orbit { display: none; }
  .assistant-art--rig .mascot-v6-breathe,
  .assistant-art--rig .mascot-v6-shadow { animation: none !important; transform: none !important; }
}

/* ===== factor-v8-layout ===== */
/* V8: original laptop + phone composition from brochure page 2. */
.product-screenshot-frame {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.product-screenshot-image {
  width: 100%;
  max-width: 1100px;
  height: auto;
  object-fit: contain;
  margin-inline: auto;
}
.product-screenshot-large { width: 1312px; height: auto; }
.product-screenshot-viewport[data-size="fit"] .product-screenshot-large {
  width: 100%;
  max-width: 1312px;
  height: auto;
}

/* Factor RH V8 — mobile layout after removal of the scrolling-orb rail.
   Append after factor-v7-motion. Desktop (>=1080px), assets and motion stay intact. */
@media screen and (max-width: 1079px) {
  .container {
    width: calc(100% - 64px);
    margin-inline: auto;
  }
}

@media screen and (max-width: 767px) {
  .container {
    width: calc(100% - 40px);
    margin-inline: auto;
  }

  /* Content may shrink within its column; its size must not be set by a long label. */
  .hero-copy,
  .problem-grid > *,
  .difference-grid > *,
  .steps-heading > *,
  .steps-grid > *,
  .faq-grid > *,
  .conversion-grid > *,
  .process-workspace > *,
  .selection-grid > *,
  .assistant-panel > *,
  .v4-quote > * { min-width: 0; }

  /* A single reading column also covers landscape phones, 681–767px wide. */
  .problem-grid,
  .difference-grid,
  .steps-heading,
  .steps-grid,
  .faq-grid,
  .conversion-grid,
  .v4-facts-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .problem-grid,
  .difference-grid,
  .faq-grid,
  .conversion-grid { gap: 32px; }
  .steps-heading { gap: 20px; }
  .steps-grid { gap: 28px; }

  .process-workspace { display: flex; flex-direction: column; gap: 16px; }
  .process-selectors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .process-selector { min-width: 0; }
  .process-panel { width: 100%; }
  .process-closing { flex-direction: column; gap: 21px; }
  .processes .process-closing { align-items: flex-start; }

  #asistente .assistant-panel { grid-template-columns: minmax(0, 1fr); }
  #asistente .assistant-copy .button { max-width: 100%; }
  #asistente .assistant-art.assistant-art--rig { max-width: 360px; }

  .product-screenshot-caption { flex-direction: column; align-items: flex-start; gap: 10px; }
  .product-screenshot-actions { max-width: 100%; }
  .form-card { width: 100%; }
  .conversion-copy { padding-top: 0; }
  .conversion-brand, .conversion-signoff { display: none; }
  .footer-top { flex-direction: column; align-items: flex-start; gap: 30px; }
  .footer-links { justify-content: flex-start; }
}

/* These components already stack below 681px. Extend that behavior without
   changing their approved phone typography, icons or animation dimensions. */
@media screen and (min-width: 681px) and (max-width: 767px) {
  .v4-facts-grid { gap: 16px; }
  .v4-fact {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 0 24px;
    text-align: left;
    align-items: start;
  }
  .v4-fact-number { grid-row: 1 / 3; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
  .v4-fact h3 { max-width: none; margin: 0 0 12px; }
  .v4-fact p { max-width: none; margin: 0; }
  .v4-fact .glass-icon { position: static; }
  .v4-quote { grid-template-columns: minmax(0, 1fr); gap: 24px; min-height: 0; }
  .v4-quote-sidebar {
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr);
    gap: 10px 20px;
    padding: 20px 0 0;
    border-left: 0;
    border-top: 1px solid #B7D8C9;
    align-items: center;
  }
  .v4-testimonial-logo { width: 100px; grid-row: 1 / 3; }
  #asistente .assistant-panel { padding: 32px 24px 30px; }

  /* Navigation uses the existing accessible toggle at the same new breakpoint. */
  .nav-shell { height: 68px; gap: 10px; }
  .menu-toggle { display: block; }
  .main-nav {
    display: flex;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    padding: 14px 20px 22px;
    background: #FBFDFC;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 14px 20px #17423208;
    flex-direction: column;
    align-items: stretch;
    gap: 5px;
    transform: translateY(-8px);
    transition: opacity .15s ease, transform .15s ease, visibility .15s ease;
  }
  .main-nav > a:not(.button) { padding: 8px 5px; min-height: 44px; font-size: 14px; }
  .main-nav > a:nth-child(3) { display: flex; }
  .main-nav .button { margin-top: 6px; font-size: 13px; }
  .main-nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
}

@media screen and (max-width: 380px) {
  #asistente .assistant-art.assistant-art--rig { max-width: 295px; }
}

@media screen and (max-width: 360px) {
  .container { width: calc(100% - 32px); }
}

/* ===== factor-legal-styles ===== */
/* Factor RH · integrated privacy and terms reader. */
.factor-legal-links { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; }
.factor-legal-links a, .factor-form-legal a { color:#006A68; text-decoration:underline; text-underline-offset:3px; }
.factor-legal-links a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; }
.factor-legal-footer { padding-block:16px 24px; border-top:1px solid #D9E8DE; }
.site-footer .factor-legal-footer { border-top-color:#FFFFFF26; }
.site-footer .factor-legal-links a { color:#D4F0DE; }
.site-footer .factor-legal-links a:hover { color:#FFFFFF; }
.factor-form-legal { margin:16px 0 0; color:#526D61; font-size:13px; line-height:1.7; }
.factor-legal-fallback { padding-block:24px 36px; }
.factor-legal-fallback > details { padding:14px 0; border-bottom:1px solid #D9E8DE; }
.factor-legal-fallback > details > summary { cursor:pointer; font-size:16px; font-weight:650; color:#123D3D; }
.factor-legal-fallback [lang="pt"] { border-top:1px solid #D9E8DE; margin-top:40px; padding-top:32px; }
.factor-legal-fallback[hidden], .factor-legal-document[hidden] { display:none!important; }
html.factor-legal-open { overflow:hidden; }
.factor-legal-dialog {
  box-sizing:border-box; width:min(940px,calc(100vw - 32px)); max-width:calc(100vw - 32px);
  height:min(880px,calc(100vh - 40px)); height:min(880px,calc(100dvh - 40px));
  max-height:calc(100dvh - 32px); padding:0; margin:auto; border:1px solid #A9CDBA;
  border-radius:22px; color:#123D3D; background:#FCFEFC; box-shadow:0 24px 90px #052A3B40; overflow:hidden;
}
.factor-legal-dialog:not([open]) { display:none; }
.factor-legal-dialog[open] { display:flex; flex-direction:column; }
.factor-legal-dialog::backdrop { background:#082C32BD; }
.factor-legal-head { display:flex; flex:0 0 auto; align-items:center; justify-content:space-between; gap:16px; padding:18px 24px 12px; background:#F0F7F1; }
.factor-legal-head p { margin:0; font-size:12px; font-weight:700; letter-spacing:.08em; color:#427062; }
.factor-legal-head h2 { margin:4px 0 0; font-size:23px; line-height:1.25; letter-spacing:-.025em; }
.factor-legal-close { display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px; border:1px solid #A9CDBA; border-radius:50%; background:#fff; color:#006A68; cursor:pointer; }
.factor-legal-close svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.factor-legal-toolbar { display:flex; flex:0 0 auto; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px 18px; padding:0 24px 16px; background:#F0F7F1; border-bottom:1px solid #D4E8DB; }
.factor-legal-toolbar [role="group"] { display:flex; gap:6px; flex-wrap:wrap; }
.factor-legal-tab { appearance:none; font:inherit; font-size:13px; font-weight:600; min-height:44px; padding:9px 14px; border:1px solid #A9CDBA; border-radius:10px; background:#fff; color:#216051; cursor:pointer; }
.factor-legal-tab[aria-pressed="true"] { background:#006A68; border-color:#006A68; color:white; }
.factor-legal-tab:hover, .factor-legal-close:hover { border-color:#006A68; }
.factor-legal-body { min-height:0; overflow:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; padding:26px 32px 40px; }
.factor-legal-document { max-width:76ch; margin-inline:auto; font-size:16px; line-height:1.75; overflow-wrap:break-word; color:#38594D; }
.factor-legal-document h2 { font-size:28px; line-height:1.2; margin:0 0 12px; letter-spacing:-.025em; color:#123D3D; }
.factor-legal-document h3 { font-size:19px; line-height:1.4; margin:30px 0 10px; letter-spacing:-.015em; color:#123D3D; }
.factor-legal-document p { margin:0 0 16px; }
.factor-legal-document ul { margin:0 0 20px; padding-left:22px; }
.factor-legal-document strong { color:#173F34; font-weight:700; }
.factor-legal-document a { color:#006A68; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.factor-legal-document .legal-date, .factor-legal-document .legal-meta, .factor-legal-document .legal-updated { color:#647D70; font-size:13px; }
.factor-legal-document .legal-kicker { color:#427062; font-size:12px; font-weight:700; letter-spacing:.07em; }
.factor-legal-document .legal-preview-note, .factor-legal-document .legal-note--preview { padding:16px 18px; border:1px solid #BCD890; border-radius:12px; background:#F1F9DF; }
.factor-legal-tab:focus-visible, .factor-legal-close:focus-visible,
.factor-legal-links a:focus-visible, .factor-form-legal a:focus-visible { outline:3px solid #006A68; outline-offset:3px; }
@media(max-width:600px) {
  .factor-legal-dialog { width:calc(100vw - 16px); max-width:calc(100vw - 16px); height:calc(100vh - 16px); height:calc(100dvh - 16px); max-height:calc(100dvh - 16px); border-radius:16px; }
  .factor-legal-head { padding:15px 16px 12px; gap:10px; }
  .factor-legal-head h2 { font-size:21px; }
  .factor-legal-toolbar { padding:0 16px 14px; gap:10px; }
  .factor-legal-tab { padding:8px 12px; }
  .factor-legal-body { padding:22px 20px 32px; }
  .factor-legal-document { font-size:15px; line-height:1.75; }
  .factor-legal-document h2 { font-size:25px; }
  .factor-legal-document h3 { font-size:18px; }
  .factor-legal-links { gap:4px 20px; }
}
@media print {
  .factor-legal-dialog[open] { position:static; width:auto; height:auto; max-height:none; overflow:visible; border:0; box-shadow:none; }
  .factor-legal-body { overflow:visible; }
  .factor-legal-toolbar, .factor-legal-close { display:none; }
}

/* ===== factor-v84-polish ===== */
/*
Manrope font attribution and license (font only):
Copyright 2018 The Manrope Project Authors (https://github.com/googlefonts/manrope)

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded, 
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

*/
@font-face {
  font-family: "Factor Manrope";
  src: url("/landing/fonts/manrope-bold.974feae9.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
/* V8.4. Reference lock: approved Factor mint cards + precise glass lettering.
   All new type and visual treatments are limited to this existing section. */
#factor-en-claro .v4-fact h3 {
  font-family: "Factor Manrope", "Aptos", "Segoe UI", sans-serif;
  font-weight: 700;
  letter-spacing: -.025em;
  text-wrap: balance;
  color: #124744;
}
#factor-en-claro .v4-fact h3 {
  font-size: clamp(20px, 1.65vw, 23px);
  line-height: 1.28;
  max-width: 260px;
  margin-top: 8px;
}
#factor-en-claro .v4-fact {
  padding-top: 24px;
}
#factor-en-claro .v4-fact-number {
  position: relative;
}
#factor-en-claro .v84-glass-stat {
  display: block;
  width: 124px;
  height: 112px;
  max-width: 100%;
  margin: 0 auto;
  font-size: 0;
  line-height: 0;
  letter-spacing: 0;
  overflow: visible;
}
#factor-en-claro .v84-glass-svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
#factor-en-claro .v84-glass-object {
  transform-origin: 80px 76px;
  animation: factor-v84-glass-float 7.2s ease-in-out infinite;
  filter: drop-shadow(0 3px 2px #196b6120);
}
#factor-en-claro .v84-glass-shadow {
  transform-origin: 82px 127px;
  animation: factor-v84-glass-ground 7.2s ease-in-out infinite;
}
#factor-en-claro .v84-glass-reflection {
  animation: factor-v84-glass-light 8.8s ease-in-out infinite;
}
#factor-en-claro .v4-fact:nth-child(2) .v84-glass-object,
#factor-en-claro .v4-fact:nth-child(2) .v84-glass-shadow { animation-delay: -2.4s; }
#factor-en-claro .v4-fact:nth-child(3) .v84-glass-object,
#factor-en-claro .v4-fact:nth-child(3) .v84-glass-shadow { animation-delay: -4.8s; }
#factor-en-claro .v4-fact:nth-child(2) .v84-glass-reflection { animation-delay: -2.8s; }
#factor-en-claro .v4-fact:nth-child(3) .v84-glass-reflection { animation-delay: -5.6s; }
#factor-en-claro .v4-fact p {
  font-size: 15px;
  line-height: 1.7;
  color: #41695f;
}
#factor-en-claro .v84-module-list {
  list-style: none;
  counter-reset: factor-module;
  margin: 0;
  padding: 0;
  text-align: left;
  color: #365f56;
  font-size: 14px;
  line-height: 1.4;
}
#factor-en-claro .v84-module-list li {
  counter-increment: factor-module;
  display: grid;
  grid-template-columns: 23px minmax(0, 1fr);
  gap: 7px;
  padding: 6px 0;
  border-bottom: 1px solid #cde5d4a0;
  min-width: 0;
}
#factor-en-claro .v84-module-list li:last-child { border-bottom: 0; }
#factor-en-claro .v84-module-list li::before {
  content: counter(factor-module, decimal-leading-zero);
  color: #4c8978;
  font-family: "Factor Manrope", "Aptos", sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .06em;
  padding-top: 3px;
}
@keyframes factor-v84-glass-float {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
}
@keyframes factor-v84-glass-ground {
  0%, 100% { transform: scaleX(1); opacity: .16; }
  50% { transform: scaleX(.89); opacity: .11; }
}
@keyframes factor-v84-glass-light {
  0%, 45% { transform: translateX(-130px) skewX(-18deg); opacity: 0; }
  54% { opacity: .75; }
  66% { transform: translateX(170px) skewX(-18deg); opacity: 0; }
  100% { transform: translateX(170px) skewX(-18deg); opacity: 0; }
}
html.motion-paused #factor-en-claro .v84-glass-object,
html.motion-paused #factor-en-claro .v84-glass-shadow,
html.motion-paused #factor-en-claro .v84-glass-reflection,
html.page-hidden #factor-en-claro .v84-glass-object,
html.page-hidden #factor-en-claro .v84-glass-shadow,
html.page-hidden #factor-en-claro .v84-glass-reflection {
  animation-play-state: paused !important;
}
@media screen and (max-width: 767px) {
  #factor-en-claro .v4-fact {
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 0 18px;
    padding: 23px;
  }
  #factor-en-claro .v84-glass-stat {
    width: 74px;
    height: 68px;
    margin: -5px 0 0;
  }
  #factor-en-claro .v4-fact-number { gap: 10px; }
  #factor-en-claro .v4-fact h3 {
    max-width: none;
    font-size: 20px;
    margin: 0 0 11px;
  }
  #factor-en-claro .v4-fact p { font-size: 14.5px; line-height: 1.65; }
  #factor-en-claro .v4-fact .v4-fact-number { grid-row: 1; }
  #factor-en-claro .v4-fact h3 { align-self: center; }
  #factor-en-claro .v4-fact p { grid-column: 1 / -1; margin-top: 18px; }
  #factor-en-claro .v84-module-list {
    grid-column: 1 / -1;
    margin-top: 18px;
    font-size: 14px;
  }
  #factor-en-claro .v84-module-list li { padding-block: 7px; }
}
@media screen and (max-width: 380px) {
  #factor-en-claro .v4-fact { grid-template-columns: 62px minmax(0, 1fr); gap: 0 14px; padding: 20px 17px; }
  #factor-en-claro .v84-glass-stat { width: 62px; height: 59px; }
  #factor-en-claro .v4-fact h3 { font-size: 19.55px; }
  #factor-en-claro .v4-fact p { font-size: 14.5px; }
}
@media (prefers-reduced-motion: reduce) {
  #factor-en-claro .v84-glass-object,
  #factor-en-claro .v84-glass-shadow,
  #factor-en-claro .v84-glass-reflection { animation: none !important; transform: none !important; }
  #factor-en-claro .v84-glass-reflection { opacity: 0; }
}
@media print {
  #factor-en-claro .v84-glass-object,
  #factor-en-claro .v84-glass-shadow,
  #factor-en-claro .v84-glass-reflection { animation: none; transform: none; }
}

/* ===== factor-v86-copy-layout ===== */
/* V8.6 — full-width prose, original Factor typography and glass animation. */
#factor-en-claro .v4-fact {
  padding: 26px clamp(22px, 2.1vw, 30px) 30px;
}
#factor-en-claro .v4-fact > p {
  max-width: none;
  width: 100%;
  margin: 18px 0 0;
  text-align: left;
  line-height: 1.75;
  overflow-wrap: break-word;
}
@media screen and (max-width: 767px) {
  #factor-en-claro .v4-fact { padding: 24px; }
  #factor-en-claro .v4-fact > p {
    grid-column: 1 / -1;
    margin: 18px 0 0;
    max-width: none;
    width: 100%;
    line-height: 1.7;
  }
}
@media screen and (max-width: 380px) {
  #factor-en-claro .v4-fact { padding: 22px 18px; }
}

/* ===== factor-v88-client-logos ===== */
/* V8.8: high-resolution client marks; original vectors retain tonal separation. */
#marcas .v4-client-logo { width:190px; height:94px; flex:0 0 auto; }
#marcas .v4-client-logo > svg { display:block; width:100%; max-width:190px; height:88px; opacity:1; filter:grayscale(1); mix-blend-mode:normal; }
#marcas .v4-brand-group { gap:28px; padding-right:28px; }
#marcas .v4-brand-track { animation-duration:132s; }
#marcas .v4-brands-window { padding-block:3px; }
#experiencias .v4-testimonial-logo > svg { display:block; width:100%; height:100%; overflow:visible; }
@media (max-width:680px) {
  #marcas .v4-client-logo { width:156px; height:82px; }
  #marcas .v4-client-logo > svg { max-width:156px; height:78px; }
  #marcas .v4-brand-group { gap:24px; padding-right:24px; }
  #marcas .v4-brand-track { animation-duration:110s; }
}

/* ===== conector de formulario ===== */
.hp-field{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;}

/* ===== WhatsApp ===== */
.wa-float { position: fixed; right: 24px; bottom: 24px; z-index: 95; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: #25D366; color: #fff; box-shadow: 0 10px 28px #0B3D2A38, 0 2px 6px #0B3D2A26; transition: transform .2s ease, box-shadow .2s ease; }
.wa-float svg { width: 30px; height: 30px; }
.wa-float:hover { transform: translateY(-2px); box-shadow: 0 14px 32px #0B3D2A47, 0 3px 8px #0B3D2A2E; }
.wa-float:focus-visible { outline: 3px solid #123D3D; outline-offset: 3px; }
@media (max-width: 640px) { .wa-float { right: 16px; bottom: 16px; width: 52px; height: 52px; } .wa-float svg { width: 28px; height: 28px; } }
@media (prefers-reduced-motion: reduce) { .wa-float { transition: none; } .wa-float:hover { transform: none; } }
@media print { .wa-float { display: none; } }

/* ===== página 404 ===== */
.not-found-header .nav-shell { justify-content: space-between; }
.not-found { min-height: calc(100vh - 260px); display: grid; align-items: center; background: radial-gradient(900px 420px at 50% 0%, #EAF6EF 0%, transparent 70%); }
.not-found-inner { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 72px 0 96px; }
.not-found-art { width: 168px; height: 168px; margin-bottom: 28px; }
.not-found-art .avatar-art { width: 100%; height: 100%; animation: avatar-float 6s ease-in-out infinite; }
.not-found h1 { margin: 14px 0 0; max-width: 760px; }
.not-found h1 span { color: var(--teal); }
.not-found-lead { margin-top: 20px; max-width: 560px; font-size: 17px; color: #4E6A5F; }
.not-found-actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 34px; }
.not-found-help { margin-top: 30px; font-size: 13px; color: #647D70; }
.not-found-help a { color: var(--teal); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 640px) {
  .not-found-header .button { display: none; }
  .not-found-inner { padding: 48px 0 72px; }
  .not-found-art { width: 128px; height: 128px; }
  .not-found-lead { font-size: 15px; }
  .not-found-actions { flex-direction: column; width: 100%; }
  .not-found-actions .button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .not-found-art .avatar-art { animation: none; } }
