:root {
  --ink: #101112;
  --graphite: #222426;
  --paper: #f8f8f6;
  --line: #d4d6d3;
  --muted: #626765;
  --signal: #28c8ba;
  --container: 1200px;
  --space: clamp(4.5rem, 10vw, 9rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--signal); outline-offset: 4px; }
.container { width: min(calc(100% - 3rem), var(--container)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.skip-link { position: fixed; z-index: 100; top: 1rem; left: 1rem; padding: .7rem 1rem; background: var(--signal); color: var(--ink); transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }

.site-header { position: sticky; z-index: 50; isolation: isolate; top: 0; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 94%, transparent); backdrop-filter: blur(10px); }
.header-inner { display: flex; min-height: 74px; align-items: center; justify-content: space-between; gap: 2rem; }
.wordmark { font-size: 1.1rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.wordmark span { color: var(--muted); font-weight: 400; }
.primary-nav ul { display: flex; align-items: center; gap: 1.65rem; margin: 0; padding: 0; list-style: none; }
.primary-nav a { font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.primary-nav a:hover, .primary-nav a[aria-current="page"] { color: var(--muted); }
.nav-group { position: relative; display: flex; align-items: center; gap: .3rem; }
.nav-group::after { position: absolute; top: 100%; left: -.8rem; width: 250px; height: .65rem; content: ""; }
.nav-group button { border: 0; padding: .2rem; background: transparent; color: var(--muted); cursor: pointer; }
.nav-group > ul { position: absolute; z-index: 1; top: calc(100% + .65rem); left: -.8rem; display: none; width: 250px; padding: .7rem; border: 1px solid var(--line); background: var(--paper); box-shadow: 0 16px 35px rgb(16 17 18 / 9%); }
.nav-group:hover > ul, .nav-group > ul.is-open { display: grid; gap: .25rem; }
.nav-group > ul a { display: block; padding: .6rem .7rem; letter-spacing: .04em; text-transform: none; }
.nav-group > ul a:hover { background: #eceeeb; color: var(--ink); }
.nav-contact { border-bottom: 1px solid var(--ink); padding-bottom: .2rem; }
.menu-toggle { display: none; }

.section { padding-block: var(--space); }
.section-dark { background: var(--ink); color: white; }
.section-soft { background: #eff0ed; }
.section-graphite { background: var(--graphite); color: white; }
.eyebrow, .section-index { margin: 0 0 1.25rem; color: var(--muted); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.section-dark .eyebrow, .section-graphite .eyebrow { color: var(--signal); }
h1, h2 { max-width: 13ch; margin: 0; font-weight: 500; letter-spacing: 0; line-height: 1.02; }
h1 { font-size: clamp(3.2rem, 7vw, 6.5rem); }
h2 { font-size: clamp(2.2rem, 4.5vw, 4.4rem); }
p { max-width: 56ch; }
.lead { max-width: 45ch; margin: 2rem 0; color: #c7ccca; font-size: clamp(1.05rem, 1.5vw, 1.35rem); }
.text-link { display: inline-block; margin-top: 1.5rem; border-bottom: 1px solid currentColor; padding-bottom: .25rem; font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.text-link:hover { color: var(--signal); }
.hero-layout { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 5rem; min-height: 560px; }
.hero-field { position: relative; min-height: 260px; border-top: 1px solid #454948; border-bottom: 1px solid #454948; }
.hero-field span { position: absolute; display: block; height: 1px; background: var(--signal); transform-origin: left; }
.hero-field span:nth-child(1) { top: 23%; left: 0; width: 90%; transform: rotate(20deg); }
.hero-field span:nth-child(2) { top: 52%; left: 10%; width: 73%; transform: rotate(-25deg); }
.hero-field span:nth-child(3) { top: 78%; left: 0; width: 100%; }
.feature-layout { display: grid; grid-template-columns: .15fr .9fr .95fr; align-items: center; gap: 3.5rem; }
.feature-layout-reverse > :nth-child(2) { grid-column: 3; }
.feature-layout-reverse > :nth-child(3) { grid-row: 1; grid-column: 2; }
.outline-panel { display: grid; min-height: 330px; place-items: center; border: 1px solid var(--line); color: var(--muted); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.section-intro { padding-left: 15%; }
.contact-band { display: flex; align-items: end; justify-content: space-between; gap: 3rem; }
.site-footer { border-top: 1px solid var(--line); padding-block: 2.5rem; color: var(--muted); }
.site-footer .container { display: flex; justify-content: space-between; gap: 2rem; }
.site-footer p { margin: 0; font-size: .85rem; }

@media (max-width: 820px) {
  .container { width: min(calc(100% - 2rem), var(--container)); }
  .menu-toggle { display: grid; width: 36px; height: 36px; place-content: center; gap: 5px; border: 1px solid var(--line); background: transparent; cursor: pointer; }
  .menu-toggle span:not(.sr-only) { display: block; width: 15px; height: 1px; background: var(--ink); }
  .primary-nav { position: absolute; top: 74px; right: 0; left: 0; display: none; border-bottom: 1px solid var(--line); background: var(--paper); }
  .primary-nav.is-open { display: block; }
  .primary-nav > ul { display: grid; gap: 0; padding: 1rem; }
  .primary-nav > ul > li { border-bottom: 1px solid var(--line); padding: .8rem 0; }
  .nav-group { display: grid; grid-template-columns: 1fr auto; }
  .nav-group::after { display: none; }
  .nav-group > ul { position: static; grid-column: 1 / -1; width: auto; margin-top: .7rem; box-shadow: none; }
  .nav-group:hover > ul { display: none; }
  .nav-group:hover > ul.is-open { display: grid; }
  .hero-layout, .feature-layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .hero-layout { min-height: auto; }
  .hero-field { min-height: 180px; }
  .feature-layout-reverse > :nth-child(2), .feature-layout-reverse > :nth-child(3) { grid-column: auto; grid-row: auto; }
  .section-index { margin: 0; }
  .outline-panel { min-height: 220px; }
  .section-intro { padding-left: 0; }
  .contact-band, .site-footer .container { display: grid; gap: 1rem; }
}

/* Inteligencia Artificial */
.ai-intelligence-hero { padding-block: clamp(3.5rem, 6vw, 6rem); background: var(--ink); color: #fff; overflow: hidden; }.ai-intelligence-hero__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(350px, 1.05fr); gap: clamp(3rem, 8vw, 9rem); align-items: center; min-height: 560px; }.ai-intelligence-hero h1 { max-width: 11ch; font-size: clamp(3rem, 4.8vw, 5.4rem); }.ai-intelligence-hero .lead { margin: 1.5rem 0 2rem; }.ai-intelligence-hero__visual { position: relative; min-height: 410px; overflow: hidden; border: 1px solid #454a48; background-image: linear-gradient(130deg, transparent 0 48%, rgb(113 75 103 / 20%) 48% 49%, transparent 49% 100%), linear-gradient(rgb(40 200 186 / 9%) 1px, transparent 1px), linear-gradient(90deg, rgb(40 200 186 / 9%) 1px, transparent 1px); background-size: auto, 38px 38px, 38px 38px; }.ai-intelligence-hero__visual span { position: absolute; width: 11px; aspect-ratio: 1; border: 1px solid var(--signal); border-radius: 50%; background: var(--ink); }.ai-intelligence-hero__visual span::after { position: absolute; top: 50%; left: 100%; width: clamp(70px, 14vw, 170px); height: 1px; background: var(--signal); content: ""; transform-origin: left; }.ai-intelligence-hero__visual span:nth-child(1) { top: 20%; left: 14%; }.ai-intelligence-hero__visual span:nth-child(1)::after { transform: rotate(24deg); }.ai-intelligence-hero__visual span:nth-child(2) { top: 42%; left: 47%; }.ai-intelligence-hero__visual span:nth-child(2)::after { width: 105px; transform: rotate(-31deg); }.ai-intelligence-hero__visual span:nth-child(3) { top: 70%; left: 20%; }.ai-intelligence-hero__visual span:nth-child(3)::after { transform: rotate(-15deg); }.ai-intelligence-hero__visual span:nth-child(4) { top: 30%; left: 78%; }.ai-intelligence-hero__visual span:nth-child(4)::after, .ai-intelligence-hero__visual span:nth-child(5)::after { display: none; }.ai-intelligence-hero__visual span:nth-child(5) { top: 70%; left: 70%; }.ai-intelligence-hero__visual i { position: absolute; color: #aeb5b1; font-size: .65rem; font-style: normal; font-weight: 700; letter-spacing: .1em; }.ai-intelligence-hero__visual i:nth-of-type(1) { top: 13%; left: 47%; }.ai-intelligence-hero__visual i:nth-of-type(2) { top: 57%; left: 52%; }.ai-intelligence-hero__visual i:nth-of-type(3) { top: 76%; left: 48%; }
.ai-information, .ai-systems { padding-block: var(--space); }.ai-intelligence-intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 5rem); }.ai-intelligence-intro .eyebrow { padding-top: .45rem; }.ai-intelligence-intro h2 { max-width: 13ch; }.ai-intelligence-intro p:not(.eyebrow) { align-self: end; margin: 0; color: var(--muted); }.ai-information__flow { display: flex; align-items: center; justify-content: space-between; gap: .8rem; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); padding-block: 2rem; }.ai-information__flow span { font-size: clamp(1rem, 1.7vw, 1.4rem); font-weight: 600; }.ai-information__flow i { color: #017e84; font-size: 1.4rem; font-style: normal; }.ai-information ul { display: flex; flex-wrap: wrap; gap: .75rem 2rem; margin: 1.4rem 0 0; padding: 0; list-style: none; }.ai-information li { color: var(--muted); font-size: .75rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }.ai-information li::before { margin-right: .55rem; color: #714b67; content: "•"; }
.ai-knowledge { padding-block: var(--space); background: #e9edeb; }.ai-knowledge__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(300px, 1.05fr); gap: clamp(4rem, 10vw, 10rem); align-items: center; }.ai-knowledge h2 { max-width: 12ch; margin-bottom: 1.75rem; }.ai-knowledge p:not(.eyebrow) { max-width: 35rem; color: var(--muted); }.ai-knowledge__stack { display: grid; justify-items: center; }.ai-knowledge__stack div { width: min(100%, 420px); padding: 1rem 1.3rem; border: 1px solid var(--line); background: #e9edeb; font-size: 1rem; font-weight: 600; text-align: center; }.ai-knowledge__stack div:nth-of-type(3) { border-color: #017e84; color: #017e84; }.ai-knowledge__stack i { width: 1px; height: 45px; background: #017e84; }
.ai-systems { background: var(--paper); }.ai-systems__architecture { display: grid; justify-items: center; }.ai-systems__architecture div, .ai-systems__architecture strong { width: min(100%, 620px); padding: 1rem 1.3rem; border: 1px solid var(--line); font-size: clamp(1rem, 1.8vw, 1.3rem); font-weight: 600; text-align: center; }.ai-systems__architecture strong { border-color: #017e84; color: #017e84; }.ai-systems__architecture i { color: #017e84; font-size: 1.5rem; font-style: normal; }.ai-next { padding-block: var(--space); background: var(--graphite); color: #fff; }.ai-next__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(300px, 1.05fr); gap: clamp(4rem, 10vw, 10rem); align-items: center; }.ai-next h2 { max-width: 12ch; margin-bottom: 1.75rem; }.ai-next p:not(.eyebrow) { color: #c8ceca; }.ai-next__visual { position: relative; min-height: 280px; overflow: hidden; border-block: 1px solid #565b59; background-image: linear-gradient(90deg, rgb(40 200 186 / 10%) 1px, transparent 1px); background-size: 42px 100%; }.ai-next__visual span { position: absolute; width: 14px; aspect-ratio: 1; border: 1px solid var(--signal); border-radius: 50%; }.ai-next__visual span:nth-child(1) { top: 22%; left: 12%; }.ai-next__visual span:nth-child(2) { top: 57%; left: 39%; }.ai-next__visual span:nth-child(3) { top: 35%; left: 68%; }.ai-next__visual span:nth-child(4) { top: 70%; left: 82%; }.ai-next__visual span::after { position: absolute; top: 50%; left: 100%; width: 160px; height: 1px; background: var(--signal); content: ""; transform: rotate(27deg); transform-origin: left; }.ai-next__visual span:nth-child(4)::after { display: none; }
.ai-intelligence-closing { padding-block: clamp(6rem, 12vw, 11rem); background: var(--ink); color: #fff; }.ai-intelligence-closing .eyebrow { color: var(--signal); }.ai-intelligence-closing h2 { max-width: 13ch; margin-bottom: 1.75rem; }.ai-intelligence-closing p:not(.eyebrow) { color: #c8ceca; }
@media (max-width: 820px) { .ai-intelligence-hero__grid, .ai-knowledge__grid, .ai-next__grid { grid-template-columns: 1fr; }.ai-intelligence-hero__grid { min-height: auto; }.ai-intelligence-hero__visual { min-height: 320px; }.ai-intelligence-intro { grid-template-columns: 1fr; gap: 0; }.ai-intelligence-intro .eyebrow { padding-top: 0; }.ai-information__flow { flex-wrap: wrap; justify-content: center; }.ai-information__flow span { font-size: .9rem; }.ai-knowledge__stack { margin-top: 1rem; }.ai-next__visual { min-height: 240px; } }

/* Home-only composition */
.home { background: var(--paper); }
.home-hero { position: relative; isolation: isolate; min-height: calc(100svh - 74px); padding: 3rem 0 1.25rem; border-bottom: clamp(2rem, 3vw, 3.5rem) solid #fff; background: var(--ink); color: #fff; overflow: hidden; }
.home-hero__layout { display: grid; grid-template-columns: minmax(0, 55%); align-items: end; min-height: calc(100svh - 74px - 7rem); }
.home-hero__copy { position: relative; z-index: 2; }
.home-hero h1 { max-width: 10ch; font-size: clamp(3.1rem, 6.3vw, 6.3rem); }
.home-hero .lead { max-width: 51ch; margin: 1.75rem 0 0; }
.home-hero__actions { display: flex; flex-wrap: wrap; gap: 1.5rem 2.5rem; margin-top: 1.75rem; }
.home-hero__actions .text-link { margin-top: 0; }
.home-hero__signal { position: absolute; z-index: 0; inset: 0; overflow: hidden; background: var(--ink); }
.home-hero__signal::after { position: absolute; inset: 0; background: linear-gradient(90deg, var(--ink) 0%, rgb(16 17 18 / 92%) 24%, rgb(16 17 18 / 62%) 50%, transparent 76%); content: ""; pointer-events: none; }
.home-hero__signal img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }
.home-hero__foot { position: relative; z-index: 2; display: flex; justify-content: space-between; margin-top: clamp(2rem, 3vw, 3rem); border-top: 1px solid #4a4e4c; padding-top: 1rem; color: #aeb5b1; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

.home-verticals { background: var(--ink); }
.home-verticals__grid { display: grid; grid-template-columns: 1fr 1fr; }
.home-vertical { position: relative; display: block; min-height: 0; padding: clamp(1.5rem, 2vw, 2rem); color: #fff; overflow: hidden; }
.home-vertical--odoo { background: var(--graphite); border-right: 1px solid #4a4e4c; }
.home-vertical--ai { background: #121413; }
.home-vertical::after { position: absolute; right: -22%; bottom: -28%; width: 82%; aspect-ratio: 1; border: 1px solid rgb(40 200 186 / 24%); border-radius: 50%; content: ""; }
.home-vertical__number { position: relative; z-index: 1; color: var(--signal); font-size: .72rem; font-weight: 700; letter-spacing: .1em; }
.home-vertical__content { position: relative; z-index: 1; display: flex; flex-direction: column; height: 100%; max-width: 34rem; padding-left: 0; }
.home-vertical .eyebrow { color: var(--signal); }
.home-vertical h2 { max-width: 16ch; font-size: clamp(2rem, 2.6vw, 2.75rem); line-height: 1.06; }
.home-vertical__description { max-width: 48ch; margin: 1rem 0 0; color: #c8ceca; }
.home-vertical__solutions { margin: auto 0 0; padding: 0; border-top: 1px solid #555a58; list-style: none; }
.home-vertical__solutions li { border-bottom: 1px solid #555a58; }
.home-vertical__solutions a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .55rem 0; font-size: .88rem; }
.home-vertical__solutions a:hover { color: var(--signal); }
.home-vertical__solutions span { color: var(--signal); font-size: 1.05rem; }
.home-vertical__cta { margin-top: .9rem; }

.home-why { padding-block: clamp(3rem, 5vw, 4.5rem); background: var(--paper); }
.home-why__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(2rem, 5vw, 4rem); }
.home-why__intro .eyebrow { color: var(--muted); }
.home-why__intro h2 { max-width: 15ch; margin-bottom: 1.5rem; }
.home-why__intro > p:not(.eyebrow) { color: var(--muted); }
.home-why__list { margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; }
.home-why__list li { padding: .8rem 0; border-bottom: 1px solid var(--line); }
.home-why__list > li > span { color: var(--signal); font-size: .72rem; font-weight: 700; letter-spacing: .1em; }
.home-why__list h3 { margin: 0; font-size: clamp(1.2rem, 1.7vw, 1.6rem); font-weight: 500; line-height: 1.15; }
.home-why__list p { margin: .6rem 0 0; color: var(--muted); font-size: .94rem; }

.home-evolution { padding-block: clamp(5rem, 10vw, 9rem); background: var(--ink); color: #fff; overflow: hidden; }
.home-evolution__grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: clamp(3rem, 8vw, 8rem); align-items: stretch; }
.home-evolution__content { align-self: center; }
.home-evolution .eyebrow { color: var(--signal); }
.home-evolution h2 { max-width: 9ch; margin-bottom: 1.75rem; }
.home-evolution__lead { max-width: 49ch; margin: 0; color: #c8ceca; }
.home-evolution__areas { margin: 1.9rem 0 0; padding: 0; border-top: 1px solid #464a48; list-style: none; }
.home-evolution__areas li { padding: .9rem 0; border-bottom: 1px solid #464a48; }
.home-evolution__areas > li > span { color: var(--signal); font-size: .72rem; font-weight: 700; letter-spacing: .1em; }
.home-evolution__areas h3 { margin: 0; font-size: 1.05rem; font-weight: 600; line-height: 1.2; }
.home-evolution__areas p { margin: .45rem 0 0; color: #b8bfbb; font-size: .88rem; }
.home-evolution__actions { display: flex; flex-wrap: wrap; gap: 1.5rem 2.5rem; margin-top: 1.6rem; }
.home-evolution__actions .text-link { margin: 0; }
.home-evolution__visual { position: relative; min-height: 720px; overflow: hidden; background: #151817; }
.home-evolution__visual::after { position: absolute; inset: 0; background: linear-gradient(90deg, var(--ink) 0%, rgb(16 17 18 / 78%) 15%, transparent 48%, rgb(16 17 18 / 20%) 100%); content: ""; pointer-events: none; }
.home-evolution__visual img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 62% center; }

.home-solutions { padding-block: var(--space); }
.home-solutions--odoo { background: #eff0ed; }
.home-solutions--ai { background: var(--ink); color: #fff; }
.home-solutions > .container { display: grid; grid-template-columns: .75fr 1fr; gap: clamp(3rem, 10vw, 10rem); }
.home-solutions__intro h2 { margin-bottom: 1.5rem; }
.home-solutions--ai .eyebrow { color: var(--signal); }
.home-solutions__list { border-top: 1px solid currentColor; }
.home-solutions__list a { display: grid; grid-template-columns: 2.5rem 1fr auto; align-items: center; gap: 1rem; min-height: 82px; border-bottom: 1px solid rgb(16 17 18 / 25%); font-size: clamp(1.15rem, 1.6vw, 1.45rem); transition: color .2s ease, padding .2s ease; }
.home-solutions--ai .home-solutions__list a { border-color: #434745; }
.home-solutions__list a:hover { padding-inline: .7rem; color: var(--signal); }
.home-solutions__list span { color: var(--muted); font-size: .7rem; font-weight: 700; letter-spacing: .1em; }
.home-solutions__list b { font-size: 1.2rem; font-weight: 400; }

.home-odoo-specialization { padding-block: clamp(3rem, 5vw, 4.5rem); background: #eff0ed; }
.home-odoo-specialization__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 5vw, 4rem); }
.home-odoo-specialization__intro .eyebrow { color: #714b67; }
.home-odoo-specialization__intro h2 { max-width: 10ch; margin-bottom: 1.75rem; }
.home-odoo-specialization__intro > p:not(.eyebrow) { max-width: 43ch; color: var(--muted); }
.home-odoo-specialization .text-link:hover { color: #714b67; }
.home-odoo-specialization__content { min-width: 0; }
.home-odoo-specialization__visual { position: relative; min-height: 220px; margin: 0 0 1.25rem; overflow: hidden; border-block: 1px solid #babcb8; }
.home-odoo-specialization__visual::before { position: absolute; top: -36%; right: 5%; width: 300px; aspect-ratio: 1; border: 1px solid rgb(113 75 103 / 32%); border-radius: 50%; content: ""; }
.home-odoo-specialization__visual::after { position: absolute; bottom: 21%; left: 0; width: 100%; height: 1px; background: #017e84; content: ""; }
.odoo-wordmark { position: absolute; z-index: 1; top: 23%; left: 0; width: min(48%, 220px); min-height: 20px; }
.odoo-ecosystem { position: absolute; z-index: 1; right: 2%; bottom: 11%; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 2.5vw, 2.25rem); align-items: end; width: min(62%, 360px); }
.odoo-ecosystem img { display: block; width: 100%; max-width: 66px; justify-self: center; filter: drop-shadow(0 10px 16px rgb(16 17 18 / 12%)); }
.home-odoo-specialization__list { margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; }
.home-odoo-specialization__list li { padding: .9rem 0; border-bottom: 1px solid var(--line); }
.home-odoo-specialization__list > li > span { color: #017e84; font-size: .72rem; font-weight: 700; letter-spacing: .1em; }
.home-odoo-specialization__list h3 { margin: 0; font-size: clamp(1.25rem, 1.8vw, 1.7rem); font-weight: 500; line-height: 1.15; }
.home-odoo-specialization__list p { margin: .6rem 0 0; color: var(--muted); font-size: .94rem; }

.home-closing { padding-block: clamp(3.5rem, 5vw, 5rem); border-bottom: clamp(2rem, 3vw, 3.5rem) solid #fff; background: var(--graphite); color: #fff; }
.home-closing__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(2.5rem, 6vw, 6rem); }
.home-closing .eyebrow { color: var(--signal); }
.home-closing__identity h2 { max-width: 10ch; margin-bottom: 1.25rem; }
.home-closing__identity > p:not(.eyebrow) { max-width: 48ch; color: #c8ceca; }
.home-closing__partner { width: min(245px, 62%); margin: 3rem 0 0; border-top: 1px solid #5d625f; padding-top: 1.5rem; }
.home-closing__partner img { display: block; width: 100%; height: auto; }
.home-closing__contact { align-self: end; border-left: 1px solid #5d625f; padding-left: clamp(1.5rem, 3vw, 3rem); }
.home-closing__contact h3 { max-width: 12ch; margin: 0; font-size: clamp(2.3rem, 4vw, 4.3rem); font-weight: 500; line-height: 1.02; }
.home-closing__contact p { max-width: 45ch; margin: 1.2rem 0 0; color: #c8ceca; }
.home-closing__actions { display: flex; flex-wrap: wrap; gap: 1.2rem 2rem; margin-top: 1.5rem; }
.home-closing__actions .text-link { margin: 0; }
.home-closing__actions .text-link:hover { color: var(--signal); }
.home .site-footer { border-color: #4d514f; background: var(--ink); color: #b9bfbb; }
.home .site-footer .container { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 2rem; }
.home .site-footer .wordmark { color: #fff; }
.home-footer-nav { display: flex; justify-content: center; gap: 1rem; }
.home-footer-nav a { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.home-footer-nav a + a::before { margin-right: 1rem; color: #5d625f; content: "·"; }
.home-footer-nav a:hover { color: var(--signal); }
.home .site-footer p { justify-self: end; }

@keyframes signal-drift { to { translate: 4% 0; } }

@media (max-width: 820px) {
  .home-hero { min-height: 700px; padding-top: 3rem; }
  .home-hero__layout, .home-solutions > .container { grid-template-columns: 1fr; }
  .home-hero__layout { min-height: auto; }
  .home-hero__signal { display: none; }
  .home-hero h1 { font-size: clamp(3.4rem, 14vw, 5.4rem); }
  .home-hero__foot { gap: 1rem; font-size: .6rem; }
  .home-hero__foot span:last-child { display: none; }
  .home-section-heading { grid-template-columns: 1fr; gap: 0; }
  .home-section-heading .eyebrow { padding-top: 0; }
  .home-verticals__grid { grid-template-columns: 1fr; }
  .home-vertical { min-height: 470px; }
  .home-vertical--odoo { border-right: 0; border-bottom: 1px solid #4a4e4c; }
  .home-vertical > div { padding-inline: 1rem; }
  .home-why__grid { grid-template-columns: 1fr; gap: 3rem; }
  .home-evolution__grid { grid-template-columns: 1fr; gap: 3rem; }
  .home-evolution__visual { min-height: 360px; }
  .home-odoo-specialization__grid { grid-template-columns: 1fr; gap: 3rem; }
  .home-odoo-specialization__visual { min-height: 220px; }
  .home-closing__grid { grid-template-columns: 1fr; gap: 4rem; }
  .home-closing__contact { border-top: 1px solid #5d625f; border-left: 0; padding-top: 2rem; padding-left: 0; }
  .home .site-footer .container { grid-template-columns: 1fr; gap: 1.25rem; }
  .home-footer-nav { justify-content: flex-start; flex-wrap: wrap; }
  .home .site-footer p { justify-self: start; }
  .home-solutions > .container { gap: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero__signal span { animation: none; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Odoo landing */
.odoo-page { background: var(--paper); }
.odoo-page .eyebrow { color: #714b67; }
.odoo-page .text-link:hover { color: #017e84; }
.odoo-hero { padding-block: clamp(4rem, 8vw, 8rem); background: #f2f0f1; overflow: hidden; }
.odoo-hero__grid { display: grid; grid-template-columns: minmax(0, .93fr) minmax(320px, 1.07fr); gap: clamp(3rem, 8vw, 9rem); align-items: center; min-height: 630px; }
.odoo-hero h1 { max-width: 9ch; font-size: clamp(3.5rem, 6vw, 6.7rem); }
.odoo-hero .lead { margin: 1.75rem 0 0; color: var(--muted); }
.odoo-hero__actions { display: flex; flex-wrap: wrap; gap: 1.5rem 2.5rem; margin-top: 2.25rem; }
.odoo-hero__actions .text-link { margin: 0; }
.odoo-hero__visual { position: relative; min-height: 480px; overflow: hidden; border-block: 1px solid #cbc6c9; }
.odoo-hero__visual::before { position: absolute; top: -36%; right: -14%; width: 79%; aspect-ratio: 1; border: 1px solid rgb(113 75 103 / 35%); border-radius: 50%; content: ""; }
.odoo-hero__visual::after { position: absolute; top: 53%; right: 0; left: 0; height: 1px; background: #017e84; content: ""; }
.odoo-hero__logo { position: absolute; z-index: 1; top: 17%; left: 5%; width: min(46%, 250px); }
.odoo-hero__apps { position: absolute; z-index: 1; right: 5%; bottom: 15%; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.25rem, 3vw, 2.75rem); width: min(70%, 410px); }
.odoo-hero__apps img { display: block; width: 100%; max-width: 82px; justify-self: center; filter: drop-shadow(0 14px 18px rgb(16 17 18 / 14%)); }
.odoo-hero__apps img:nth-child(4) { grid-column: 1 / 2; translate: 57%; }
.odoo-hero__apps img:nth-child(5) { grid-column: 3 / 4; translate: -57%; }

.odoo-platform { padding-block: var(--space); background: var(--paper); }
.odoo-platform__intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 6rem); }
.odoo-platform__intro .eyebrow { padding-top: .45rem; }
.odoo-platform__intro h2 { max-width: 10ch; }
.odoo-platform__intro p { align-self: end; margin: 0; color: var(--muted); }
.odoo-app-grid { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; }
.odoo-app-grid li { display: grid; min-height: 175px; place-content: center; gap: .9rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: center; }
.odoo-app-grid li:nth-child(5n) { border-right: 0; }
.odoo-app-grid img { width: 55px; height: 55px; object-fit: contain; justify-self: center; }
.odoo-app-grid span { font-size: .78rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }

.odoo-process { padding-block: var(--space); background: var(--graphite); color: #fff; }
.odoo-process .eyebrow { color: #55a9ac; }
.odoo-process__intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 6rem); }
.odoo-process__intro .eyebrow { padding-top: .45rem; }
.odoo-process__intro h2 { max-width: 12ch; }
.odoo-process__list { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; border-top: 1px solid #565b59; list-style: none; }
.odoo-process__list li { min-height: 260px; border-right: 1px solid #565b59; padding: 1.3rem; }
.odoo-process__list li:last-child { border-right: 0; }
.odoo-process__list span { color: #55a9ac; font-size: .72rem; font-weight: 700; letter-spacing: .1em; }
.odoo-process__list div { margin-top: clamp(3rem, 7vw, 7rem); }
.odoo-process__list h3 { margin: 0; font-size: 1.15rem; font-weight: 600; line-height: 1.15; }
.odoo-process__list p { margin: .7rem 0 0; color: #c8ceca; font-size: .88rem; }

.odoo-specialties { padding-block: var(--space); background: #ebe9e8; }
.odoo-specialties > .container { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(4rem, 11vw, 11rem); }
.odoo-specialties__intro h2 { max-width: 10ch; margin-bottom: 1.75rem; }
.odoo-specialties__intro > p:not(.eyebrow) { color: var(--muted); }
.odoo-specialties__list { border-top: 1px solid var(--ink); }
.odoo-specialties__list a { display: grid; grid-template-columns: 3rem 1fr auto; align-items: center; gap: 1rem; min-height: 92px; border-bottom: 1px solid var(--line); }
.odoo-specialties__list a:hover { color: #714b67; }
.odoo-specialties__list span { color: #017e84; font-size: .72rem; font-weight: 700; letter-spacing: .1em; }
.odoo-specialties__list strong { font-size: clamp(1.15rem, 1.7vw, 1.45rem); font-weight: 500; }
.odoo-specialties__list small { grid-column: 2; margin-top: -.7rem; color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .08em; }
.odoo-specialties__list i { grid-column: 3; grid-row: 1 / span 2; font-size: 1.25rem; font-style: normal; }

.odoo-partner { padding-block: clamp(6rem, 12vw, 11rem); background: var(--ink); color: #fff; }
.odoo-partner__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(260px, .9fr); gap: clamp(4rem, 12vw, 12rem); align-items: end; }
.odoo-partner .eyebrow { color: #55a9ac; }
.odoo-partner h2 { max-width: 12ch; margin-bottom: 1.75rem; }
.odoo-partner p:not(.eyebrow) { color: #c8ceca; }
.odoo-partner figure { margin: 0; border-top: 1px solid #565b59; padding-top: 2rem; }
.odoo-partner figure img { display: block; width: min(100%, 270px); margin-left: auto; }
.odoo-page .odoo-footer { border-color: #444846; background: var(--graphite); color: #b9bfbb; }
.odoo-page .odoo-footer .container { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 2rem; }
.odoo-page .odoo-footer .wordmark { color: #fff; }
.odoo-footer nav { display: flex; justify-content: center; gap: 1rem; }
.odoo-footer nav a { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.odoo-footer nav a + a::before { margin-right: 1rem; color: #5d625f; content: "·"; }
.odoo-footer nav a:hover { color: #55a9ac; }
.odoo-page .odoo-footer p { justify-self: end; }

@media (max-width: 820px) {
  .odoo-hero__grid, .odoo-specialties > .container, .odoo-partner__grid { grid-template-columns: 1fr; }
  .odoo-hero__grid { min-height: auto; }
  .odoo-hero__visual { min-height: 300px; }
  .odoo-platform__intro, .odoo-process__intro { grid-template-columns: 1fr; gap: 0; }
  .odoo-platform__intro .eyebrow, .odoo-process__intro .eyebrow { padding-top: 0; }
  .odoo-app-grid { grid-template-columns: repeat(2, 1fr); }
  .odoo-app-grid li, .odoo-app-grid li:nth-child(5n) { border-right: 1px solid var(--line); }
  .odoo-app-grid li:nth-child(even) { border-right: 0; }
  .odoo-process__list { grid-template-columns: 1fr; }
  .odoo-process__list li, .odoo-process__list li:last-child { min-height: auto; border-right: 0; border-bottom: 1px solid #565b59; }
  .odoo-process__list div { margin-top: 2rem; }
  .odoo-specialties > .container { gap: 3rem; }
  .odoo-partner__grid { gap: 3rem; }
  .odoo-partner figure img { margin-left: 0; }
  .odoo-page .odoo-footer .container { grid-template-columns: 1fr; gap: 1.25rem; }
  .odoo-footer nav { justify-content: flex-start; flex-wrap: wrap; }
  .odoo-page .odoo-footer p { justify-self: start; }
}

/* Odoo Construcción */
.construction-page { background: var(--paper); }
.construction-page .eyebrow { color: #714b67; }
.construction-hero { overflow: hidden; padding-block: clamp(3.5rem, 6vw, 6rem); background: #f2f0f1; }
.construction-hero__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(350px, 1.05fr); gap: clamp(3rem, 8vw, 9rem); align-items: center; min-height: 560px; }
.construction-hero h1 { max-width: 11ch; font-size: clamp(3.1rem, 5vw, 5.6rem); }
.construction-hero .lead { margin: 1.5rem 0 2rem; color: var(--muted); }
.construction-hero__visual { position: relative; min-height: 465px; overflow: hidden; border: 1px solid #c9c3c5; background-color: #e7e3e4; background-image: linear-gradient(rgb(113 75 103 / 12%) 1px, transparent 1px), linear-gradient(90deg, rgb(113 75 103 / 12%) 1px, transparent 1px); background-size: 42px 42px; }
.construction-hero__visual::before, .construction-hero__visual::after { position: absolute; border: 1px solid #017e84; content: ""; }
.construction-hero__visual::before { top: 12%; left: 8%; width: 64%; height: 56%; transform: skewY(-22deg); }
.construction-hero__visual::after { right: -15%; bottom: -45%; width: 84%; aspect-ratio: 1; border-color: rgb(113 75 103 / 42%); border-radius: 50%; }
.construction-hero__plan { position: absolute; inset: 0; z-index: 1; }
.construction-hero__plan span { position: absolute; display: block; border: 1px solid rgb(30 36 34 / 65%); }
.construction-hero__plan span:nth-child(1) { top: 21%; left: 16%; width: 48%; height: 22%; }
.construction-hero__plan span:nth-child(2) { top: 38%; left: 30%; width: 47%; height: 24%; }
.construction-hero__plan span:nth-child(3) { top: 57%; left: 12%; width: 42%; height: 19%; }
.construction-hero__plan span:nth-child(4) { top: 27%; left: 68%; width: 18%; height: 35%; }
.construction-hero__plan span:nth-child(5) { top: 14%; left: 17%; width: 1px; height: 67%; border: 0; background: #017e84; }
.construction-hero__plan span:nth-child(6) { top: 75%; left: 17%; width: 70%; height: 1px; border: 0; background: #017e84; }
.construction-hero__axis { position: absolute; z-index: 2; top: 8%; right: 7%; color: #017e84; font-size: .7rem; font-weight: 700; letter-spacing: .12em; }
.construction-hero__logo { position: absolute; z-index: 2; right: 8%; bottom: 14%; width: min(42%, 215px); }
.construction-hero__visual p { position: absolute; z-index: 2; bottom: 6%; left: 7%; margin: 0; color: var(--muted); font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.construction-integrated, .construction-ecosystem { padding-block: var(--space); }
.construction-section-intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 5rem); }
.construction-section-intro .eyebrow { padding-top: .45rem; }
.construction-section-intro h2 { max-width: 11ch; }
.construction-section-intro p:not(.eyebrow) { align-self: end; margin: 0; color: var(--muted); }
.construction-flow { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; counter-reset: flow; }
.construction-flow li { position: relative; min-height: 150px; padding: 1.25rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 1rem; font-weight: 600; }
.construction-flow li:nth-child(5n) { border-right: 0; }
.construction-flow li::before { display: block; margin-bottom: 3.3rem; color: #017e84; font-size: .68rem; font-weight: 700; letter-spacing: .1em; content: "0" counter(flow); counter-increment: flow; }
.construction-problem { padding-block: var(--space); background: var(--graphite); color: #fff; }
.construction-problem .eyebrow { color: #55a9ac; }
.construction-problem__intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 6rem); }
.construction-problem__intro .eyebrow { padding-top: .45rem; }
.construction-problem__intro h2 { max-width: 15ch; }
.construction-contrast { display: grid; grid-template-columns: minmax(0, 1fr) 130px minmax(0, 1fr); align-items: center; border-top: 1px solid #565b59; border-bottom: 1px solid #565b59; }
.construction-contrast article { min-height: 300px; padding: 2rem 0; }
.construction-contrast article > p { margin: 0 0 2.75rem; color: #55a9ac; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.construction-contrast__distributed ul { display: flex; flex-wrap: wrap; max-width: 380px; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.construction-contrast__distributed li { padding: .6rem .85rem; border: 1px solid #565b59; color: #c8ceca; font-size: .9rem; }
.construction-contrast__connector { display: grid; place-items: center; gap: .7rem; color: #55a9ac; }
.construction-contrast__connector span { width: 1px; height: 54px; background: #55a9ac; }
.construction-contrast__connector i { font-size: 1.5rem; font-style: normal; }
.construction-contrast__centralized { padding-left: 2rem !important; border-left: 1px solid #565b59; }
.construction-contrast__centralized strong { display: block; max-width: 16ch; color: #fff; font-family: Georgia, serif; font-size: clamp(1.5rem, 2.5vw, 2.5rem); font-weight: 400; line-height: 1.08; }
.construction-solution { padding-block: var(--space); background: #ebe9e8; }
.construction-solution__grid { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); gap: clamp(4rem, 10vw, 10rem); }
.construction-solution h2 { max-width: 12ch; margin-bottom: 1.75rem; }
.construction-solution p:not(.eyebrow) { max-width: 35rem; color: var(--muted); }
.construction-capabilities { display: grid; grid-template-columns: repeat(2, 1fr); align-self: end; margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; }
.construction-capabilities li { min-height: 86px; padding: 1.3rem 0; border-bottom: 1px solid var(--line); font-size: 1.05rem; font-weight: 600; }
.construction-capabilities li:nth-child(odd) { padding-right: 1rem; border-right: 1px solid var(--line); }
.construction-capabilities li:nth-child(even) { padding-left: 1.5rem; }
.construction-ecosystem { background: var(--paper); }
.construction-ecosystem__map { display: grid; grid-template-columns: .85fr 1.15fr 1fr; border-top: 1px solid var(--ink); }
.construction-ecosystem__group { position: relative; min-height: 260px; padding: 1.4rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.construction-ecosystem__group:last-child { border-right: 0; }
.construction-ecosystem__group::after { position: absolute; top: 50%; right: -11px; z-index: 1; width: 21px; height: 21px; border: 1px solid #017e84; border-radius: 50%; background: var(--paper); content: ""; }
.construction-ecosystem__group:last-child::after { display: none; }
.construction-ecosystem__group > p { margin: 0; color: #017e84; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.construction-ecosystem__group > div { display: flex; flex-wrap: wrap; align-items: end; gap: clamp(1.25rem, 3vw, 2.5rem); height: calc(100% - 2rem); padding-top: 3rem; }
.construction-ecosystem__group img { width: 66px; height: 66px; object-fit: contain; }
.construction-closing { padding-block: clamp(6rem, 12vw, 11rem); background: var(--ink); color: #fff; }
.construction-closing__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(220px, .9fr); gap: clamp(4rem, 12vw, 12rem); align-items: end; }
.construction-closing h2 { max-width: 15ch; margin-bottom: 2rem; }
.construction-closing img { display: block; width: min(100%, 245px); margin-left: auto; border-top: 1px solid #565b59; padding-top: 2rem; }

@media (max-width: 820px) {
  .construction-hero__grid, .construction-solution__grid, .construction-closing__grid { grid-template-columns: 1fr; }
  .construction-hero__grid { min-height: auto; }
  .construction-hero__visual { min-height: 350px; }
  .construction-section-intro, .construction-problem__intro { grid-template-columns: 1fr; gap: 0; }
  .construction-section-intro .eyebrow, .construction-problem__intro .eyebrow { padding-top: 0; }
  .construction-flow { grid-template-columns: repeat(2, 1fr); }
  .construction-flow li, .construction-flow li:nth-child(5n) { border-right: 1px solid var(--line); }
  .construction-flow li:nth-child(even) { border-right: 0; }
  .construction-contrast { grid-template-columns: 1fr; }
  .construction-contrast article { min-height: auto; }
  .construction-contrast__connector { grid-template-columns: 1fr auto 1fr; gap: .7rem; padding-block: 1rem; }
  .construction-contrast__connector span { width: 100%; height: 1px; }
  .construction-contrast__centralized { padding-left: 0 !important; border-top: 1px solid #565b59; border-left: 0; }
  .construction-capabilities { grid-template-columns: 1fr; }
  .construction-capabilities li:nth-child(odd), .construction-capabilities li:nth-child(even) { padding-right: 0; padding-left: 0; border-right: 0; }
  .construction-ecosystem__map { grid-template-columns: 1fr; }
  .construction-ecosystem__group, .construction-ecosystem__group:last-child { min-height: 190px; border-right: 0; }
  .construction-ecosystem__group::after { top: auto; right: auto; bottom: -11px; left: 50%; }
  .construction-closing img { margin-left: 0; }
}

/* Odoo Droguerías y Farmacias */
.pharma-page { background: var(--paper); }
.pharma-page .eyebrow { color: #714b67; }
.pharma-hero { overflow: hidden; padding-block: clamp(3.5rem, 6vw, 6rem); background: #edf1ee; }
.pharma-hero__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(350px, 1.05fr); gap: clamp(3rem, 8vw, 9rem); align-items: center; min-height: 560px; }
.pharma-hero h1 { max-width: 10ch; font-size: clamp(3.1rem, 5vw, 5.6rem); }
.pharma-hero .lead { margin: 1.5rem 0 2rem; color: var(--muted); }
.pharma-hero__visual { position: relative; min-height: 440px; overflow: hidden; border: 1px solid #c6d0c9; background-color: #e3ebe6; background-image: linear-gradient(90deg, rgb(1 126 132 / 10%) 1px, transparent 1px); background-size: 56px 100%; }
.pharma-hero__visual::before { position: absolute; top: 14%; right: -7%; width: 70%; aspect-ratio: 1; border: 1px solid rgb(113 75 103 / 40%); border-radius: 50%; content: ""; }
.pharma-hero__visual::after { position: absolute; top: 20%; right: 12%; width: 22%; aspect-ratio: 1; border: 1px solid #017e84; border-radius: 50%; content: ""; }
.pharma-hero__tracks { position: absolute; inset: 0; z-index: 1; }
.pharma-hero__tracks span { position: absolute; display: block; height: 1px; background: #017e84; transform-origin: left; }
.pharma-hero__tracks span:nth-child(1) { top: 25%; left: 0; width: 45%; transform: rotate(19deg); }
.pharma-hero__tracks span:nth-child(2) { top: 45%; left: 9%; width: 62%; transform: rotate(-13deg); }
.pharma-hero__tracks span:nth-child(3) { top: 68%; left: 0; width: 51%; transform: rotate(-27deg); }
.pharma-hero__tracks span:nth-child(4) { top: 25%; left: 43%; width: 9px; height: 9px; border-radius: 50%; background: #714b67; }
.pharma-hero__tracks span:nth-child(5) { top: 56%; left: 67%; width: 9px; height: 9px; border-radius: 50%; background: #714b67; }
.pharma-hero__tracks span:nth-child(6) { top: 56%; left: 28%; width: 9px; height: 9px; border-radius: 50%; background: #714b67; }
.pharma-hero__visual img { position: absolute; z-index: 2; right: 8%; bottom: 17%; width: min(46%, 230px); }
.pharma-hero__visual p { position: absolute; z-index: 2; bottom: 7%; left: 7%; margin: 0; color: var(--muted); font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.pharma-integrated, .pharma-ecosystem { padding-block: var(--space); }
.pharma-intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 5rem); }
.pharma-intro .eyebrow { padding-top: .45rem; }
.pharma-intro h2 { max-width: 12ch; }
.pharma-intro p:not(.eyebrow) { align-self: end; margin: 0; color: var(--muted); }
.pharma-areas { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; }
.pharma-areas li { display: grid; min-height: 165px; align-content: center; gap: 1rem; padding: 1.3rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 1rem; font-weight: 600; }
.pharma-areas li:nth-child(4n) { border-right: 0; }
.pharma-areas img { width: 58px; height: 58px; object-fit: contain; }
.pharma-differentials { padding-block: var(--space); background: var(--graphite); color: #fff; }
.pharma-differentials .eyebrow { color: #55a9ac; }
.pharma-differentials__intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 6rem); }
.pharma-differentials__intro .eyebrow { padding-top: .45rem; }
.pharma-differentials__intro h2 { max-width: 13ch; }
.pharma-integrations { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid #565b59; }
.pharma-integrations article { min-height: 360px; padding: 1.5rem 1.5rem 2rem 0; border-bottom: 1px solid #565b59; }
.pharma-integrations article + article { padding-right: 0; padding-left: 2rem; border-left: 1px solid #565b59; }
.pharma-integrations__index { margin: 0 0 clamp(3rem, 7vw, 7rem); color: #55a9ac; font-size: .7rem; font-weight: 700; letter-spacing: .1em; }
.pharma-integrations h3 { margin: 0 0 1.25rem; font-family: Georgia, serif; font-size: clamp(2.6rem, 5vw, 5rem); font-weight: 400; line-height: .95; }
.pharma-integrations article > p:last-child { max-width: 30rem; margin: 0; color: #c8ceca; }
.pharma-development { padding-block: var(--space); background: #ebe9e8; }
.pharma-development__grid { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); gap: clamp(4rem, 10vw, 10rem); }
.pharma-development h2 { max-width: 11ch; margin-bottom: 1.75rem; }
.pharma-development p:not(.eyebrow) { max-width: 35rem; color: var(--muted); }
.pharma-development ol { margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; counter-reset: development; }
.pharma-development li { display: grid; grid-template-columns: 3rem 1fr; min-height: 74px; align-items: center; border-bottom: 1px solid var(--line); font-size: 1.05rem; font-weight: 600; }
.pharma-development li::before { color: #017e84; font-size: .68rem; font-weight: 700; letter-spacing: .1em; content: "0" counter(development); counter-increment: development; }
.pharma-ecosystem { background: var(--paper); }
.pharma-ecosystem__line { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--ink); }
.pharma-ecosystem__line div { position: relative; display: grid; min-height: 210px; align-content: center; justify-items: center; gap: 1rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: center; }
.pharma-ecosystem__line div:last-child { border-right: 0; }
.pharma-ecosystem__line div::after { position: absolute; top: 50%; right: -7px; z-index: 1; width: 13px; height: 13px; border: 1px solid #017e84; border-radius: 50%; background: var(--paper); content: ""; }
.pharma-ecosystem__line div:last-child::after { display: none; }
.pharma-ecosystem__line img { width: 58px; height: 58px; object-fit: contain; }
.pharma-ecosystem__line span { font-size: .75rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.pharma-closing { padding-block: clamp(6rem, 12vw, 11rem); background: var(--ink); color: #fff; }
.pharma-closing__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(220px, .9fr); gap: clamp(4rem, 12vw, 12rem); align-items: end; }
.pharma-closing h2 { max-width: 13ch; margin-bottom: 1.5rem; }
.pharma-closing p { max-width: 31rem; margin: 0 0 2rem; color: #c8ceca; }
.pharma-closing img { display: block; width: min(100%, 245px); margin-left: auto; border-top: 1px solid #565b59; padding-top: 2rem; }

@media (max-width: 820px) {
  .pharma-hero__grid, .pharma-development__grid, .pharma-closing__grid { grid-template-columns: 1fr; }
  .pharma-hero__grid { min-height: auto; }
  .pharma-hero__visual { min-height: 350px; }
  .pharma-intro, .pharma-differentials__intro { grid-template-columns: 1fr; gap: 0; }
  .pharma-intro .eyebrow, .pharma-differentials__intro .eyebrow { padding-top: 0; }
  .pharma-areas { grid-template-columns: repeat(2, 1fr); }
  .pharma-areas li, .pharma-areas li:nth-child(4n) { border-right: 1px solid var(--line); }
  .pharma-areas li:nth-child(even) { border-right: 0; }
  .pharma-integrations { grid-template-columns: 1fr; }
  .pharma-integrations article { min-height: auto; }
  .pharma-integrations article + article { padding-top: 2rem; padding-left: 0; border-left: 0; }
  .pharma-ecosystem__line { grid-template-columns: repeat(2, 1fr); }
  .pharma-ecosystem__line div, .pharma-ecosystem__line div:last-child { min-height: 170px; border-right: 1px solid var(--line); }
  .pharma-ecosystem__line div:nth-child(even) { border-right: 0; }
  .pharma-ecosystem__line div::after { display: none; }
  .pharma-closing img { margin-left: 0; }
}

/* Odoo + Interbanking */
.integration-page { background: var(--paper); }
.integration-page .eyebrow { color: #714b67; }
.integration-hero { overflow: hidden; padding-block: clamp(3.5rem, 6vw, 6rem); background: #eef1f0; }
.integration-hero__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(350px, 1.05fr); gap: clamp(3rem, 8vw, 9rem); align-items: center; min-height: 560px; }
.integration-hero h1 { max-width: 11ch; font-size: clamp(3.1rem, 5vw, 5.6rem); }
.integration-hero .lead { margin: 1.5rem 0 2rem; color: var(--muted); }
.integration-hero__visual { position: relative; display: flex; min-height: 410px; align-items: center; justify-content: center; gap: clamp(.8rem, 2vw, 1.8rem); overflow: hidden; border: 1px solid #c8d0cd; background-image: linear-gradient(rgb(1 126 132 / 8%) 1px, transparent 1px), linear-gradient(90deg, rgb(1 126 132 / 8%) 1px, transparent 1px); background-size: 34px 34px; }
.integration-hero__visual::before { position: absolute; top: 13%; left: 13%; width: 74%; height: 1px; background: #017e84; content: ""; }
.integration-hero__visual::after { position: absolute; bottom: 14%; left: 13%; width: 74%; height: 1px; background: #714b67; content: ""; }
.integration-hero__visual img { position: relative; z-index: 1; width: min(24%, 130px); }
.integration-hero__link { position: relative; z-index: 1; color: #017e84; font-size: clamp(1.4rem, 2.5vw, 2.2rem); font-style: normal; }
.integration-hero__visual strong { position: relative; z-index: 1; padding: .9rem 1rem; border: 1px solid #017e84; background: #eef1f0; color: var(--ink); font-size: .82rem; font-weight: 700; letter-spacing: .06em; line-height: 1.3; text-align: center; text-transform: uppercase; }
.integration-hero__interbanking { position: relative; z-index: 1; color: var(--ink); font-family: Georgia, serif; font-size: clamp(1.25rem, 2.5vw, 2.1rem); }
.integration-hero__visual i { position: absolute; z-index: 0; width: 48%; aspect-ratio: 1; border: 1px solid rgb(113 75 103 / 32%); border-radius: 50%; }
.integration-ecosystems { padding-block: var(--space); }
.integration-intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 5rem); }
.integration-intro .eyebrow { padding-top: .45rem; }
.integration-intro h2 { max-width: 14ch; }
.integration-bridge { display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, .7fr) minmax(0, 1fr); align-items: stretch; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.integration-bridge__side { display: grid; min-height: 280px; align-content: center; justify-items: start; gap: 1.5rem; padding: 1.5rem; }
.integration-bridge__side:first-child { border-right: 1px solid var(--line); }
.integration-bridge__side:last-child { border-left: 1px solid var(--line); }
.integration-bridge__side img { width: min(150px, 68%); }
.integration-bridge__side strong { font-family: Georgia, serif; font-size: clamp(2rem, 4vw, 3.6rem); font-weight: 400; }
.integration-bridge__side p { max-width: 16rem; margin: 0; color: var(--muted); }
.integration-bridge__core { position: relative; display: grid; min-height: 280px; align-content: center; justify-items: center; gap: 1.25rem; padding: 1.5rem; text-align: center; }
.integration-bridge__core::before { position: absolute; top: 50%; right: 100%; left: -1px; height: 1px; background: #017e84; content: ""; }
.integration-bridge__core::after { position: absolute; top: 50%; right: -1px; left: 100%; height: 1px; background: #017e84; content: ""; }
.integration-bridge__core span { color: #017e84; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.integration-bridge__core strong { max-width: 11ch; font-size: 1.2rem; font-weight: 600; }
.integration-objective { padding-block: var(--space); background: #e8ece9; }
.integration-objective__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(4rem, 10vw, 10rem); }
.integration-objective h2 { max-width: 12ch; }
.integration-objective__grid > p { align-self: end; max-width: 35rem; margin: 0; color: var(--muted); }
.integration-objective__flow { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--ink); }
.integration-objective__flow span { color: #017e84; font-size: .75rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.integration-objective__flow i { flex: 1; height: 1px; background: linear-gradient(90deg, #017e84 0 50%, transparent 50% 100%); background-size: 10px 1px; }
.integration-architecture { padding-block: var(--space); background: var(--graphite); color: #fff; }
.integration-architecture .eyebrow { color: #55a9ac; }
.integration-architecture__intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 6rem); }
.integration-architecture__intro .eyebrow { padding-top: .45rem; }
.integration-architecture__intro h2 { max-width: 12ch; }
.integration-stack { display: grid; justify-items: center; margin: 0 auto; }
.integration-stack > div { display: grid; grid-template-columns: 3rem 1fr; width: min(100%, 620px); min-height: 95px; align-items: center; padding: 1rem 1.3rem; border: 1px solid #565b59; background: var(--graphite); }
.integration-stack span { color: #55a9ac; font-size: .68rem; font-weight: 700; letter-spacing: .1em; }
.integration-stack strong { font-size: clamp(1.25rem, 2.4vw, 2rem); font-weight: 500; }
.integration-stack__giga { border-color: #55a9ac !important; background: #1b2421 !important; }
.integration-stack > i { width: 1px; height: 50px; background: #55a9ac; }
.integration-signals { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem 1.8rem; margin: 3.5rem 0 0; padding: 0; list-style: none; }
.integration-signals li { color: #c8ceca; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.integration-signals li::before { margin-right: .6rem; color: #55a9ac; content: "•"; }
.integration-beyond { padding-block: var(--space); background: #ebe9e8; }
.integration-beyond__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(300px, 1.05fr); gap: clamp(4rem, 10vw, 10rem); align-items: center; }
.integration-beyond h2 { max-width: 13ch; margin-bottom: 1.75rem; }
.integration-beyond p:not(.eyebrow) { max-width: 35rem; margin-bottom: 2rem; color: var(--muted); }
.integration-beyond__network { position: relative; min-height: 330px; overflow: hidden; border-block: 1px solid var(--ink); background-image: linear-gradient(90deg, rgb(1 126 132 / 8%) 1px, transparent 1px); background-size: 44px 100%; }
.integration-beyond__network span { position: absolute; width: 18px; aspect-ratio: 1; border: 1px solid #017e84; border-radius: 50%; background: #ebe9e8; }
.integration-beyond__network span:nth-child(1) { top: 19%; left: 15%; }.integration-beyond__network span:nth-child(2) { top: 58%; left: 31%; }.integration-beyond__network span:nth-child(3) { top: 33%; left: 49%; }.integration-beyond__network span:nth-child(4) { top: 71%; left: 68%; }.integration-beyond__network span:nth-child(5) { top: 20%; left: 82%; }
.integration-beyond__network i { position: absolute; height: 1px; transform-origin: left; background: #714b67; }
.integration-beyond__network i:nth-of-type(1) { top: 23%; left: 17%; width: 35%; transform: rotate(17deg); }.integration-beyond__network i:nth-of-type(2) { top: 61%; left: 33%; width: 21%; transform: rotate(-49deg); }.integration-beyond__network i:nth-of-type(3) { top: 38%; left: 51%; width: 24%; transform: rotate(48deg); }.integration-beyond__network i:nth-of-type(4) { top: 72%; left: 70%; width: 31%; transform: rotate(-47deg); }
.integration-closing { padding-block: clamp(6rem, 12vw, 11rem); background: var(--ink); color: #fff; }
.integration-closing__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(220px, .9fr); gap: clamp(4rem, 12vw, 12rem); align-items: end; }
.integration-closing h2 { max-width: 14ch; margin-bottom: 2rem; }
.integration-closing img { display: block; width: min(100%, 245px); margin-left: auto; border-top: 1px solid #565b59; padding-top: 2rem; }

@media (max-width: 820px) {
  .integration-hero__grid, .integration-beyond__grid, .integration-closing__grid { grid-template-columns: 1fr; }
  .integration-hero__grid { min-height: auto; }
  .integration-hero__visual { min-height: 320px; }
  .integration-intro, .integration-architecture__intro { grid-template-columns: 1fr; gap: 0; }
  .integration-intro .eyebrow, .integration-architecture__intro .eyebrow { padding-top: 0; }
  .integration-bridge { grid-template-columns: 1fr; }
  .integration-bridge__side, .integration-bridge__core { min-height: 185px; }
  .integration-bridge__side:first-child, .integration-bridge__side:last-child { border: 0; border-bottom: 1px solid var(--line); }
  .integration-bridge__core { border-bottom: 1px solid var(--line); }
  .integration-bridge__core::before, .integration-bridge__core::after { display: none; }
  .integration-objective__grid { grid-template-columns: 1fr; gap: 2rem; }
  .integration-objective__flow { flex-wrap: wrap; }
  .integration-objective__flow i { min-width: 30px; }
  .integration-beyond__network { min-height: 270px; }
  .integration-closing img { margin-left: 0; }
}

/* Integraciones y Desarrollo */
.integrations-page { background: var(--paper); }
.integrations-page .site-header { background: rgb(16 17 18 / 94%); border-color: #414644; color: #fff; }
.integrations-page .wordmark span { color: #b8bfbb; }
.integrations-page .nav-group button { color: #b8bfbb; }
.integrations-page .nav-contact { border-color: #fff; }
.integrations-page .primary-nav a:hover, .integrations-page .primary-nav a[aria-current="page"] { color: #b8bfbb; }
.integrations-page .nav-group > ul { background: var(--graphite); border-color: #4b504e; }
.integrations-page .nav-group > ul a:hover { background: #343836; color: #fff; }
.integrations-page .eyebrow { color: #017e84; }
.integrations-hero { padding-block: clamp(3.5rem, 6vw, 6rem); background: var(--ink); color: #fff; overflow: hidden; }
.integrations-hero__grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(350px, 1.08fr); gap: clamp(3rem, 8vw, 9rem); align-items: center; min-height: 540px; }
.integrations-hero h1 { max-width: 12ch; font-size: clamp(3rem, 4.8vw, 5.3rem); }
.integrations-hero .lead { margin: 1.5rem 0 2rem; }
.integrations-hero__visual { position: relative; min-height: 430px; overflow: hidden; border: 1px solid #454a48; background-image: linear-gradient(rgb(40 200 186 / 11%) 1px, transparent 1px), linear-gradient(90deg, rgb(40 200 186 / 11%) 1px, transparent 1px); background-size: 44px 44px; }
.integrations-hero__visual span { position: absolute; width: 14px; aspect-ratio: 1; border: 1px solid var(--signal); border-radius: 50%; background: var(--ink); }
.integrations-hero__visual span::after { position: absolute; top: 50%; left: 100%; width: clamp(80px, 15vw, 190px); height: 1px; background: var(--signal); content: ""; transform-origin: left; }
.integrations-hero__visual span:nth-child(1) { top: 22%; left: 16%; }.integrations-hero__visual span:nth-child(1)::after { transform: rotate(22deg); }.integrations-hero__visual span:nth-child(2) { top: 47%; left: 45%; }.integrations-hero__visual span:nth-child(2)::after { width: clamp(60px, 10vw, 120px); transform: rotate(-32deg); }.integrations-hero__visual span:nth-child(3) { top: 66%; left: 22%; }.integrations-hero__visual span:nth-child(3)::after { width: clamp(110px, 19vw, 235px); transform: rotate(-11deg); }.integrations-hero__visual span:nth-child(4) { top: 31%; left: 73%; }.integrations-hero__visual span:nth-child(4)::after { display: none; }.integrations-hero__visual span:nth-child(5) { top: 76%; left: 75%; }.integrations-hero__visual span:nth-child(5)::after { display: none; }
.integrations-hero__visual i { position: absolute; color: #aeb5b1; font-size: .66rem; font-style: normal; font-weight: 700; letter-spacing: .11em; }.integrations-hero__visual i:nth-of-type(1) { top: 15%; left: 48%; }.integrations-hero__visual i:nth-of-type(2) { top: 56%; left: 61%; }.integrations-hero__visual i:nth-of-type(3) { top: 74%; left: 45%; }
.integrations-odoo { padding-block: var(--space); }
.integrations-intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 5rem); }
.integrations-intro .eyebrow { padding-top: .45rem; }
.integrations-intro h2 { max-width: 12ch; }
.integrations-intro p:not(.eyebrow) { align-self: end; margin: 0; color: var(--muted); }
.integrations-orbit { position: relative; display: grid; min-height: 425px; grid-template-columns: 1fr 1fr 1fr; align-items: center; overflow: hidden; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); background-image: linear-gradient(90deg, rgb(1 126 132 / 8%) 1px, transparent 1px); background-size: 45px 100%; }
.integrations-orbit ul { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; }.integrations-orbit li { position: absolute; color: var(--muted); font-size: .7rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }.integrations-orbit li:nth-child(1) { top: 16%; left: 8%; }.integrations-orbit li:nth-child(2) { top: 75%; left: 14%; }.integrations-orbit li:nth-child(3) { top: 19%; left: 42%; }.integrations-orbit li:nth-child(4) { top: 78%; left: 48%; }.integrations-orbit li:nth-child(5) { top: 18%; right: 8%; }.integrations-orbit li:nth-child(6) { top: 76%; right: 13%; }
.integrations-orbit__external, .integrations-orbit__layer, .integrations-orbit img { position: relative; z-index: 1; justify-self: center; }
.integrations-orbit__external { grid-column: 1; padding: 1rem; border: 1px solid var(--line); background: var(--paper); font-size: clamp(1rem, 1.8vw, 1.4rem); font-weight: 600; line-height: 1.18; text-align: center; }
.integrations-orbit__layer { grid-column: 2; padding: 1.25rem; border: 1px solid #017e84; background: var(--paper); color: #017e84; font-size: clamp(1rem, 1.8vw, 1.4rem); font-weight: 700; line-height: 1.18; text-align: center; }
.integrations-orbit img { grid-column: 3; width: min(55%, 170px); }
.integrations-orbit::before, .integrations-orbit::after { position: absolute; top: 50%; z-index: 0; height: 1px; background: #017e84; content: ""; }.integrations-orbit::before { left: 16%; width: 34%; }.integrations-orbit::after { right: 16%; width: 34%; }
.integrations-development { padding-block: var(--space); background: #e9edeb; }
.integrations-development__grid { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); gap: clamp(4rem, 10vw, 10rem); }
.integrations-development h2 { max-width: 11ch; margin-bottom: 1.75rem; }.integrations-development p:not(.eyebrow) { max-width: 35rem; color: var(--muted); }
.integrations-development ol { margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; counter-reset: integrations-development; }.integrations-development li { display: grid; grid-template-columns: 3rem 1fr; min-height: 74px; align-items: center; border-bottom: 1px solid var(--line); font-size: 1.05rem; font-weight: 600; }.integrations-development li::before { color: #017e84; font-size: .68rem; font-weight: 700; letter-spacing: .1em; content: "0" counter(integrations-development); counter-increment: integrations-development; }
.integrations-automation { padding-block: var(--space); background: var(--graphite); color: #fff; }.integrations-automation .eyebrow { color: var(--signal); }.integrations-automation__intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 6rem); }.integrations-automation__intro .eyebrow { padding-top: .45rem; }.integrations-automation__intro h2 { max-width: 12ch; }
.integrations-comparison { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #565b59; }.integrations-comparison article { min-height: 300px; padding: 1.5rem 2rem 1.5rem 0; border-bottom: 1px solid #565b59; }.integrations-comparison article + article { padding-right: 0; padding-left: 2rem; border-left: 1px solid #565b59; }.integrations-comparison article > p { margin: 0 0 3rem; color: var(--signal); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.integrations-comparison__manual { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; max-width: 400px; }.integrations-comparison__manual span { padding: .5rem .65rem; border: 1px solid #565b59; color: #c8ceca; font-size: .82rem; }.integrations-comparison__manual i { color: #7c8480; font-style: normal; }.integrations-comparison__connected { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; max-width: 430px; }.integrations-comparison__connected span { color: #c8ceca; font-size: .92rem; }.integrations-comparison__connected strong { padding: .85rem 1rem; border: 1px solid var(--signal); color: var(--signal); font-size: .86rem; }.integrations-comparison__connected i { color: var(--signal); font-size: 1.4rem; font-style: normal; }
.integrations-examples { padding-block: var(--space); }.integrations-examples__list { border-top: 1px solid var(--ink); }.integrations-examples__list a, .integrations-examples__list > div { display: grid; grid-template-columns: 3rem minmax(190px, .72fr) minmax(0, 1.28fr) auto; align-items: center; gap: 1rem; min-height: 94px; border-bottom: 1px solid var(--line); }.integrations-examples__list a:hover { color: #017e84; }.integrations-examples__list span { color: #017e84; font-size: .7rem; font-weight: 700; letter-spacing: .1em; }.integrations-examples__list strong { font-size: clamp(1.05rem, 1.5vw, 1.35rem); font-weight: 600; }.integrations-examples__list small { color: var(--muted); font-size: .84rem; }.integrations-examples__list i { font-size: 1.2rem; font-style: normal; }
.integrations-difference { padding-block: clamp(6rem, 12vw, 11rem); background: var(--ink); color: #fff; }.integrations-difference .eyebrow { color: var(--signal); }.integrations-difference__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(300px, 1.05fr); gap: clamp(4rem, 10vw, 10rem); align-items: end; }.integrations-difference h2 { max-width: 12ch; margin-bottom: 1.75rem; }.integrations-difference p:not(.eyebrow) { max-width: 35rem; color: #c8ceca; }.integrations-difference ol { display: grid; grid-template-columns: repeat(2, 1fr); margin: 0; padding: 0; border-top: 1px solid #565b59; list-style: none; counter-reset: giga-difference; }.integrations-difference li { min-height: 112px; padding: 1.2rem 0; border-bottom: 1px solid #565b59; color: #fff; font-size: 1.05rem; font-weight: 600; }.integrations-difference li:nth-child(odd) { padding-right: 1rem; border-right: 1px solid #565b59; }.integrations-difference li:nth-child(even) { padding-left: 1.3rem; }.integrations-difference li::before { display: block; margin-bottom: 1rem; color: var(--signal); font-size: .68rem; font-weight: 700; letter-spacing: .1em; content: "0" counter(giga-difference); counter-increment: giga-difference; }
.integrations-footer { background: var(--graphite); border-color: #454a48; color: #b8bfbb; }.integrations-footer .container { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 2rem; }.integrations-footer .wordmark { color: #fff; }.integrations-footer nav { display: flex; justify-content: center; gap: 1rem; }.integrations-footer nav a { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.integrations-footer nav a + a::before { margin-right: 1rem; color: #5d625f; content: "·"; }.integrations-footer nav a:hover { color: var(--signal); }.integrations-footer p { justify-self: end; }

@media (max-width: 820px) {
  .integrations-page .site-header { background: var(--ink); }.integrations-page .menu-toggle { border-color: #4b504e; }.integrations-page .menu-toggle span:not(.sr-only) { background: #fff; }.integrations-page .primary-nav { background: var(--graphite); border-color: #4b504e; }.integrations-page .primary-nav > ul > li { border-color: #4b504e; }
  .integrations-hero__grid, .integrations-development__grid, .integrations-difference__grid { grid-template-columns: 1fr; }.integrations-hero__grid { min-height: auto; }.integrations-hero__visual { min-height: 320px; }
  .integrations-intro, .integrations-automation__intro { grid-template-columns: 1fr; gap: 0; }.integrations-intro .eyebrow, .integrations-automation__intro .eyebrow { padding-top: 0; }
  .integrations-orbit { min-height: 520px; grid-template-columns: 1fr; grid-template-rows: repeat(3, 1fr); }.integrations-orbit__external, .integrations-orbit__layer, .integrations-orbit img { grid-column: 1; }.integrations-orbit__external { grid-row: 1; }.integrations-orbit__layer { grid-row: 2; }.integrations-orbit img { grid-row: 3; width: min(45%, 155px); }.integrations-orbit::before, .integrations-orbit::after { top: auto; bottom: auto; left: 50%; width: 1px; height: 32%; }.integrations-orbit::before { top: 25%; }.integrations-orbit::after { top: 57%; }.integrations-orbit li:nth-child(1) { top: 5%; left: 8%; }.integrations-orbit li:nth-child(2) { top: 32%; left: 7%; }.integrations-orbit li:nth-child(3) { top: 44%; left: 75%; }.integrations-orbit li:nth-child(4) { top: 61%; left: 7%; }.integrations-orbit li:nth-child(5) { top: 79%; right: 5%; }.integrations-orbit li:nth-child(6) { top: 91%; right: 10%; }
  .integrations-comparison { grid-template-columns: 1fr; }.integrations-comparison article { min-height: auto; }.integrations-comparison article + article { padding-top: 2rem; padding-left: 0; border-left: 0; }
  .integrations-examples__list a, .integrations-examples__list > div { grid-template-columns: 2.25rem 1fr auto; align-items: start; gap: .5rem; padding: 1.25rem 0; }.integrations-examples__list small { grid-column: 2; }.integrations-examples__list i { grid-column: 3; grid-row: 1 / span 2; }
  .integrations-footer .container { grid-template-columns: 1fr; gap: 1.25rem; }.integrations-footer nav { justify-content: flex-start; flex-wrap: wrap; }.integrations-footer p { justify-self: start; }
}

/* AI landing */
.ai-page { background: var(--paper); }
.ai-page .site-header { border-color: #414644; background: rgb(16 17 18 / 94%); color: #fff; }
.ai-page .wordmark span { color: #b8bfbb; }.ai-page .nav-group button { color: #b8bfbb; }.ai-page .nav-contact { border-color: #fff; }.ai-page .primary-nav a:hover, .ai-page .primary-nav a[aria-current="page"] { color: #b8bfbb; }.ai-page .nav-group > ul { border-color: #4b504e; background: var(--graphite); }.ai-page .nav-group > ul a:hover { background: #343836; color: #fff; }
.ai-page .eyebrow { color: var(--signal); }
.ai-hero { padding-block: clamp(3.5rem, 6vw, 6rem); background: var(--ink); color: #fff; overflow: hidden; }.ai-hero__grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(350px, 1.08fr); gap: clamp(3rem, 8vw, 9rem); align-items: center; min-height: 560px; }.ai-hero h1 { max-width: 10ch; font-size: clamp(3.1rem, 5vw, 5.5rem); }.ai-hero .lead { margin: 1.5rem 0 0; }.ai-hero__actions { display: flex; flex-wrap: wrap; gap: 1.5rem 2.5rem; margin-top: 2rem; }.ai-hero__actions .text-link { margin: 0; }
.ai-hero__visual { position: relative; min-height: 420px; overflow: hidden; border: 1px solid #454a48; background-image: linear-gradient(115deg, transparent 0 47%, rgb(113 75 103 / 19%) 47% 48%, transparent 48% 100%), linear-gradient(rgb(40 200 186 / 10%) 1px, transparent 1px), linear-gradient(90deg, rgb(40 200 186 / 10%) 1px, transparent 1px); background-size: auto, 42px 42px, 42px 42px; }.ai-hero__visual::before { position: absolute; top: 11%; right: 12%; width: 45%; aspect-ratio: 1; border: 1px solid rgb(40 200 186 / 45%); content: ""; transform: rotate(45deg); }.ai-hero__visual::after { position: absolute; right: -8%; bottom: -24%; width: 66%; aspect-ratio: 1; border: 1px solid rgb(113 75 103 / 40%); border-radius: 50%; content: ""; }
.ai-hero__visual span { position: absolute; z-index: 1; width: 11px; aspect-ratio: 1; border: 1px solid var(--signal); border-radius: 50%; background: var(--ink); animation: ai-signal 6s ease-in-out infinite; }.ai-hero__visual span::after { position: absolute; top: 50%; left: 100%; width: clamp(70px, 13vw, 160px); height: 1px; background: var(--signal); content: ""; transform-origin: left; }.ai-hero__visual span:nth-child(1) { top: 25%; left: 12%; }.ai-hero__visual span:nth-child(1)::after { transform: rotate(20deg); }.ai-hero__visual span:nth-child(2) { top: 42%; left: 43%; animation-delay: 1s; }.ai-hero__visual span:nth-child(2)::after { width: clamp(60px, 9vw, 125px); transform: rotate(-28deg); }.ai-hero__visual span:nth-child(3) { top: 73%; left: 21%; animation-delay: 2s; }.ai-hero__visual span:nth-child(3)::after { transform: rotate(-18deg); }.ai-hero__visual span:nth-child(4) { top: 32%; left: 76%; animation-delay: 3s; }.ai-hero__visual span:nth-child(4)::after { display: none; }.ai-hero__visual span:nth-child(5) { top: 67%; left: 64%; animation-delay: 4s; }.ai-hero__visual span:nth-child(5)::after { display: none; }.ai-hero__visual span:nth-child(6) { top: 55%; left: 37%; animation-delay: 5s; }.ai-hero__visual span:nth-child(6)::after { display: none; }.ai-hero__visual i { position: absolute; z-index: 2; color: #aeb5b1; font-size: .66rem; font-style: normal; font-weight: 700; letter-spacing: .11em; }.ai-hero__visual i:nth-of-type(1) { top: 14%; left: 48%; }.ai-hero__visual i:nth-of-type(2) { top: 58%; left: 48%; }.ai-hero__visual i:nth-of-type(3) { top: 75%; left: 52%; }
@keyframes ai-signal { 0%, 100% { box-shadow: 0 0 0 0 rgb(40 200 186 / 0%); } 50% { box-shadow: 0 0 0 7px rgb(40 200 186 / 18%); } }
.ai-capability, .ai-integration { padding-block: var(--space); }.ai-intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 5rem); }.ai-intro .eyebrow { padding-top: .45rem; }.ai-intro h2 { max-width: 12ch; }.ai-intro p:not(.eyebrow) { align-self: end; margin: 0; color: var(--muted); }
.ai-capability__flows { border-top: 1px solid var(--ink); }.ai-capability__flows > div { display: grid; grid-template-columns: minmax(0, 1fr) 80px minmax(70px, .55fr) 80px minmax(0, 1fr); min-height: 112px; align-items: center; border-bottom: 1px solid var(--line); }.ai-capability__flows span { font-size: clamp(1.05rem, 1.7vw, 1.4rem); font-weight: 600; }.ai-capability__flows i { color: #017e84; font-size: 1.4rem; font-style: normal; text-align: center; }.ai-capability__flows strong { color: #714b67; font-size: 1rem; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.ai-layers { padding-block: var(--space); background: #e9edeb; }.ai-layers__intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 6rem); }.ai-layers__intro .eyebrow { padding-top: .45rem; }.ai-layers__intro h2 { max-width: 12ch; }.ai-layers__grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); }.ai-layers__grid article { display: flex; min-height: 350px; flex-direction: column; padding: 1.5rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }.ai-layers__grid article:last-child { border-right: 0; }.ai-layers__grid article > span { color: #017e84; font-size: .68rem; font-weight: 700; letter-spacing: .1em; }.ai-layers__grid h3 { max-width: 11ch; margin: clamp(3rem, 6vw, 6rem) 0 1rem; font-size: clamp(1.25rem, 2vw, 1.75rem); font-weight: 600; line-height: 1.12; }.ai-layers__grid p { margin: 0; color: var(--muted); font-size: .92rem; }.ai-layers__grid .text-link { margin-top: auto; }
.ai-integration { background: var(--paper); }.ai-integration__map { position: relative; display: grid; min-height: 430px; grid-template-columns: 1fr; grid-template-rows: 1fr auto 1fr; align-items: center; justify-items: center; overflow: hidden; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); background-image: linear-gradient(90deg, rgb(40 200 186 / 8%) 1px, transparent 1px); background-size: 44px 100%; }.ai-integration__map::before, .ai-integration__map::after { position: absolute; left: 50%; width: 1px; background: #017e84; content: ""; }.ai-integration__map::before { top: 17%; height: 28%; }.ai-integration__map::after { bottom: 17%; height: 28%; }.ai-integration__map ul { position: relative; z-index: 1; display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem 2rem; margin: 0; padding: 0; list-style: none; }.ai-integration__map li { color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }.ai-integration__sources { align-self: end; }.ai-integration__outcomes { align-self: start; }.ai-integration__core { position: relative; z-index: 1; padding: 1rem 1.4rem; border: 1px solid #017e84; background: var(--paper); color: #017e84; font-size: clamp(1.2rem, 2vw, 1.7rem); font-weight: 700; }
.ai-robotics { padding-block: var(--space); background: #ebe9e8; }.ai-robotics__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(320px, 1.05fr); gap: clamp(4rem, 10vw, 10rem); align-items: center; }.ai-robotics h2 { max-width: 11ch; margin-bottom: 1.75rem; }.ai-robotics p:not(.eyebrow) { max-width: 35rem; color: var(--muted); }.ai-robotics__visual { position: relative; min-height: 310px; overflow: hidden; border-block: 1px solid var(--ink); background-image: linear-gradient(115deg, transparent 0 46%, rgb(113 75 103 / 18%) 46% 47%, transparent 47% 100%), linear-gradient(90deg, rgb(1 126 132 / 8%) 1px, transparent 1px); background-size: auto, 42px 100%; }.ai-robotics__visual::before { position: absolute; top: 13%; left: 12%; width: 47%; aspect-ratio: 1; border: 1px solid #017e84; transform: rotate(45deg); content: ""; }.ai-robotics__visual::after { position: absolute; right: 9%; bottom: 12%; width: 38%; aspect-ratio: 1; border: 1px solid rgb(113 75 103 / 52%); border-radius: 50%; content: ""; }.ai-robotics__visual span { position: absolute; width: 8px; aspect-ratio: 1; border: 1px solid #017e84; border-radius: 50%; background: #ebe9e8; }.ai-robotics__visual span:nth-child(1) { top: 32%; left: 22%; }.ai-robotics__visual span:nth-child(2) { top: 46%; left: 49%; }.ai-robotics__visual span:nth-child(3) { top: 68%; left: 32%; }.ai-robotics__visual span:nth-child(4) { top: 44%; left: 74%; }.ai-robotics__visual p { position: absolute; bottom: 7%; left: 7%; margin: 0; color: var(--muted); font-size: .67rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.ai-closing { padding-block: clamp(6rem, 12vw, 11rem); background: var(--ink); color: #fff; }.ai-closing .eyebrow { color: var(--signal); }.ai-closing__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(300px, 1.05fr); gap: clamp(4rem, 10vw, 10rem); align-items: end; }.ai-closing h2 { max-width: 12ch; margin-bottom: 1.75rem; }.ai-closing p:not(.eyebrow) { max-width: 35rem; color: #c8ceca; }.ai-closing ol { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin: 0; padding: 0; list-style: none; }.ai-closing li { color: #fff; font-size: .85rem; font-weight: 600; }.ai-closing li + li::before { margin-right: .6rem; color: var(--signal); content: "→"; }.ai-footer { border-color: #454a48; background: var(--graphite); color: #b8bfbb; }.ai-footer .container { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 2rem; }.ai-footer .wordmark { color: #fff; }.ai-footer nav { display: flex; justify-content: center; gap: 1rem; }.ai-footer nav a { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.ai-footer nav a + a::before { margin-right: 1rem; color: #5d625f; content: "·"; }.ai-footer nav a:hover { color: var(--signal); }.ai-footer p { justify-self: end; }
@media (prefers-reduced-motion: reduce) { .ai-hero__visual span { animation: none; } }
@media (max-width: 820px) {
  .ai-page .site-header { background: var(--ink); }.ai-page .menu-toggle { border-color: #4b504e; }.ai-page .menu-toggle span:not(.sr-only) { background: #fff; }.ai-page .primary-nav { border-color: #4b504e; background: var(--graphite); }.ai-page .primary-nav > ul > li { border-color: #4b504e; }
  .ai-hero__grid, .ai-robotics__grid, .ai-closing__grid { grid-template-columns: 1fr; }.ai-hero__grid { min-height: auto; }.ai-hero__visual { min-height: 320px; }.ai-intro, .ai-layers__intro { grid-template-columns: 1fr; gap: 0; }.ai-intro .eyebrow, .ai-layers__intro .eyebrow { padding-top: 0; }
  .ai-capability__flows > div { grid-template-columns: 1fr auto 72px auto 1fr; gap: .55rem; min-height: 98px; }.ai-capability__flows span { font-size: .88rem; }.ai-capability__flows i { font-size: 1rem; }.ai-capability__flows strong { font-size: .7rem; }.ai-layers__grid { grid-template-columns: 1fr; }.ai-layers__grid article, .ai-layers__grid article:last-child { min-height: auto; border-right: 0; }.ai-layers__grid h3 { margin-top: 2.5rem; }.ai-layers__grid .text-link { margin-top: 2rem; }.ai-integration__map { min-height: 440px; }.ai-integration__map ul { max-width: 260px; gap: .7rem 1.2rem; }.ai-integration__map::before { top: 20%; height: 26%; }.ai-integration__map::after { bottom: 20%; height: 26%; }.ai-footer .container { grid-template-columns: 1fr; gap: 1.25rem; }.ai-footer nav { justify-content: flex-start; flex-wrap: wrap; }.ai-footer p { justify-self: start; }
}

/* Agentes y Automatización */
.ai-agents-hero { padding-block: clamp(3.5rem, 6vw, 6rem); background: var(--ink); color: #fff; overflow: hidden; }.ai-agents-hero__grid { display: grid; grid-template-columns: minmax(0, .96fr) minmax(380px, 1.04fr); gap: clamp(3rem, 8vw, 9rem); align-items: center; min-height: 560px; }.ai-agents-hero h1 { max-width: 10ch; font-size: clamp(3rem, 4.8vw, 5.4rem); }.ai-agents-hero .lead { margin: 1.5rem 0 2rem; }.ai-agents-hero__flow { position: relative; display: flex; flex-direction: column; gap: .65rem; min-height: 410px; justify-content: center; padding: 2rem 13%; overflow: hidden; border: 1px solid #454a48; background-image: linear-gradient(90deg, rgb(40 200 186 / 9%) 1px, transparent 1px), linear-gradient(rgb(40 200 186 / 7%) 1px, transparent 1px); background-size: 38px 38px; }.ai-agents-hero__flow::before { position: absolute; top: -22%; right: 10%; width: 53%; aspect-ratio: 1; border: 1px solid rgb(113 75 103 / 55%); border-radius: 50%; content: ""; }.ai-agents-hero__flow span, .ai-agents-hero__flow strong { position: relative; z-index: 1; width: fit-content; padding: .5rem .7rem; border: 1px solid #5a615e; background: var(--ink); font-size: .72rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }.ai-agents-hero__flow strong { margin-left: 26%; border-color: var(--signal); color: var(--signal); }.ai-agents-hero__flow span:nth-of-type(2) { margin-left: 12%; }.ai-agents-hero__flow span:nth-of-type(3) { margin-left: 48%; }.ai-agents-hero__flow span:nth-of-type(4) { margin-left: 34%; }.ai-agents-hero__flow span:nth-of-type(5) { margin-left: 60%; }.ai-agents-hero__flow i { position: relative; z-index: 1; width: 1px; height: 16px; margin-left: 37%; background: var(--signal); font-size: 0; }.ai-agents-hero__flow i::after { position: absolute; bottom: -1px; left: -2px; width: 5px; height: 5px; border-right: 1px solid var(--signal); border-bottom: 1px solid var(--signal); content: ""; transform: rotate(45deg); }
.ai-agent-definition, .ai-agent-systems { padding-block: var(--space); }.ai-agents-intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 5rem); }.ai-agents-intro .eyebrow { padding-top: .45rem; }.ai-agents-intro h2 { max-width: 13ch; }.ai-agents-intro p:not(.eyebrow) { align-self: end; margin: 0; color: var(--muted); }.ai-agent-definition__diagram { display: grid; grid-template-columns: 1fr 90px minmax(180px, .65fr) 90px minmax(150px, .45fr); align-items: center; min-height: 300px; overflow: hidden; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); background-image: linear-gradient(90deg, rgb(40 200 186 / 7%) 1px, transparent 1px); background-size: 48px 100%; }.ai-agent-definition__inputs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }.ai-agent-definition__inputs span, .ai-agent-definition__diagram strong, .ai-agent-definition__diagram b { display: grid; min-height: 66px; place-items: center; padding: .8rem; border: 1px solid var(--line); background: var(--paper); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-align: center; text-transform: uppercase; }.ai-agent-definition__diagram strong { border-color: #017e84; color: #017e84; }.ai-agent-definition__diagram b { border-color: #714b67; color: #714b67; }.ai-agent-definition__diagram > i { position: relative; height: 1px; background: #017e84; }.ai-agent-definition__diagram > i::after { position: absolute; top: -3px; right: 0; width: 7px; height: 7px; border-top: 1px solid #017e84; border-right: 1px solid #017e84; content: ""; transform: rotate(45deg); }
.ai-orchestration { padding-block: var(--space); background: #e8ecea; }.ai-orchestration__grid { display: grid; grid-template-columns: minmax(240px, .68fr) minmax(0, 1.32fr); gap: clamp(3rem, 10vw, 10rem); align-items: center; }.ai-orchestration h2 { max-width: 10ch; }.ai-orchestration__flow { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: orchestration; }.ai-orchestration__flow li { position: relative; display: flex; min-height: 310px; flex-direction: column; justify-content: flex-end; padding: 1rem; border-right: 1px solid var(--line); background: linear-gradient(180deg, transparent 0 68%, rgb(40 200 186 / 11%) 68% 69%, transparent 69%); font-size: .76rem; font-weight: 700; letter-spacing: .06em; line-height: 1.2; text-transform: uppercase; }.ai-orchestration__flow li:first-child { border-left: 1px solid var(--line); }.ai-orchestration__flow li::before { display: block; margin-bottom: auto; color: #017e84; font-size: .67rem; letter-spacing: .1em; content: "0" counter(orchestration); counter-increment: orchestration; }.ai-orchestration__flow li::after { position: absolute; top: 20%; left: 50%; width: 1px; height: 45%; background: #017e84; content: ""; }.ai-orchestration__flow li:nth-child(2)::after, .ai-orchestration__flow li:nth-child(5)::after { background: #714b67; }.ai-orchestration__flow li:nth-child(odd) { padding-bottom: 3rem; }.ai-orchestration__flow li:nth-child(even) { padding-bottom: 6rem; }
.ai-agent-systems { background: var(--paper); }.ai-agent-systems__architecture { display: grid; justify-items: center; }.ai-agent-systems__architecture div, .ai-agent-systems__architecture strong { width: min(100%, 720px); padding: 1.05rem 1.3rem; border: 1px solid var(--line); font-size: clamp(1rem, 1.7vw, 1.25rem); font-weight: 600; text-align: center; }.ai-agent-systems__architecture strong { border-color: #017e84; color: #017e84; }.ai-agent-systems__architecture i { color: #017e84; font-size: 1.5rem; font-style: normal; }
.ai-control { padding-block: var(--space); background: var(--graphite); color: #fff; }.ai-control__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(400px, 1.2fr); gap: clamp(3rem, 10vw, 10rem); align-items: center; }.ai-control h2 { max-width: 10ch; margin-bottom: 1.75rem; }.ai-control p:not(.eyebrow) { color: #c8ceca; }.ai-control__label { margin: 0 0 .8rem; color: var(--signal); font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.ai-control__patterns { border-top: 1px solid #565b59; }.ai-control__patterns > div { display: grid; grid-template-columns: 1fr 28px 1fr 28px 1fr; align-items: center; min-height: 90px; border-bottom: 1px solid #565b59; }.ai-control__patterns span, .ai-control__patterns strong { font-size: .78rem; font-weight: 600; letter-spacing: .06em; line-height: 1.25; text-transform: uppercase; }.ai-control__patterns strong { color: var(--signal); }.ai-control__patterns i { color: #aeb5b1; font-style: normal; text-align: center; }
.ai-agents-robotics { padding-block: var(--space); background: #ebe9e8; }.ai-agents-robotics__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(320px, 1.05fr); gap: clamp(4rem, 10vw, 10rem); align-items: center; }.ai-agents-robotics h2 { max-width: 12ch; margin-bottom: 1.75rem; }.ai-agents-robotics p:not(.eyebrow) { max-width: 35rem; color: var(--muted); }.ai-agents-robotics__placeholder { position: relative; min-height: 320px; overflow: hidden; border: 1px dashed #7b817e; background-image: linear-gradient(135deg, transparent 0 49%, rgb(113 75 103 / 15%) 49% 50%, transparent 50% 100%), linear-gradient(90deg, rgb(1 126 132 / 8%) 1px, transparent 1px); background-size: auto, 42px 100%; }.ai-agents-robotics__placeholder::before { position: absolute; top: 50%; left: 50%; width: 104px; aspect-ratio: 1; border: 1px solid #017e84; content: ""; transform: translate(-50%, -50%) rotate(45deg); }.ai-agents-robotics__placeholder span { position: absolute; padding: .35rem .45rem; color: var(--muted); font-size: .64rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.ai-agents-robotics__placeholder span:nth-child(1) { top: 16%; left: 10%; }.ai-agents-robotics__placeholder span:nth-child(2) { right: 10%; bottom: 18%; }.ai-agents-robotics__placeholder span:nth-child(3) { bottom: 10%; left: 10%; }.ai-agents-robotics__placeholder i { position: absolute; width: 7px; aspect-ratio: 1; border: 1px solid #017e84; border-radius: 50%; }.ai-agents-robotics__placeholder i:nth-of-type(1) { top: 23%; left: 29%; }.ai-agents-robotics__placeholder i:nth-of-type(2) { top: 48%; right: 21%; }.ai-agents-robotics__placeholder i:nth-of-type(3) { bottom: 23%; left: 39%; }
.ai-agents-closing { padding-block: clamp(6rem, 12vw, 11rem); background: var(--ink); color: #fff; }.ai-agents-closing .eyebrow { color: var(--signal); }.ai-agents-closing h2 { max-width: 11ch; margin-bottom: 1.75rem; }.ai-agents-closing p:not(.eyebrow) { color: #c8ceca; }
@media (prefers-reduced-motion: no-preference) { .ai-agents-hero__flow strong { animation: ai-agent-pulse 3.8s ease-in-out infinite; }.ai-orchestration__flow li::after { animation: ai-agent-line 2.4s ease-in-out infinite; }.ai-orchestration__flow li:nth-child(2)::after { animation-delay: .35s; }.ai-orchestration__flow li:nth-child(3)::after { animation-delay: .7s; }.ai-orchestration__flow li:nth-child(4)::after { animation-delay: 1.05s; }.ai-orchestration__flow li:nth-child(5)::after { animation-delay: 1.4s; }.ai-orchestration__flow li:nth-child(6)::after { animation-delay: 1.75s; }.ai-orchestration__flow li:nth-child(7)::after { animation-delay: 2.1s; } } @keyframes ai-agent-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgb(40 200 186 / 0%); } 50% { box-shadow: 0 0 0 8px rgb(40 200 186 / 16%); } } @keyframes ai-agent-line { 0%, 100% { opacity: .25; transform: scaleY(.55); transform-origin: top; } 50% { opacity: 1; transform: scaleY(1); transform-origin: top; } }
@media (max-width: 820px) { .ai-agents-hero__grid, .ai-orchestration__grid, .ai-control__grid, .ai-agents-robotics__grid { grid-template-columns: 1fr; }.ai-agents-hero__grid { min-height: auto; }.ai-agents-hero__flow { min-height: 340px; }.ai-agents-intro { grid-template-columns: 1fr; gap: 0; }.ai-agents-intro .eyebrow { padding-top: 0; }.ai-agent-definition__diagram { grid-template-columns: 1fr; gap: .8rem; padding: 1rem 0; }.ai-agent-definition__diagram > i { width: 1px; height: 24px; justify-self: center; }.ai-agent-definition__inputs { width: 100%; }.ai-agent-definition__diagram strong, .ai-agent-definition__diagram b { width: 100%; }.ai-orchestration__flow { grid-template-columns: 1fr; border-top: 1px solid var(--line); }.ai-orchestration__flow li, .ai-orchestration__flow li:first-child { min-height: 76px; padding: .8rem 1rem .8rem 3.5rem; border-right: 1px solid var(--line); border-left: 1px solid var(--line); background: none; }.ai-orchestration__flow li:nth-child(n) { padding-bottom: .8rem; }.ai-orchestration__flow li::before { position: absolute; top: .8rem; left: 1rem; margin: 0; }.ai-orchestration__flow li::after { top: auto; bottom: -12px; left: 2rem; width: 1px; height: 24px; }.ai-control__patterns > div { grid-template-columns: 1fr 22px 1fr 22px 1fr; min-height: 110px; }.ai-control__patterns span, .ai-control__patterns strong { font-size: .63rem; }.ai-agents-robotics__placeholder { min-height: 250px; } }
@media (prefers-reduced-motion: reduce) { .ai-agents-page *, .ai-agents-page *::before, .ai-agents-page *::after { animation: none !important; scroll-behavior: auto !important; } }

/* Robotics AI */
.robotics-hero { padding-block: clamp(3.5rem, 6vw, 6rem); background: #090a0b; color: #fff; overflow: hidden; }.robotics-hero__grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(390px, 1.08fr); gap: clamp(3rem, 8vw, 9rem); align-items: center; min-height: 590px; }.robotics-hero h1 { max-width: 10ch; font-size: clamp(3rem, 5.1vw, 5.65rem); }.robotics-hero .lead { margin: 1.5rem 0 0; }.robotics-hero__actions { display: flex; flex-wrap: wrap; gap: 1.5rem 2.25rem; margin-top: 2rem; }.robotics-hero__actions .text-link { margin: 0; }.robotics-hero__visual { position: relative; min-height: 470px; overflow: hidden; border: 1px solid #343a39; background-image: radial-gradient(circle at 66% 46%, rgb(40 200 186 / 13%) 0 1px, transparent 2px), linear-gradient(126deg, transparent 0 45%, rgb(106 84 148 / 26%) 45% 46%, transparent 46% 100%), linear-gradient(90deg, rgb(40 200 186 / 10%) 1px, transparent 1px), linear-gradient(rgb(40 200 186 / 8%) 1px, transparent 1px); background-size: 56px 56px, auto, 56px 56px, 56px 56px; }.robotics-hero__visual::before { position: absolute; top: 50%; left: 50%; width: 54%; aspect-ratio: 1; border: 1px solid rgb(40 200 186 / 52%); content: ""; transform: translate(-50%, -50%) rotate(45deg); }.robotics-hero__visual::after { position: absolute; top: 50%; left: 50%; width: 74%; aspect-ratio: 1; border: 1px solid rgb(116 95 164 / 30%); border-radius: 50%; content: ""; transform: translate(-50%, -50%); }.robotics-hero__visual span { position: absolute; z-index: 2; color: #bac4c0; font-size: .63rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }.robotics-hero__visual span:nth-child(1) { top: 13%; left: 10%; }.robotics-hero__visual span:nth-child(2) { right: 9%; bottom: 14%; }.robotics-hero__visual span:nth-child(3) { bottom: 7%; left: 8%; color: var(--signal); }.robotics-hero__visual i { position: absolute; z-index: 1; width: 10px; aspect-ratio: 1; border: 1px solid var(--signal); border-radius: 50%; background: #090a0b; }.robotics-hero__visual i:nth-of-type(1) { top: 29%; left: 28%; }.robotics-hero__visual i:nth-of-type(2) { top: 48%; right: 21%; }.robotics-hero__visual i:nth-of-type(3) { bottom: 23%; left: 39%; }
.robotics-stack, .robotics-enterprise { padding-block: var(--space); }.robotics-intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 5rem); }.robotics-intro .eyebrow { padding-top: .45rem; }.robotics-intro h2 { max-width: 12ch; }.robotics-intro p:not(.eyebrow) { align-self: end; margin: 0; color: var(--muted); }.robotics-stack__diagram { display: grid; grid-template-columns: repeat(6, 1fr); gap: .65rem; align-items: end; min-height: 400px; padding-bottom: 3rem; border-bottom: 1px solid var(--line); background-image: linear-gradient(90deg, rgb(40 200 186 / 7%) 1px, transparent 1px); background-size: 48px 100%; }.robotics-stack__diagram div { display: grid; min-height: 100px; place-items: center; padding: 1rem; border: 1px solid var(--line); background: var(--paper); font-size: .7rem; font-weight: 700; letter-spacing: .07em; line-height: 1.25; text-align: center; text-transform: uppercase; }.robotics-stack__diagram div:nth-child(1), .robotics-stack__diagram div:nth-child(4) { transform: translateY(-100px); }.robotics-stack__diagram div:nth-child(2), .robotics-stack__diagram div:nth-child(5) { transform: translateY(-50px); }.robotics-stack__diagram i { grid-column: 1 / -1; justify-self: center; width: 1px; height: 52px; background: #017e84; }.robotics-stack__diagram strong { grid-column: 2 / 6; display: grid; min-height: 78px; place-items: center; border: 1px solid #017e84; color: #017e84; font-size: clamp(.9rem, 1.5vw, 1.15rem); letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.robotics-cycle { padding-block: var(--space); background: var(--graphite); color: #fff; }.robotics-cycle__grid { display: grid; grid-template-columns: minmax(220px, .7fr) minmax(420px, 1.3fr); gap: clamp(3rem, 10vw, 10rem); align-items: center; }.robotics-cycle h2 { max-width: 8ch; }.robotics-cycle__diagram { position: relative; min-height: 450px; overflow: hidden; border: 1px solid #4c5350; background-image: radial-gradient(circle at center, rgb(40 200 186 / 10%) 0 1px, transparent 2px), linear-gradient(90deg, rgb(40 200 186 / 8%) 1px, transparent 1px), linear-gradient(rgb(40 200 186 / 8%) 1px, transparent 1px); background-size: 44px 44px; }.robotics-cycle__diagram::before { position: absolute; top: 50%; left: 50%; width: 58%; aspect-ratio: 1; border: 1px solid rgb(40 200 186 / 62%); border-radius: 50%; content: ""; transform: translate(-50%, -50%); }.robotics-cycle__diagram span, .robotics-cycle__diagram strong { position: absolute; z-index: 1; display: grid; min-height: 42px; place-items: center; padding: .5rem .7rem; border: 1px solid #59615e; background: var(--graphite); color: #e8eeea; font-size: .64rem; font-weight: 700; letter-spacing: .08em; text-align: center; text-transform: uppercase; }.robotics-cycle__diagram strong { top: 50%; left: 50%; min-width: 78px; border-color: var(--signal); color: var(--signal); transform: translate(-50%, -50%); }.robotics-cycle__diagram span:nth-of-type(1) { top: 8%; left: 44%; }.robotics-cycle__diagram span:nth-of-type(2) { top: 24%; right: 9%; }.robotics-cycle__diagram span:nth-of-type(3) { right: 7%; bottom: 27%; }.robotics-cycle__diagram span:nth-of-type(4) { bottom: 8%; left: 43%; }.robotics-cycle__diagram span:nth-of-type(5) { bottom: 26%; left: 7%; }.robotics-cycle__diagram span:nth-of-type(6) { top: 25%; left: 7%; }.robotics-cycle__diagram i { position: absolute; z-index: 0; top: 50%; left: 50%; width: 27%; height: 1px; background: var(--signal); transform-origin: left; }.robotics-cycle__diagram i:nth-of-type(1) { transform: rotate(-90deg); }.robotics-cycle__diagram i:nth-of-type(2) { transform: rotate(-30deg); }.robotics-cycle__diagram i:nth-of-type(3) { transform: rotate(31deg); }.robotics-cycle__diagram i:nth-of-type(4) { transform: rotate(90deg); }.robotics-cycle__diagram i:nth-of-type(5) { transform: rotate(150deg); }.robotics-cycle__diagram i:nth-of-type(6) { transform: rotate(210deg); }
.robotics-platforms { padding-block: var(--space); background: #e9edeb; }.robotics-platforms__grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); }.robotics-platforms__grid article { display: flex; min-height: 350px; flex-direction: column; padding: 1.5rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }.robotics-platforms__grid article:last-child { border-right: 0; }.robotics-platforms__grid span { color: #017e84; font-size: .68rem; font-weight: 700; letter-spacing: .1em; }.robotics-platforms__grid h3 { max-width: 10ch; margin: auto 0 1rem; font-size: clamp(1.45rem, 2.2vw, 1.9rem); font-weight: 600; line-height: 1.08; }.robotics-platforms__grid p { margin: 0; color: var(--muted); font-size: .92rem; }
.robotics-enterprise__architecture { display: grid; justify-items: center; min-height: 410px; padding-block: 1.5rem; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); background-image: linear-gradient(90deg, rgb(40 200 186 / 7%) 1px, transparent 1px); background-size: 48px 100%; }.robotics-enterprise__architecture ul { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem 1.3rem; margin: 0; padding: 0; list-style: none; }.robotics-enterprise__architecture li { color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.robotics-enterprise__architecture i { color: #017e84; font-size: 1.5rem; font-style: normal; }.robotics-enterprise__architecture strong, .robotics-enterprise__architecture div { width: min(100%, 620px); padding: 1rem 1.3rem; border: 1px solid var(--line); background: var(--paper); font-size: clamp(1rem, 1.7vw, 1.25rem); font-weight: 600; text-align: center; }.robotics-enterprise__architecture strong { border-color: #017e84; color: #017e84; }
.robotics-applications { padding-block: var(--space); background: #111315; color: #fff; }.robotics-applications__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(380px, 1.1fr); gap: clamp(3rem, 10vw, 10rem); align-items: center; }.robotics-applications h2 { max-width: 10ch; margin-bottom: 1.75rem; }.robotics-applications p:not(.eyebrow) { color: #c8ceca; }.robotics-applications ul { display: grid; grid-template-columns: repeat(2, 1fr); margin: 0; padding: 0; border-top: 1px solid #555c59; list-style: none; }.robotics-applications li { min-height: 98px; padding: 1.1rem; border-right: 1px solid #555c59; border-bottom: 1px solid #555c59; font-size: .9rem; font-weight: 600; }.robotics-applications li:nth-child(even) { border-right: 0; }.robotics-applications li::before { display: block; margin-bottom: 1.2rem; color: var(--signal); font-size: .66rem; letter-spacing: .1em; content: "AREA"; }
.robotics-journey { padding-block: var(--space); background: #e8e7ea; }.robotics-journey h2 { max-width: 14ch; margin-bottom: 1.75rem; }.robotics-journey p:not(.eyebrow) { color: var(--muted); }.robotics-journey__flow { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-top: clamp(3rem, 6vw, 5rem); padding-block: 2rem; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }.robotics-journey__flow span, .robotics-journey__flow strong { font-size: clamp(.75rem, 1.35vw, 1.1rem); font-weight: 600; text-align: center; }.robotics-journey__flow strong { color: #017e84; }.robotics-journey__flow i { color: #017e84; font-style: normal; }
.robotics-closing { padding-block: clamp(6rem, 12vw, 11rem); background: #090a0b; color: #fff; }.robotics-closing .eyebrow { color: var(--signal); }.robotics-closing h2 { max-width: 15ch; margin-bottom: 1.75rem; }.robotics-closing p:not(.eyebrow) { color: #c8ceca; }
@media (prefers-reduced-motion: no-preference) { .robotics-hero__visual i { animation: robotics-pulse 4s ease-in-out infinite; }.robotics-hero__visual i:nth-of-type(2) { animation-delay: 1.2s; }.robotics-hero__visual i:nth-of-type(3) { animation-delay: 2.4s; }.robotics-cycle__diagram::before { animation: robotics-orbit 18s linear infinite; } } @keyframes robotics-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgb(40 200 186 / 0%); } 50% { box-shadow: 0 0 0 9px rgb(40 200 186 / 18%); } } @keyframes robotics-orbit { to { transform: translate(-50%, -50%) rotate(360deg); } }
@media (max-width: 820px) { .robotics-hero__grid, .robotics-cycle__grid, .robotics-applications__grid { grid-template-columns: 1fr; }.robotics-hero__grid { min-height: auto; }.robotics-hero__visual { min-height: 340px; }.robotics-intro { grid-template-columns: 1fr; gap: 0; }.robotics-intro .eyebrow { padding-top: 0; }.robotics-stack__diagram { grid-template-columns: repeat(2, 1fr); min-height: auto; padding: 1.5rem 0 2rem; }.robotics-stack__diagram div:nth-child(n) { transform: none; }.robotics-stack__diagram i { grid-column: 1 / -1; }.robotics-stack__diagram strong { grid-column: 1 / -1; }.robotics-cycle__diagram { min-height: 390px; }.robotics-cycle__diagram span { font-size: .54rem; }.robotics-cycle__diagram span:nth-of-type(1) { left: 38%; }.robotics-cycle__diagram span:nth-of-type(2) { right: 2%; }.robotics-cycle__diagram span:nth-of-type(3) { right: 1%; }.robotics-cycle__diagram span:nth-of-type(4) { left: 37%; }.robotics-cycle__diagram span:nth-of-type(5) { left: 1%; }.robotics-cycle__diagram span:nth-of-type(6) { left: 1%; }.robotics-platforms__grid { grid-template-columns: 1fr; }.robotics-platforms__grid article, .robotics-platforms__grid article:last-child { min-height: 240px; border-right: 0; }.robotics-enterprise__architecture { min-height: 390px; }.robotics-enterprise__architecture ul { max-width: 260px; gap: .65rem 1rem; }.robotics-applications ul { grid-template-columns: 1fr; }.robotics-applications li, .robotics-applications li:nth-child(even) { min-height: 82px; border-right: 0; }.robotics-journey__flow { flex-wrap: wrap; justify-content: center; }.robotics-journey__flow span, .robotics-journey__flow strong { font-size: .72rem; }.robotics-journey__flow i { font-size: .9rem; } }
@media (prefers-reduced-motion: reduce) { .ai-robotics-page *, .ai-robotics-page *::before, .ai-robotics-page *::after { animation: none !important; scroll-behavior: auto !important; } }

/* Nosotros */
.about-page { background: var(--paper); }.about-hero { padding-block: clamp(3.5rem, 6vw, 6rem); background: var(--ink); color: #fff; overflow: hidden; }.about-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(350px, .9fr); gap: clamp(3rem, 9vw, 10rem); align-items: center; min-height: 540px; }.about-hero h1 { max-width: 10ch; font-size: clamp(3.1rem, 5.3vw, 5.8rem); }.about-hero .lead { margin: 1.5rem 0 2rem; }.about-hero__field { position: relative; min-height: 360px; overflow: hidden; border-top: 1px solid #4c514f; border-bottom: 1px solid #4c514f; background-image: linear-gradient(90deg, rgb(40 200 186 / 8%) 1px, transparent 1px); background-size: 56px 100%; }.about-hero__field::before { position: absolute; top: 15%; right: 9%; width: 62%; aspect-ratio: 1; border: 1px solid rgb(40 200 186 / 48%); content: ""; transform: rotate(45deg); }.about-hero__field::after { position: absolute; bottom: -17%; left: -10%; width: 55%; aspect-ratio: 1; border: 1px solid rgb(113 75 103 / 46%); border-radius: 50%; content: ""; }.about-hero__field span { position: absolute; width: 9px; aspect-ratio: 1; border: 1px solid var(--signal); border-radius: 50%; background: var(--ink); }.about-hero__field span:nth-child(1) { top: 28%; left: 18%; }.about-hero__field span:nth-child(2) { top: 53%; left: 51%; }.about-hero__field span:nth-child(3) { right: 15%; bottom: 24%; }.about-hero__field i { position: absolute; color: #b9c1bd; font-size: .66rem; font-style: normal; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.about-hero__field i:nth-of-type(1) { top: 18%; left: 44%; }.about-hero__field i:nth-of-type(2) { right: 12%; bottom: 15%; }
.about-method, .about-capabilities { padding-block: var(--space); }.about-intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 5rem); }.about-intro .eyebrow { padding-top: .45rem; }.about-intro h2 { max-width: 13ch; }.about-intro p:not(.eyebrow) { align-self: end; margin: 0; color: var(--muted); }.about-method__flow, .about-evolution__flow { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding-block: 2rem; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }.about-method__flow span, .about-method__flow strong, .about-evolution__flow span, .about-evolution__flow strong { font-size: clamp(.85rem, 1.55vw, 1.22rem); font-weight: 600; text-align: center; }.about-method__flow strong, .about-evolution__flow strong { color: #017e84; }.about-method__flow i, .about-evolution__flow i { color: #017e84; font-style: normal; }
.about-capabilities { background: #e9edeb; }.about-capabilities__grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--ink); }.about-capabilities__grid article { display: flex; min-height: 320px; flex-direction: column; padding: 1.5rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }.about-capabilities__grid article:nth-child(even) { border-right: 0; }.about-capabilities__grid article > span { color: #017e84; font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }.about-capabilities__grid h3 { max-width: 13ch; margin: auto 0 1rem; font-size: clamp(1.45rem, 2.2vw, 2rem); font-weight: 600; line-height: 1.08; }.about-capabilities__grid p { margin: 0; color: var(--muted); font-size: .92rem; }.about-capabilities__grid .text-link { margin-top: 1.75rem; }.about-capabilities__odoo { position: relative; border-top: 3px solid #714b67; background: #f5f2f4; }.about-capabilities__odoo h3 { color: #714b67; }.about-capabilities__odoo::after { position: absolute; right: 1.5rem; bottom: 1.6rem; width: 38px; height: 1px; background: #714b67; content: ""; }
.about-odoo { padding-block: var(--space); background: #f4f1f3; }.about-odoo__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(320px, 1.05fr); gap: clamp(4rem, 10vw, 10rem); align-items: center; }.about-odoo h2 { max-width: 12ch; margin-bottom: 1.75rem; }.about-odoo p:not(.eyebrow) { max-width: 35rem; color: var(--muted); }.about-odoo__mark { display: grid; min-height: 310px; place-content: center; gap: 2.25rem; padding: 2rem; border: 1px solid #c7b7c2; text-align: center; }.about-odoo__mark img { width: min(100%, 255px); margin-inline: auto; }.about-odoo__mark span { color: #714b67; font-size: .67rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.about-evolution { padding-block: var(--space); background: var(--graphite); color: #fff; }.about-evolution h2 { max-width: 15ch; margin-bottom: 1.75rem; }.about-evolution p:not(.eyebrow) { color: #c8ceca; }.about-evolution__flow { margin-top: clamp(3rem, 6vw, 5rem); border-top-color: #555c59; border-bottom-color: #555c59; }.about-evolution__flow span { color: #fff; }
.about-closing { padding-block: clamp(6rem, 12vw, 11rem); background: var(--ink); color: #fff; }.about-closing .eyebrow { color: var(--signal); }.about-closing h2 { max-width: 11ch; margin-bottom: 1.75rem; }.about-closing p:not(.eyebrow) { color: #c8ceca; }.about-footer { border-color: #454a48; background: var(--graphite); color: #b8bfbb; }.about-footer .container { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 2rem; }.about-footer .wordmark { color: #fff; }.about-footer nav { display: flex; justify-content: center; gap: 1rem; }.about-footer nav a { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.about-footer nav a + a::before { margin-right: 1rem; color: #5d625f; content: "·"; }.about-footer nav a:hover { color: var(--signal); }.about-footer p { justify-self: end; }
@media (max-width: 820px) { .about-page .site-header { border-color: #414644; background: var(--ink); color: #fff; }.about-page .wordmark span, .about-page .nav-group button { color: #b8bfbb; }.about-page .nav-contact { border-color: #fff; }.about-page .menu-toggle { border-color: #4b504e; }.about-page .menu-toggle span:not(.sr-only) { background: #fff; }.about-page .primary-nav { border-color: #4b504e; background: var(--graphite); }.about-page .primary-nav > ul > li { border-color: #4b504e; }.about-page .nav-group > ul { border-color: #4b504e; background: var(--graphite); }.about-hero__grid, .about-odoo__grid { grid-template-columns: 1fr; }.about-hero__grid { min-height: auto; }.about-hero__field { min-height: 280px; }.about-intro { grid-template-columns: 1fr; gap: 0; }.about-intro .eyebrow { padding-top: 0; }.about-method__flow, .about-evolution__flow { flex-wrap: wrap; justify-content: center; }.about-method__flow span, .about-method__flow strong, .about-evolution__flow span, .about-evolution__flow strong { font-size: .78rem; }.about-capabilities__grid { grid-template-columns: 1fr; }.about-capabilities__grid article, .about-capabilities__grid article:nth-child(even) { min-height: 260px; border-right: 0; }.about-odoo__mark { min-height: 240px; }.about-footer .container { grid-template-columns: 1fr; gap: 1.25rem; }.about-footer nav { justify-content: flex-start; flex-wrap: wrap; }.about-footer p { justify-self: start; } }

/* Contacto */
.contact-page { background: var(--paper); }.contact-page .site-header { border-color: #414644; background: rgb(16 17 18 / 94%); color: #fff; }.contact-page .wordmark span, .contact-page .nav-group button { color: #b8bfbb; }.contact-page .nav-contact { border-color: #fff; }.contact-page .primary-nav a:hover, .contact-page .primary-nav a[aria-current="page"] { color: #b8bfbb; }.contact-page .nav-group > ul { border-color: #4b504e; background: var(--graphite); }.contact-page .nav-group > ul a:hover { background: #343836; color: #fff; }
.contact-hero { padding-block: clamp(4rem, 8vw, 8rem); background: var(--ink); color: #fff; }.contact-hero__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(420px, 1.15fr); gap: clamp(4rem, 10vw, 11rem); align-items: start; }.contact-hero__copy { padding-top: clamp(1rem, 7vw, 6rem); }.contact-hero h1 { max-width: 9ch; font-size: clamp(3.2rem, 5.4vw, 5.9rem); }.contact-hero .lead { margin: 1.75rem 0 0; }.contact-form { padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid #454a48; background: #17191a; }.contact-form__fields { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem 1.25rem; }.contact-form label { display: grid; gap: .55rem; color: #d4dbd6; font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.contact-form__full { grid-column: 1 / -1; }.contact-form input, .contact-form select, .contact-form textarea { width: 100%; border: 0; border-bottom: 1px solid #69716d; border-radius: 0; padding: .65rem 0; background: transparent; color: #fff; font: inherit; font-size: .98rem; letter-spacing: 0; outline: 0; }.contact-form select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--signal) 50%), linear-gradient(135deg, var(--signal) 50%, transparent 50%); background-position: calc(100% - 12px) calc(50% + 1px), calc(100% - 7px) calc(50% + 1px); background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }.contact-form select option { background: var(--graphite); color: #fff; }.contact-form textarea { resize: vertical; min-height: 76px; }.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--signal); box-shadow: 0 1px 0 var(--signal); }.contact-form button { margin-top: 2rem; border: 1px solid var(--signal); padding: .8rem 1.15rem; background: var(--signal); color: var(--ink); font: inherit; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }.contact-form button:hover { background: transparent; color: var(--signal); }.contact-form__status { min-height: 1.3rem; margin: 1rem 0 0; color: #d7dfda; font-size: .82rem; }
.contact-direct { padding-block: clamp(4.5rem, 8vw, 7rem); }.contact-direct__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .7fr); gap: clamp(3rem, 10vw, 10rem); align-items: end; }.contact-direct h2 { max-width: 12ch; }.contact-direct dl { margin: 0; border-top: 1px solid var(--ink); }.contact-direct dl > div { display: grid; grid-template-columns: 1fr 1fr; min-height: 88px; align-items: center; border-bottom: 1px solid var(--line); }.contact-direct dt { color: #017e84; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.contact-direct dd { margin: 0; color: var(--muted); font-size: 1.1rem; }
.contact-areas { padding-block: clamp(4.5rem, 8vw, 7rem); background: #e9edeb; }.contact-areas h2 { max-width: 12ch; margin-bottom: clamp(3rem, 6vw, 5rem); }.contact-areas__grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--ink); }.contact-areas__grid a { position: relative; display: grid; min-height: 220px; grid-template-columns: 1fr auto; align-content: start; padding: 1.5rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }.contact-areas__grid a:last-child { border-right: 0; }.contact-areas__grid a:hover { background: #e1e7e3; }.contact-areas__grid span { grid-column: 1; font-size: clamp(1.6rem, 3vw, 2.5rem); font-weight: 600; }.contact-areas__grid p { grid-column: 1; align-self: end; margin: auto 0 0; color: var(--muted); }.contact-areas__grid i { grid-column: 2; grid-row: 1 / span 2; align-self: end; color: #017e84; font-size: 1.35rem; font-style: normal; }.contact-footer { border-color: #454a48; background: var(--graphite); color: #b8bfbb; }.contact-footer .container { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 2rem; }.contact-footer .wordmark { color: #fff; }.contact-footer nav { display: flex; justify-content: center; gap: 1rem; }.contact-footer nav a { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.contact-footer nav a + a::before { margin-right: 1rem; color: #5d625f; content: "·"; }.contact-footer nav a:hover { color: var(--signal); }.contact-footer p { justify-self: end; }
@media (max-width: 820px) { .contact-page .site-header { background: var(--ink); }.contact-page .menu-toggle { border-color: #4b504e; }.contact-page .menu-toggle span:not(.sr-only) { background: #fff; }.contact-page .primary-nav { border-color: #4b504e; background: var(--graphite); }.contact-page .primary-nav > ul > li { border-color: #4b504e; }.contact-hero__grid, .contact-direct__grid { grid-template-columns: 1fr; }.contact-hero__copy { padding-top: 0; }.contact-form__fields { grid-template-columns: 1fr; }.contact-form__full { grid-column: auto; }.contact-areas__grid { grid-template-columns: 1fr; }.contact-areas__grid a, .contact-areas__grid a:last-child { min-height: 180px; border-right: 0; }.contact-footer .container { grid-template-columns: 1fr; gap: 1.25rem; }.contact-footer nav { justify-content: flex-start; flex-wrap: wrap; }.contact-footer p { justify-self: start; } }

/* Footer and WhatsApp global */
.site-footer.giga-footer { border-color: #383d3a; padding-block: 3.25rem 1.25rem; background: #171918; color: #b8bfbb; }.site-footer.giga-footer .container { display: block; }.giga-footer .wordmark { color: #fff; }.giga-footer__main { display: grid; grid-template-columns: minmax(200px, 1.3fr) minmax(165px, .9fr) minmax(120px, .6fr) auto; gap: clamp(2rem, 5vw, 5rem); padding-bottom: 2.75rem; }.giga-footer__brand p { max-width: 26ch; margin: 1.1rem 0 0; color: #aab2ae; font-size: .88rem; line-height: 1.5; }.giga-footer__contact { margin-top: 1.25rem; color: #dbe1de; font-size: .78rem; font-style: normal; line-height: 1.65; }.giga-footer__contact a { color: var(--signal); }.giga-footer__contact a:hover { color: #fff; }.giga-footer__links, .giga-footer__social { display: grid; align-content: start; gap: .7rem; }.giga-footer__links strong, .giga-footer__social > strong { margin-bottom: .35rem; color: var(--signal); font-size: .67rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }.giga-footer__links a { width: fit-content; color: #dbe1de; font-size: .82rem; }.giga-footer__links a:hover { color: var(--signal); }.giga-footer__social > div { display: flex; gap: .4rem; }.giga-footer__social a { position: relative; display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid #565d59; color: #dbe1de; }.giga-footer__social a:hover { border-color: var(--signal); color: var(--signal); }.giga-footer__social a::after { position: absolute; top: calc(100% + .45rem); left: 50%; z-index: 2; padding: .25rem .4rem; background: #101112; color: #fff; content: attr(data-label); font-size: .62rem; letter-spacing: .04em; opacity: 0; pointer-events: none; transform: translateX(-50%); transition: opacity .15s ease; }.giga-footer__social a:hover::after, .giga-footer__social a:focus-visible::after { opacity: 1; }.giga-footer__social svg { width: 15px; height: 15px; fill: currentColor; }.giga-footer__social rect, .giga-footer__social circle { fill: none; stroke: currentColor; stroke-width: 1.8; }.giga-footer__social .giga-footer__fill { fill: currentColor; stroke: none; }.giga-footer__bottom { border-top: 1px solid #383d3a; padding-top: 1.25rem; }.giga-footer__bottom p { margin: 0; color: #858d89; font-size: .72rem; }
.whatsapp-button { position: fixed; z-index: 45; right: max(1.25rem, env(safe-area-inset-right)); bottom: max(1.25rem, calc(env(safe-area-inset-bottom) + 1rem)); display: flex; align-items: center; gap: .55rem; width: 50px; height: 50px; padding: 0; overflow: hidden; border-radius: 50%; background: #25d366; color: #fff; box-shadow: 0 8px 20px rgb(0 0 0 / 18%); transition: width .18s ease, background-color .18s ease; }.whatsapp-button svg { flex: 0 0 22px; width: 22px; height: 22px; margin-left: 14px; fill: currentColor; }.whatsapp-button span { overflow: hidden; white-space: nowrap; font-size: .72rem; font-weight: 700; letter-spacing: .03em; opacity: 0; transition: opacity .12s ease; }.whatsapp-button:hover, .whatsapp-button:focus-visible { width: 185px; background: #1fb95a; }.whatsapp-button:hover span, .whatsapp-button:focus-visible span { opacity: 1; }.whatsapp-button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@media (max-width: 820px) { .site-footer.giga-footer { padding-block: 2.75rem 1.25rem; }.giga-footer__main { grid-template-columns: 1fr; gap: 2.2rem; padding-bottom: 2.2rem; }.giga-footer__brand p { max-width: 32ch; }.giga-footer__links { gap: .65rem; }.giga-footer__social a::after { display: none; }.whatsapp-button { right: max(1rem, env(safe-area-inset-right)); bottom: max(1rem, calc(env(safe-area-inset-bottom) + .75rem)); width: 48px; height: 48px; }.whatsapp-button:hover, .whatsapp-button:focus-visible { width: 48px; }.whatsapp-button svg { margin-left: 13px; }.whatsapp-button span { display: none; } }

.giga-footer__brand { display: flex; flex-direction: column; align-items: flex-start; }
.giga-footer__brand p { justify-self: start; }

.odoo-overview-page .odoo-app-world { padding-block: clamp(4rem, 7vw, 6.5rem); }
.odoo-overview-page .odoo-app-cloud { margin-top: clamp(2.75rem, 5vw, 4.5rem); }
.odoo-overview-page .odoo-giga-journey { padding-block: clamp(4rem, 7vw, 6.5rem); }
.odoo-overview-page .odoo-giga-journey .odoo-section-heading { display: block; max-width: 1100px; margin-inline: auto; text-align: center; }
.odoo-overview-page .odoo-giga-journey .odoo-section-heading h2 { max-width: 23ch; margin-inline: auto; }
.odoo-overview-page .odoo-giga-journey .odoo-section-heading > p { max-width: 58ch; margin: 1.25rem auto 0; }
.odoo-overview-page .odoo-giga-journey ol { margin-top: clamp(2.75rem, 5vw, 4.5rem); }
.odoo-overview-page .odoo-giga-journey li { min-height: 190px; }
.odoo-overview-page .odoo-giga-journey h3 { margin: 1.4rem 0 .65rem; }
.odoo-overview-page .odoo-giga-specialties { padding-block: clamp(4rem, 7vw, 6.5rem); }
.odoo-overview-page .odoo-giga-specialties .odoo-section-heading { display: block; max-width: 1100px; margin-inline: auto; text-align: center; }
.odoo-overview-page .odoo-giga-specialties .odoo-section-heading h2 { max-width: 23ch; margin-inline: auto; }
.odoo-overview-page .odoo-giga-specialties .odoo-section-heading > p { max-width: 58ch; margin: 1.25rem auto 0; }
.odoo-overview-page .odoo-specialty-cards { gap: .75rem; margin-top: clamp(2.75rem, 5vw, 4.5rem); }
.odoo-overview-page .odoo-specialty-cards a { min-height: 175px; padding: 1.25rem; }

.erp-page .erp-hero__grid { gap: clamp(1.5rem, 4vw, 4rem); }
.erp-page .erp-hero__visual { margin-left: clamp(-3rem, -4vw, -1rem); }
.erp-page .erp-screen--main::after { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, #fff 0%, rgb(255 255 255 / 82%) 9%, transparent 36%); content: ""; pointer-events: none; }
.erp-page .erp-screen--main figcaption { z-index: 2; }
.erp-page .erp-ecosystem .erp-visual-intro { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.erp-page .erp-ecosystem .erp-visual-intro > p { max-width: 60ch; font-size: clamp(1.1rem, 1.45vw, 1.3rem); }
.erp-page .erp-process { padding-block: clamp(4rem, 7vw, 6.5rem); }
.erp-page .erp-process ol { margin-top: clamp(2.75rem, 5vw, 4.5rem); }
.erp-page .erp-process li, .erp-page .erp-process li:nth-child(even) { min-height: 175px; margin-top: 0; }
.erp-page .erp-process li > div { margin-top: 0; }

.construction-page .construction-integrated .construction-section-intro {
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  gap: clamp(2rem, 5vw, 5rem);
}

.construction-page .construction-integrated .construction-section-intro h2 {
  max-width: 18ch;
}

.construction-page .construction-integrated .construction-section-intro > p {
  font-size: 1.25rem;
  line-height: 1.55;
}

.construction-page .construction-integrated .construction-modules li,
.construction-page .construction-integrated .construction-modules li:nth-child(3n + 2) {
  transform: none;
}

.construction-page .construction-integrated .construction-modules span {
  font-size: .8rem;
}

.construction-page .construction-acopios-flow li {
  padding: .8rem;
}

.construction-page .construction-acopios-flow li::before {
  content: none;
}

.construction-page .construction-infographic {
  padding-block: clamp(3rem, 6vw, 6rem);
  background: #f6f8f7;
}

.construction-page .construction-infographic figure {
  margin: 0;
  overflow: hidden;
  border: 1px solid #d8e2df;
  box-shadow: 0 20px 45px rgb(31 54 49 / 12%);
}

.construction-page .construction-infographic img {
  display: block;
  width: 100%;
  height: auto;
}

.pharma-page .pharma-integrations-rebuilt > figure {
  min-height: 520px;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.pharma-page .pharma-integrations-rebuilt > figure > img {
  mask-image: linear-gradient(90deg, #000 0 62%, transparent 100%);
  object-position: center;
}

.pharma-page .pharma-differentials {
  background: #fff !important;
}

.pharma-page .pharma-integrations-rebuilt > figure {
  min-height: 360px !important;
  max-height: 360px;
}

.pharma-page .pharma-integrations-rebuilt__flow {
  margin-block: 1.25rem;
}

.pharma-page .pharma-integrations-rebuilt__flow li {
  height: 76px;
  min-height: 76px !important;
}

.pharma-page .pharma-integrations-rebuilt__flow img,
.pharma-page .pharma-integrations-rebuilt__flow span {
  width: 30px !important;
  height: 30px !important;
}

.pharma-page .pharma-development {
  padding-block: clamp(2.5rem, 4.5vw, 3.75rem) !important;
}

.pharma-page .pharma-development__grid {
  gap: clamp(2rem, 4vw, 3.5rem);
}

.pharma-page .pharma-development li {
  display: flex;
  min-height: 46px;
  padding-inline: 0;
}

.pharma-page .pharma-development li::before {
  content: none;
}

.integration-page .integration-objective {
  padding-block: clamp(3.5rem, 6vw, 5rem) !important;
}

.integration-page .integration-objective__grid {
  gap: clamp(2.5rem, 6vw, 5rem);
}

.integration-page .integration-objective__grid > p {
  max-width: 42rem;
  font-size: clamp(1.15rem, 1.5vw, 1.35rem);
  line-height: 1.6;
}

.integration-page .integration-objective__flow {
  margin-top: 1.5rem;
  padding-top: 1rem;
}

.ai-intelligence-page .ai-knowledge {
  padding-block: clamp(3.5rem, 6vw, 5rem);
}

.ai-intelligence-page .ai-knowledge__grid {
  gap: clamp(2.5rem, 6vw, 5rem);
}

.ai-agents-page .ai-orchestration__flow {
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0 !important;
}

.ai-agents-page .ai-agent-definition .ai-agents-intro {
  grid-template-columns: minmax(0, 1fr) minmax(320px, .85fr);
  gap: clamp(2.5rem, 6vw, 5rem);
  align-items: end;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.ai-agents-page .ai-agent-definition .ai-agents-intro h2 {
  margin: 0;
}

.ai-agents-page .ai-agent-definition .ai-agents-intro p {
  max-width: 38rem;
  font-size: clamp(1.08rem, 1.35vw, 1.22rem);
  line-height: 1.6;
}

.ai-agents-page .ai-control {
  background:
    linear-gradient(90deg, #202624 0%, rgb(32 38 36 / 96%) 31%, rgb(32 38 36 / 76%) 52%, rgb(32 38 36 / 30%) 76%, #202624 100%),
    url("../images/visual-packs/nosotros/08_ai_agentes_automatizacion.jpg") right center / auto 112% no-repeat;
}

.ai-agents-page .ai-control__grid {
  grid-template-columns: minmax(0, .85fr) minmax(380px, 1.15fr);
  min-height: 390px;
}

.ai-robotics-page .robotics-hero__visual {
  margin-left: clamp(-7rem, -7vw, -3rem);
  border: 0;
  mask-image: linear-gradient(90deg, transparent 0%, #000 20%, #000 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 20%, #000 100%);
}

.ai-robotics-page .robotics-hero__visual > img {
  filter: saturate(.82) contrast(1.04);
  transform: scale(1.04);
}

.ai-robotics-page .robotics-hero__visual::after {
  background: linear-gradient(90deg, rgb(9 10 11 / 94%) 0%, rgb(9 10 11 / 48%) 28%, rgb(7 16 15 / 24%) 72%, rgb(7 16 15 / 42%) 100%);
}

.ai-robotics-page .robotics-stack .robotics-intro {
  grid-template-columns: minmax(0, .85fr) minmax(380px, 1.15fr);
  gap: clamp(3rem, 9vw, 9rem);
  align-items: end;
  margin-bottom: clamp(3rem, 6vw, 5rem);
}

.ai-robotics-page .robotics-stack .robotics-intro h2 {
  max-width: 15ch;
  margin: 0;
}

.ai-robotics-page .robotics-stack .robotics-intro p {
  max-width: 44rem;
  font-size: clamp(1.1rem, 1.45vw, 1.3rem);
  line-height: 1.62;
}

.ai-robotics-page .robotics-stack__scene {
  margin-right: clamp(-7rem, -8vw, -3rem);
  margin-left: clamp(-3rem, -3vw, -1rem);
  border-radius: 0 !important;
  mask-image: linear-gradient(90deg, transparent 0%, #000 13%, #000 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 13%, #000 100%);
}

.ai-robotics-page .robotics-stack__scene::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #edf5f3 0%, rgb(237 245 243 / 56%) 20%, transparent 48%, rgb(16 34 31 / 28%) 100%);
  content: "";
  pointer-events: none;
}

.ai-robotics-page .robotics-stack__scene span {
  z-index: 1;
}

.ai-robotics-page .robotics-platforms .robotics-intro h2 {
  max-width: 22ch;
}

.ai-robotics-page .robotics-platforms .robotics-intro {
  grid-template-columns: 1fr;
}

.ai-robotics-page .robotics-enterprise .robotics-intro {
  grid-template-columns: minmax(0, 1.15fr) minmax(380px, .85fr);
  gap: clamp(2.5rem, 5vw, 4.5rem);
  align-items: end;
}

.ai-robotics-page .robotics-enterprise .robotics-intro h2 {
  max-width: none;
  margin: 0;
  font-size: clamp(2.5rem, 3vw, 3rem);
  line-height: 1.08;
}

.ai-robotics-page .robotics-enterprise .robotics-intro p {
  max-width: 34rem;
  font-size: clamp(1.05rem, 1.35vw, 1.2rem);
  line-height: 1.62;
}

@media (max-width: 820px) {
  .ai-robotics-page .robotics-stack .robotics-intro {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .ai-robotics-page .robotics-stack__scene {
    margin-inline: 0;
    mask-image: none;
    -webkit-mask-image: none;
  }
}

.pharma-page .pharma-infographic {
  padding-block: clamp(3rem, 6vw, 5rem);
  background: #f5f3f2;
}

.pharma-page .pharma-infographic figure {
  max-width: 1024px;
  margin: 0 auto;
}

.pharma-page .pharma-infographic img {
  display: block;
  width: 100%;
  height: auto;
}

.pharma-page .pharma-integrations-rebuilt__external article > p:last-child {
  margin-top: .65rem;
}

/* Global navigation */
.nav-group > ul { width: 292px; padding: .85rem; }.nav-group > ul .nav-menu-label { padding: .45rem .7rem .2rem; color: #017e84; font-size: .64rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.nav-group > ul .nav-menu-label:not(:first-child) { margin-top: .45rem; border-top: 1px solid var(--line); padding-top: .8rem; }.nav-group > ul a { padding: .6rem .7rem; }.nav-group button { display: grid; width: 22px; height: 22px; place-items: center; font-size: 1rem; line-height: 1; transition: transform .18s ease; }.nav-group button[aria-expanded="true"] { transform: rotate(45deg); }.primary-nav a[aria-current="page"] { color: var(--signal); }
@media (max-width: 820px) { .primary-nav > ul > li.nav-group { display: grid; grid-template-columns: 1fr auto; align-items: center; }.primary-nav > ul > li.nav-group > a { padding-block: .2rem; }.primary-nav > ul > li.nav-group > button { width: 38px; height: 38px; border: 1px solid #4b504e; }.nav-group > ul, .nav-group > ul.is-open { grid-column: 1 / -1; width: 100%; margin-top: .75rem; padding: .5rem; border: 1px solid #4b504e; background: transparent; }.nav-group > ul .nav-menu-label { color: var(--signal); }.nav-group > ul .nav-menu-label:not(:first-child) { border-color: #4b504e; }.nav-group > ul a { padding: .75rem .7rem; }.nav-group > ul a:hover { background: #343836; } }

/* Odoo ERP */
.erp-hero { padding-block: clamp(4rem, 8vw, 8rem); background: #f2f0f1; overflow: hidden; }.erp-hero__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(350px, 1.05fr); gap: clamp(3rem, 8vw, 9rem); align-items: center; min-height: 620px; }.erp-hero h1 { max-width: 10ch; font-size: clamp(3.3rem, 5.5vw, 6.2rem); }.erp-hero .lead { margin: 1.75rem 0 2rem; color: var(--muted); }.erp-hero__visual { position: relative; min-height: 460px; overflow: hidden; border-block: 1px solid #cbc6c9; background-image: linear-gradient(90deg, rgb(113 75 103 / 9%) 1px, transparent 1px); background-size: 46px 100%; }.erp-hero__visual::before { position: absolute; top: -27%; right: -8%; width: 74%; aspect-ratio: 1; border: 1px solid rgb(113 75 103 / 44%); border-radius: 50%; content: ""; }.erp-hero__visual::after { position: absolute; top: 52%; right: 0; left: 0; height: 1px; background: #017e84; content: ""; }.erp-hero__logo { position: absolute; z-index: 1; top: 16%; left: 7%; width: min(46%, 240px); }.erp-hero__apps { position: absolute; z-index: 1; right: 8%; bottom: 12%; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 3.5vw, 3.25rem); width: min(69%, 410px); }.erp-hero__apps img { width: 100%; max-width: 78px; justify-self: center; filter: drop-shadow(0 12px 14px rgb(16 17 18 / 13%)); }.erp-hero__apps img:nth-child(4) { grid-column: 1; translate: 57%; }.erp-hero__apps img:nth-child(5) { grid-column: 3; translate: -57%; }
.erp-ecosystem, .erp-standards, .erp-specialties { padding-block: var(--space); }.erp-intro { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 5rem); }.erp-intro .eyebrow { padding-top: .45rem; }.erp-intro h2 { max-width: 12ch; }.erp-intro p:not(.eyebrow) { align-self: end; margin: 0; color: var(--muted); }.erp-ecosystem__grid { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; }.erp-ecosystem__grid li { display: grid; min-height: 190px; place-content: center; gap: 1rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: center; }.erp-ecosystem__grid li:nth-child(3n) { border-right: 0; }.erp-ecosystem__grid img { width: 58px; height: 58px; object-fit: contain; justify-self: center; }.erp-ecosystem__grid span { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.erp-ecosystem__note { margin: 1.25rem 0 0; color: var(--muted); font-size: .82rem; }
.erp-process { padding-block: var(--space); background: var(--graphite); color: #fff; }.erp-process .eyebrow { color: #55a9ac; }.erp-process ol { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; border-top: 1px solid #565b59; list-style: none; }.erp-process li { min-height: 280px; padding: 1.3rem; border-right: 1px solid #565b59; }.erp-process li:last-child { border-right: 0; }.erp-process li > span { color: #55a9ac; font-size: .66rem; font-weight: 700; letter-spacing: .09em; }.erp-process li > div { margin-top: clamp(3rem, 7vw, 7rem); }.erp-process h3 { margin: 0; font-size: 1.1rem; font-weight: 600; line-height: 1.15; }.erp-process p { margin: .7rem 0 0; color: #c8ceca; font-size: .87rem; }
.erp-standards { background: #e9edeb; }.erp-standards__levels { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); }.erp-standards__levels article { display: flex; min-height: 280px; flex-direction: column; padding: 1.5rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }.erp-standards__levels article:last-child { border-right: 0; }.erp-standards__levels span { color: #017e84; font-size: .68rem; font-weight: 700; letter-spacing: .1em; }.erp-standards__levels h3 { max-width: 11ch; margin: auto 0 1rem; font-size: clamp(1.3rem, 2vw, 1.75rem); font-weight: 600; line-height: 1.12; }.erp-standards__levels p { margin: 0; color: var(--muted); font-size: .9rem; }
.erp-capabilities { padding-block: var(--space); background: var(--paper); }.erp-capabilities__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(400px, 1.2fr); gap: clamp(3rem, 10vw, 10rem); align-items: center; }.erp-capabilities h2 { max-width: 11ch; }.erp-capabilities ul { display: grid; grid-template-columns: repeat(2, 1fr); margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; }.erp-capabilities li { min-height: 78px; padding: 1rem 0; border-bottom: 1px solid var(--line); font-size: 1rem; font-weight: 600; }.erp-capabilities li:nth-child(odd) { padding-right: 1rem; border-right: 1px solid var(--line); }.erp-capabilities li:nth-child(even) { padding-left: 1.25rem; }.erp-capabilities li::before { display: block; margin-bottom: .45rem; color: #017e84; font-size: .62rem; letter-spacing: .1em; content: "CAPACIDAD"; }
.erp-specialties { background: #ebe9e8; }.erp-specialties__links { border-top: 1px solid var(--ink); }.erp-specialties__links a { display: grid; grid-template-columns: 3rem 1fr auto; align-items: center; gap: 1rem; min-height: 92px; border-bottom: 1px solid var(--line); }.erp-specialties__links a:hover { color: #714b67; }.erp-specialties__links span { color: #017e84; font-size: .7rem; font-weight: 700; letter-spacing: .1em; }.erp-specialties__links strong { font-size: clamp(1.05rem, 1.7vw, 1.4rem); font-weight: 500; }.erp-specialties__links i { font-size: 1.2rem; font-style: normal; }
.erp-closing { padding-block: clamp(6rem, 12vw, 11rem); background: var(--ink); color: #fff; }.erp-closing__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(260px, .9fr); gap: clamp(4rem, 12vw, 12rem); align-items: end; }.erp-closing .eyebrow { color: #55a9ac; }.erp-closing h2 { max-width: 12ch; margin-bottom: 1.75rem; }.erp-closing p:not(.eyebrow) { color: #c8ceca; }.erp-closing figure { margin: 0; border-top: 1px solid #565b59; padding-top: 2rem; }.erp-closing figure img { display: block; width: min(100%, 270px); margin-left: auto; }
@media (max-width: 820px) { .erp-hero__grid, .erp-capabilities__grid, .erp-closing__grid { grid-template-columns: 1fr; }.erp-hero__grid { min-height: auto; }.erp-hero__visual { min-height: 310px; }.erp-hero__apps { width: min(72%, 300px); }.erp-intro { grid-template-columns: 1fr; gap: 0; }.erp-intro .eyebrow { padding-top: 0; }.erp-ecosystem__grid { grid-template-columns: repeat(2, 1fr); }.erp-ecosystem__grid li, .erp-ecosystem__grid li:nth-child(3n) { border-right: 1px solid var(--line); }.erp-ecosystem__grid li:nth-child(even) { border-right: 0; }.erp-process ol { grid-template-columns: 1fr; }.erp-process li, .erp-process li:last-child { min-height: auto; border-right: 0; border-bottom: 1px solid #565b59; }.erp-process li > div { margin-top: 2rem; }.erp-standards__levels { grid-template-columns: 1fr; }.erp-standards__levels article, .erp-standards__levels article:last-child { min-height: 220px; border-right: 0; }.erp-capabilities ul { grid-template-columns: 1fr; }.erp-capabilities li, .erp-capabilities li:nth-child(odd), .erp-capabilities li:nth-child(even) { padding-left: 0; border-right: 0; }.erp-closing figure img { margin-left: 0; } }

/* Odoo ERP typographic refinement */
.erp-page h2 { font-size: clamp(2.25rem, 3.8vw, 3.6rem); line-height: 1.03; }.erp-hero h1 { max-width: 11ch; font-size: clamp(3rem, 4.5vw, 4.5rem); line-height: 1; }.erp-hero .lead { max-width: 48ch; font-size: clamp(1.05rem, 1.3vw, 1.2rem); line-height: 1.55; }.erp-intro h2 { max-width: 16ch; }.erp-capabilities h2 { max-width: 13ch; }.erp-closing h2 { max-width: 14ch; }.erp-closing figure img { width: min(100%, 190px); }
@media (max-width: 820px) { .erp-page h2 { font-size: clamp(2rem, 8.5vw, 2.7rem); line-height: 1.04; }.erp-hero h1 { max-width: 11.5ch; font-size: clamp(2.6rem, 11vw, 3.3rem); line-height: 1.02; }.erp-hero .lead { font-size: 1.05rem; }.erp-intro h2, .erp-capabilities h2, .erp-closing h2 { max-width: 15ch; } }

/* Odoo ERP screenshot placeholders */
.erp-hero__visual { display: grid; padding: clamp(.75rem, 1.6vw, 1.25rem); border: 0; background: #e8e5e7; }.erp-screenshot-slot { position: relative; min-width: 0; margin: 0; overflow: hidden; border: 1px solid #c8c1c5; background: #f4f2f3; box-shadow: 0 16px 32px rgb(16 17 18 / 7%); }.erp-screenshot-slot::before { position: absolute; inset: 0; background-image: linear-gradient(90deg, rgb(113 75 103 / 8%) 1px, transparent 1px), linear-gradient(rgb(113 75 103 / 8%) 1px, transparent 1px); background-size: 36px 36px; content: ""; pointer-events: none; }.erp-screenshot-slot figcaption { position: absolute; z-index: 1; bottom: 1.1rem; left: 1.1rem; margin: 0; color: #714b67; font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.erp-screenshot-slot--hero { min-height: 432px; }.erp-hero__logo { top: 12%; left: 8%; }.erp-hero__apps { right: 9%; bottom: 18%; }.erp-screenshot-band { padding-block: clamp(3rem, 6vw, 6rem); background: #eeecec; }.erp-screenshot-slot--wide { min-height: clamp(300px, 38vw, 480px); }.erp-screenshot-slot__header { position: absolute; z-index: 1; top: 1.15rem; right: 1.15rem; left: 1.15rem; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #d5cfd2; padding-bottom: .75rem; }.erp-screenshot-slot__header img { display: block; width: 76px; }.erp-screenshot-slot__header span { color: #714b67; font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
@media (max-width: 820px) { .erp-hero__visual { min-height: 0; }.erp-screenshot-slot--hero { min-height: 300px; }.erp-screenshot-slot--wide { min-height: 240px; }.erp-screenshot-slot figcaption { bottom: .85rem; left: .85rem; }.erp-screenshot-slot__header { top: .85rem; right: .85rem; left: .85rem; }.erp-screenshot-slot__header img { width: 62px; } }

/* Odoo overview: product-led desktop composition */
.odoo-page:not(.erp-page) { font-family: "Inter", "Odoo Unicode Support Noto", sans-serif; }.odoo-page:not(.erp-page) h1, .odoo-page:not(.erp-page) h2 { font-family: "Caveat", cursive; font-weight: 700; letter-spacing: 0; }.odoo-page:not(.erp-page) h1 { line-height: .88; }.odoo-page:not(.erp-page) h2 { line-height: .95; }.odoo-page:not(.erp-page) .eyebrow, .odoo-page:not(.erp-page) .text-link, .odoo-page:not(.erp-page) .odoo-app-grid span, .odoo-page:not(.erp-page) .odoo-process__list span, .odoo-page:not(.erp-page) .odoo-specialties__list span { font-family: "Inter", "Odoo Unicode Support Noto", sans-serif; }
.odoo-page:not(.erp-page) .odoo-hero { position: relative; padding-block: clamp(4rem, 7vw, 7rem); background: #f7f4f7; }.odoo-page:not(.erp-page) .odoo-hero__grid { grid-template-columns: minmax(0, .9fr) minmax(470px, 1.1fr); min-height: 590px; gap: clamp(3rem, 7vw, 8rem); }.odoo-page:not(.erp-page) .odoo-hero h1 { max-width: 10.5ch; font-size: clamp(3.4rem, 5.3vw, 5.8rem); line-height: .98; }.odoo-page:not(.erp-page) .odoo-hero .lead { max-width: 43ch; margin: 1.5rem 0 0; color: #555052; font-size: clamp(1.05rem, 1.35vw, 1.2rem); }.odoo-page:not(.erp-page) .odoo-hero__actions { margin-top: 2.1rem; }.odoo-page:not(.erp-page) .odoo-hero__visual { min-height: 520px; padding: 1.15rem; border: 0; background: #e6dce5; box-shadow: none; }.odoo-page:not(.erp-page) .odoo-hero__visual::before { top: -36%; right: -19%; width: 88%; border-color: rgb(113 75 103 / 26%); }.odoo-page:not(.erp-page) .odoo-hero__visual::after { top: 82%; background: #a09c9e; }.odoo-page:not(.erp-page) .odoo-hero__logo { z-index: 3; top: 7%; left: 8%; width: min(36%, 190px); }.odoo-product-screen { position: absolute; inset: 19% 7% 10% 10%; z-index: 1; margin: 0; overflow: hidden; border: 1px solid rgb(113 75 103 / 18%); background: #fff; box-shadow: 0 24px 44px rgb(70 47 65 / 15%); transform: rotate(-2.25deg); transform-origin: center; }.odoo-product-screen > img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }.odoo-product-screen figcaption, .odoo-platform__screen figcaption { position: absolute; right: .8rem; bottom: .7rem; z-index: 1; padding: .28rem .45rem; background: rgb(255 255 255 / 86%); color: #714b67; font-size: .58rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.odoo-page:not(.erp-page) .odoo-hero__apps { z-index: 3; right: 2%; bottom: 2%; width: min(47%, 245px); gap: .8rem; }.odoo-page:not(.erp-page) .odoo-hero__apps img { max-width: 55px; animation: odoo-overview-float 5s ease-in-out infinite; }.odoo-page:not(.erp-page) .odoo-hero__apps img:nth-child(even) { animation-delay: -2.5s; }
.odoo-scale { padding-block: clamp(3.5rem, 6vw, 6rem); background: #714b67; color: #fff; }.odoo-scale .container { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(3rem, 8vw, 8rem); align-items: center; }.odoo-scale .eyebrow { color: #f1d8e9; }.odoo-scale h2 { max-width: 12ch; font-size: clamp(2.5rem, 4.3vw, 4.8rem); }.odoo-scale__figures { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgb(255 255 255 / 40%); }.odoo-scale__figures article { display: grid; gap: .5rem; min-height: 150px; align-content: end; padding: 1.25rem; border-right: 1px solid rgb(255 255 255 / 25%); }.odoo-scale__figures article:last-child { border-right: 0; }.odoo-scale__figures strong { font-size: clamp(2rem, 3.3vw, 3.75rem); font-weight: 500; line-height: 1; }.odoo-scale__figures span { max-width: 13ch; color: #f1e8ef; font-size: .78rem; font-weight: 600; line-height: 1.25; }.odoo-scale__source { grid-column: 2; margin: -2rem 0 0; color: #f1e8ef; font-size: .72rem; }.odoo-scale__source a { border-bottom: 1px solid currentColor; }
.odoo-page:not(.erp-page) .odoo-platform { padding-block: clamp(5rem, 9vw, 9rem); }.odoo-page:not(.erp-page) .odoo-platform__intro { grid-template-columns: .45fr .95fr .85fr; }.odoo-page:not(.erp-page) .odoo-platform__intro h2 { max-width: 11ch; }.odoo-page:not(.erp-page) .odoo-app-grid { grid-template-columns: repeat(5, 1fr); border-color: #b8afb6; }.odoo-page:not(.erp-page) .odoo-app-grid li { min-height: 170px; transition: background-color .2s ease; }.odoo-page:not(.erp-page) .odoo-app-grid li:hover { background: #f0e8ef; }.odoo-platform__screen { position: relative; margin: clamp(4rem, 7vw, 7rem) auto 0; overflow: hidden; border: 1px solid #d3cbd1; background: #fff; box-shadow: 0 26px 46px rgb(46 39 44 / 10%); }.odoo-platform__screen > img { display: block; width: 100%; aspect-ratio: 16 / 7; object-fit: cover; object-position: center; }
.odoo-page:not(.erp-page) .odoo-process { background: #252226; }.odoo-page:not(.erp-page) .odoo-specialties { background: #f3edf2; }.odoo-page:not(.erp-page) .odoo-partner { background: #171419; }.odoo-page:not(.erp-page) .odoo-partner figure img { width: min(100%, 220px); }
.odoo-scale__figures .odoo-scale__primary { position: relative; min-height: 174px; margin-top: -1px; border: 1px solid #f6e9f0; background: #f6e9f0; color: #51384b; }.odoo-scale__figures .odoo-scale__primary span { color: #6e5265; }.odoo-scale__figures .odoo-scale__primary strong { font-size: clamp(2.7rem, 4.1vw, 4.5rem); }
@keyframes odoo-overview-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@media (max-width: 820px) { .odoo-page:not(.erp-page) .odoo-hero__grid, .odoo-scale .container { grid-template-columns: 1fr; }.odoo-page:not(.erp-page) .odoo-hero__visual { min-height: 360px; }.odoo-page:not(.erp-page) .odoo-hero__apps { width: min(56%, 230px); }.odoo-scale__figures { grid-template-columns: 1fr; }.odoo-scale__figures article { min-height: auto; border-right: 0; border-bottom: 1px solid rgb(255 255 255 / 25%); }.odoo-scale__source { grid-column: auto; margin: 0; }.odoo-page:not(.erp-page) .odoo-platform__intro { grid-template-columns: 1fr; }.odoo-page:not(.erp-page) .odoo-app-grid { grid-template-columns: repeat(2, 1fr); }.odoo-platform__screen > img { aspect-ratio: 4 / 3; } }
@media (prefers-reduced-motion: reduce) { .odoo-page:not(.erp-page) .odoo-hero__apps img { animation: none; } }

/* Odoo overview rebuild */
.odoo-overview-page { background: #fff; color: #2d282c; font-family: "Inter", "Odoo Unicode Support Noto", sans-serif; }.odoo-overview-page h1, .odoo-overview-page h2, .odoo-overview-page h3 { font-family: inherit; font-weight: 600; letter-spacing: -.035em; }.odoo-overview-page h1 { font-size: clamp(3.6rem, 6.1vw, 6.7rem); line-height: .94; }.odoo-overview-page h2 { font-size: clamp(2.65rem, 4.1vw, 4.8rem); line-height: .98; }.odoo-overview-page p { max-width: 54ch; }.odoo-kicker { margin: 0 0 1rem; color: #714b67; font-size: .74rem; font-weight: 600; letter-spacing: .02em; }.odoo-showcase-hero { position: relative; overflow: hidden; padding: clamp(4rem, 7vw, 7.5rem) 0 clamp(5rem, 8vw, 8.5rem); background: #fff; }.odoo-showcase-hero::after { position: absolute; right: -10vw; bottom: -16vw; width: 72vw; height: 31vw; border: 1px solid #eadde8; border-radius: 50% 50% 0 0; content: ""; pointer-events: none; }.odoo-showcase-hero > .container { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, .94fr) minmax(480px, 1.06fr); align-items: center; gap: clamp(3rem, 7vw, 8rem); }.odoo-showcase-hero__copy { padding-bottom: 1rem; }.odoo-showcase-hero__logo { width: 118px; margin-bottom: clamp(2rem, 4vw, 4rem); }.odoo-showcase-hero__copy h1 { max-width: 9.5ch; margin: 0; }.odoo-showcase-hero__copy > p:not(.odoo-kicker) { margin: 1.5rem 0 0; color: #5e575d; font-size: 1.1rem; line-height: 1.6; }.odoo-showcase-hero__copy > div { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 2rem; }.odoo-button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; border: 1px solid #714b67; border-radius: 8px; padding: .75rem 1.15rem; background: #714b67; color: #fff; font-size: .82rem; font-weight: 600; transition: background-color .18s ease, color .18s ease, transform .18s ease; }.odoo-button:hover { background: #583b50; transform: translateY(-2px); }.odoo-button--quiet { background: #fff; color: #714b67; }.odoo-button--quiet:hover { background: #f7f1f6; color: #583b50; }.odoo-showcase-hero__visual { position: relative; min-height: 550px; }.odoo-showcase-hero__switch { position: absolute; z-index: 0; top: 2%; right: -4%; width: min(100%, 600px); opacity: .72; }.odoo-showcase-hero__visual figure { position: absolute; z-index: 1; top: 14%; right: 4%; bottom: 8%; left: 4%; margin: 0; overflow: hidden; border: 1px solid #e3d9e1; border-radius: 16px; background: #fff; box-shadow: 0 28px 58px rgb(77 49 71 / 17%); transform: rotate(-2deg); }.odoo-showcase-hero__visual figure > img { display: block; width: 100%; height: 100%; object-fit: cover; }.odoo-showcase-hero figcaption, .odoo-product-story figcaption { position: absolute; right: .9rem; bottom: .8rem; padding: .32rem .5rem; border-radius: 4px; background: rgb(255 255 255 / 90%); color: #714b67; font-size: .59rem; font-weight: 600; }.odoo-showcase-hero__icons { position: absolute; z-index: 2; right: 0; bottom: 1%; display: flex; gap: .7rem; }.odoo-showcase-hero__icons img { width: 58px; filter: drop-shadow(0 9px 12px rgb(76 49 69 / 13%)); }.odoo-showcase-hero__icons img:nth-child(2) { transform: translateY(-23px); }.odoo-showcase-hero__icons img:nth-child(3) { transform: translateY(10px); }
.odoo-app-world { padding-block: clamp(5rem, 10vw, 10rem); background: #f7f4f7; }.odoo-section-heading { display: grid; grid-template-columns: .35fr .85fr .8fr; gap: clamp(2rem, 4vw, 4rem); align-items: end; }.odoo-section-heading .odoo-kicker { align-self: start; }.odoo-section-heading h2 { max-width: 10ch; margin: 0; }.odoo-section-heading > p:not(.odoo-kicker) { margin: 0 0 .35rem; color: #625b60; line-height: 1.6; }.odoo-app-cloud { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem 1.6rem; margin: clamp(4rem, 7vw, 7rem) auto 0; padding: 0; list-style: none; }.odoo-app-cloud li { display: grid; width: 118px; min-height: 122px; place-content: center; gap: .7rem; border: 1px solid #e5dce4; border-radius: 14px; background: #fff; box-shadow: 0 10px 22px rgb(56 40 54 / 6%); text-align: center; transition: transform .18s ease, box-shadow .18s ease; }.odoo-app-cloud li:hover { box-shadow: 0 16px 28px rgb(56 40 54 / 13%); transform: translateY(-7px) rotate(1deg); }.odoo-app-cloud img { width: 48px; justify-self: center; }.odoo-app-cloud span { font-size: .75rem; font-weight: 600; }.odoo-app-cloud li:nth-child(2n) { transform: translateY(22px); }.odoo-app-cloud li:nth-child(3n) { transform: translateY(-12px); }.odoo-app-cloud li:nth-child(2n):hover, .odoo-app-cloud li:nth-child(3n):hover { transform: translateY(-7px) rotate(1deg); }
.odoo-product-story { padding-block: clamp(6rem, 11vw, 11rem); background: #fff; }.odoo-product-story > .container { display: grid; grid-template-columns: minmax(0, .8fr) minmax(480px, 1.2fr); gap: clamp(4rem, 9vw, 9rem); align-items: center; }.odoo-product-story__copy h2 { max-width: 10ch; margin: 0; }.odoo-product-story__copy > p:not(.odoo-kicker) { margin: 1.5rem 0 0; color: #625b60; line-height: 1.65; }.odoo-product-story figure { position: relative; margin: 0; overflow: hidden; border: 1px solid #e5dce4; border-radius: 16px; background: #f7f4f7; box-shadow: 0 24px 45px rgb(56 40 54 / 11%); }.odoo-product-story figure > img { display: block; width: 100%; aspect-ratio: 1.35; object-fit: cover; object-position: center; }
.odoo-overview-page .odoo-scale { padding-block: clamp(5rem, 9vw, 9rem); background: #714b67; }.odoo-overview-page .odoo-scale .container { grid-template-columns: .7fr 1.3fr; }.odoo-overview-page .odoo-scale h2 { font-family: inherit; font-weight: 600; letter-spacing: -.035em; }.odoo-overview-page .odoo-scale .odoo-kicker { color: #eedce9; }.odoo-overview-page .odoo-scale__figures { border-color: rgb(255 255 255 / 40%); }.odoo-overview-page .odoo-scale__figures article { border-color: rgb(255 255 255 / 22%); }.odoo-overview-page .odoo-scale__figures .odoo-scale__primary { border: 0; border-radius: 12px; background: #f7edf4; color: #583d52; }.odoo-overview-page .odoo-scale__figures .odoo-scale__primary span { color: #745b6c; }.odoo-overview-page .odoo-scale__source { font-size: .7rem; }
.odoo-giga-journey { padding-block: clamp(6rem, 10vw, 10rem); background: #f1f6f5; }.odoo-giga-journey .odoo-kicker { color: #017e84; }.odoo-giga-journey ol { display: grid; grid-template-columns: repeat(5, 1fr); margin: clamp(4rem, 7vw, 7rem) 0 0; padding: 0; border-top: 1px solid #b5cdca; list-style: none; }.odoo-giga-journey li { min-height: 250px; padding: 1.3rem; border-right: 1px solid #b5cdca; }.odoo-giga-journey li:last-child { border-right: 0; }.odoo-giga-journey li span { color: #017e84; font-size: .72rem; font-weight: 600; }.odoo-giga-journey h3 { margin: clamp(3rem, 6vw, 6rem) 0 .75rem; font-size: 1.25rem; }.odoo-giga-journey li p { margin: 0; color: #52615f; font-size: .87rem; line-height: 1.5; }
.odoo-giga-specialties { padding-block: clamp(6rem, 10vw, 10rem); background: #fff; }.odoo-specialty-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: clamp(4rem, 7vw, 7rem); }.odoo-specialty-cards a { position: relative; display: grid; min-height: 210px; align-content: space-between; grid-template-columns: 1fr auto; padding: 1.5rem; overflow: hidden; border: 1px solid #e4dde3; border-radius: 14px; background: #fdfbfd; transition: background-color .18s ease, border-color .18s ease, transform .18s ease; }.odoo-specialty-cards a:hover { border-color: #c6a9bf; background: #f7f0f5; transform: translateY(-4px); }.odoo-specialty-cards span { color: #714b67; font-size: .7rem; font-weight: 600; }.odoo-specialty-cards strong { grid-column: 1; align-self: end; max-width: 18ch; font-size: clamp(1.45rem, 2.1vw, 2rem); font-weight: 500; line-height: 1.05; }.odoo-specialty-cards small { grid-column: 1; margin-top: .55rem; color: #746e72; font-size: .7rem; font-weight: 600; letter-spacing: .06em; }.odoo-specialty-cards i { grid-column: 2; grid-row: 1 / span 3; align-self: end; color: #714b67; font-size: 1.35rem; font-style: normal; }
.odoo-giga-closing { padding-block: clamp(6rem, 10vw, 10rem); background: #202725; color: #fff; }.odoo-giga-closing > .container { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, .55fr); gap: clamp(4rem, 11vw, 11rem); align-items: end; }.odoo-giga-closing .odoo-kicker { color: #52b6b4; }.odoo-giga-closing h2 { max-width: 11ch; margin: 0; }.odoo-giga-closing p:not(.odoo-kicker) { margin: 1.5rem 0 0; color: #d0d8d5; line-height: 1.6; }.odoo-giga-closing .odoo-button { margin-top: 2rem; border-color: #28c8ba; background: #28c8ba; color: #16201e; }.odoo-giga-closing .odoo-button:hover { background: #61dbd1; }.odoo-giga-closing figure { margin: 0; border-top: 1px solid #53605d; padding-top: 2rem; }.odoo-giga-closing figure img { display: block; width: min(100%, 225px); margin-left: auto; }
.odoo-page.odoo-overview-page h1, .odoo-page.odoo-overview-page h2, .odoo-page.odoo-overview-page h3 { font-family: "Inter", "Odoo Unicode Support Noto", sans-serif; font-weight: 600; letter-spacing: -.035em; }
.odoo-page.odoo-overview-page .odoo-showcase-hero h1, .odoo-page.odoo-overview-page .odoo-app-world h2, .odoo-page.odoo-overview-page .odoo-product-story h2, .odoo-page.odoo-overview-page .odoo-scale h2 { font-family: "Caveat", cursive; font-weight: 700; letter-spacing: 0; }.odoo-page.odoo-overview-page .odoo-showcase-hero > .container { display: block; }.odoo-showcase-hero__copy { max-width: 1288px; margin-inline: auto; padding-bottom: 0; text-align: center; }.odoo-showcase-hero__logo { margin-bottom: 1.5rem; }.odoo-showcase-hero__copy h1 { max-width: 18ch; margin-inline: auto; font-size: clamp(4rem, 6.1vw, 5.5rem); line-height: 1; }.odoo-showcase-hero__copy > p:not(.odoo-kicker) { max-width: 54ch; margin-inline: auto; }.odoo-showcase-hero__copy > div { justify-content: center; }.odoo-showcase-hero__visual { width: min(100%, 1080px); min-height: 590px; margin: 3.75rem auto 0; }.odoo-showcase-hero__visual figure { top: 10%; right: 6%; bottom: 8%; left: 6%; border-radius: 24px; transform: rotate(-1.25deg); }.odoo-showcase-hero__switch { top: -4%; right: 2%; width: 70%; }.odoo-showcase-hero__icons { right: 4%; bottom: 0; }.odoo-showcase-hero::after { right: 4vw; bottom: -12vw; width: 62vw; height: 28vw; }
.odoo-app-world .odoo-section-heading { display: block; max-width: 880px; margin-inline: auto; text-align: center; }.odoo-app-world .odoo-section-heading h2 { max-width: 12ch; margin-inline: auto; font-size: clamp(3.5rem, 5.3vw, 4.75rem); }.odoo-app-world .odoo-section-heading > p:not(.odoo-kicker) { margin: 1.25rem auto 0; }.odoo-app-cloud { max-width: 1120px; gap: 1.3rem 2.2rem; }.odoo-app-cloud li { width: 104px; min-height: 100px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }.odoo-app-cloud li:hover { background: transparent; box-shadow: none; }.odoo-app-cloud img { width: 54px; }.odoo-app-cloud span { font-size: .78rem; }.odoo-app-cloud li:nth-child(2n) { transform: translateY(18px); }.odoo-app-cloud li:nth-child(3n) { transform: translateY(-8px); }
.odoo-product-story__copy h2 { font-size: clamp(3.2rem, 4.8vw, 4.75rem); }.odoo-product-story figure { border-radius: 22px; transform: rotate(1.25deg); }.odoo-overview-page .odoo-scale { position: relative; overflow: hidden; background: #fff; color: #2d282c; }.odoo-overview-page .odoo-scale .container { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(3rem, 7vw, 7rem); }.odoo-overview-page .odoo-scale .odoo-kicker { color: #714b67; }.odoo-overview-page .odoo-scale h2 { max-width: 11ch; color: #2d282c; font-size: clamp(3.3rem, 5vw, 4.75rem); line-height: 1; }.odoo-scale__illustration { display: block; width: min(100%, 420px); margin-top: 2rem; }.odoo-overview-page .odoo-scale__figures { align-self: center; border-color: #dfd4dc; }.odoo-overview-page .odoo-scale__figures article { min-height: 180px; border-color: #dfd4dc; }.odoo-overview-page .odoo-scale__figures article:not(.odoo-scale__primary) { color: #4c4148; }.odoo-overview-page .odoo-scale__figures article:not(.odoo-scale__primary) span { color: #70646d; }.odoo-overview-page .odoo-scale__figures .odoo-scale__primary { border-radius: 14px; background: #f2e8f0; }.odoo-overview-page .odoo-scale__source { grid-column: 2; margin: -1.5rem 0 0; color: #746771; }
.odoo-overview-page .odoo-scale__figures article:not(.odoo-scale__primary) strong { font-size: clamp(1.8rem, 2.7vw, 3rem); letter-spacing: -.045em; white-space: nowrap; }

/* Reusable Odoo visual language */
.odoo-page { --odoo-violet: #714b67; --odoo-lavender: #f5edf4; --odoo-ink: #2d282c; --odoo-line: #e5d9e2; }.odoo-caveat { font-family: "Caveat", cursive; font-weight: 700; letter-spacing: 0; }.erp-page { background: #fff; color: var(--odoo-ink); font-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif; }.erp-page h1, .erp-page h2, .erp-page h3 { font-family: inherit; letter-spacing: -.035em; }.erp-page .odoo-kicker { margin: 0 0 1rem; color: var(--odoo-violet); font-size: .74rem; font-weight: 600; }.erp-page .odoo-button { border-radius: 8px; }
/* ERP product-led composition */
.erp-page .erp-hero { padding-block: clamp(4rem, 7vw, 7rem); background: #fff; }.erp-page .erp-hero__grid { grid-template-columns: minmax(0, .78fr) minmax(520px, 1.22fr); min-height: 610px; gap: clamp(3rem, 7vw, 8rem); }.erp-page .erp-hero h1 { max-width: 9ch; font-size: clamp(3.5rem, 5.4vw, 5.8rem); line-height: .95; }.erp-page .erp-hero h1 .odoo-caveat { display: block; color: var(--odoo-violet); font-size: 1.1em; line-height: .8; }.erp-page .erp-hero .lead { max-width: 43ch; margin: 1.5rem 0 2rem; color: #5f585d; font-size: 1.08rem; line-height: 1.6; }.erp-page .erp-hero__visual { min-height: 545px; overflow: visible; border: 0; background: transparent; }.erp-page .erp-hero__visual::before { top: 0; right: 0; width: 88%; border-color: #eadce7; }.erp-page .erp-hero__visual::after { top: 86%; background: #cfc1cb; }.erp-page .erp-hero__logo { z-index: 3; top: 2%; left: 6%; width: 150px; }.erp-screen { position: absolute; z-index: 1; margin: 0; overflow: hidden; border: 1px solid var(--odoo-line); border-radius: 18px; background: #fff; box-shadow: 0 26px 54px rgb(74 48 69 / 16%); }.erp-screen > img { display: block; width: 100%; height: 100%; object-fit: cover; }.erp-screen figcaption, .erp-ecosystem__stage figcaption, .erp-product-moment figcaption { position: absolute; right: .75rem; bottom: .7rem; padding: .28rem .45rem; border-radius: 4px; background: rgb(255 255 255 / 88%); color: var(--odoo-violet); font-size: .59rem; font-weight: 600; }.erp-screen--main { top: 13%; right: 4%; bottom: 8%; left: 9%; transform: rotate(-1.5deg); }.erp-screen--overlay { z-index: 2; right: -4%; bottom: 1%; width: 39%; height: 39%; transform: rotate(4deg); }.erp-page .erp-hero__apps { z-index: 3; right: 3%; bottom: -6%; width: 235px; gap: .75rem; }.erp-page .erp-hero__apps img { max-width: 55px; animation: odoo-erp-float 5s ease-in-out infinite; }.erp-page .erp-hero__apps img:nth-child(even) { animation-delay: -2.5s; }
.erp-page .erp-ecosystem { padding-block: clamp(6rem, 10vw, 10rem); background: var(--odoo-lavender); }.erp-visual-intro { display: grid; grid-template-columns: .35fr .85fr .8fr; gap: clamp(2rem, 4vw, 4rem); align-items: end; }.erp-visual-intro h2 { max-width: 11ch; margin: 0; font-size: clamp(2.9rem, 4.3vw, 4.7rem); line-height: .98; }.erp-visual-intro h2 .odoo-caveat { color: var(--odoo-violet); font-size: 1.05em; }.erp-visual-intro > p:not(.odoo-kicker) { margin: 0 0 .3rem; color: #635b61; line-height: 1.6; }.erp-ecosystem__stage { position: relative; margin-top: clamp(4rem, 7vw, 7rem); min-height: 500px; }.erp-ecosystem__stage > figure { position: absolute; top: 7%; right: 10%; bottom: 7%; left: 10%; margin: 0; overflow: hidden; border: 1px solid var(--odoo-line); border-radius: 20px; background: #fff; box-shadow: 0 26px 55px rgb(74 48 69 / 14%); }.erp-ecosystem__stage > figure img { display: block; width: 100%; height: 100%; object-fit: cover; }.erp-page .erp-ecosystem__grid { position: absolute; z-index: 1; inset: 0; display: flex; flex-wrap: wrap; justify-content: space-between; align-content: space-between; margin: 0; border: 0; pointer-events: none; }.erp-page .erp-ecosystem__grid li { min-height: 0; padding: .7rem; border: 0; border-radius: 12px; background: #fff; box-shadow: 0 10px 24px rgb(74 48 69 / 10%); pointer-events: auto; }.erp-page .erp-ecosystem__grid li:nth-child(2n) { transform: translateY(20px); }.erp-page .erp-ecosystem__grid li:nth-child(3n) { transform: translateY(-12px); }.erp-page .erp-ecosystem__grid img { width: 43px; height: 43px; }.erp-page .erp-ecosystem__grid span { font-size: .62rem; }.erp-page .erp-ecosystem__note { margin: 1.5rem 0 0; color: #70656d; }
.erp-product-moment { padding-block: clamp(6rem, 10vw, 10rem); background: #fff; }.erp-product-moment > .container { display: grid; grid-template-columns: minmax(280px, .55fr) minmax(550px, 1.45fr); gap: clamp(4rem, 9vw, 9rem); align-items: center; }.erp-product-moment h2 { max-width: 10ch; margin: 0; font-size: clamp(2.7rem, 4vw, 4.3rem); line-height: 1; }.erp-product-moment p:not(.odoo-caveat) { margin: 1.4rem 0 0; color: #625b60; line-height: 1.65; }.erp-product-moment .odoo-caveat { display: block; margin: 0 0 .65rem; color: var(--odoo-violet); font-size: clamp(2.3rem, 3.7vw, 3.8rem); line-height: .85; }.erp-product-moment figure { position: relative; margin: 0; overflow: hidden; border: 1px solid var(--odoo-line); border-radius: 20px; background: var(--odoo-lavender); box-shadow: 0 25px 48px rgb(74 48 69 / 12%); transform: rotate(-1.25deg); }.erp-product-moment figure > img { display: block; width: 100%; aspect-ratio: 1.65; object-fit: cover; }.erp-product-moment--reverse { background: #f8f5f7; }.erp-product-moment--reverse > .container { grid-template-columns: minmax(550px, 1.45fr) minmax(280px, .55fr); }.erp-product-moment--reverse figure { transform: rotate(1.25deg); }
.erp-page .erp-process { padding-block: clamp(6rem, 10vw, 10rem); background: #eef6f5; color: var(--odoo-ink); }.erp-page .erp-process .odoo-kicker { color: #017e84; }.erp-page .erp-process ol { display: grid; grid-template-columns: repeat(5, 1fr); margin: clamp(4rem, 7vw, 7rem) 0 0; border-top: 1px solid #afcfcb; }.erp-page .erp-process li { min-height: 260px; padding: 1.3rem; border-color: #afcfcb; }.erp-page .erp-process li > span { color: #017e84; font-size: .75rem; }.erp-page .erp-process li > div { margin-top: clamp(3rem, 6vw, 6rem); }.erp-page .erp-process h3 { font-size: 1.2rem; }.erp-page .erp-process p { color: #556461; }
.erp-page .erp-standards { padding-block: clamp(6rem, 10vw, 10rem); background: #fff; }.erp-orbit { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; max-width: 1000px; margin: clamp(4rem, 7vw, 7rem) auto 0; padding-top: 170px; }.erp-orbit::before { position: absolute; top: 84px; right: 16%; left: 16%; height: 1px; background: #dbcbd8; content: ""; }.erp-orbit__core { position: absolute; top: 0; left: 50%; z-index: 1; display: grid; width: 170px; height: 130px; place-content: center; gap: .55rem; border: 1px solid #ddcddd; border-radius: 50% 50% 42% 42%; background: var(--odoo-lavender); text-align: center; transform: translateX(-50%); }.erp-orbit__core img { width: 86px; justify-self: center; }.erp-orbit__core span { color: var(--odoo-violet); font-size: .72rem; font-weight: 600; }.erp-orbit article { min-height: 200px; padding: 1.4rem; border: 1px solid var(--odoo-line); border-radius: 14px; background: #fff; box-shadow: 0 12px 26px rgb(74 48 69 / 7%); }.erp-orbit article:nth-child(3) { transform: translateY(25px); }.erp-orbit article span { color: var(--odoo-violet); font-size: .68rem; font-weight: 600; }.erp-orbit h3 { margin: 2.5rem 0 .7rem; font-size: 1.25rem; }.erp-orbit p { margin: 0; color: #665d63; font-size: .88rem; }
.erp-page .erp-capabilities { padding-block: clamp(6rem, 10vw, 10rem); background: #f4f9f8; }.erp-page .erp-capabilities .odoo-kicker { color: #017e84; }.erp-page .erp-capabilities__grid { display: block; }.erp-page .erp-capabilities ul { grid-template-columns: repeat(4, 1fr); margin-top: clamp(4rem, 7vw, 7rem); border: 0; gap: 1rem; }.erp-page .erp-capabilities li, .erp-page .erp-capabilities li:nth-child(odd), .erp-page .erp-capabilities li:nth-child(even) { min-height: 130px; padding: 1.2rem; border: 1px solid #c9dfdb; border-radius: 12px; background: #fff; font-size: 1rem; }.erp-page .erp-capabilities li::before { color: #017e84; content: "GIGA"; }
.erp-page .erp-specialties { padding-block: clamp(6rem, 10vw, 10rem); background: #fff; }.erp-page .erp-specialties__links { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: clamp(4rem, 7vw, 7rem); border: 0; }.erp-page .erp-specialties__links a { min-height: 175px; padding: 1.3rem; border: 1px solid var(--odoo-line); border-radius: 14px; background: #fdfbfd; }.erp-page .erp-specialties__links a:hover { background: var(--odoo-lavender); }.erp-page .erp-specialties__links strong { font-size: 1.35rem; }.erp-page .erp-specialties__links i { color: var(--odoo-violet); }
.erp-page .erp-closing { padding-block: clamp(6rem, 10vw, 10rem); background: #202725; }.erp-page .erp-closing .odoo-kicker { color: #56b8b5; }.erp-page .erp-closing h2 { font-size: clamp(2.8rem, 4.4vw, 4.8rem); }.erp-page .erp-closing .odoo-button { margin-top: 2rem; border-color: #28c8ba; background: #28c8ba; color: #16201e; }.erp-page .erp-closing figure img { width: min(100%, 165px); }
@keyframes odoo-erp-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@media (prefers-reduced-motion: reduce) { .erp-page .erp-hero__apps img { animation: none; } }

/* Unified Odoo + GiGa vertical system */
.odoo-page, .integrations-page { --odoo-violet: #714b67; --odoo-lavender: #f5edf4; --odoo-ink: #2d282c; --odoo-line: #e5d9e2; font-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif; }.odoo-page h1, .odoo-page h2, .odoo-page h3, .integrations-page h1, .integrations-page h2, .integrations-page h3 { font-family: inherit; letter-spacing: -.035em; }.odoo-page .odoo-kicker, .integrations-page .odoo-kicker { margin: 0 0 1rem; color: var(--odoo-violet); font-size: .74rem; font-weight: 600; letter-spacing: .02em; }.odoo-page .odoo-caveat, .integrations-page .odoo-caveat { font-family: "Caveat", cursive; font-weight: 700; letter-spacing: 0; }.odoo-page .odoo-button, .integrations-page .odoo-button { display: inline-flex; align-items: center; min-height: 46px; padding: .7rem 1.15rem; border-radius: 8px; background: var(--odoo-violet); color: #fff; font-size: .84rem; font-weight: 600; text-decoration: none; transition: background .2s ease, transform .2s ease; }.odoo-page .odoo-button:hover, .integrations-page .odoo-button:hover { background: #5d3c55; transform: translateY(-2px); }.odoo-page .industry-photo, .odoo-page .industry-screen { position: absolute; margin: 0; overflow: hidden; border: 1px solid var(--odoo-line); background: #fff; box-shadow: 0 26px 54px rgb(61 37 57 / 16%); }.odoo-page .industry-photo { inset: 4% 6% 8% 2%; border-radius: 48% 52% 18px 18px; }.odoo-page .industry-photo::after { position: absolute; inset: 0; background: linear-gradient(135deg, rgb(113 75 103 / 15%), transparent 55%); content: ""; }.odoo-page .industry-photo img { width: 100%; height: 100%; object-fit: cover; }.odoo-page .industry-photo figcaption { position: absolute; z-index: 1; bottom: 1rem; left: 1rem; margin: 0; padding: .45rem .6rem; border-radius: 5px; background: rgb(255 255 255 / 88%); color: var(--odoo-violet); font-size: .65rem; font-weight: 600; }.odoo-page .industry-screen { right: -3%; bottom: 2%; z-index: 2; width: 48%; border-radius: 16px; transform: rotate(3deg); }.odoo-page .industry-screen img, .financial-screen img, .integrations-hero__visual figure img { display: block; width: 100%; aspect-ratio: 1.48; object-fit: cover; }.odoo-page .industry-apps { position: absolute; z-index: 3; top: 0; right: 2%; display: flex; flex-wrap: wrap; width: 130px; gap: .6rem; }.odoo-page .industry-apps img { width: 55px; filter: drop-shadow(0 9px 12px rgb(76 49 69 / 13%)); animation: odoo-erp-float 5s ease-in-out infinite; }.odoo-page .industry-apps img:nth-child(even) { animation-delay: -2.5s; }
/* Construction: architecture, field operation and connected flow */
.construction-page .construction-hero, .pharma-page .pharma-hero, .integration-page .integration-hero { padding-block: clamp(4rem, 7vw, 7rem); background: #fff; }.construction-page .construction-hero__grid, .pharma-page .pharma-hero__grid, .integration-page .integration-hero__grid { grid-template-columns: minmax(0, .8fr) minmax(520px, 1.2fr); min-height: 590px; gap: clamp(3rem, 7vw, 8rem); }.construction-page .construction-hero h1, .pharma-page .pharma-hero h1, .integration-page .integration-hero h1 { max-width: 10ch; color: var(--odoo-ink); font-size: clamp(3.35rem, 5.2vw, 5.65rem); line-height: .95; }.construction-page .construction-hero h1 .odoo-caveat, .pharma-page .pharma-hero h1 .odoo-caveat, .integration-page .integration-hero h1 .odoo-caveat { display: block; color: var(--odoo-violet); font-size: 1.08em; line-height: .8; }.construction-page .construction-hero .lead, .pharma-page .pharma-hero .lead, .integration-page .integration-hero .lead { max-width: 44ch; margin: 1.5rem 0 2rem; color: #625b60; font-size: 1.05rem; line-height: 1.65; }.construction-page .construction-hero__visual, .pharma-page .pharma-hero__visual { min-height: 540px; overflow: visible; background: transparent; }.construction-page .construction-integrated { padding-block: clamp(6rem, 10vw, 10rem); background: #f2f6f5; }.construction-page .construction-section-intro { display: grid; grid-template-columns: .35fr .9fr .75fr; gap: 3rem; align-items: end; }.construction-page .construction-section-intro h2 { max-width: 10ch; margin: 0; font-size: clamp(2.8rem, 4.2vw, 4.6rem); line-height: .98; }.construction-page .construction-section-intro h2 .odoo-caveat { display: block; color: #017e84; font-size: 1.05em; line-height: .8; }.construction-page .construction-section-intro > p:not(.odoo-kicker) { margin: 0; color: #5e6663; line-height: 1.6; }.construction-page .construction-flow { position: relative; display: flex; flex-wrap: wrap; gap: .65rem; margin: clamp(4rem, 7vw, 7rem) 0 0; padding: 0; list-style: none; }.construction-page .construction-flow::before { position: absolute; top: 50%; right: 4%; left: 4%; height: 1px; background: #afd0ca; content: ""; }.construction-page .construction-flow li { position: relative; z-index: 1; display: grid; width: calc(20% - .55rem); min-height: 125px; place-content: end start; padding: 1rem; border: 1px solid #c7ddd9; border-radius: 12px; background: #fff; color: #24433f; font-size: .83rem; font-weight: 600; }.construction-page .construction-flow li::before { position: absolute; top: 1rem; color: #017e84; font-size: .62rem; content: counter(list-item, decimal-leading-zero); }.construction-page .construction-problem { padding-block: clamp(6rem, 10vw, 9rem); background: #fff; }.construction-page .construction-problem__intro h2 { max-width: 12ch; font-size: clamp(2.7rem, 4.1vw, 4.35rem); }.construction-page .construction-contrast { align-items: stretch; margin-top: 4rem; }.construction-page .construction-contrast article { border-radius: 16px; }.construction-page .construction-solution { padding-block: clamp(6rem, 10vw, 9rem); background: var(--odoo-lavender); }.construction-page .construction-solution h2 { max-width: 10ch; font-size: clamp(2.8rem, 4.2vw, 4.5rem); line-height: 1; }.construction-page .construction-capabilities li { border-radius: 10px; }.construction-page .construction-ecosystem { padding-block: clamp(6rem, 10vw, 9rem); background: #fff; }.construction-page .construction-ecosystem__map { margin-top: 4rem; border-radius: 24px; background: #f5f0f4; }.construction-page .construction-closing { background: #202725; }.construction-page .construction-closing img { width: 165px; }
/* Pharma: precision, traceability and real logistics */
.pharma-page .pharma-hero { background: #fbfdfe; }.pharma-page .pharma-hero__visual { min-height: 540px; overflow: visible; background: transparent; }.pharma-page .industry-photo { border-radius: 22px 52% 22px 52%; }.pharma-page .industry-photo::after { background: linear-gradient(135deg, rgb(0 126 132 / 18%), transparent 60%); }.pharma-page .industry-screen { right: -4%; bottom: 5%; transform: rotate(-3deg); }.pharma-page .industry-apps img { animation-delay: -1.5s; }.pharma-page .pharma-integrated { padding-block: clamp(6rem, 10vw, 10rem); background: #eef8f8; }.pharma-page .pharma-intro { display: grid; grid-template-columns: .35fr .85fr .8fr; gap: 3rem; align-items: end; }.pharma-page .pharma-intro h2 { max-width: 11ch; margin: 0; font-size: clamp(2.8rem, 4.1vw, 4.55rem); line-height: .98; }.pharma-page .pharma-intro > p:not(.eyebrow) { margin: 0; color: #566664; line-height: 1.65; }.pharma-page .pharma-areas { gap: .9rem; margin-top: 4rem; border: 0; }.pharma-page .pharma-areas li { min-height: 142px; border: 1px solid #c8e0df; border-radius: 14px; background: #fff; box-shadow: 0 10px 20px rgb(13 86 86 / 6%); }.pharma-page .pharma-areas li:nth-child(3n + 2) { transform: translateY(18px); }.pharma-page .pharma-differentials { padding-block: clamp(6rem, 10vw, 9rem); background: #fff; }.pharma-page .pharma-differentials__intro h2 { max-width: 10ch; font-size: clamp(2.8rem, 4.1vw, 4.5rem); }.pharma-page .pharma-integrations article { border-radius: 16px; box-shadow: 0 16px 30px rgb(11 61 64 / 6%); }.pharma-page .pharma-development { padding-block: clamp(6rem, 10vw, 9rem); background: var(--odoo-lavender); }.pharma-page .pharma-development h2 { max-width: 10ch; font-size: clamp(2.8rem, 4.1vw, 4.5rem); }.pharma-page .pharma-development ol li { border-radius: 10px; }.pharma-page .pharma-ecosystem { padding-block: clamp(6rem, 10vw, 9rem); background: #fff; }.pharma-page .pharma-ecosystem__line { margin-top: 4rem; }.pharma-page .pharma-ecosystem__line > div { border-radius: 14px; background: #f7fbfb; }.pharma-page .pharma-closing { background: #202725; }.pharma-page .pharma-closing img { width: 165px; }
/* Interbanking: financial movement rather than stock banking imagery */
.integration-page .integration-hero { overflow: hidden; background: #fbfafb; }.integration-page .integration-hero__visual { position: relative; min-height: 535px; overflow: visible; border: 0; background: transparent; }.integration-page .financial-screen { position: absolute; top: 9%; right: 8%; bottom: 8%; left: 8%; margin: 0; overflow: hidden; border: 1px solid var(--odoo-line); border-radius: 22px; box-shadow: 0 28px 56px rgb(61 37 57 / 14%); transform: rotate(1.5deg); }.integration-page .integration-hero__visual > img { position: absolute; z-index: 3; top: 16%; left: 2%; width: 105px; padding: .65rem; border-radius: 12px; background: #fff; box-shadow: 0 10px 25px rgb(61 37 57 / 13%); }.integration-page .integration-hero__visual strong, .integration-page .integration-hero__interbanking { position: absolute; z-index: 3; display: grid; min-width: 138px; min-height: 84px; place-content: center; border: 1px solid var(--odoo-line); border-radius: 12px; background: #fff; color: var(--odoo-ink); box-shadow: 0 12px 28px rgb(61 37 57 / 13%); text-align: center; }.integration-page .integration-hero__visual strong { right: -1%; bottom: 14%; color: var(--odoo-violet); font-size: .85rem; }.integration-page .integration-hero__interbanking { right: 19%; bottom: -2%; font-family: "Inter", sans-serif; font-size: .78rem; font-weight: 700; }.integration-page .integration-hero__link { position: absolute; z-index: 4; color: #017e84; font-size: 1.7rem; animation: odoo-erp-float 4s ease-in-out infinite; }.integration-page .integration-hero__link:nth-of-type(1) { top: 36%; left: 17%; }.integration-page .integration-hero__link:nth-of-type(2) { right: 19%; bottom: 26%; animation-delay: -2s; }.integration-page .integration-ecosystems { padding-block: clamp(6rem, 10vw, 9rem); background: var(--odoo-lavender); }.integration-page .integration-intro h2, .integration-page .integration-architecture__intro h2 { max-width: 12ch; font-size: clamp(2.8rem, 4.1vw, 4.5rem); line-height: 1; }.integration-page .integration-bridge { margin-top: 4rem; border-radius: 20px; background: #fff; box-shadow: 0 20px 40px rgb(61 37 57 / 7%); }.integration-page .integration-bridge__core { border-radius: 16px; background: #714b67; }.integration-page .integration-objective { padding-block: clamp(6rem, 10vw, 9rem); background: #eff8f7; }.integration-page .integration-objective h2 { max-width: 10ch; font-size: clamp(2.8rem, 4.1vw, 4.5rem); }.integration-page .integration-architecture { padding-block: clamp(6rem, 10vw, 9rem); background: #fff; }.integration-page .integration-stack > div { border-radius: 14px; }.integration-page .integration-beyond { padding-block: clamp(6rem, 10vw, 9rem); background: #f7f4f7; }.integration-page .integration-beyond h2 { max-width: 10ch; font-size: clamp(2.8rem, 4.1vw, 4.5rem); }.integration-page .integration-closing { background: #202725; }.integration-page .integration-closing img { width: 165px; }
/* Integrations: consulting technology with visible data in transit */
.integrations-page { background: #fbfbfa; color: var(--odoo-ink); }.integrations-page .integrations-hero { padding-block: clamp(4rem, 7vw, 7rem); background: #202725; color: #fff; }.integrations-page .integrations-hero__grid { grid-template-columns: minmax(0, .85fr) minmax(520px, 1.15fr); min-height: 600px; gap: clamp(3rem, 7vw, 8rem); }.integrations-page .integrations-hero h1 { max-width: 11ch; font-size: clamp(3.35rem, 5.2vw, 5.65rem); line-height: .95; }.integrations-page .integrations-hero h1 .odoo-caveat { display: block; color: #6bd6cf; font-size: 1.06em; line-height: .8; }.integrations-page .integrations-hero .lead { max-width: 45ch; margin: 1.5rem 0 2rem; color: #cbd5d2; line-height: 1.65; }.integrations-page .integrations-hero .odoo-kicker { color: #6bd6cf; }.integrations-page .integrations-hero .odoo-button { background: #28c8ba; color: #17302d; }.integrations-page .integrations-hero__visual { position: relative; min-height: 520px; overflow: visible; border: 0; background: transparent; }.integrations-page .integrations-hero__visual figure { position: absolute; z-index: 1; top: 10%; right: 6%; bottom: 9%; left: 8%; margin: 0; overflow: hidden; border: 1px solid rgb(255 255 255 / 22%); border-radius: 20px; box-shadow: 0 25px 55px rgb(0 0 0 / 30%); transform: rotate(-1.5deg); }.integrations-page .integrations-hero__visual > img { position: absolute; z-index: 3; top: 4%; left: 0; width: 120px; padding: .7rem; border-radius: 12px; background: #fff; }.integrations-page .integrations-hero__visual > span { position: absolute; z-index: 2; width: 13px; height: 13px; border: 3px solid #6bd6cf; border-radius: 50%; background: #202725; animation: odoo-data-pulse 3.5s ease-in-out infinite; }.integrations-page .integrations-hero__visual > span:nth-of-type(1) { top: 6%; right: 16%; }.integrations-page .integrations-hero__visual > span:nth-of-type(2) { top: 27%; right: -1%; animation-delay: -.7s; }.integrations-page .integrations-hero__visual > span:nth-of-type(3) { right: 3%; bottom: 20%; animation-delay: -1.4s; }.integrations-page .integrations-hero__visual > span:nth-of-type(4) { bottom: 2%; left: 24%; animation-delay: -2.1s; }.integrations-page .integrations-hero__visual > span:nth-of-type(5) { top: 42%; left: -2%; animation-delay: -2.8s; }.integrations-page .integrations-hero__visual > i { position: absolute; z-index: 4; padding: .4rem .55rem; border: 1px solid rgb(107 214 207 / 45%); border-radius: 6px; background: #273432; color: #86e5de; font-size: .62rem; font-style: normal; font-weight: 700; }.integrations-page .integrations-hero__visual > i:nth-of-type(1) { top: 17%; right: 2%; }.integrations-page .integrations-hero__visual > i:nth-of-type(2) { bottom: 14%; right: 12%; }.integrations-page .integrations-hero__visual > i:nth-of-type(3) { bottom: 5%; left: 9%; }.integrations-page .integrations-odoo { padding-block: clamp(6rem, 10vw, 10rem); background: var(--odoo-lavender); }.integrations-page .integrations-intro { display: grid; grid-template-columns: .35fr .85fr .8fr; gap: 3rem; align-items: end; }.integrations-page .integrations-intro h2 { max-width: 10ch; margin: 0; font-size: clamp(2.8rem, 4.1vw, 4.5rem); line-height: .98; }.integrations-page .integrations-intro > p:not(.eyebrow) { margin: 0; color: #625b60; line-height: 1.65; }.integrations-page .integrations-orbit { margin-top: 4.5rem; border-radius: 26px; background: #fff; box-shadow: 0 20px 46px rgb(61 37 57 / 8%); }.integrations-page .integrations-development { padding-block: clamp(6rem, 10vw, 9rem); background: #fff; }.integrations-page .integrations-development h2 { max-width: 9ch; font-size: clamp(2.8rem, 4.1vw, 4.5rem); }.integrations-page .integrations-development ol li { border-radius: 10px; }.integrations-page .integrations-automation { padding-block: clamp(6rem, 10vw, 9rem); background: #eff8f7; }.integrations-page .integrations-automation__intro h2 { max-width: 9ch; font-size: clamp(2.8rem, 4.1vw, 4.5rem); }.integrations-page .integrations-comparison article { border-radius: 16px; }.integrations-page .integrations-examples { padding-block: clamp(6rem, 10vw, 9rem); background: #fff; }.integrations-page .integrations-examples__list { margin-top: 4rem; gap: 1rem; border: 0; }.integrations-page .integrations-examples__list > * { min-height: 180px; border: 1px solid var(--odoo-line); border-radius: 14px; background: #fdfbfd; }.integrations-page .integrations-difference { padding-block: clamp(6rem, 10vw, 9rem); background: #202725; color: #fff; }.integrations-page .integrations-difference h2 { max-width: 10ch; font-size: clamp(2.8rem, 4.1vw, 4.5rem); }.integrations-page .integrations-difference .text-link { color: #6bd6cf; }
@keyframes odoo-data-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgb(107 214 207 / 25%); transform: scale(1); } 50% { box-shadow: 0 0 0 10px rgb(107 214 207 / 0%); transform: scale(1.12); } }
@media (max-width: 1024px) { .construction-page .construction-hero__grid, .pharma-page .pharma-hero__grid, .integration-page .integration-hero__grid, .integrations-page .integrations-hero__grid { grid-template-columns: 1fr; }.construction-page .construction-hero__copy, .pharma-page .pharma-hero__copy, .integration-page .integration-hero__copy, .integrations-page .integrations-hero__grid > div:first-child { max-width: 700px; }.construction-page .construction-section-intro, .pharma-page .pharma-intro, .integrations-page .integrations-intro { grid-template-columns: .3fr 1fr; }.construction-page .construction-section-intro > p:not(.odoo-kicker), .pharma-page .pharma-intro > p:not(.eyebrow), .integrations-page .integrations-intro > p:not(.eyebrow) { grid-column: 2; }.construction-page .construction-flow li { width: calc(25% - .5rem); }.pharma-page .pharma-areas { grid-template-columns: repeat(3, 1fr); }.integration-page .integration-hero__visual, .integrations-page .integrations-hero__visual { max-width: 760px; width: 100%; }.integrations-page .integrations-hero__grid { min-height: 0; } }
@media (max-width: 700px) { .construction-page .construction-hero, .pharma-page .pharma-hero, .integration-page .integration-hero, .integrations-page .integrations-hero { padding-block: 3.5rem 5rem; }.construction-page .construction-hero h1, .pharma-page .pharma-hero h1, .integration-page .integration-hero h1, .integrations-page .integrations-hero h1 { font-size: clamp(3rem, 14vw, 4.2rem); }.construction-page .construction-hero__visual, .pharma-page .pharma-hero__visual, .integration-page .integration-hero__visual, .integrations-page .integrations-hero__visual { min-height: 390px; }.odoo-page .industry-photo { inset: 3% 4% 10% 0; border-radius: 34% 42% 16px 16px; }.odoo-page .industry-screen { right: -1%; bottom: 2%; width: 58%; }.odoo-page .industry-apps { top: -1%; right: 1%; width: 105px; gap: .45rem; }.odoo-page .industry-apps img { width: 44px; }.construction-page .construction-section-intro, .pharma-page .pharma-intro, .integrations-page .integrations-intro { display: block; }.construction-page .construction-section-intro > p:not(.odoo-kicker), .pharma-page .pharma-intro > p:not(.eyebrow), .integrations-page .integrations-intro > p:not(.eyebrow) { margin-top: 1.2rem; }.construction-page .construction-flow { display: grid; grid-template-columns: repeat(2, 1fr); }.construction-page .construction-flow::before { display: none; }.construction-page .construction-flow li { width: auto; min-height: 104px; }.pharma-page .pharma-areas { grid-template-columns: repeat(2, 1fr); }.pharma-page .pharma-areas li:nth-child(3n + 2) { transform: none; }.integration-page .financial-screen { right: 4%; left: 4%; }.integration-page .integration-hero__visual > img { width: 88px; }.integration-page .integration-hero__visual strong { right: 0; min-width: 112px; min-height: 68px; }.integration-page .integration-hero__interbanking { right: 12%; min-width: 120px; min-height: 63px; }.integrations-page .integrations-hero__visual figure { right: 3%; left: 3%; }.integrations-page .integrations-hero__visual > img { width: 94px; }.integrations-page .integrations-hero__visual > i { font-size: .55rem; }.integrations-page .integrations-orbit { overflow: hidden; }.erp-page .erp-hero__grid, .erp-product-moment > .container, .erp-product-moment--reverse > .container { min-width: 0; grid-template-columns: 1fr; }.erp-page .erp-hero__visual { width: 100%; min-width: 0; min-height: 390px; }.erp-page .erp-screen--overlay { right: 0; }.erp-visual-intro { display: block; }.erp-visual-intro > p:not(.odoo-kicker) { margin-top: 1.2rem; }.erp-page .erp-process ol { grid-template-columns: 1fr; }.erp-page .erp-process li { min-height: 0; }.erp-page .erp-process li > div { margin-top: 1.5rem; }.erp-orbit { grid-template-columns: 1fr; padding-top: 145px; }.erp-orbit::before { top: 72px; }.erp-orbit article:nth-child(3) { transform: none; }.erp-page .erp-capabilities ul { grid-template-columns: repeat(2, 1fr); }.erp-page .erp-specialties__links { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .odoo-page .industry-apps img, .integration-page .integration-hero__link, .integrations-page .integrations-hero__visual > span { animation: none; } }
@media (max-width: 700px) { .erp-page .erp-hero__grid { grid-template-columns: minmax(0, 1fr) !important; } }

/* Final Odoo family balance: less typographic mass, more visible product */
.odoo-page main h2, .integrations-page main h2 { font-size: clamp(2.2rem, 3.4vw, 4.2rem) !important; line-height: 1.02; }.odoo-page main h3, .integrations-page main h3 { font-size: clamp(1.35rem, 1.9vw, 2rem) !important; line-height: 1.08; }.odoo-page main h2 .odoo-caveat, .integrations-page main h2 .odoo-caveat { font-size: 1em !important; line-height: .86; }.odoo-page .odoo-showcase-hero__logo { width: clamp(255px, 23vw, 385px); }.odoo-overview-page .odoo-showcase-hero__copy h1 { font-size: clamp(3.65rem, 5.5vw, 5.25rem); }.odoo-overview-page .odoo-section-heading h2, .odoo-overview-page .odoo-product-story__copy h2, .odoo-overview-page .odoo-scale h2 { max-width: 14ch; font-size: clamp(2.4rem, 3.7vw, 4.2rem) !important; }.erp-page .erp-visual-intro h2 { max-width: 15ch; }.erp-page .erp-product-moment h2 { max-width: 14ch; }.erp-page .erp-product-moment .odoo-caveat { font-size: clamp(1.75rem, 2.7vw, 2.65rem); }.construction-page .construction-section-intro h2, .pharma-page .pharma-intro h2, .integrations-page .integrations-intro h2 { max-width: 15ch; }.construction-page .construction-problem__intro h2, .construction-page .construction-solution h2, .pharma-page .pharma-differentials__intro h2, .pharma-page .pharma-development h2, .integration-page .integration-objective h2, .integration-page .integration-intro h2, .integration-page .integration-architecture__intro h2, .integration-page .integration-beyond h2, .integrations-page .integrations-development h2, .integrations-page .integrations-automation__intro h2, .integrations-page .integrations-difference h2 { max-width: 15ch; }.erp-page .erp-closing h2, .construction-page .construction-closing h2, .pharma-page .pharma-closing h2, .integration-page .integration-closing h2 { max-width: 14ch; font-size: clamp(2.35rem, 3.8vw, 4.15rem) !important; }
/* ERP stays product-led through capabilities and specialties */
.erp-page .erp-capabilities__stage { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .8fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; margin-top: clamp(3rem, 5vw, 5rem); }.erp-page .erp-capabilities ul { margin-top: 0; }.erp-capabilities__stage figure { position: relative; margin: 0; overflow: visible; border-radius: 18px; box-shadow: 0 22px 42px rgb(37 94 90 / 12%); transform: rotate(1.2deg); }.erp-capabilities__stage figure > img { display: block; width: 100%; aspect-ratio: 1.28; object-fit: cover; border: 1px solid #c9dfdb; border-radius: 18px; background: #fff; }.erp-capabilities__stage figure > div { position: absolute; right: -1rem; bottom: -1.5rem; display: flex; gap: .45rem; }.erp-capabilities__stage figure > div img { width: 48px; filter: drop-shadow(0 7px 11px rgb(20 79 75 / 16%)); }.erp-page .erp-specialties__stage { display: grid; grid-template-columns: minmax(280px, .65fr) minmax(400px, 1.35fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; margin-top: clamp(3rem, 5vw, 5rem); }.erp-specialties__stage > figure { margin: 0; overflow: hidden; border: 1px solid var(--odoo-line); border-radius: 18px; box-shadow: 0 22px 42px rgb(61 37 57 / 11%); transform: rotate(-1deg); }.erp-specialties__stage > figure img { display: block; width: 100%; aspect-ratio: .85; object-fit: cover; }.erp-page .erp-specialties__links { margin-top: 0; }
/* Construction: field operation rather than another abstract map */
.construction-field-moment { padding-block: clamp(5rem, 9vw, 9rem); background: #f7f4f7; }.construction-field-moment > .container { display: grid; grid-template-columns: minmax(420px, 1.2fr) minmax(290px, .8fr); gap: clamp(3rem, 8vw, 8rem); align-items: center; }.construction-field-moment figure { position: relative; margin: 0; overflow: hidden; border-radius: 22px 42% 22px 42%; box-shadow: 0 24px 48px rgb(61 37 57 / 15%); }.construction-field-moment figure > img { display: block; width: 100%; aspect-ratio: 1.18; object-fit: cover; }.construction-field-moment figcaption, .pharma-operation-moment figcaption, .pharma-trace-moment figcaption, .integration-architecture__visual figcaption, .integrations-automation__stage figcaption { position: absolute; right: .8rem; bottom: .8rem; padding: .32rem .5rem; border-radius: 5px; background: rgb(255 255 255 / 90%); color: var(--odoo-violet); font-size: .62rem; font-weight: 600; }.construction-field-moment h2 { max-width: 12ch; margin: 0; }.construction-field-moment h2 .odoo-caveat, .pharma-operation-moment h2 .odoo-caveat, .pharma-trace-moment h2 .odoo-caveat { color: var(--odoo-violet); }.construction-field-moment p:not(.odoo-kicker) { max-width: 42ch; color: #5d5e5e; line-height: 1.65; }.construction-field-moment__apps { display: flex; gap: .6rem; margin-top: 1.5rem; }.construction-field-moment__apps img { width: 46px; }.construction-field-moment__screen { display: block; width: min(100%, 330px); margin: 2.2rem 0 0 auto; border: 1px solid var(--odoo-line); border-radius: 13px; box-shadow: 0 16px 32px rgb(61 37 57 / 12%); transform: rotate(2deg); }
/* Pharma keeps the logistics and product world present beyond its hero */
.pharma-operation-moment { padding-block: clamp(5rem, 9vw, 9rem); background: #f6fbfb; }.pharma-operation-moment > .container, .pharma-trace-moment > .container { display: grid; grid-template-columns: minmax(290px, .8fr) minmax(420px, 1.2fr); gap: clamp(3rem, 8vw, 8rem); align-items: center; }.pharma-operation-moment h2, .pharma-trace-moment h2 { max-width: 12ch; margin: 0; }.pharma-operation-moment p:not(.odoo-kicker), .pharma-trace-moment p:not(.odoo-kicker) { color: #576664; line-height: 1.65; }.pharma-operation-moment__apps { display: flex; gap: .6rem; margin-top: 1.5rem; }.pharma-operation-moment__apps img { width: 48px; }.pharma-operation-moment figure, .pharma-trace-moment figure { position: relative; margin: 0; overflow: visible; }.pharma-operation-moment figure > img:first-child { display: block; width: 100%; aspect-ratio: 1.22; object-fit: cover; border-radius: 42% 20px 42% 20px; box-shadow: 0 24px 48px rgb(10 80 84 / 16%); }.pharma-operation-moment__screen { position: absolute; right: -3%; bottom: -11%; width: 48%; border: 1px solid #bddcda; border-radius: 14px; box-shadow: 0 18px 32px rgb(10 80 84 / 16%); transform: rotate(-3deg); }.pharma-trace-moment { padding-block: clamp(6rem, 10vw, 10rem); background: var(--odoo-lavender); }.pharma-trace-moment > .container { grid-template-columns: minmax(420px, 1.2fr) minmax(290px, .8fr); }.pharma-trace-moment figure { overflow: hidden; border-radius: 20px 42% 20px 42%; box-shadow: 0 24px 48px rgb(61 37 57 / 15%); }.pharma-trace-moment figure > img { display: block; width: 100%; aspect-ratio: 1.25; object-fit: cover; }.pharma-trace-moment > .container > div > img { display: block; width: 78%; margin: 1.7rem 0 0 auto; border: 1px solid var(--odoo-line); border-radius: 14px; box-shadow: 0 15px 30px rgb(61 37 57 / 11%); transform: rotate(2deg); }
/* Financial and integration flows keep showing the underlying product */
.integration-page .integration-architecture__visual { display: grid; grid-template-columns: minmax(300px, .8fr) minmax(410px, 1.2fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; margin-top: 4rem; }.integration-page .integration-architecture__visual .integration-stack { margin-top: 0; }.integration-page .integration-architecture__visual figure { position: relative; margin: 0; overflow: hidden; border: 1px solid var(--odoo-line); border-radius: 18px; box-shadow: 0 22px 45px rgb(61 37 57 / 14%); transform: rotate(1.25deg); }.integration-page .integration-architecture__visual figure img { display: block; width: 100%; aspect-ratio: 1.3; object-fit: cover; }.integration-page .integration-architecture__visual .integration-signals { margin-top: 1.7rem; }.integrations-page .integrations-automation__stage { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(330px, .9fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; margin-top: 4rem; }.integrations-page .integrations-automation__stage .integrations-comparison { margin-top: 0; }.integrations-page .integrations-automation__stage figure { position: relative; margin: 0; overflow: hidden; border: 1px solid #bbd5d2; border-radius: 18px; box-shadow: 0 20px 42px rgb(20 80 76 / 13%); transform: rotate(-1.3deg); }.integrations-page .integrations-automation__stage figure > img { display: block; width: 100%; aspect-ratio: 1.12; object-fit: cover; }.integrations-page .integrations-automation__stage figcaption { color: #017e84; font-family: "SFMono-Regular", Consolas, monospace; }
@media (max-width: 900px) { .erp-page .erp-capabilities__stage, .erp-page .erp-specialties__stage, .construction-field-moment > .container, .pharma-operation-moment > .container, .pharma-trace-moment > .container, .integration-page .integration-architecture__visual, .integrations-page .integrations-automation__stage { grid-template-columns: 1fr; }.erp-specialties__stage > figure { max-width: 530px; }.erp-specialties__stage > figure img { aspect-ratio: 1.45; }.construction-field-moment figure { max-width: 680px; }.pharma-operation-moment figure { max-width: 680px; justify-self: end; }.pharma-trace-moment > .container > div { order: -1; }.integration-page .integration-architecture__visual figure, .integrations-page .integrations-automation__stage figure { max-width: 620px; }.integrations-page .integrations-automation__stage figure { justify-self: end; } }
@media (max-width: 700px) { .odoo-page main h2, .integrations-page main h2 { font-size: clamp(2.15rem, 10vw, 3.05rem) !important; }.odoo-page .odoo-showcase-hero__logo { width: min(78vw, 300px); }.erp-capabilities__stage figure > div img { width: 40px; }.erp-specialties__stage > figure img { aspect-ratio: 1.25; }.construction-field-moment > .container, .pharma-operation-moment > .container, .pharma-trace-moment > .container, .integration-page .integration-architecture__visual, .integrations-page .integrations-automation__stage { gap: 2.5rem; }.construction-field-moment__screen { width: 76%; margin-top: 1.5rem; }.pharma-operation-moment__screen { right: 0; width: 55%; }.pharma-trace-moment > .container > div > img { width: 86%; }.integration-page .integration-architecture__visual figure, .integrations-page .integrations-automation__stage figure { width: 100%; }.integrations-page .integrations-automation__stage figure > img { aspect-ratio: 1.35; } }
@media (max-width: 700px) { .odoo-overview-page .odoo-showcase-hero > .container, .odoo-overview-page .odoo-product-story > .container { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr); }.odoo-overview-page .odoo-showcase-hero__visual, .odoo-overview-page .odoo-product-story figure { width: 100%; min-width: 0; }.odoo-overview-page .odoo-showcase-hero__visual { min-height: 340px; }.odoo-overview-page .odoo-section-heading { display: block; }.odoo-overview-page .odoo-section-heading > p:not(.odoo-kicker) { margin-top: 1.2rem; }.odoo-overview-page .odoo-giga-journey ol, .odoo-overview-page .odoo-specialty-cards { grid-template-columns: 1fr; }.odoo-overview-page .odoo-giga-journey li { min-height: 0; border-right: 0; border-bottom: 1px solid #b5cdca; }.odoo-overview-page .odoo-giga-journey li:last-child { border-bottom: 0; }.erp-capabilities__stage figure { transform: none; }.erp-capabilities__stage figure > div { right: .55rem; bottom: .55rem; } }

/* Odoo Construction: operational product composition */
.construction-page .construction-integrated { padding-block: clamp(5rem, 8vw, 8rem); background: #f3f7f6; }.construction-page .construction-section-intro { grid-template-columns: .28fr .9fr .82fr; }.construction-page .construction-section-intro h2 { max-width: 12ch; }.construction-modules { display: grid; grid-template-columns: repeat(5, 1fr); gap: .8rem; margin: clamp(3rem, 5vw, 5rem) 0 0; padding: 0; list-style: none; }.construction-modules li { position: relative; display: grid; min-height: 170px; align-content: end; gap: .35rem; padding: 1rem; border-bottom: 2px solid #b9d6d1; background: transparent; color: #31504b; transition: background .2s ease, transform .2s ease; }.construction-modules li:hover { background: #fff; transform: translateY(-5px); }.construction-modules img { width: 57px; margin-bottom: auto; filter: drop-shadow(0 7px 9px rgb(24 83 80 / 11%)); }.construction-modules strong { color: #25433e; font-size: 1rem; line-height: 1.08; }.construction-modules span { color: #62736f; font-size: .68rem; font-weight: 600; }.construction-modules__giga { border-color: #714b67 !important; background: #f8f1f7 !important; }.construction-modules__giga b { display: grid; width: 57px; height: 57px; place-content: center; border-radius: 16px 16px 4px 16px; background: #714b67; color: #fff; font-size: .76rem; letter-spacing: .03em; }.construction-modules__giga strong { color: #593d53; }.construction-modules__giga span { color: #795f73; }
.construction-page .construction-problem { padding-block: clamp(6rem, 10vw, 10rem); background: #fff; }.construction-page .construction-problem__intro { display: grid; grid-template-columns: .28fr 1fr; gap: 3rem; align-items: end; }.construction-page .construction-problem__intro h2 { max-width: 13ch; margin: 0; }.construction-page .construction-problem__intro .odoo-caveat { color: var(--odoo-violet); }.construction-connection { display: grid; grid-template-columns: minmax(240px, .55fr) 105px minmax(440px, 1.45fr); gap: clamp(1rem, 3vw, 3rem); align-items: center; margin-top: clamp(3rem, 6vw, 6rem); }.construction-connection__before { padding: 1.6rem; border: 1px solid #dededf; border-radius: 18px; background: #fafafa; }.construction-connection__before > p, .construction-connection__after > div > p { margin: 0; color: #7a7377; font-size: .7rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }.construction-connection h3 { margin: .65rem 0 1.6rem; color: #343137; }.construction-connection__before > div { display: flex; flex-wrap: wrap; gap: .55rem; }.construction-connection__before span { padding: .5rem .65rem; border: 1px dashed #c4c1c3; border-radius: 7px; color: #6b6568; font-size: .72rem; }.construction-connection__arrow { display: grid; place-items: center; gap: .55rem; color: #017e84; }.construction-connection__arrow i { display: grid; width: 56px; height: 56px; place-content: center; border-radius: 50%; background: #e1f0ee; font-size: 1.8rem; font-style: normal; }.construction-connection__arrow small { color: #017e84; font-size: .62rem; font-weight: 700; white-space: nowrap; }.construction-connection__after { position: relative; display: grid; grid-template-columns: minmax(180px, .58fr) minmax(310px, 1.42fr); gap: 2rem; align-items: center; min-height: 410px; padding: clamp(1.5rem, 3vw, 3rem); overflow: hidden; border-radius: 24px; background: #f5eef4; }.construction-connection__after > div > p { color: var(--odoo-violet); }.construction-connection__after > div > p:last-child { color: #645d62; font-size: .9rem; font-weight: 400; letter-spacing: 0; line-height: 1.55; text-transform: none; }.construction-connection__after figure { position: relative; z-index: 1; margin: 0; overflow: visible; border: 1px solid var(--odoo-line); border-radius: 16px; box-shadow: 0 22px 42px rgb(61 37 57 / 15%); transform: rotate(1deg); }.construction-connection__after figure > img { display: block; width: 100%; aspect-ratio: 1.25; object-fit: cover; border-radius: 15px; }.construction-connection__after figure > div { position: absolute; right: -1rem; bottom: -1.25rem; display: flex; gap: .45rem; }.construction-connection__after figure > div img { width: 46px; filter: drop-shadow(0 7px 10px rgb(61 37 57 / 14%)); }
.construction-page .construction-solution { padding-block: clamp(6rem, 10vw, 10rem); background: #202725; color: #fff; }.construction-project { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(480px, 1.28fr); gap: clamp(3rem, 9vw, 9rem); align-items: center; }.construction-project .odoo-kicker { color: #61c6be; }.construction-project h2 { max-width: 12ch; margin: 0; }.construction-project h2 .odoo-caveat { color: #70d3cc; }.construction-project > div > p:not(.odoo-kicker) { max-width: 42ch; color: #cbd5d2; line-height: 1.65; }.construction-project ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.7rem 0 0; padding: 0; list-style: none; }.construction-project li { padding: .5rem .65rem; border: 1px solid rgb(109 209 201 / 34%); border-radius: 6px; color: #9ee2dc; font-size: .7rem; }.construction-project figure { position: relative; margin: 0; overflow: visible; border-radius: 19px; box-shadow: 0 25px 54px rgb(0 0 0 / 23%); transform: rotate(-1.2deg); }.construction-project figure > img { display: block; width: 100%; aspect-ratio: 1.28; object-fit: cover; border: 1px solid rgb(255 255 255 / 22%); border-radius: 19px; }.construction-project figcaption { position: absolute; left: .8rem; bottom: .8rem; padding: .35rem .5rem; border-radius: 5px; background: rgb(255 255 255 / 91%); color: #714b67; font-size: .62rem; font-weight: 700; }.construction-project figure > div { position: absolute; right: 3%; bottom: -8%; display: flex; gap: .55rem; }.construction-project figure > div img { width: 54px; filter: drop-shadow(0 9px 11px rgb(0 0 0 / 30%)); }
.construction-page .construction-field-moment { background: #f7f3ee; }.construction-field-moment > .container { grid-template-columns: minmax(420px, 1.2fr) minmax(300px, .8fr); }.construction-field-moment h2 { max-width: 12ch; }.construction-field-moment__apps { display: none; }.construction-acopios-flow { display: grid; gap: .55rem; margin: 1.7rem 0 0; padding: 0; counter-reset: acopio; list-style: none; }.construction-acopios-flow li { position: relative; display: flex; align-items: center; min-height: 38px; padding: .55rem .7rem .55rem 2.7rem; border-left: 2px solid #c8a9c0; background: rgb(255 255 255 / 68%); color: #5e505a; font-size: .78rem; }.construction-acopios-flow li::before { position: absolute; left: .75rem; color: #714b67; content: counter(acopio, decimal-leading-zero); counter-increment: acopio; font-size: .64rem; font-weight: 700; }.construction-field-moment__screen { width: min(100%, 300px); }
.construction-page .construction-ecosystem { padding-block: clamp(6rem, 10vw, 10rem); background: #f2f7f6; }.construction-ecosystem__map { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); align-items: end; gap: 1.5rem; min-height: 490px; margin-top: clamp(3.5rem, 6vw, 6rem); padding: 2rem; overflow: hidden; border: 1px solid #c8ded9; border-radius: 28px; background: #fff; }.construction-ecosystem__map::before, .construction-ecosystem__map::after { position: absolute; top: 47%; z-index: 0; width: 32%; height: 1px; background: #b5d5d0; content: ""; }.construction-ecosystem__map::before { left: 12%; transform: rotate(20deg); }.construction-ecosystem__map::after { right: 12%; transform: rotate(-20deg); }.construction-ecosystem__core { position: absolute; top: 15%; left: 50%; z-index: 2; display: grid; width: 178px; height: 142px; place-content: center; gap: .8rem; border: 1px solid #dfcfdb; border-radius: 50% 50% 42% 42%; background: #f7eef5; text-align: center; transform: translateX(-50%); }.construction-ecosystem__core img { width: 104px; }.construction-ecosystem__core span { color: #714b67; font-size: .66rem; font-weight: 700; }.construction-ecosystem__group { position: relative; z-index: 1; min-height: 190px; padding: 1.15rem; border: 1px solid #dbe8e5; border-radius: 15px; background: #fcfdfd; box-shadow: 0 10px 24px rgb(13 70 67 / 6%); }.construction-ecosystem__group:nth-child(3) { transform: translateY(26px); }.construction-ecosystem__group p { margin: 0 0 1.1rem; color: #27645f; font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }.construction-ecosystem__group > div { display: flex; flex-wrap: wrap; gap: .7rem; }.construction-ecosystem__group span { display: grid; gap: .35rem; justify-items: center; color: #47615d; font-size: .65rem; font-weight: 600; text-align: center; }.construction-ecosystem__group img { width: 49px; }.construction-ecosystem__giga { width: 58px; height: 58px; place-content: center; border-radius: 13px 13px 4px 13px; background: #714b67; color: #fff !important; font-size: .58rem !important; line-height: 1.15; }
@media (max-width: 900px) { .construction-modules { grid-template-columns: repeat(3, 1fr); }.construction-connection { grid-template-columns: 1fr; }.construction-connection__arrow { grid-template-columns: auto auto; }.construction-connection__after { grid-template-columns: .6fr 1.4fr; }.construction-project, .construction-field-moment > .container { grid-template-columns: 1fr; }.construction-project figure, .construction-field-moment figure { max-width: 700px; }.construction-ecosystem__map { grid-template-columns: 1fr 1fr; padding-top: 210px; }.construction-ecosystem__group:nth-child(3) { transform: none; grid-column: 1 / -1; }.construction-ecosystem__group--finance { max-width: 50%; justify-self: center; width: 100%; } }
@media (max-width: 700px) { .construction-page .construction-section-intro, .construction-page .construction-problem__intro { display: block; }.construction-page .construction-section-intro > p:not(.odoo-kicker), .construction-page .construction-problem__intro > p:not(.odoo-kicker) { margin-top: 1.2rem; }.construction-modules { grid-template-columns: repeat(2, 1fr); gap: .55rem; }.construction-modules li { min-height: 145px; }.construction-modules img, .construction-modules__giga b { width: 48px; height: 48px; }.construction-connection__after { grid-template-columns: 1fr; padding: 1.3rem; }.construction-connection__after figure { margin-top: .5rem; }.construction-connection__after figure > div img { width: 38px; }.construction-project figure > div img { width: 42px; }.construction-ecosystem__map { grid-template-columns: 1fr; padding: 190px 1rem 1rem; }.construction-ecosystem__map::before, .construction-ecosystem__map::after { display: none; }.construction-ecosystem__group, .construction-ecosystem__group--finance { grid-column: auto; max-width: none; width: auto; }.construction-ecosystem__core { top: 20px; }.construction-field-moment__screen { width: 76%; } }

/* Construction imagery: the built environment remains visible beyond the hero. */
.construction-page .construction-connection__after figure > img { aspect-ratio: 1.08; object-fit: cover; object-position: center; }.construction-page .construction-connection__after figcaption { position: absolute; right: .8rem; bottom: .8rem; left: .8rem; padding: .5rem .65rem; border-radius: 5px; background: rgb(32 39 37 / 84%); color: #fff; font-size: .64rem; font-weight: 600; line-height: 1.35; }.construction-page .construction-field-moment > .container { align-items: stretch; }.construction-page .construction-field-moment > .container > figure { min-height: 550px; }.construction-page .construction-field-moment > .container > figure > img { width: 100%; height: 100%; object-fit: cover; }.construction-page .construction-ecosystem__map { min-height: 405px; padding: 1.35rem; isolation: isolate; background: #273532; }.construction-page .construction-ecosystem__map::before, .construction-page .construction-ecosystem__map::after { z-index: 1; width: 26%; background: rgb(173 232 224 / 68%); }.construction-page .construction-ecosystem__site { position: absolute; inset: 0; z-index: -2; margin: 0; overflow: hidden; }.construction-page .construction-ecosystem__site::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgb(23 42 38 / 80%), rgb(35 48 45 / 38%), rgb(23 42 38 / 79%)); content: ""; }.construction-page .construction-ecosystem__site img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 48%; filter: saturate(.78) contrast(1.08); }.construction-page .construction-ecosystem__core { top: 13%; width: 194px; height: 152px; border-color: rgb(255 255 255 / 38%); background: rgb(255 255 255 / 92%); box-shadow: 0 14px 40px rgb(0 0 0 / 20%); }.construction-page .construction-ecosystem__group { min-height: 155px; border-color: rgb(255 255 255 / 45%); background: rgb(255 255 255 / 94%); box-shadow: 0 12px 30px rgb(0 0 0 / 19%); }.construction-page .construction-ecosystem__group:nth-child(4) { transform: translateY(10px); }.construction-page .construction-ecosystem__group:nth-child(5) { transform: translateY(22px); }
@media (max-width: 900px) { .construction-page .construction-field-moment > .container > figure { min-height: 410px; }.construction-page .construction-ecosystem__group:nth-child(4), .construction-page .construction-ecosystem__group:nth-child(5) { transform: none; } }
@media (max-width: 700px) { .construction-page .construction-field-moment > .container > figure { min-height: 340px; }.construction-page .construction-ecosystem__map { min-height: 0; padding-top: 190px; }.construction-page .construction-ecosystem__site { bottom: auto; height: 250px; }.construction-page .construction-ecosystem__site::after { background: linear-gradient(180deg, rgb(23 42 38 / 18%), rgb(23 42 38 / 80%)); } }

/* Sector pharmaceuticals: real logistics imagery and explicit external integrations. */
.pharma-page .pharma-differentials { padding-block: clamp(5rem, 9vw, 9rem); background: #eef4f0; }.pharma-page .pharma-integrations-rebuilt { display: grid; grid-template-columns: minmax(390px, 1.05fr) minmax(430px, .95fr); gap: clamp(2.5rem, 6vw, 6.5rem); align-items: center; }.pharma-page .pharma-integrations-rebuilt > figure { position: relative; min-height: 590px; margin: 0; overflow: hidden; border-radius: 20px; background: #173e3a; box-shadow: 0 20px 42px rgb(23 62 58 / 20%); }.pharma-page .pharma-integrations-rebuilt > figure > img { display: block; width: 100%; height: 100%; object-fit: cover; }.pharma-page .pharma-integrations-rebuilt figcaption { position: absolute; right: 1rem; bottom: 1rem; left: 1rem; padding: .65rem .8rem; border-radius: 6px; background: rgb(18 42 39 / 88%); color: #fff; font-size: .72rem; font-weight: 600; }.pharma-page .pharma-integrations-rebuilt__apps { position: absolute; top: 1.1rem; right: 1.1rem; display: flex; gap: .55rem; }.pharma-page .pharma-integrations-rebuilt__apps img { width: 55px; filter: drop-shadow(0 7px 12px rgb(0 0 0 / 30%)); }.pharma-page .pharma-integrations-rebuilt .pharma-differentials__intro { display: block; }.pharma-page .pharma-integrations-rebuilt h2 { max-width: 14ch; color: #203732; }.pharma-page .pharma-integrations-rebuilt .pharma-differentials__intro > p:last-child { max-width: 48ch; color: #3d5a53; line-height: 1.62; }.pharma-page .pharma-integrations-rebuilt__flow { display: grid; grid-template-columns: repeat(5, 1fr); gap: .4rem; margin: 2rem 0; padding: 0; list-style: none; }.pharma-page .pharma-integrations-rebuilt__flow li { display: grid; min-height: 100px; align-content: center; justify-items: center; gap: .5rem; padding: .45rem; border-bottom: 2px solid #67a99e; background: #fff; color: #244b45; font-size: .67rem; font-weight: 700; text-align: center; }.pharma-page .pharma-integrations-rebuilt__flow img { width: 37px; }.pharma-page .pharma-integrations-rebuilt__flow span { display: grid; width: 37px; height: 37px; place-content: center; border-radius: 50%; background: #017e84; color: #fff; font-size: 1.1rem; }.pharma-page .pharma-integrations-rebuilt__external { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }.pharma-page .pharma-integrations-rebuilt__external article { padding: 1.2rem; border-top: 3px solid #714b67; background: #fff; box-shadow: 0 8px 22px rgb(26 71 65 / 8%); }.pharma-page .pharma-integrations-rebuilt__external article > p:first-child { margin: 0 0 .55rem; color: #714b67; font-size: .64rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }.pharma-page .pharma-integrations-rebuilt__external h3 { margin: 0; color: #343137; }.pharma-page .pharma-integrations-rebuilt__external article > p:last-child { margin: .65rem 0 0; color: #455c56; font-size: .76rem; line-height: 1.55; }

/* Interbanking: an explicit financial data flow, not unrelated product interfaces. */
.integration-page .financial-integration-visual { display: grid; grid-template-columns: minmax(155px, .82fr) minmax(160px, .8fr) minmax(180px, 1fr); gap: .8rem; align-items: stretch; min-height: 360px; padding: 1.2rem; border: 1px solid #9dc9c4; border-radius: 22px; background: #132d2b; box-shadow: 0 22px 42px rgb(6 45 43 / 21%); }.integration-page .financial-integration-visual article { display: grid; align-content: center; justify-items: center; gap: .65rem; padding: 1.2rem; border-radius: 13px; text-align: center; }.integration-page .financial-integration-visual__odoo { background: #edf7f5; color: #183d39; }.integration-page .financial-integration-visual__odoo img { width: 78px; }.integration-page .financial-integration-visual__odoo strong, .integration-page .financial-integration-visual__bank > strong { font-size: 1.1rem; }.integration-page .financial-integration-visual__odoo span, .integration-page .financial-integration-visual__bank > span { color: #46645e; font-size: .71rem; line-height: 1.45; }.integration-page .financial-integration-visual__flow { display: grid; align-content: center; justify-items: center; gap: .5rem; color: #d2ece8; text-align: center; }.integration-page .financial-integration-visual__flow i { display: grid; width: 45px; height: 45px; place-content: center; border-radius: 50%; background: #2bb9ad; color: #102725; font-size: 1.25rem; font-style: normal; }.integration-page .financial-integration-visual__flow strong { padding: .6rem; border: 1px solid #70d6cc; border-radius: 7px; color: #fff; font-size: .75rem; line-height: 1.3; }.integration-page .financial-integration-visual__flow span { color: #a9d9d3; font-size: .66rem; font-weight: 700; text-transform: uppercase; }.integration-page .financial-integration-visual__bank { background: #714b67; color: #fff; }.integration-page .financial-integration-visual__bank > span { color: #f0dfea; }.integration-page .financial-integration-visual__bank div { display: grid; gap: .4rem; width: 100%; }.integration-page .financial-integration-visual__bank b { padding: .45rem; border: 1px solid rgb(255 255 255 / 35%); border-radius: 4px; color: #fff; font-size: .64rem; font-weight: 600; }.integration-page .financial-data-flow { display: grid; min-height: 260px; align-content: center; gap: 1rem; padding: 1.6rem; border-radius: 15px; background: #173b37; color: #fff; }.integration-page .financial-data-flow > p { margin: 0; color: #a9e0d9; font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }.integration-page .financial-data-flow code { width: max-content; max-width: 100%; padding: .45rem .6rem; overflow-wrap: anywhere; border-radius: 4px; background: #0d2421; color: #98e4da; font-size: .72rem; }.integration-page .financial-data-flow div { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }.integration-page .financial-data-flow div > * { padding: .45rem .55rem; border-radius: 4px; background: #f2fbfa; color: #173b37; font-size: .68rem; }.integration-page .financial-data-flow div i { padding: 0; background: transparent; color: #7ee0d4; font-style: normal; }.integration-page .financial-data-flow small { color: #d6e8e5; font-size: .72rem; line-height: 1.5; }

/* Integrations & development: code, platform lifecycle, APIs and data. */
.integrations-page .technical-hero-visual { position: relative; display: grid; min-height: 445px; place-content: center; overflow: hidden; border: 1px solid #496560; border-radius: 20px; background: #151d1c; }.integrations-page .technical-hero-visual::before { position: absolute; inset: 12% 8%; border: 1px solid rgb(71 213 197 / 33%); border-radius: 50%; content: ""; }.integrations-page .technical-hero-visual > div { position: absolute; z-index: 1; display: grid; gap: .4rem; padding: .75rem .85rem; border: 1px solid rgb(126 228 215 / 34%); border-radius: 8px; background: #1d2a28; color: #fff; box-shadow: 0 10px 18px rgb(0 0 0 / 20%); }.integrations-page .technical-hero-visual span { color: #72ddd1; font-size: .7rem; font-weight: 700; }.integrations-page .technical-hero-visual code { color: #dcece9; font-size: .64rem; }.integrations-page .technical-hero-visual__core { position: relative !important; justify-items: center; padding: 1.2rem 1.6rem !important; background: #f4faf9 !important; color: #173b37 !important; text-align: center; }.integrations-page .technical-hero-visual__core img { width: 96px; }.integrations-page .technical-hero-visual__core strong { color: #173b37; font-size: .68rem; }.integrations-page .technical-hero-visual__code { top: 9%; left: 7%; }.integrations-page .technical-hero-visual__api { top: 17%; right: 8%; }.integrations-page .technical-hero-visual__deploy { bottom: 12%; left: 12%; }.integrations-page .technical-hero-visual__systems { right: 8%; bottom: 9%; }.integrations-page .integrations-development { padding-block: clamp(5rem, 9vw, 9rem); background: #eaf1ef; }.integrations-page .integrations-development__grid { display: grid; grid-template-columns: minmax(270px, .8fr) minmax(440px, 1.2fr); gap: clamp(3rem, 9vw, 8rem); align-items: center; }.integrations-page .integrations-development__grid h2 { color: #223833; }.integrations-page .integrations-development__grid > div > p:last-of-type { color: #41605a; line-height: 1.6; }.integrations-page .integrations-development__grid ol { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }.integrations-page .integrations-development__grid li { padding: .45rem .6rem; border: 1px solid #a7c7c1; border-radius: 4px; color: #28524b; font-size: .7rem; font-weight: 600; }.integrations-page .odoo-code-composition { margin: 0; overflow: hidden; border-radius: 14px; background: #172321; box-shadow: 0 18px 34px rgb(14 49 45 / 19%); }.integrations-page .odoo-code-composition figcaption { display: flex; gap: .45rem; padding: .8rem 1rem; background: #223632; }.integrations-page .odoo-code-composition figcaption span { padding: .25rem .45rem; border-radius: 4px; background: #315149; color: #b9eee7; font-size: .64rem; font-weight: 700; }.integrations-page .odoo-code-composition pre { margin: 0; padding: 1.4rem; overflow: auto; color: #d9f2ee; font-size: .82rem; line-height: 1.65; }.integrations-page .odoo-code-composition > div { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; padding: .8rem 1rem; border-top: 1px solid #37554f; }.integrations-page .odoo-code-composition > div span { padding: .35rem .5rem; border-radius: 4px; background: #f4faf9; color: #173b37; font-size: .65rem; font-weight: 700; }.integrations-page .odoo-code-composition > div i { color: #65d7ca; font-style: normal; }.integrations-page .integrations-odoo-sh { padding-block: clamp(4rem, 7vw, 7rem); background: #714b67; color: #fff; }.integrations-page .integrations-odoo-sh > .container { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(460px, 1.1fr); gap: clamp(2.5rem, 8vw, 8rem); align-items: center; }.integrations-page .integrations-odoo-sh h2 { max-width: 14ch; }.integrations-page .integrations-odoo-sh h2 .odoo-caveat { color: #d8c4d4; }.integrations-page .integrations-odoo-sh p:not(.eyebrow) { color: #f0e7ee; line-height: 1.6; }.integrations-page .integrations-odoo-sh .eyebrow { color: #e9cae2; }.integrations-page .odoo-sh-flow { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .65rem; padding: 1.6rem; border: 1px solid rgb(255 255 255 / 37%); border-radius: 13px; background: rgb(49 30 45 / 32%); }.integrations-page .odoo-sh-flow > * { padding: .55rem .7rem; border-radius: 5px; background: #fff; color: #593d53; font-size: .73rem; }.integrations-page .odoo-sh-flow i { padding: 0; background: transparent; color: #ead7e6; font-size: 1.15rem; font-style: normal; }.integrations-page .odoo-sh-flow img { width: 72px; }.integrations-page .integrations-api-moment { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(390px, 1.2fr); gap: clamp(2rem, 7vw, 7rem); align-items: center; margin-top: 3rem; }.integrations-page .integrations-api-moment__flow { display: grid; justify-items: center; gap: .55rem; padding: 1.5rem; border-left: 3px solid #35b6a9; background: #ecf6f4; }.integrations-page .integrations-api-moment__flow > * { padding: .6rem .8rem; border-radius: 5px; background: #fff; color: #234942; font-size: .76rem; font-weight: 700; }.integrations-page .integrations-api-moment__flow i { padding: 0; background: transparent; color: #017e84; font-size: 1.2rem; font-style: normal; }.integrations-page .integrations-api-moment__flow strong { background: #017e84; color: #fff; }.integrations-page .integrations-api-moment__flow b { background: #714b67; color: #fff; }.integrations-page .integrations-api-moment__flow img { width: 72px; }.integrations-page .integrations-api-moment aside { padding: 1.5rem; border-radius: 12px; background: #162523; color: #fff; }.integrations-page .integrations-api-moment aside > p { margin: 0 0 1rem; color: #a7e8df; font-size: .68rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }.integrations-page .integrations-api-moment aside > code { display: inline-block; margin: 0 .45rem .75rem 0; padding: .35rem .5rem; border-radius: 4px; background: #2b4540; color: #a8ebe1; font-size: .7rem; }.integrations-page .integrations-api-moment aside pre { margin: .4rem 0 0; padding: 1rem; overflow: auto; border-radius: 6px; background: #0c1615; color: #d6f5ef; font-size: .76rem; line-height: 1.55; }
@media (max-width: 900px) { .pharma-page .pharma-integrations-rebuilt, .integrations-page .integrations-development__grid, .integrations-page .integrations-odoo-sh > .container, .integrations-page .integrations-api-moment { grid-template-columns: 1fr; }.pharma-page .pharma-integrations-rebuilt > figure { min-height: 440px; }.integration-page .financial-integration-visual { grid-template-columns: 1fr; min-height: 0; }.integration-page .financial-integration-visual__flow { grid-template-columns: auto auto auto auto auto; }.integration-page .financial-integration-visual__flow strong { order: 2; }.integration-page .financial-integration-visual__flow span:first-child { order: 1; }.integration-page .financial-integration-visual__flow span:last-child { order: 5; }.integration-page .financial-integration-visual__flow i:first-of-type { order: 3; }.integration-page .financial-integration-visual__flow i:last-of-type { order: 4; } }
@media (max-width: 700px) { .pharma-page .pharma-integrations-rebuilt__flow { grid-template-columns: repeat(2, 1fr); }.pharma-page .pharma-integrations-rebuilt__external { grid-template-columns: 1fr; }.pharma-page .pharma-integrations-rebuilt > figure { min-height: 360px; }.integrations-page .technical-hero-visual { min-height: 390px; }.integrations-page .technical-hero-visual > div { padding: .55rem; }.integrations-page .technical-hero-visual__code { top: 6%; left: 4%; }.integrations-page .technical-hero-visual__api { top: 12%; right: 4%; }.integrations-page .technical-hero-visual__deploy { bottom: 8%; left: 4%; }.integrations-page .technical-hero-visual__systems { right: 4%; bottom: 6%; }.integrations-page .technical-hero-visual code { font-size: .56rem; }.integrations-page .odoo-code-composition pre { font-size: .68rem; }.integration-page .financial-integration-visual__flow { grid-template-columns: 1fr; }.integration-page .financial-integration-visual__flow > * { order: initial !important; } }

/* Final asset-led visual pass: imagery carries the narrative, diagrams stay secondary. */
.odoo-overview-page .odoo-showcase-hero__logo { width: clamp(150px, 19vw, 260px); max-width: 72%; }.erp-page .erp-hero__visual .erp-hero__logo { width: clamp(160px, 19vw, 250px); z-index: 3; }.erp-page .erp-screen--main { width: 100%; transform: rotate(-1deg); }.erp-page .erp-screen--main > img { aspect-ratio: 1.18; object-fit: cover; }.erp-page .erp-screen--overlay { display: none; }.erp-page .erp-process ol { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; border: 0; background: transparent; }.erp-page .erp-process li { min-height: 210px; padding: 1.1rem; border: 0; border-bottom: 3px solid #b9d7d2; background: #f3f8f7; }.erp-page .erp-process li:nth-child(even) { margin-top: 2rem; background: #f7f0f6; border-color: #cfaec7; }.erp-page .erp-orbit { min-height: 420px; overflow: hidden; border-radius: 22px; background: linear-gradient(112deg, #293b37, #50625e); }.erp-page .erp-orbit article { border: 0; background: rgb(255 255 255 / 94%); box-shadow: 0 12px 24px rgb(0 0 0 / 12%); }.construction-page .construction-hero__visual .industry-photo > img, .construction-page .construction-connection__after figure > img, .construction-page .construction-field-moment figure > img { object-fit: cover; }.construction-page .construction-modules { grid-template-columns: repeat(5, 1fr); }.construction-page .construction-modules li { min-height: 150px; border: 0; border-left: 2px solid #afd1cb; background: transparent; }.construction-page .construction-modules li:nth-child(3n + 2) { transform: translateY(22px); }.construction-page .construction-acopios-flow { position: relative; display: flex; flex-wrap: wrap; gap: .55rem; padding-left: 0; }.construction-page .construction-acopios-flow li { flex: 1 1 135px; min-height: 115px; padding: 2.4rem .8rem .7rem; border: 0; border-radius: 0 14px 14px; background: #fff; box-shadow: 0 8px 20px rgb(68 52 61 / 8%); }.construction-page .construction-acopios-flow li::before { top: .7rem; left: .8rem; }.pharma-page .pharma-hero__visual .industry-photo > img, .pharma-page .pharma-operation-moment figure > img, .pharma-page .pharma-trace-moment figure > img { object-fit: cover; }.integration-page .integration-bridge, .integration-page .integration-architecture__visual { border: 0; }.integration-page .integration-bridge__side, .integration-page .integration-bridge__core { box-shadow: 0 12px 28px rgb(20 58 54 / 10%); }

.ai-page .ai-hero__visual, .ai-page .ai-intelligence-hero__visual, .ai-page .ai-agents-hero__flow, .ai-page .ai-robotics__visual { position: relative; min-height: 410px; margin: 0; overflow: hidden; border: 0; border-radius: 18px; background: #172220; box-shadow: 0 20px 44px rgb(0 0 0 / 20%); }.ai-page .ai-hero__visual > img, .ai-page .ai-intelligence-hero__visual > img, .ai-page .ai-agents-hero__flow > img, .ai-page .ai-robotics__visual > img { display: block; width: 100%; height: 100%; object-fit: cover; }.ai-page .ai-hero__visual::after, .ai-page .ai-intelligence-hero__visual::after, .ai-page .ai-agents-hero__flow::after, .ai-page .ai-robotics__visual::after { position: absolute; inset: 0; background: linear-gradient(135deg, rgb(8 20 19 / 8%), rgb(8 20 19 / 65%)); content: ""; pointer-events: none; }.ai-page .ai-hero__visual figcaption, .ai-page .ai-intelligence-hero__visual figcaption, .ai-page .ai-agents-hero__flow figcaption, .ai-page .ai-robotics__visual figcaption { position: absolute; right: 1rem; bottom: 1rem; z-index: 1; padding: .55rem .7rem; border: 1px solid rgb(151 235 222 / 35%); border-radius: 5px; background: rgb(9 25 23 / 74%); color: #e1faf5; font-size: .68rem; font-weight: 700; }.ai-page .ai-capability__flows, .ai-intelligence-page .ai-information__flow, .ai-agents-page .ai-orchestration__flow, .ai-agents-page .ai-control__patterns { gap: 1rem; }.ai-page .ai-capability__flows > div, .ai-intelligence-page .ai-information__flow > *, .ai-agents-page .ai-orchestration__flow li, .ai-agents-page .ai-control__patterns > div { border: 0; background: #edf7f5; box-shadow: 0 8px 22px rgb(10 57 52 / 8%); }.ai-page .ai-capability__flows i, .ai-intelligence-page .ai-information__flow i, .ai-agents-page .ai-control__patterns i { display: none; }.ai-page .ai-layers__grid { gap: 1.25rem; }.ai-page .ai-layers__grid article { min-height: 290px; overflow: hidden; border: 0; background: #172220; color: #fff; }.ai-page .ai-layers__grid article:nth-child(2) { background: #314d47; transform: translateY(28px); }.ai-page .ai-layers__grid article:nth-child(3) { background: #714b67; }.ai-page .ai-layers__grid article p, .ai-page .ai-layers__grid article a { color: #e7f3f0; }.ai-intelligence-page .ai-knowledge__stack, .ai-intelligence-page .ai-systems__architecture, .ai-agents-page .ai-agent-definition__diagram, .ai-agents-page .ai-agent-systems__architecture { border: 0; background: #18332f; color: #fff; box-shadow: 0 18px 35px rgb(4 32 29 / 18%); }.ai-intelligence-page .ai-knowledge__stack > div, .ai-intelligence-page .ai-systems__architecture > div, .ai-agents-page .ai-agent-definition__inputs > span { border: 0; background: rgb(255 255 255 / 96%); color: #173b37; }.ai-intelligence-page .ai-knowledge__stack i, .ai-intelligence-page .ai-systems__architecture i, .ai-agents-page .ai-agent-definition__diagram > i, .ai-agents-page .ai-agent-systems__architecture > i { display: none; }

.ai-robotics-page .robotics-hero__visual { position: relative; min-height: 590px; margin: 0; overflow: hidden; border-radius: 0; background: #111817; }.ai-robotics-page .robotics-hero__visual > img { display: block; width: 100%; height: 100%; object-fit: cover; }.ai-robotics-page .robotics-hero__visual::after { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 40%, rgb(7 16 15 / 54%)); content: ""; }.ai-robotics-page .robotics-hero__visual figcaption { position: absolute; right: 1rem; bottom: 1rem; z-index: 1; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }.ai-robotics-page .robotics-hero__visual figcaption span { padding: .4rem .55rem; border: 1px solid rgb(158 244 229 / 35%); border-radius: 4px; background: rgb(4 18 16 / 72%); color: #dffcf6; font-size: .63rem; font-weight: 700; }.ai-robotics-page .robotics-stack { background: #edf5f3; }.ai-robotics-page .robotics-stack__scene { position: relative; min-height: 560px; margin-top: 3rem; overflow: hidden; border-radius: 18px; background: #172220; }.ai-robotics-page .robotics-stack__scene > img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: .85; }.ai-robotics-page .robotics-stack__scene span { position: absolute; padding: .5rem .65rem; border: 1px solid rgb(156 238 224 / 48%); border-radius: 4px; background: rgb(12 34 31 / 85%); color: #e3faf6; font-size: .68rem; font-weight: 700; }.ai-robotics-page .robotics-stack__scene span:nth-of-type(1) { top: 13%; left: 10%; }.ai-robotics-page .robotics-stack__scene span:nth-of-type(2) { top: 26%; right: 9%; }.ai-robotics-page .robotics-stack__scene span:nth-of-type(3) { top: 52%; left: 8%; }.ai-robotics-page .robotics-stack__scene span:nth-of-type(4) { top: 56%; right: 12%; }.ai-robotics-page .robotics-stack__scene span:nth-of-type(5) { bottom: 16%; left: 14%; }.ai-robotics-page .robotics-stack__scene span:nth-of-type(6) { right: 17%; bottom: 13%; }.ai-robotics-page .robotics-platforms__grid { display: grid; grid-template-columns: 1.2fr .9fr .9fr; gap: 1rem; }.ai-robotics-page .robotics-platforms__grid article { position: relative; min-height: 430px; padding: 0; overflow: hidden; border: 0; border-radius: 0; background: #172220; }.ai-robotics-page .robotics-platforms__grid article:nth-child(2) { margin-top: 3rem; }.ai-robotics-page .robotics-platforms__grid article:nth-child(3) { margin-top: 7rem; }.ai-robotics-page .robotics-platforms__grid article > img { width: 100%; height: 100%; object-fit: cover; }.ai-robotics-page .robotics-platforms__grid article > div { position: absolute; right: 0; bottom: 0; left: 0; padding: 1.3rem; background: linear-gradient(transparent, rgb(8 19 18 / 92%)); color: #fff; }.ai-robotics-page .robotics-platforms__grid h3, .ai-robotics-page .robotics-platforms__grid p { color: #fff; }.ai-robotics-page .robotics-platforms__grid p { font-size: .78rem; line-height: 1.5; }.ai-robotics-page .robotics-platforms__grid span { color: #90e9dd; font-size: .7rem; font-weight: 700; }.ai-robotics-page .robotics-closing { position: relative; min-height: 560px; overflow: hidden; background: #101716; color: #fff; }.ai-robotics-page .robotics-closing > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .72; }.ai-robotics-page .robotics-closing::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgb(5 15 14 / 91%), rgb(5 15 14 / 28%)); content: ""; }.ai-robotics-page .robotics-closing > .container { position: relative; z-index: 1; padding-block: clamp(7rem, 13vw, 12rem); }.ai-robotics-page .robotics-closing h2 { max-width: 15ch; color: #fff; }.ai-robotics-page .robotics-closing p:not(.eyebrow) { max-width: 55ch; color: #e2f1ee; }
@media (max-width: 900px) { .erp-page .erp-process ol, .construction-page .construction-modules, .ai-robotics-page .robotics-platforms__grid { grid-template-columns: repeat(2, 1fr); }.ai-robotics-page .robotics-platforms__grid article:nth-child(2), .ai-robotics-page .robotics-platforms__grid article:nth-child(3) { margin-top: 0; }.ai-page .ai-hero__visual, .ai-page .ai-intelligence-hero__visual, .ai-page .ai-agents-hero__flow, .ai-page .ai-robotics__visual { min-height: 350px; } }
@media (max-width: 700px) { .erp-page .erp-process ol, .construction-page .construction-modules, .ai-robotics-page .robotics-platforms__grid { grid-template-columns: 1fr; }.erp-page .erp-process li:nth-child(even), .construction-page .construction-modules li:nth-child(3n + 2) { margin-top: 0; transform: none; }.ai-page .ai-hero__visual, .ai-page .ai-intelligence-hero__visual, .ai-page .ai-agents-hero__flow, .ai-page .ai-robotics__visual { min-height: 300px; }.ai-robotics-page .robotics-hero__visual { min-height: 430px; }.ai-robotics-page .robotics-stack__scene { min-height: 430px; }.ai-robotics-page .robotics-platforms__grid article { min-height: 360px; }.ai-robotics-page .robotics-stack__scene span { font-size: .58rem; }.ai-robotics-page .robotics-closing { min-height: 510px; } }

.erp-page .erp-process li,
.erp-page .erp-process li:nth-child(even) { height: 175px; min-height: 175px; padding: 1rem; margin-top: 0; }
.erp-page .erp-process li > div { margin-top: 0; }

/* Odoo credibility and contact conversion. */
.about-page { background: #f4f5f2; }.about-page h1 { max-width: 11ch; font-size: clamp(3.25rem, 5vw, 4.75rem); line-height: 1.02; }.about-page h2 { font-size: clamp(2.38rem, 4vw, 3.63rem); line-height: 1.04; }.about-page h3 { font-size: clamp(1.63rem, 2.3vw, 2.25rem); line-height: 1.08; }.about-page .lead { font-size: clamp(1.06rem, 1.4vw, 1.25rem); line-height: 1.6; }.about-hero { padding: clamp(2.5rem, 4vw, 4rem) 0; background: #18221f; }.about-hero__grid { grid-template-columns: minmax(0, .82fr) minmax(440px, 1.18fr); min-height: 0; gap: clamp(2.5rem, 7vw, 7rem); }.about-hero__copy { padding-block: 2rem; }.about-hero__visual { position: relative; min-height: 480px; margin: 0; overflow: hidden; }.about-hero__visual::after { position: absolute; inset: 0; background: linear-gradient(90deg, #18221f 0%, transparent 36%), linear-gradient(0deg, rgb(15 28 25 / 48%), transparent 45%); content: ""; }.about-hero__visual img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.82) contrast(.94); }.about-method { padding-block: clamp(5rem, 9vw, 9rem); }.about-method__editorial { display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, .8fr); gap: clamp(3rem, 10vw, 10rem); align-items: start; }.about-method__editorial h2 { max-width: 15ch; margin: 0; }.about-method__editorial p { margin: .35rem 0 2rem; color: #596460; font-size: clamp(1rem, 1.25vw, 1.17rem); line-height: 1.65; }.about-method__editorial figure { height: 210px; margin: 0; overflow: hidden; }.about-method__editorial figure img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.7); }.about-method__flow, .about-evolution__flow { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; margin: clamp(3rem, 6vw, 5rem) 0 0; padding: 1.2rem 0; border-block: 1px solid #bdc8c3; list-style: none; }.about-method__flow li, .about-evolution__flow li { display: grid; gap: .38rem; color: #253530; font-size: clamp(1rem, 1.45vw, 1.34rem); font-weight: 600; }.about-method__flow span { color: #138b85; font-size: .66rem; font-weight: 700; letter-spacing: .1em; }.about-capabilities { padding-block: clamp(5rem, 9vw, 9rem); background: #e7ece8; }.about-section-heading { display: grid; grid-template-columns: minmax(0, .75fr) minmax(300px, 1.25fr); gap: 2rem; align-items: start; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }.about-section-heading h2 { max-width: 15ch; margin: 0; }.about-capabilities__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 1.2rem; border: 0; }.about-capability { position: relative; display: grid; min-height: 320px; overflow: hidden; border: 0; background: #17221f; color: #fff; }.about-capability--odoo { grid-row: span 2; min-height: 660px; }.about-capability--robotics { margin-top: -110px; }.about-capability img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.73) contrast(.93); transition: transform .6s ease; }.about-capability:hover img { transform: scale(1.035); }.about-capability::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgb(10 22 20 / 94%), rgb(10 22 20 / 12%) 70%); content: ""; }.about-capability > div { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; min-height: 100%; padding: 1.5rem; }.about-capability span { color: #9de3d7; font-size: .68rem; font-weight: 700; letter-spacing: .1em; }.about-capability h3 { max-width: 12ch; margin: auto 0 .7rem; color: #fff; }.about-capability p { max-width: 37ch; margin: 0; color: #e4ece9; font-size: .9rem; line-height: 1.5; }.about-capability .text-link { margin-top: 1.2rem; color: #b8efe6; }.about-odoo { padding-block: clamp(5rem, 9vw, 9rem); background: #f5f2f4; }.about-odoo__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(420px, 1.2fr); gap: clamp(2.5rem, 8vw, 8rem); align-items: center; }.about-odoo__copy h2 { max-width: 15ch; margin: 0 0 1.4rem; }.about-odoo__copy p:not(.eyebrow) { max-width: 43ch; color: #596460; font-size: 1.05rem; line-height: 1.6; }.about-odoo figure { position: relative; height: 400px; margin: 0; overflow: hidden; }.about-odoo figure > img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.78); }.about-odoo figcaption { position: absolute; right: 0; bottom: 0; left: 0; display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.25rem; background: linear-gradient(transparent, rgb(22 18 21 / 89%)); color: #fff; }.about-odoo figcaption span { color: #fff; font-size: 1.1rem; font-weight: 700; }.about-odoo figcaption small { max-width: 29ch; color: #e7dfe5; font-size: .68rem; line-height: 1.35; }.about-industries { padding-block: clamp(4rem, 7vw, 7rem); background: #17221f; color: #fff; }.about-industries .eyebrow { color: #8bd7cb; }.about-industries .about-section-heading h2 { color: #fff; }.about-industries__grid { display: grid; grid-template-columns: 1.1fr .9fr 1fr; gap: 1rem; }.about-industries figure { position: relative; min-height: 320px; margin: 0; overflow: hidden; }.about-industries figure:nth-child(2) { margin-top: 3rem; }.about-industries figure:nth-child(3) { margin-top: 1.25rem; }.about-industries img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.68); }.about-industries figure::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgb(9 22 20 / 82%), transparent 60%); content: ""; }.about-industries figcaption { position: absolute; z-index: 1; right: 1.15rem; bottom: 1rem; left: 1.15rem; color: #fff; font-size: 1.15rem; font-weight: 600; }.about-evolution { padding-block: clamp(5rem, 9vw, 9rem); background: #edf2ef; color: #19231f; }.about-evolution__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(390px, .9fr); gap: clamp(3rem, 8vw, 8rem); align-items: center; }.about-evolution h2 { max-width: 15ch; margin: 0 0 1.3rem; }.about-evolution p:not(.eyebrow) { max-width: 52ch; color: #596460; font-size: 1.03rem; line-height: 1.65; }.about-evolution__flow { margin-top: 2.5rem; border-color: #bdc8c3; }.about-evolution__flow li { color: #253530; font-size: .9rem; }.about-evolution__flow li:last-child { color: #714b67; }.about-evolution__visuals { display: grid; grid-template-columns: 1.15fr .85fr; gap: .9rem; align-items: end; }.about-evolution__visuals img { width: 100%; object-fit: cover; filter: saturate(.72); }.about-evolution__visuals img:first-child { height: 330px; }.about-evolution__visuals img:last-child { height: 235px; }.about-closing { position: relative; min-height: 500px; padding-block: clamp(5rem, 10vw, 9rem); overflow: hidden; background: #17221f; color: #fff; }.about-closing > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.6); opacity: .56; }.about-closing::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgb(10 24 21 / 94%), rgb(10 24 21 / 60%) 52%, rgb(10 24 21 / 18%)); content: ""; }.about-closing > .container { position: relative; z-index: 1; }.about-closing h2 { max-width: 15ch; margin: 0 0 1.4rem; }.about-closing p:not(.eyebrow) { max-width: 47ch; color: #e0e9e5; font-size: 1.05rem; line-height: 1.65; }.about-closing .text-link { color: #a6e9de; }
@media (max-width: 900px) { .about-hero__grid, .about-method__editorial, .about-odoo__grid, .about-evolution__grid { grid-template-columns: 1fr; }.about-hero__copy { padding-block: 0; }.about-hero__visual { min-height: 390px; }.about-capability--odoo { grid-row: auto; min-height: 440px; }.about-capability--robotics { margin-top: 0; }.about-industries__grid { grid-template-columns: repeat(3, 1fr); }.about-industries figure { min-height: 260px; }.about-evolution__visuals { max-width: 680px; } }
@media (max-width: 680px) { .about-page h1 { max-width: 10ch; }.about-hero__visual { min-height: 290px; }.about-method__flow, .about-evolution__flow { grid-template-columns: 1fr 1fr; gap: 1rem .6rem; }.about-method__flow li:last-child, .about-evolution__flow li:last-child { grid-column: 1 / -1; }.about-section-heading { grid-template-columns: 1fr; gap: .8rem; }.about-capabilities__grid { grid-template-columns: 1fr; }.about-capability, .about-capability--odoo { min-height: 340px; }.about-industries__grid { grid-template-columns: 1fr; }.about-industries figure, .about-industries figure:nth-child(2), .about-industries figure:nth-child(3) { min-height: 250px; margin-top: 0; }.about-evolution__visuals { grid-template-columns: 1fr 1fr; }.about-evolution__visuals img:first-child { height: 250px; }.about-evolution__visuals img:last-child { height: 180px; }.about-odoo figure { height: 300px; }.about-closing { min-height: 440px; } }
.odoo-certification-photo { position: relative; overflow: hidden; padding: 0; background: #f4f1f3; }.odoo-certification-photo > .container { width: 100%; max-width: none; padding: 0; }.odoo-certification-photo img { display: block; width: 100%; max-width: none; height: clamp(300px, 33vw, 500px); object-fit: cover; object-position: center; filter: saturate(.82) contrast(.93); opacity: .84; }.odoo-certification-photo::after { position: absolute; inset: 0; background: linear-gradient(90deg, #f4f1f3 0%, rgb(244 241 243 / 20%) 15%, transparent 32%, transparent 68%, rgb(244 241 243 / 20%) 85%, #f4f1f3 100%), linear-gradient(0deg, #f4f1f3 0%, transparent 18%, transparent 82%, #f4f1f3 100%); content: ""; pointer-events: none; }
.construction-page .construction-closing__grid, .pharma-page .pharma-closing__grid, .integration-page .integration-closing__grid, .erp-page .erp-closing__grid, .about-page .about-odoo__grid { grid-template-columns: minmax(0, 1fr); }.contact-page .contact-hero { padding-block: clamp(4rem, 7vw, 7rem) clamp(3rem, 5vw, 5rem); }.contact-page .contact-hero__grid { grid-template-columns: minmax(0, .72fr) minmax(460px, 1.28fr); gap: clamp(3rem, 8vw, 8rem); }.contact-page .contact-form { box-shadow: 0 24px 50px rgb(0 0 0 / 16%); }.contact-form__honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }.contact-form button:disabled { cursor: wait; opacity: .7; }.contact-form__status.is-success { color: #8be0d3; }.contact-form__status.is-error { color: #f0beb7; }
@media (max-width: 900px) { .contact-page .contact-hero__grid { grid-template-columns: 1fr; }.contact-page .contact-hero__copy { padding-top: 0; } }

/* Evolution visual field: AI and Robotics integrate with the narrative rather than reading as isolated thumbnails. */
.about-page .about-evolution__grid { grid-template-columns: minmax(0, .8fr) minmax(520px, 1.2fr); gap: clamp(2rem, 5vw, 5rem); }.about-page .about-evolution__visuals { position: relative; display: block; max-width: none; min-height: 560px; margin-left: clamp(-5rem, -5vw, -2rem); overflow: hidden; }.about-page .about-evolution__visuals img { position: absolute; display: block; width: auto; filter: saturate(.68) contrast(.92); }.about-page .about-evolution__visuals img:first-child { inset: 0; width: 100%; height: 100%; object-fit: cover; }.about-page .about-evolution__visuals img:last-child { right: 5%; bottom: 7%; width: 43%; height: 48%; border: 8px solid #edf2ef; box-shadow: 0 20px 45px rgb(30 47 41 / 18%); }.about-page .about-evolution__visuals::after { position: absolute; inset: 0; background: linear-gradient(90deg, #edf2ef 0%, rgb(237 242 239 / 74%) 10%, transparent 37%), linear-gradient(0deg, rgb(237 242 239 / 72%), transparent 34%); content: ""; pointer-events: none; }
@media (max-width: 900px) { .about-page .about-evolution__grid { grid-template-columns: 1fr; }.about-page .about-evolution__visuals { max-width: 760px; margin-left: 0; } }
@media (max-width: 680px) { .about-page .about-evolution__visuals { min-height: 400px; }.about-page .about-evolution__visuals img:last-child { width: 47%; height: 43%; border-width: 5px; } }

/* About hero visual: extend the image into the copy rather than framing it separately. */
.about-page .about-hero__grid {
  grid-template-columns: minmax(0, .72fr) minmax(460px, 1.28fr);
  gap: clamp(2rem, 5vw, 5rem);
}

.about-page .about-hero__visual {
  min-height: 500px;
  margin-left: clamp(-8rem, -8vw, -3rem);
  border: 0;
  background: #18221f;
  mask-image: linear-gradient(90deg, transparent 0%, #000 19%, #000 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 19%, #000 100%);
}

.about-page .about-hero__visual img {
  display: block;
  filter: saturate(1.04) contrast(1.02) brightness(1.06);
  object-position: center 44%;
  transform: scale(1.1);
}

.about-page .about-hero__visual::after {
  background: linear-gradient(90deg, #18221f 0%, rgb(24 34 31 / 82%) 22%, rgb(24 34 31 / 26%) 54%, rgb(15 28 25 / 36%) 100%), linear-gradient(0deg, #18221f 0%, rgb(24 34 31 / 68%) 12%, transparent 34%);
}

@media (max-width: 900px) {
  .about-page .about-hero__visual {
    min-height: 390px;
    margin-left: 0;
    mask-image: none;
    -webkit-mask-image: none;
  }
}

.about-page .about-odoo__grid {
  grid-template-columns: minmax(0, 1fr) minmax(460px, 1fr);
  gap: clamp(2.5rem, 5vw, 4rem);
}

.about-page .about-odoo__copy h2 {
  max-width: none;
  font-size: clamp(2rem, 2.5vw, 2.3rem);
  line-height: 1.08;
}

.about-page .about-odoo figure {
  position: relative;
  height: 480px;
  margin-left: clamp(-7rem, -7vw, -3rem);
  mask-image: linear-gradient(90deg, transparent 0%, #000 17%, #000 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 17%, #000 100%);
}

.about-page .about-odoo figure::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, #f5f2f4 0%, rgb(245 242 244 / 54%) 24%, transparent 56%, rgb(37 28 35 / 20%) 100%);
  content: "";
  pointer-events: none;
}

.about-page .about-odoo figure > img {
  display: block;
  filter: saturate(.72) contrast(.94);
  transform: scale(1.05);
}

.about-page .about-odoo figcaption {
  z-index: 2;
}

@media (max-width: 900px) {
  .about-page .about-odoo figure {
    height: 390px;
    margin-left: 0;
    mask-image: none;
    -webkit-mask-image: none;
  }
}

/* Compact final call to action. */
.about-page .about-closing { min-height: 0; padding-block: clamp(4rem, 6vw, 5.5rem); }

/* Compact ERP page composition. */
.erp-page .erp-hero { padding-block: clamp(3.5rem, 5vw, 5rem); }
.erp-page .erp-hero__grid { min-height: 480px; }
.erp-page .erp-hero__visual { min-height: 420px; }
.erp-page .erp-ecosystem,
.erp-page .erp-product-moment,
.erp-page .erp-process,
.erp-page .erp-closing { padding-block: clamp(3.5rem, 5vw, 5rem); }
.erp-page .erp-ecosystem__stage { min-height: 400px; margin-top: clamp(2.5rem, 4vw, 3.5rem); }
.erp-page .erp-process ol { margin-top: clamp(2.5rem, 4vw, 3.5rem); }
.erp-page .erp-process li,
.erp-page .erp-process li:nth-child(even) { height: 155px; min-height: 155px; }
.erp-footer-spacer { height: clamp(3rem, 6vw, 5.5rem); background: #fff; }

/* Compact construction page composition. */
.construction-page .construction-hero { padding-block: clamp(3.5rem, 5vw, 5rem); }
.construction-page .construction-hero__grid { min-height: 460px; }
.construction-page .construction-hero__visual { min-height: 400px; }
.construction-page .construction-hero__visual::before,
.construction-page .construction-hero__visual::after { display: none; }
.construction-page .construction-integrated,
.construction-page .construction-solution,
.construction-page .construction-field-moment { padding-block: clamp(3.5rem, 5vw, 5rem); }
.construction-page .construction-modules { margin-top: clamp(2.5rem, 4vw, 3.5rem); }
.construction-page .construction-modules li { min-height: 130px; }
.construction-page .construction-modules li:nth-child(3n + 2) { transform: none; }
.construction-page .construction-field-moment > .container > figure { min-height: 400px; background: none; }
.construction-page .construction-field-moment > .container > figure > img { opacity: 1 !important; }
.construction-page .construction-acopios-flow li { min-height: 90px; }

/* Pharmacy hero: use supplied operational imagery without decorative layers. */
.pharma-page .pharma-hero__visual { overflow: hidden; margin-left: 0; border: 0; background: transparent; mask-image: none; -webkit-mask-image: none; }
.pharma-page .pharma-hero__visual::before { display: none; }
.pharma-page .pharma-hero__visual::after,
.pharma-page .pharma-hero__visual .industry-photo::after { display: none; }
.pharma-page .pharma-hero__visual .industry-photo { position: absolute; inset: 0; margin: 0; border: 0; border-radius: 0; background: none !important; box-shadow: none; }
.pharma-page .pharma-hero__visual .industry-photo > img { width: 100%; height: 100%; opacity: 1 !important; object-fit: cover; }

/* Compact pharmacy operation block. */
.pharma-page .pharma-differentials { padding-block: clamp(3.5rem, 5vw, 5rem); }
.pharma-page .pharma-integrations-rebuilt { row-gap: clamp(1.75rem, 3vw, 2.5rem); }
.pharma-page .pharma-integrations-rebuilt > figure { min-height: 0; background: transparent; }
.pharma-page .pharma-integrations-rebuilt > figure > img { height: auto; object-fit: contain; filter: none; }
.pharma-page .pharma-integrations-rebuilt__flow { margin-block: 1.35rem; }
.pharma-page .pharma-integrations-rebuilt__flow li { min-height: 82px; }
.pharma-page .pharma-integrations-rebuilt__external article { padding: 1rem; }

@media (max-width: 900px) {
  .pharma-page .pharma-integrations-rebuilt > figure { min-height: 0; }
}

/* Preserve the complete supplied traceability artwork without presentation effects. */
.pharma-page .pharma-differentials .pharma-integrations-rebuilt > figure {
  height: auto;
  min-height: 0;
  margin: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  filter: none;
  mask-image: none;
  -webkit-mask-image: none;
}

.pharma-page .pharma-differentials .pharma-integrations-rebuilt > figure::before,
.pharma-page .pharma-differentials .pharma-integrations-rebuilt > figure::after {
  display: none;
}

.pharma-page .pharma-differentials .pharma-integrations-rebuilt > figure > img {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
  aspect-ratio: auto;
  object-fit: initial;
  object-position: initial;
  opacity: 1;
  filter: none;
  transform: none;
  mask-image: none;
  -webkit-mask-image: none;
}

/* Keep the pharmacy hero editorial at tablet and compact-desktop widths. */
@media (min-width: 701px) and (max-width: 1024px) {
  .pharma-page .pharma-hero__grid {
    grid-template-columns: minmax(0, .85fr) minmax(360px, 1.15fr);
    min-height: 500px;
    gap: clamp(2rem, 4vw, 3rem);
  }

  .pharma-page .pharma-hero__visual {
    min-height: 420px;
  }
}

/* Membership and strategic alliance banner. */
.about-page .about-partnerships { padding-block: clamp(4rem, 7vw, 6.5rem); background: #fff; }
.about-page .about-partnerships img { display: block; width: 100%; height: auto; }

/* Integration page: streamlined editorial flow. */
.integrations-page .integrations-hero {
  border-top: clamp(1.5rem, 3vw, 3rem) solid #fff;
  padding-block: clamp(2.5rem, 4.5vw, 3.75rem);
}

.integrations-page .integrations-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
  min-height: 420px;
  gap: clamp(2.5rem, 6vw, 6rem);
}

.integrations-page .integrations-hero__grid > div:first-child {
  max-width: 40rem;
}

.integrations-page .integrations-hero h1 {
  font-size: clamp(2.7rem, 4.2vw, 4.6rem);
}

.integrations-page .integrations-hero__image {
  position: relative;
  display: flex;
  align-items: center;
  margin: 0;
  overflow: visible;
  align-self: stretch;
}

.integrations-page .integrations-hero__image::before {
  display: none;
}

.integrations-page .integrations-hero__image img {
  display: block;
  width: 112%;
  max-width: none;
  height: auto;
  margin-left: -6%;
  object-fit: contain;
  object-position: center;
}

.integrations-page .integrations-odoo-sh {
  border-top: clamp(1.5rem, 3vw, 2.5rem) solid #fff;
  padding-block: clamp(2.25rem, 3.5vw, 3.25rem);
}

.integrations-page .integrations-difference {
  border-top: clamp(2rem, 4vw, 4rem) solid #fff;
  margin-bottom: clamp(2.5rem, 5vw, 5rem);
  padding-block: clamp(3rem, 5vw, 4.75rem);
  border-bottom: clamp(2rem, 4vw, 4rem) solid #fff;
}

.integrations-page .integrations-difference__pillars {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-content: center;
}

.integrations-page .integrations-difference__pillars figure {
  position: relative;
  flex-basis: 100%;
  margin: 0 0 .75rem;
  overflow: hidden;
}

.integrations-page .integrations-difference__pillars figure::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, #202725 0%, transparent 48%);
  content: "";
}

.integrations-page .integrations-difference__pillars img {
  display: block;
  width: 100%;
  height: auto;
}

.integrations-page .integrations-difference__pillars span {
  padding: .45rem .65rem;
  border: 1px solid rgb(255 255 255 / 42%);
  font-size: .75rem;
  font-weight: 600;
}

@media (max-width: 900px) {
  .integrations-page .integrations-hero__grid {
    grid-template-columns: 1fr;
    min-height: 0;
  }
}

@media (min-width: 701px) and (max-width: 1024px) {
  .integrations-page .integrations-hero__grid {
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    min-height: 390px;
    gap: clamp(2rem, 4vw, 3.5rem);
  }

  .integrations-page .integrations-hero__image img {
    width: 112%;
    margin-left: -6%;
  }
}

@media (max-width: 700px) {
  .integrations-page .integrations-hero__image img {
    width: 100%;
    margin-left: 0;
  }
}

/* Contact page: compact form and map flow. */
.contact-page .contact-hero {
  border-top: clamp(1.5rem, 3vw, 3rem) solid #fff;
  padding-block: clamp(2.5rem, 4vw, 3.5rem) clamp(2rem, 3.5vw, 3rem);
}

.contact-page .contact-form {
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
}

.contact-page .contact-form__fields {
  gap: 1rem;
}

.contact-page .contact-form textarea {
  min-height: 64px;
}

.contact-page .contact-form button {
  margin-top: 1.25rem;
}

.contact-page .contact-form__status {
  margin-top: .65rem;
}

.contact-page .contact-presence {
  padding-top: clamp(2rem, 3.5vw, 3rem) !important;
  border-bottom: clamp(2rem, 4vw, 4rem) solid #fff;
}

.contact-page .contact-presence h2 {
  margin-bottom: clamp(1rem, 2vw, 1.5rem) !important;
}

@media (min-width: 701px) and (max-width: 1024px) {
  .contact-page .contact-hero__grid {
    grid-template-columns: minmax(0, .7fr) minmax(420px, 1.3fr);
    gap: clamp(2rem, 4vw, 3rem);
    align-items: center;
  }
}

.giga-footer__social a[href^="mailto:"] {
  display: inline;
  width: auto;
  height: auto;
  border: 0;
  color: #dbe1de;
}

.giga-footer__social a[href^="mailto:"]::after {
  display: none;
}

/* Supplied industry artwork: visual layers without changing page semantics. */
.odoo-overview-page .odoo-app-world { position: relative; overflow: hidden; padding-block: clamp(3.5rem, 7vw, 6.5rem); background: linear-gradient(90deg, rgb(246 240 245 / 96%), rgb(246 240 245 / 76%)), url("../images/visual-packs/odoo/08_ecosistema_odoo.png") center / cover; }
.odoo-overview-page .odoo-app-cloud { margin-top: clamp(2.5rem, 4vw, 4rem); }
.odoo-overview-page .odoo-app-cloud li { min-height: 88px; }
.odoo-overview-page .odoo-product-story { padding-block: clamp(3.5rem, 6vw, 6.5rem); }
.odoo-overview-page .odoo-product-story > .container { gap: clamp(2.5rem, 5vw, 5rem); }
.odoo-overview-page .odoo-scale { padding-block: clamp(3.5rem, 6vw, 6.5rem); }
.odoo-overview-page .odoo-scale__figures article { min-height: 145px; }
.odoo-overview-page .odoo-scale__figures .odoo-scale__primary { min-height: 145px; }
.odoo-overview-page .odoo-giga-journey { padding-block: clamp(3.5rem, 6vw, 6.5rem); }
.odoo-overview-page .odoo-giga-journey ol { margin-top: clamp(2.5rem, 4vw, 4rem); }
.odoo-overview-page .odoo-giga-journey li { min-height: 195px; }
.odoo-overview-page .odoo-giga-journey h3 { margin-top: clamp(2rem, 4vw, 4rem); }
.odoo-overview-page .odoo-certification-photo { border-bottom: clamp(2rem, 4vw, 4rem) solid #fff; }
.construction-page .construction-hero__visual { border: 0; }
.pharma-page .pharma-hero__visual .industry-photo { background: url("../images/visual-packs/odoo/03_droguerias_hero.png") center / cover; }.pharma-page .pharma-hero__visual .industry-photo > img { opacity: 0; }.pharma-page .pharma-operation-moment figure { background: url("../images/visual-packs/odoo/11_droguerias_picking.png") center / cover; }.pharma-page .pharma-operation-moment figure > img:first-child { opacity: 0; }.pharma-page .pharma-trace-moment figure { background: url("../images/visual-packs/odoo/12_droguerias_trazabilidad.png") center / cover; }.pharma-page .pharma-trace-moment figure > img:first-child { opacity: 0; }.integration-page .financial-integration-visual { position: relative; overflow: hidden; background: linear-gradient(110deg, rgb(14 38 35 / 94%), rgb(14 38 35 / 74%)), url("../images/visual-packs/odoo/04_interbanking_hero.png") center / cover; }.integration-page .financial-data-flow { background: linear-gradient(125deg, rgb(17 51 47 / 93%), rgb(17 51 47 / 72%)), url("../images/visual-packs/odoo/14_interbanking_flujo.png") center / cover; }.integration-page .integration-architecture__visual { padding: 1rem; border-radius: 18px; background: linear-gradient(115deg, rgb(237 247 245 / 94%), rgb(237 247 245 / 72%)), url("../images/visual-packs/odoo/13_interbanking_finanzas.png") center / cover; }.integrations-page .technical-hero-visual { background: linear-gradient(135deg, rgb(14 26 24 / 77%), rgb(14 26 24 / 48%)), url("images/visual-packs/odoo/05_integraciones_codigo.png") center / cover; }.integrations-page .integrations-api-moment aside { background: linear-gradient(135deg, rgb(14 31 29 / 93%), rgb(14 31 29 / 68%)), url("images/visual-packs/odoo/15_integraciones_diagrama.png") center / cover; }.construction-page .construction-field-moment > .container > figure { background: url("../images/visual-packs/odoo/10_construccion_materiales.png") center / cover; }.construction-page .construction-field-moment > .container > figure > img { opacity: 0; }
