/* V25: site-wide structure. The hero and the bar keep V24; everything below the hero follows one vertical rhythm,
   sections come in four surfaces (white, lilac tint, grey band, dark band) so each page can combine them differently,
   and each page carries one signature module. */
:root{--v25-gap:112px;--v25-band:96px;--v25-gap-band:80px;--v25-heading:44px;--v25-tint:#f3eefb;--v25-ease-out:cubic-bezier(.23,1,.32,1)}
@media(max-width:800px){:root{--v25-gap:64px;--v25-band:56px;--v25-gap-band:48px;--v25-heading:30px}}

/* Rhythm: content-to-content distance is always --v25-gap; bands keep --v25-band inside their edges.
   The hero keeps its own V24 spacing, including the 80px to the first examples. */
#contenido>section:not(.hero){padding-top:0;padding-bottom:var(--v25-gap)}
#contenido>section.band{padding-top:var(--v25-band);padding-bottom:var(--v25-band)}
#contenido>section.band+section{padding-top:var(--v25-gap-band)}
#contenido>section.band+section.band{padding-top:calc(var(--v25-band)*.5)}
#contenido>section:not(.hero):has(+section.band){padding-bottom:var(--v25-gap-band)}
#contenido>section.hero+section.band{padding-top:80px}
#contenido>section.subpage-intro{padding-top:56px}
@media(max-width:800px){#contenido>section.subpage-intro{padding-top:32px}}
.section-heading,.system-list-v25 .section-heading{margin-bottom:var(--v25-heading)}
.doors{margin-top:0}
.control-list{margin-top:0}
.tint{background:var(--v25-tint)}

/* Breadcrumbs. */
.breadcrumbs{font-size:.875rem;color:var(--muted);margin-bottom:22px}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:6px 10px;list-style:none;margin:0;padding:0}
.breadcrumbs li+li::before{content:"›";margin-right:10px;color:var(--muted)}
.breadcrumbs a{color:inherit;text-decoration:none}
.breadcrumbs a:hover{color:var(--violet);text-decoration:underline;text-underline-offset:4px}
.breadcrumbs [aria-current]{color:inherit}

/* Intro with a signature module beside the copy. */
.subpage-intro.has-aside{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px 64px;align-items:center}
.subpage-intro.has-aside .intro-copy>h1{max-width:none}
.subpage-intro.has-aside .intro-copy>p:last-child{font-size:1.2rem;max-width:560px;color:var(--muted);margin-top:30px}
.subpage-intro.aside-top{align-items:start}
.subpage-intro.aside-top .intro-copy{padding-top:8px}
.subpage-intro .h1-compact{font-size:clamp(2.3rem,4.6vw,3.9rem)}
@media(max-width:1000px){.subpage-intro.has-aside{grid-template-columns:1fr;gap:44px}.subpage-intro.aside-top .intro-copy{padding-top:0}}

/* Execution log: the agent at work, with the human decision highlighted. */
.agent-log{margin:0;background:#0f0c16;color:#f3effa;border-radius:22px;padding:22px 24px 26px;box-shadow:0 30px 60px -40px rgba(20,8,50,.6)}
.agent-log figcaption{display:flex;align-items:center;gap:10px;font-size:.8125rem;font-weight:500;letter-spacing:.02em;color:#d9cff0;padding-bottom:16px;border-bottom:1px solid #2a2437}
.agent-log-dot{width:9px;height:9px;border-radius:50%;background:#7c4dff;box-shadow:0 0 0 4px rgba(124,77,255,.18)}
.agent-log-tag{margin-left:auto;font-size:.6875rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:#9a8fb4}
.agent-log ol{list-style:none;margin:0;padding:8px 0 0;position:relative}
.agent-log ol::before{content:"";position:absolute;left:66px;top:18px;bottom:18px;width:1px;background:#2a2437}
.agent-log li{position:relative;display:grid;grid-template-columns:48px 1fr;gap:18px;padding:13px 0 13px 2px;font-size:.9375rem;line-height:1.45}
.agent-log li::before{content:"";position:absolute;left:62px;top:20px;width:9px;height:9px;border-radius:50%;background:#3d3550;border:2px solid #0f0c16;box-sizing:border-box}
.agent-log time{font-variant-numeric:tabular-nums;color:#9a8fb4;font-size:.875rem;padding-top:1px}
.agent-log li div{display:grid;gap:3px;padding-left:20px}
.agent-log strong{font-weight:500;color:#fff}
.agent-log span{color:#a99fc2;font-size:.875rem}
.agent-log li.is-waiting strong{color:#d7c2ff}
.agent-log li.is-waiting::before{background:#7c4dff;box-shadow:0 0 0 5px rgba(124,77,255,.22);animation:agent-log-pulse 1.8s ease-in-out infinite}
.agent-log li.is-done::before{background:#5be3a4}
@keyframes agent-log-pulse{0%,100%{box-shadow:0 0 0 4px rgba(124,77,255,.18)}50%{box-shadow:0 0 0 8px rgba(124,77,255,.08)}}
/* Rows arrive once, top to bottom: 60 ms apart, 320 ms each. */
.agent-log li{animation:agent-log-in .32s var(--v25-ease-out) both}
.agent-log li:nth-child(2){animation-delay:60ms}.agent-log li:nth-child(3){animation-delay:120ms}.agent-log li:nth-child(4){animation-delay:180ms}.agent-log li:nth-child(5){animation-delay:240ms}
@keyframes agent-log-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(max-width:540px){.agent-log{padding:18px 18px 20px;border-radius:18px}.agent-log li{grid-template-columns:42px 1fr;gap:14px}.agent-log ol::before{left:56px}.agent-log li::before{left:52px}.agent-log li div{padding-left:16px}.agent-log-tag{display:none}}

/* Cards: the whole card is the link; it answers the pointer and the press. */
.doors-solutions{grid-template-columns:repeat(3,1fr)}
.doors-services .door:nth-child(3){background:#17121f;color:#fff;border-color:#b598e2}
.doors-services .door:nth-child(3) .door-label{color:#c7adff}
.doors-services .door:nth-child(3) p,.door:nth-child(2) p{color:#cfc7dc}
.door{position:relative;display:flex;flex-direction:column;transition:transform .2s var(--v25-ease-out),box-shadow .2s var(--v25-ease-out)}
.door h3{margin-bottom:14px}
.door .text-link{margin-top:auto;padding-top:22px}
.door .text-link::after{content:"";position:absolute;inset:0;border-radius:inherit}
.door:has(.text-link:focus-visible){outline:3px solid #9860ff;outline-offset:5px}
.door .text-link:focus-visible{outline:none}
@media(hover:hover) and (pointer:fine){
  .door:has(.text-link):hover{transform:translateY(-3px);box-shadow:0 22px 40px -26px rgba(24,10,60,.45)}
  .door:has(.text-link):hover .text-link{text-decoration:underline;text-underline-offset:5px}
}
.door:has(.text-link:active){transform:translateY(-1px) scale(.995);transition-duration:.12s}
.doors-compare .door h3{font-size:clamp(1.9rem,3.4vw,2.6rem);letter-spacing:-.03em}
@media(max-width:800px){.doors-solutions{grid-template-columns:1fr}}

/* Numbered lists keep the V19 look with h3 items under a section heading. */
.system-list-v25 h3{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.12;letter-spacing:-.03em;margin-bottom:20px}
.system-list-v25 article:last-child{border-bottom:1px solid var(--line)}
.text-link{transition:transform .16s var(--v25-ease-out)}
.text-link:active{transform:scale(.98)}

/* What the team keeps in its hands. */
.control-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:26px 48px}
.control-list li{position:relative;padding-left:30px;font-size:1.0625rem;line-height:1.6;color:var(--muted)}
.control-list li strong{color:inherit;font-weight:500}
.control-list li::before{content:"";position:absolute;left:0;top:.62em;width:11px;height:11px;border-radius:50%;background:var(--violet)}
.control-section .human-rule{margin-top:44px}
@media(max-width:800px){.control-list{grid-template-columns:1fr;gap:20px}}

/* Footer site map. */
.footer-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:36px;padding-top:30px;border-top:1px solid var(--line)}
.footer-nav-title{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}
.footer-nav ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.footer-nav a{color:inherit;text-decoration:none;font-size:.9375rem;line-height:1.4}
.footer-nav a:hover{color:var(--violet);text-decoration:underline;text-underline-offset:4px}
@media(max-width:640px){.footer-nav{grid-template-columns:1fr;gap:24px}}

/* Eight menu links: the cascade continues at the same pace; the current page is marked. */
.menu-links>a:nth-child(6){--menu-delay:250ms}
.menu-links>a:nth-child(7){--menu-delay:300ms}
.menu-links>a:nth-child(8){--menu-delay:350ms}
@media(min-width:801px){.menu-links>a:nth-child(5),.menu-links>a:nth-child(6){--menu-delay:100ms}.menu-links>a:nth-child(7),.menu-links>a:nth-child(8){--menu-delay:150ms}}
.menu-links>a[aria-current=page]{color:#c7adff}

@media(prefers-reduced-motion:reduce){
  .agent-log li{animation:agent-log-fade .2s ease both;transform:none}
  .agent-log li.is-waiting::before{animation:none}
  .door,.text-link{transition:none}
  .door:has(.text-link):hover{transform:none}
}
@keyframes agent-log-fade{from{opacity:0}to{opacity:1}}

/* ---------- Page signatures ---------- */

/* WhatsApp thread: the agent answers and waits for a person before sending. */
.phone-chat{margin:0;justify-self:end;width:min(100%,420px);background:#0f0c16;color:#f3effa;border-radius:26px;padding:18px 18px 22px;box-shadow:0 30px 60px -40px rgba(20,8,50,.6)}
.phone-chat-top{display:flex;align-items:center;gap:12px;padding:4px 4px 14px;border-bottom:1px solid #2a2437}
.phone-chat-avatar{flex:none;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#7c4dff,#3a2a7a)}
.phone-chat-top strong{display:block;font-weight:500;font-size:.9375rem;line-height:1.3}
.phone-chat-top div>span{font-size:.75rem;color:#9a8fb4}
.phone-chat-tag{margin-left:auto;font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:#9a8fb4}
.phone-chat-thread{list-style:none;margin:0;padding:16px 0 0;display:grid;gap:10px}
.phone-chat-thread li{max-width:84%;display:grid;gap:4px;animation:agent-log-in .32s var(--v25-ease-out) both}
.phone-chat-thread li:nth-child(2){animation-delay:70ms}.phone-chat-thread li:nth-child(3){animation-delay:140ms}.phone-chat-thread li:nth-child(4){animation-delay:210ms}.phone-chat-thread li:nth-child(5){animation-delay:280ms}.phone-chat-thread li:nth-child(6){animation-delay:350ms}
.phone-chat-thread p{margin:0;padding:10px 14px;border-radius:18px;font-size:.9375rem;line-height:1.45}
.from-customer{justify-self:start}.from-customer p{background:#241d31;border-bottom-left-radius:6px}
.from-agent{justify-self:end}.from-agent p{background:var(--violet);color:#fff;border-bottom-right-radius:6px}
.phone-chat-thread time{font-size:.6875rem;color:#9a8fb4;padding:0 6px}
.from-agent time{text-align:right}
.chat-system{max-width:100%;justify-self:center}
.chat-system span{display:inline-flex;align-items:center;gap:8px;font-size:.75rem;line-height:1.3;color:#d7c2ff;background:rgba(124,77,255,.14);border:1px solid rgba(124,77,255,.35);padding:6px 12px;border-radius:999px}
.chat-system span::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:#7c4dff;animation:agent-log-pulse 1.8s ease-in-out infinite}

/* Process map: what arrives, the agent with the rules, what is left ready. */
.flow-map{margin:0;background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px 24px;box-shadow:0 30px 60px -44px rgba(20,8,50,.35)}
.flow-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-bottom:14px;border-bottom:1px solid var(--line)}
.flow-head strong{font-size:.8125rem;letter-spacing:.02em;text-transform:none;color:#fff;background:var(--violet);padding:8px 14px;border-radius:999px;font-weight:500;text-align:center}
.flow-head span:last-child{text-align:right}
.flow-map ol{list-style:none;margin:0;padding:14px 0 0;display:grid;gap:10px}
.flow-map li{display:grid;grid-template-columns:1fr 64px 1fr;align-items:center;gap:8px}
.flow-in,.flow-out{font-size:.9375rem;line-height:1.35;padding:12px 14px;border-radius:14px;background:#f5f3f8}
.flow-out{background:var(--v25-tint);color:#2b1a5a}
.flow-link{position:relative;height:2px;background:linear-gradient(90deg,#d9cff0,var(--violet));transform-origin:left;animation:flow-draw .5s var(--v25-ease-out) both}
.flow-map li:nth-child(2) .flow-link{animation-delay:120ms}.flow-map li:nth-child(3) .flow-link{animation-delay:240ms}
.flow-link::after{content:"";position:absolute;right:-1px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--violet)}
.flow-map figcaption{margin-top:16px;font-size:.8125rem;color:var(--muted)}
@keyframes flow-draw{from{transform:scaleX(0)}to{transform:none}}
@media(max-width:540px){.flow-map{padding:18px}.flow-map li{grid-template-columns:1fr 36px 1fr}.flow-in,.flow-out{font-size:.875rem;padding:10px 12px}}

/* Customer stages: the colour deepens along the strip. */
.stage-strip{margin:0}
.stage-strip ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.stage-strip li{position:relative;padding:20px 16px 18px;border-radius:16px;background:#f5f3f8;display:grid;gap:6px;align-content:start;overflow:hidden}
.stage-strip li::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--violet)}
.stage-strip li:nth-child(1)::before{opacity:.3}.stage-strip li:nth-child(2)::before{opacity:.55}.stage-strip li:nth-child(3)::before{opacity:.8}
.stage-strip li:nth-child(4){background:#17121f;color:#fff}
.stage-strip li:nth-child(4) .stage-measure{color:#cfc7dc}
.stage-index{font-size:.75rem;color:var(--violet);letter-spacing:.06em;font-variant-numeric:tabular-nums}
.stage-strip li:nth-child(4) .stage-index{color:#c7adff}
.stage-strip strong{font-weight:500;font-size:1.0625rem;line-height:1.25}
.stage-measure{font-size:.8125rem;color:var(--muted);line-height:1.4}
.stage-strip figcaption{margin-top:14px;font-size:.8125rem;color:var(--muted)}
@media(max-width:1000px){.stage-strip ol{grid-template-columns:repeat(2,1fr)}}

/* Four framed pieces: site, store, portal, app. */
.pieces{margin:0}
.pieces ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.piece{display:grid;gap:6px;padding:16px;border-radius:18px;background:#f5f3f8;align-content:start}
.piece strong{font-weight:500;font-size:1rem}
.piece>span:last-child{font-size:.8125rem;color:var(--muted);line-height:1.4}
.piece-frame{display:block;position:relative;height:96px;border-radius:10px;background:#fff;border:1px solid var(--line);overflow:hidden;margin-bottom:8px}
.piece-frame::before{content:"";position:absolute;left:0;right:0;top:0;height:14px;background:#ebe7f1}
.piece-frame i{position:absolute;left:12px;height:6px;border-radius:3px;background:#e2dcec}
.piece-frame i:nth-child(1){top:26px;width:60%;background:var(--violet)}
.piece-frame i:nth-child(2){top:40px;width:80%}
.piece-frame i:nth-child(3){top:52px;width:50%}
.piece-frame i:nth-child(4){top:64px;width:70%}
.piece-store .piece-frame i{top:auto;bottom:12px;height:24px;width:26%;border-radius:6px;background:#e2dcec}
.piece-store .piece-frame i:nth-child(1){background:var(--violet)}
.piece-store .piece-frame i:nth-child(2){left:calc(12px + 31%)}
.piece-store .piece-frame i:nth-child(3){left:calc(12px + 62%)}
.piece-store .piece-frame i:nth-child(4){top:24px;bottom:auto;height:6px;width:50%;border-radius:3px}
.piece-portal .piece-frame::after{content:"";position:absolute;left:0;top:14px;bottom:0;width:22px;background:var(--v25-tint)}
.piece-portal .piece-frame i{left:34px}
.piece-app .piece-frame{width:56px;margin-inline:auto;border-radius:12px;border-width:2px}
.piece-app .piece-frame::before{background:transparent}
.piece-app .piece-frame i{left:8px;width:38px}
.piece-app .piece-frame i:nth-child(1){top:16px}.piece-app .piece-frame i:nth-child(2){top:30px}.piece-app .piece-frame i:nth-child(3){top:44px;width:26px}.piece-app .piece-frame i:nth-child(4){top:58px}
.piece-integrations .piece-frame::before{background:transparent}
.piece-integrations .piece-frame::after{content:"";position:absolute;left:50%;top:50%;width:52px;height:52px;border-radius:50%;border:1px dashed #d9d3e4;transform:translate(-50%,-50%)}
.piece-integrations .piece-frame i{width:14px;height:14px;border-radius:50%;left:auto}
.piece-integrations .piece-frame i:nth-child(1){left:calc(50% - 7px);top:calc(50% - 7px);width:14px;background:var(--violet);z-index:1}
.piece-integrations .piece-frame i:nth-child(2){left:calc(50% - 40px);top:calc(50% - 26px)}
.piece-integrations .piece-frame i:nth-child(3){left:calc(50% + 26px);top:calc(50% - 26px)}
.piece-integrations .piece-frame i:nth-child(4){left:calc(50% - 7px);top:calc(50% + 22px)}

/* Photographs. */
.photo-band{margin:0}
.photo-band img{display:block;width:100%;height:auto;border-radius:22px}

/* Solutions: sticky segmented index, then one block per business type. */
#contenido>section.solutions-nav{position:sticky;top:78px;z-index:5;padding:0;margin-bottom:var(--v25-gap);pointer-events:none}
.segments{display:inline-flex;gap:4px;padding:5px;border-radius:999px;background:rgba(255,255,255,.92);border:1px solid var(--line);box-shadow:0 12px 30px -18px rgba(20,8,50,.35);backdrop-filter:blur(8px);pointer-events:auto}
.segments a{padding:9px 16px;border-radius:999px;font-size:.9375rem;font-weight:500;color:inherit;text-decoration:none;transition:background .16s ease,color .16s ease}
.segments a:hover{background:var(--v25-tint)}
.segments a[aria-current]{background:var(--violet);color:#fff}
.solution-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px 56px;align-items:center;margin-bottom:var(--v25-heading)}
.solution-head .section-heading{margin-bottom:0}
.loop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.loop-card{display:flex;flex-direction:column;padding:28px 26px 22px;border-radius:20px;background:#fff;border:1px solid var(--line)}
.tint .loop-card{border-color:transparent}
.loop-card h3{font-size:1.25rem;line-height:1.25;margin-bottom:18px}
.loop-card dl{margin:0;display:grid;gap:14px}
.loop-card dt{font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--violet);margin-bottom:4px}
.loop-card dd{margin:0;font-size:.9375rem;line-height:1.5;color:var(--muted)}
.loop-card .text-link{margin-top:auto;padding-top:20px}
.solution-start{margin-top:26px;font-size:.9375rem;color:var(--muted);max-width:66ch}
.solution-start strong{color:inherit;font-weight:500}
@media(max-width:1000px){.loop-grid{grid-template-columns:1fr}.solution-head{grid-template-columns:1fr}}
@media(max-width:640px){#contenido>section.solutions-nav{top:70px}.segments{gap:2px;padding:4px}.segments a{padding:8px 12px;font-size:.875rem}}

/* Method timeline. */
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:23px;top:8px;bottom:8px;width:1px;background:var(--line)}
.timeline li{position:relative;display:grid;grid-template-columns:48px 1fr;gap:28px;padding-bottom:44px}
.timeline li:last-child{padding-bottom:0}
.timeline-index{position:relative;z-index:1;width:48px;height:48px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font-size:.8125rem;color:var(--violet);font-variant-numeric:tabular-nums}
.timeline li:first-child .timeline-index{background:var(--violet);color:#fff;border-color:var(--violet)}
.timeline h3{font-size:clamp(1.5rem,2.6vw,2.1rem);margin-bottom:10px;letter-spacing:-.02em}
.timeline li>div>p{color:var(--muted);max-width:60ch;line-height:1.6}
.timeline-deliverable{margin-top:14px;padding:14px 16px;border-radius:14px;background:#f5f3f8;font-size:.9375rem}
.timeline li>div>.timeline-deliverable{color:inherit}
.timeline-deliverable strong{color:var(--violet);font-weight:500}
@media(max-width:640px){.timeline::before{left:17px}.timeline li{grid-template-columns:36px 1fr;gap:16px}.timeline-index{width:36px;height:36px;font-size:.75rem}}

/* What the proposal includes. */
.receipt{margin:0;display:grid;border-top:1px solid var(--line)}
.receipt>div{display:grid;grid-template-columns:220px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}
.receipt dt{font-weight:500}
.receipt dd{margin:0;color:var(--muted);line-height:1.6;max-width:62ch}
.receipt-note{margin-top:22px;font-size:.9375rem;color:var(--muted)}
@media(max-width:640px){.receipt>div{grid-template-columns:1fr;gap:6px}}

/* Demos on a dark band. */
.band.dark{background:#08070c;color:#f3effa}
.dark h2{color:#fff}
.dark .section-heading>p{color:#cbc1d8}
.dark .muted{color:#a99fc2}
.demo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.demo-card{display:flex;flex-direction:column;gap:14px;padding:28px 26px;border-radius:22px;background:#17121f;border:1px solid #2a2437}
.demo-card.is-pending{opacity:.72}
.demo-label{font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:#c7adff}
.demo-card h3{font-size:1.35rem;line-height:1.25;color:#fff}
.demo-card p{color:#cbc1d8;line-height:1.55;flex:1}
.demo-card .primary-button{align-self:flex-start;text-decoration:none}
.demo-status{align-self:flex-start;font-size:.8125rem;color:#a99fc2;border:1px dashed #3d3550;padding:8px 14px;border-radius:999px}
@media(max-width:1000px){.demo-grid{grid-template-columns:1fr}}

/* Contact. */
.contact-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px 64px;align-items:start}
.contact-card{padding:34px 32px;border-radius:22px;background:#f5f3f8}
.contact-card h2{font-size:clamp(1.8rem,3vw,2.4rem);margin-bottom:12px}
.contact-card>p{color:var(--muted);max-width:48ch;line-height:1.6}
.contact-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.quiet-button{border:1px solid #c9c2d6;background:#fff;color:inherit;border-radius:28px;min-height:50px;padding:14px 22px;font:inherit;font-weight:500;cursor:pointer;transition:transform .16s var(--v25-ease-out),border-color .2s ease}
.quiet-button:hover{border-color:var(--violet)}
.quiet-button:active{transform:scale(.97)}
.contact-card .whatsapp-link{margin-top:14px;color:var(--violet)}
.contact-steps{list-style:none;margin:0;padding:8px 0 0;display:grid;gap:22px}
.contact-steps li{display:grid;grid-template-columns:40px 1fr;gap:16px}
.contact-steps li>span{font-size:.8125rem;color:var(--violet);padding-top:6px;font-variant-numeric:tabular-nums}
.contact-steps h3{font-size:1.125rem;margin-bottom:6px}
.contact-steps p{color:var(--muted);line-height:1.55}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}.contact-card{padding:26px 22px}}

/* Editorial prose and notes. */
.prose{max-width:68ch}
.prose h2{font-size:clamp(2rem,4vw,3.2rem);margin-bottom:26px}
.prose p{font-size:1.125rem;line-height:1.7;color:var(--muted)}
.prose p+p{margin-top:18px}
.control-note{margin-top:26px;color:var(--muted);font-size:.9375rem}

@media(prefers-reduced-motion:reduce){
  .phone-chat-thread li{animation:agent-log-fade .2s ease both}
  .chat-system span::before{animation:none}
  .flow-link{animation:none}
  .quiet-button{transition:none}
}

/* ---------- Less repetition, more interaction ---------- */

/* One line to the method page. */
.method-strip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px 40px;align-items:center;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.method-strip-title{font-weight:500;font-size:1.125rem;letter-spacing:-.01em}
.method-strip>p:not(.method-strip-title){color:var(--muted);max-width:60ch;line-height:1.55}
@media(max-width:800px){.method-strip{grid-template-columns:1fr;gap:8px;padding:22px 0}}

/* Closing invitation, one per page. */
.closing-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 48px;align-items:center;padding:42px 46px;border-radius:26px;background:#17121f;color:#fff}
.closing-card h2{font-size:clamp(1.8rem,3.4vw,2.8rem);line-height:1.1;letter-spacing:-.03em;color:#fff}
.closing-card .muted{color:#b9adcc}
.closing-card p{color:#cbc1d8;margin-top:12px;max-width:52ch;line-height:1.55}
.closing-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.closing-actions .text-link{color:#d7c2ff}
@media(max-width:800px){.closing-card{grid-template-columns:1fr;padding:30px 24px}}

/* Flow map rows open what a person checks. */
.flow-map li{grid-template-columns:1fr 64px 1fr auto}
.flow-more{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--violet);padding:0;transition:transform .16s var(--v25-ease-out),background .16s ease}
.flow-more .icon{width:16px;height:16px;transition:transform .2s var(--v25-ease-out)}
.flow-more[aria-expanded=true] .icon{transform:rotate(45deg)}
.flow-more:hover{background:var(--v25-tint)}
.flow-more:active{transform:scale(.94)}
.flow-detail{grid-column:1/-1;margin:2px 0 0;padding:10px 14px;border-radius:12px;background:#f5f3f8;font-size:.875rem;color:var(--muted);line-height:1.45}
.flow-detail[hidden]{display:none}
@media(max-width:540px){.flow-map li{grid-template-columns:1fr 36px 1fr auto}}

/* Stages and pieces are links; the one in view is marked. */
.stage-strip li{padding:0}
.stage-strip a{display:grid;gap:6px;height:100%;padding:20px 16px 18px;border-radius:16px;color:inherit;text-decoration:none;transition:transform .2s var(--v25-ease-out),box-shadow .2s var(--v25-ease-out)}
.stage-strip li.is-current{outline:2px solid var(--violet);outline-offset:2px}
.piece{transition:transform .2s var(--v25-ease-out),box-shadow .2s var(--v25-ease-out)}
.piece a{display:grid;gap:6px;color:inherit;text-decoration:none}
.piece.is-current{outline:2px solid var(--violet);outline-offset:2px}
@media(hover:hover) and (pointer:fine){
  .stage-strip a:hover,.piece:hover{transform:translateY(-2px);box-shadow:0 16px 30px -22px rgba(24,10,60,.45)}
}
.stage-strip a:active,.piece a:active{transform:translateY(0)}
.system-list-v25 article{position:relative;scroll-margin-top:110px;transition:background .3s ease}
.system-list-v25 article.is-current::before{content:"";position:absolute;left:-24px;top:44px;bottom:44px;width:3px;border-radius:2px;background:var(--violet)}

/* Timeline steps fill in as you reach them. */
.timeline-index{transition:background .25s ease,color .25s ease,border-color .25s ease}
.timeline li.is-reached .timeline-index{background:var(--violet);color:#fff;border-color:var(--violet)}

/* Replay buttons on the log and the chat. */
.replay{font:inherit;font-size:.75rem;line-height:1;color:#d7c2ff;background:transparent;border:1px solid #3d3550;border-radius:999px;padding:7px 11px;cursor:pointer;white-space:nowrap;transition:background .16s ease,transform .16s var(--v25-ease-out)}
.replay:hover{background:rgba(124,77,255,.14)}
.replay:active{transform:scale(.96)}
.agent-log figcaption .replay,.phone-chat-top .replay{margin-left:12px}
.agent-log li{border-radius:10px}
@media(hover:hover) and (pointer:fine){.agent-log li:hover{background:rgba(255,255,255,.035)}}
@media(max-width:540px){.phone-chat-tag{display:none}}

/* Chat playback: typing indicator while the agent answers. */
.phone-chat-thread li[hidden]{display:none}
.phone-chat[data-playing] .phone-chat-thread li{animation:agent-log-in .26s var(--v25-ease-out) both}
.chat-typing{justify-self:end;max-width:84%}
.chat-typing p{display:inline-flex;gap:5px;align-items:center;padding:13px 14px;background:var(--violet);border-radius:18px;border-bottom-right-radius:6px}
.chat-typing i{width:6px;height:6px;border-radius:50%;background:#fff;opacity:.5;animation:chat-dot 1s ease-in-out infinite}
.chat-typing i:nth-child(2){animation-delay:.15s}
.chat-typing i:nth-child(3){animation-delay:.3s}
@keyframes chat-dot{0%,100%{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}

/* The available demo card is the link. */
.demo-card.is-link{position:relative;transition:transform .2s var(--v25-ease-out),border-color .2s ease}
.demo-card.is-link .primary-button::after{content:"";position:absolute;inset:0;border-radius:inherit}
@media(hover:hover) and (pointer:fine){.demo-card.is-link:hover{transform:translateY(-3px);border-color:var(--violet)}}
.solution-group{scroll-margin-top:140px}

@media(prefers-reduced-motion:reduce){
  .flow-more,.flow-more .icon,.stage-strip a,.piece,.replay,.demo-card.is-link,.timeline-index{transition:none}
  .chat-typing i{animation:none;opacity:.8}
  .phone-chat[data-playing] .phone-chat-thread li{animation:agent-log-fade .2s ease both}
}

/* ---------- Capability gallery: tabs on the left, the screen each one leaves ready on the right ---------- */
.gallery-section{scroll-margin-top:100px}
.gallery{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:32px 56px;align-items:start}
.gallery-tabs{display:grid;gap:6px}
.gallery-tab{display:grid;grid-template-columns:36px 1fr;gap:4px 14px;text-align:left;padding:18px 18px 18px 16px;border:1px solid transparent;border-radius:16px;background:transparent;font:inherit;color:inherit;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s var(--v25-ease-out)}
.gallery-tab:hover{background:#f7f5fa}
.tint .gallery-tab:hover{background:rgba(255,255,255,.6)}
.gallery-tab[aria-selected=true]{background:#fff;border-color:var(--line);box-shadow:0 14px 30px -24px rgba(24,10,60,.35)}
.gallery-tab:active{transform:scale(.99)}
.gallery-index{grid-row:1/3;font-size:.8125rem;color:var(--violet);padding-top:4px;font-variant-numeric:tabular-nums}
.gallery-title{font-weight:500;font-size:1.125rem;line-height:1.3}
.gallery-text{font-size:.9375rem;color:var(--muted);line-height:1.5;display:none}
.gallery-tab[aria-selected=true] .gallery-text{display:block}
.gallery-stage{min-height:440px}
.gallery-panel{animation:gallery-in .28s var(--v25-ease-out) both}
.gallery-panel[hidden]{display:none}
@keyframes gallery-in{from{opacity:0;transform:translateY(6px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}
.gallery-lead{display:none}
.gallery-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px;margin-top:16px}
.gallery-foot .system-measure{margin:0}
@media(max-width:1000px){
  .gallery{grid-template-columns:1fr;gap:18px}
  .gallery-tabs{display:flex;gap:6px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .gallery-tabs::-webkit-scrollbar{display:none}
  .gallery-tab{flex:none;display:inline-flex;padding:10px 14px;border-radius:999px;border:1px solid var(--line);background:#fff}
  .gallery-tab[aria-selected=true]{background:var(--violet);color:#fff;border-color:var(--violet);box-shadow:none}
  .gallery-index,.gallery-text{display:none!important}
  .gallery-title{font-size:.9375rem;white-space:nowrap}
  .gallery-stage{min-height:0}
  .gallery-lead{display:block;margin-top:14px;color:var(--muted);line-height:1.55}
}

/* Screens: a light app window with shared primitives. */
.screen{margin:0;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 30px 60px -44px rgba(20,8,50,.35);overflow:hidden;font-size:.9375rem}
.tint .screen{border-color:transparent}
.screen figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;background:#f5f3f8;border-bottom:1px solid var(--line);font-size:.8125rem;font-weight:500}
.screen figcaption em{font-style:normal;font-weight:400;font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.screen-body{padding:18px 18px 20px;display:grid;gap:14px;align-content:start}
.scr-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.scr-head small{display:block;font-size:.6875rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px}
.scr-head strong{font-weight:500;font-size:1.0625rem;line-height:1.3}
.pill{display:inline-flex;align-items:center;font-size:.75rem;line-height:1;padding:6px 10px;border-radius:999px;background:#eeebf3;color:#4b4557;white-space:nowrap}
.pill-ok{background:#e4f7ee;color:#1d6b45}
.pill-wait{background:#efe6ff;color:#4b1fb8}
.pill-hot{background:#ffe9e3;color:#a63a1e}
.btn{display:inline-flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:500;line-height:1;padding:11px 16px;border-radius:999px;background:#fff;border:1px solid #c9c2d6;white-space:nowrap}
.btn-primary{background:var(--violet);color:#fff;border-color:var(--violet)}
.btn-small{padding:8px 12px;font-size:.8125rem}
.btn-block{width:100%}
.avatar{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eeebf3;color:#4b4557;font-size:.6875rem;font-weight:500;flex:none}
.scr-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px}
.scr-actions small{color:var(--muted);font-size:.8125rem;margin-left:auto}
.scr-table{width:100%;border-collapse:collapse}
.scr-table td{padding:9px 0;border-bottom:1px solid var(--line);font-size:.9375rem}
.scr-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}
.scr-table .total td{font-weight:500;border-bottom:0;padding-top:12px}
.scr-fields{margin:0;display:grid;gap:10px}
.scr-fields>div{display:grid;grid-template-columns:128px 1fr;gap:12px;font-size:.9375rem;line-height:1.4}
.scr-fields dt{color:var(--muted)}
.scr-fields dd{margin:0}
.scr-fields .flag dd{color:#a63a1e}
.ok{color:#1d6b45;font-weight:500}
.warn{color:#a63a1e;font-weight:500;font-size:.8125rem}
.wait{color:#4b1fb8;font-weight:500;font-size:.8125rem}
.scr-list{list-style:none;margin:0;padding:0;display:grid}
.scr-list li{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.scr-list li:last-child{border-bottom:0}
.scr-list li>div{flex:1;min-width:0;display:grid;gap:2px}
.scr-list strong{font-weight:500;font-size:.9375rem;line-height:1.3}
.scr-list small{color:var(--muted);font-size:.8125rem;line-height:1.35}
.scr-list time{width:34px;flex:none;font-size:.75rem;color:var(--violet);font-variant-numeric:tabular-nums}
.dot{width:8px;height:8px;border-radius:50%;background:#d9d3e4;flex:none}
.dot-hot{background:#e0562f}
.scr-check{list-style:none;margin:0;padding:0;display:grid}
.scr-check li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.9375rem}
.scr-check li:last-child{border-bottom:0}
.scr-check .flag{color:#a63a1e}
.scr-split{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:start}
.scr-doc{background:#f5f3f8;border-radius:12px;padding:12px;display:grid;gap:7px;align-content:start;min-height:150px}
.scr-doc small{font-size:.6875rem;color:var(--muted);margin-bottom:4px;word-break:break-all}
.scr-doc i{display:block;height:6px;border-radius:3px;background:#dcd6e6}
.scr-doc i.short{width:55%}
.scr-week{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.scr-week>div{min-height:110px;border-radius:10px;background:#f5f3f8;padding:8px;display:grid;align-content:start;gap:6px}
.scr-week small{font-size:.6875rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.ev{font-size:.75rem;line-height:1.3;padding:6px 8px;border-radius:8px;background:#fff;border:1px solid var(--line)}
.ev-main{background:var(--violet);color:#fff;border-color:var(--violet)}
.scr-board{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.scr-board>div{background:#f5f3f8;border-radius:10px;padding:8px;display:grid;gap:6px;align-content:start;min-height:200px}
.scr-board small{font-size:.6875rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}
.card{display:grid;gap:2px;font-size:.75rem;line-height:1.3;padding:8px;border-radius:8px;background:#fff;border:1px solid var(--line)}
.card b{font-weight:500;font-variant-numeric:tabular-nums}
.card em{font-style:normal;color:var(--violet)}
.card-hi{border-color:var(--violet)}
.card-ok{border-color:#1d6b45}
.scr-bubbles{display:grid;gap:8px}
.bubble{max-width:88%;padding:9px 12px;border-radius:14px;font-size:.875rem;line-height:1.4}
.bubble.in{background:#f0edf4;justify-self:start;border-bottom-left-radius:5px}
.bubble.out{background:var(--violet);color:#fff;justify-self:end;border-bottom-right-radius:5px}
.scr-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.scr-slots span{text-align:center;font-size:.8125rem;padding:9px 6px;border-radius:10px;border:1px solid var(--line)}
.scr-slots .slot-on{background:var(--violet);color:#fff;border-color:var(--violet)}
.scr-funnel{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.scr-funnel>div{background:#f5f3f8;border-radius:10px;padding:10px;display:grid;gap:2px}
.scr-funnel strong{font-size:1.25rem;font-variant-numeric:tabular-nums;line-height:1.2}
.scr-funnel small{font-size:.75rem;color:var(--muted)}
.scr-site{display:grid;gap:10px}
.scr-site-bar{display:flex;gap:5px}
.scr-site-bar i{width:8px;height:8px;border-radius:50%;background:#dcd6e6}
.scr-site-hero{display:grid;gap:6px;padding:14px;border-radius:10px;background:#0f0c16}
.scr-site-hero b{display:block;width:60%;height:12px;border-radius:6px;background:#fff}
.scr-site-hero i{display:block;height:6px;border-radius:3px;background:#3d3550}
.scr-site-hero i.short{width:40%}
.scr-site-form{display:grid;gap:8px;padding:12px;border-radius:10px;border:1px solid var(--line)}
.scr-site-form small{font-weight:500;font-size:.8125rem}
.field{display:block;padding:9px 12px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:.8125rem;color:var(--muted)}
.scr-toast{justify-self:end;font-size:.8125rem;padding:9px 12px;border-radius:10px;background:#17121f;color:#fff}
.scr-phone{max-width:280px;width:100%;margin-inline:auto;border:2px solid #17121f;border-radius:22px;padding:14px;display:grid;gap:10px;background:#fff}
.scr-phone-bar{font-size:.8125rem;font-weight:500;text-align:center;padding-bottom:8px;border-bottom:1px solid var(--line)}
.scr-phone label{display:grid;gap:5px;font-size:.75rem;color:var(--muted)}
.field-photo{border-style:dashed;text-align:center;color:var(--violet)}
.field-sign{height:44px;background:repeating-linear-gradient(0deg,#fff 0 40px,var(--line) 40px 41px)}
.scr-net{position:relative;height:230px}
.scr-net::before{content:"";position:absolute;inset:12% 18%;border:1px dashed #d9d3e4;border-radius:50%}
.node{position:absolute;padding:8px 12px;border-radius:999px;background:#f5f3f8;border:1px solid var(--line);font-size:.8125rem;white-space:nowrap;transform:translate(-50%,-50%)}
.node-center{left:50%;top:50%;background:var(--violet);color:#fff;border-color:var(--violet);font-weight:500;z-index:1}
.n1{left:22%;top:18%}.n2{left:78%;top:18%}.n3{left:14%;top:56%}.n4{left:86%;top:56%}.n5{left:30%;top:90%}.n6{left:70%;top:90%}
.scr-note{margin:0;font-size:.8125rem;color:var(--muted)}
@media(max-width:540px){
  .screen-body{padding:14px 14px 16px}
  .scr-split{grid-template-columns:1fr}
  .scr-board{grid-template-columns:repeat(2,1fr)}
  .scr-board>div{min-height:0}
  .scr-fields>div{grid-template-columns:1fr;gap:2px}
  .scr-week{grid-template-columns:repeat(5,1fr)}
  .scr-week>div{padding:6px}
  .ev{font-size:.6875rem;padding:5px 6px}
  .scr-funnel{grid-template-columns:repeat(2,1fr)}
  .scr-slots{grid-template-columns:repeat(2,1fr)}
  .scr-actions small{margin-left:0;width:100%}
}
@media(prefers-reduced-motion:reduce){.gallery-panel{animation:agent-log-fade .2s ease both}.gallery-tab{transition:none}}
