/* Creangel: shared visual system. Original content and JS hooks are preserved. */
:root {
  --ink:#123449; --blue:#12518e; --blue-hover:#0d4275; --yellow:#fbd327;
  --text:#47586a; --muted:#5e6e7e; --paper:#f3f6f9; --green:#edf3f8;
  --line:#d7e0e8; --surface:#fff; --radius:4px;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-6:24px; --space-8:32px; --space-12:48px; --space-16:64px;
  --space-20:80px; --space-24:96px; --gutter:48px; --section-space:80px;
  --type-h1:clamp(40px,4vw,56px); --type-h2:clamp(32px,3vw,42px);
  --type-h3:26px; --type-body:17px; --type-small:14px; --type-label:14px;
  --motion-quick:160ms; --motion-standard:200ms;
  --motion-ease:cubic-bezier(.2,.7,.2,1);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:104px; }
body { margin:0; color:var(--text); background:var(--surface); font:var(--type-body)/1.65 'Segoe UI',Arial,sans-serif; }
h1,h2,h3,h4 { color:var(--ink); line-height:1.16; letter-spacing:-.03em; font-weight:600; margin:0 0 var(--space-6); }
h1 { font-size:var(--type-h1); }
h2 { font-size:var(--type-h2); }
h3 { font-size:var(--type-h3); }
h4 { font-size:20px; }
p { margin:0 0 var(--space-6); }
a { color:var(--blue); text-underline-offset:5px; }
a:hover { text-decoration-thickness:2px; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
button,a,summary { touch-action:manipulation; }
img,svg,video { display:block; max-width:100%; height:auto; }
[hidden] { display:none!important; }
.wrap { width:min(1280px,calc(100% - var(--gutter)*2)); margin-inline:auto; }
.section { padding:var(--section-space) 0; }
.paper { background:var(--paper); }
.green { background:var(--green); }
.split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--space-16); align-items:start; }
.section-heading { display:grid; grid-template-columns:1.15fr 1fr; gap:var(--space-16); margin-bottom:var(--space-8); align-items:start; }
.section-heading h2 { margin:0; max-width:24ch; }
.section-heading p { max-width:56ch; margin:0; }
.section-heading .text-link { margin-top:var(--space-4); }
.sr-only,.skip:not(:focus) { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.skip:focus { position:fixed; top:12px; left:16px; z-index:100; background:white; padding:12px; color:var(--ink); }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,select:focus-visible,[tabindex]:focus-visible { outline:3px solid var(--blue); outline-offset:4px; box-shadow:0 0 0 2px white; }

/* Navigation and conversion */
.site-header { position:sticky; top:0; z-index:30; background:white; border-bottom:1px solid var(--line); }
.navrow { display:flex; align-items:center; gap:var(--space-6); min-height:80px; }
.brand { flex:0 0 154px; display:flex; align-items:center; min-height:44px; }
.brand img { width:154px; height:auto; }
.desktop-nav { margin-left:auto; display:flex; gap:var(--space-6); align-items:center; }
.desktop-nav>a,.desktop-nav>button { display:inline-flex; align-items:center; min-height:44px; font-size:14px; font-weight:600; color:var(--ink); text-decoration:none; white-space:nowrap; }
.desktop-nav>button { border:0; padding:12px 0; background:none; gap:4px; }
.desktop-nav>a:hover,.desktop-nav>button:hover { color:var(--blue); text-decoration:underline; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:48px; padding:12px 24px; border:1px solid var(--blue); border-radius:var(--radius); background:var(--blue); color:white; text-decoration:none; font-size:14px; font-weight:600; line-height:1.4; transition:background-color .16s,border-color .16s,color .16s; }
.btn:hover { color:white; background:var(--blue-hover); border-color:var(--blue-hover); }
.btn:active { background:var(--ink); border-color:var(--ink); }
.btn.secondary { background:transparent; color:var(--ink); border-color:#8b9dac; }
.btn.secondary:hover { background:#e8eff6; border-color:var(--blue); color:var(--blue); }
button:disabled,input:disabled,select:disabled,textarea:disabled { cursor:not-allowed; opacity:.65; }
.header-cta { padding:12px 16px; min-height:44px; white-space:nowrap; background:var(--yellow); border-color:var(--yellow); color:var(--ink); }
.header-cta:hover { background:#f2c618; border-color:#f2c618; color:var(--ink); }
.text-link { display:inline-flex; align-items:center; min-height:44px; color:var(--blue); font-size:16px; font-weight:600; text-decoration:none; border-bottom:1px solid currentColor; padding:8px 0; line-height:1.5; }
.text-link:hover { color:var(--blue-hover); text-decoration:underline; }
.actions { display:flex; gap:24px; align-items:center; flex-wrap:wrap; margin-top:32px; }
.mobile-toggle { display:none; background:white; color:var(--ink); border:1px solid var(--line); border-radius:var(--radius); width:48px; height:48px; margin-left:auto; }
.mega { position:absolute; top:100%; left:0; width:100%; background:white; border-bottom:1px solid var(--line); box-shadow:0 12px 24px #12344914; padding:32px 0; }
.mega-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px; }
.mega-grid a { display:block; text-decoration:none; color:var(--ink); border-top:2px solid var(--blue); padding-top:16px; }
.mega-grid a:hover { border-top-color:var(--yellow); }
.mega-grid strong { font-weight:600; font-size:16px; display:block; margin-bottom:12px; line-height:1.4; }
.mega-grid small { font-size:14px; line-height:1.6; color:var(--text); }
.mega-bottom { display:flex; gap:24px; margin-top:24px; font-size:14px; }
.mega-bottom a { min-height:44px; display:inline-flex; align-items:center; }
.mobile-nav { padding:16px 32px; max-height:calc(100dvh - 80px); overflow:auto; border-top:1px solid var(--line); }
.mobile-nav a,.mobile-nav summary { display:block; padding:12px 4px; color:var(--ink); text-decoration:none; font-size:16px; min-height:48px; }
.mobile-nav a:hover { color:var(--blue); background:var(--paper); }
.mobile-nav details a { padding-left:20px; font-size:15px; }
.mobile-nav summary { cursor:pointer; }
.mobile-nav details { border-bottom:1px solid var(--line); }

/* Openings and homepage composition */
.hero { padding:48px 0 64px; background:var(--paper); border-bottom:1px solid var(--line); }
.breadcrumb { font-size:14px; display:flex; gap:12px; flex-wrap:wrap; margin-bottom:32px; }
.breadcrumb a { color:var(--text); min-height:24px; }
.hero-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:64px; align-items:center; }
.hero-grid>* { min-width:0; }
.hero-copy p { font-size:19px; max-width:58ch; }
.hero-visual { margin:0; }
.hero-visual img { height:350px; width:100%; object-fit:contain; }
.hero-home { padding:0; background:#edf3f8; }
.hero-home .hero-grid { grid-template-columns:1.3fr .9fr; gap:64px; min-height:480px; align-items:stretch; }
.hero-home .hero-copy { align-self:center; padding:48px 0; }
.hero-home h1 { font-size:clamp(48px,4.8vw,64px); line-height:1.1; letter-spacing:-.035em; margin-bottom:24px; max-width:20ch; }
.hero-home h1::after { content:''; display:block; background:var(--yellow); width:56px; height:4px; margin-top:24px; }
.hero-home p { max-width:52ch; }
.hero-home .hero-visual { align-self:stretch; display:flex; align-items:end; position:relative; }
.hero-home .hero-visual::before { content:''; position:absolute; width:100%; height:75%; background:#e0e9f1; right:0; bottom:0; border-left:1px solid #cad8e4; }
.hero-home .hero-visual img { position:relative; height:440px; width:100%; object-fit:contain; object-position:center bottom; }
.hero-home .actions { gap:16px; }
.home-trust { background:white; border-bottom:1px solid var(--line); }
.logos { display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; margin-top:32px; }
.logos a { flex:1 1 140px; display:flex; justify-content:center; align-items:center; padding:12px 8px; min-height:68px; }
.logos img { height:48px; width:168px; object-fit:contain; }
.home-trust .logos { margin-top:0; padding-block:16px; }
.home-company { padding-bottom:48px; }
.home-company .section-heading { margin-bottom:0; }
.home-company+.section { padding-top:32px; }

/* Product directory: titles and descriptions in editorial rows */
.product-directory { border-top:1px solid var(--line); }
.product-entry { display:grid; grid-template-columns:32px minmax(0,1fr) 44px; gap:24px; padding:24px 0; border-bottom:1px solid var(--line); align-items:center; }
.product-entry>div { display:grid; grid-template-columns:minmax(240px,.9fr) minmax(0,1.35fr); gap:48px; align-items:start; }
.product-index { font-size:14px; color:var(--muted); font-variant-numeric:tabular-nums; }
.product-entry h3 { font-size:24px; margin:0; line-height:1.25; letter-spacing:-.02em; }
.product-entry h3 a { color:var(--ink); text-decoration:none; }
.product-entry h3 a:hover { color:var(--blue); text-decoration:underline; }
.product-entry p { font-size:16px; margin:0; max-width:68ch; }
.round-link { display:grid; place-items:center; border:1px solid var(--line); border-radius:var(--radius); width:44px; height:44px; text-decoration:none; color:var(--blue); font-size:23px; transition:background-color .16s,color .16s; }
.round-link:hover { background:var(--blue); color:white; border-color:var(--blue); }
.case-feature { display:grid; grid-template-columns:.9fr 1.15fr; background:white; border:1px solid var(--line); }
.case-feature img { width:100%; height:100%; min-height:360px; object-fit:cover; }
.case-feature .case-copy { padding:48px; align-self:center; border-top:3px solid var(--blue); }
.case-feature h3 { font-size:36px; line-height:1.18; }
.case-feature p { font-size:17px; }
.case-feature .small { font-size:14px; color:var(--blue); font-weight:600; }
.small { font-size:14px; color:var(--muted); }
.case-list,.article-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px 32px; }
.case-card,.article-card { min-width:0; }
.case-card>a,.article-card>a { color:var(--ink); text-decoration:none; display:block; }
.case-card img,.article-card img { width:100%; height:auto; aspect-ratio:1.91; object-fit:contain; background:var(--paper); }
.article-card img { object-fit:cover; aspect-ratio:16/9; }
.case-card h3,.article-card h3 { font-size:24px; margin:24px 0 16px; line-height:1.3; }
.case-card p,.article-card p { font-size:16px; line-height:1.65; }
.case-card .text-link,.article-card .text-link { font-size:15px; }
.case-card.wide { grid-column:span 2; }

/* IFINDIT reference composition with readable, independently sized text. */
.platform-section { background:white; }
.platform-section>.wrap { width:calc(100% - 32px); }
.platform-section .section-heading,.platform-section .diagram-caption { width:min(1280px,100%); margin-inline:auto; }
.platform-diagram { width:100%; max-width:1360px; margin:0 auto; color:#103654; font-family:Arial,Helvetica,sans-serif; line-height:1.45; }
.platform-diagram p { margin:0; }
.platform-symbol { flex:none; width:32px; height:32px; fill:none; stroke:#004b8d; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.platform-audience-block { position:relative; display:flex; align-items:center; gap:20px; width:min(540px,100%); margin:0 auto 20px; padding:10px 24px; border-radius:4px; background:#f3f6f8; }
.platform-audience-block::after { content:''; position:absolute; top:100%; left:50%; height:20px; border-left:2px solid #c7d4de; }
.platform-audience-block .platform-symbol { width:42px; height:42px; }
.platform-audience-block strong { display:block; font-size:20px; line-height:1.25; }
.platform-audience-block p { margin-top:3px; font-size:16px; line-height:1.4; color:#486477; }
.platform-shell { border:1.5px solid #c7d4de; border-radius:10px; overflow:hidden; background:white; }
.platform-masthead { padding:12px 28px; color:white; background:#004b8d; border-bottom:5px solid #ffd127; }
.platform-masthead .platform-name { font-size:32px; font-weight:700; line-height:1.15; margin-bottom:4px; }
.platform-masthead>p:last-child { font-size:18px; line-height:1.4; }
.platform-products-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; padding:16px; }
.platform-node { display:flex; flex-direction:column; align-items:start; gap:10px; min-width:0; min-height:190px; padding:14px; border:1px solid transparent; border-radius:4px; background:#f3f6f8; color:#103654; text-decoration:none; }
.platform-node strong { font-size:18px; line-height:1.25; font-weight:700; }
.platform-node-copy { display:block; margin-top:auto; font-size:16px; line-height:1.4; color:#486477; }
.platform-node:hover { border-color:#004b8d; background:#edf3f8; }
.platform-shared { display:grid; gap:10px; margin:0 16px 16px; }
.platform-layer { display:grid; grid-template-columns:30px 210px minmax(0,1fr); align-items:center; gap:16px; min-height:50px; padding:10px 18px; border-radius:4px; color:#103654; background:#f3f6f8; text-decoration:none; }
.platform-layer .platform-symbol { width:30px; height:30px; }
.platform-layer strong { font-size:20px; line-height:1.3; }
.platform-layer>span { font-size:17px; line-height:1.45; color:#486477; }
.platform-layer-data { background:#00396b; color:white; }
.platform-layer-data .platform-symbol { stroke:white; }
.platform-layer-data>span { color:white; }
.platform-layer:hover { box-shadow:inset 0 0 0 2px #004b8d; }
.platform-layer-data:hover { background:#004b8d; }
.platform-node:focus-visible,.platform-layer:focus-visible { outline:3px solid #004b8d; outline-offset:3px; box-shadow:0 0 0 2px white; }
.platform-source-block { position:relative; padding-top:26px; }
.platform-source-block::before { content:''; position:absolute; top:0; left:50%; height:24px; border-left:2px solid #c7d4de; }
.platform-sources-label { text-align:center; font-size:20px; line-height:1.3; font-weight:700; margin-bottom:12px!important; }
.platform-source-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:0 28px; }
.platform-source { display:flex; align-items:center; gap:16px; min-height:54px; padding:10px 16px; border:1.5px solid #c7d4de; border-radius:4px; font-size:17px; }
.platform-source .platform-symbol { width:30px; height:30px; }
@media(max-width:1199px) and (min-width:780px) {
  .platform-products-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
  .platform-node { grid-column:span 2; }
  .platform-node:nth-child(4) { grid-column:2/span 2; }
  .platform-node:nth-child(5) { grid-column:4/span 2; }
}
@media(max-width:900px) {
  .platform-layer { grid-template-columns:30px minmax(0,1fr); gap:6px 16px; }
  .platform-layer .platform-symbol { grid-row:1/3; }
  .platform-layer>span { grid-column:2; }
  .platform-source-grid { gap:12px; padding:0; }
}
@media(max-width:779px) {
  .platform-section>.wrap { width:calc(100% - 32px); }
  .platform-section .section-heading,.platform-section .diagram-caption { width:100%; }
  .platform-audience-block { gap:14px; padding:12px 16px; }
  .platform-audience-block strong { font-size:20px; }
  .platform-audience-block .platform-symbol { width:36px; height:36px; }
  .platform-masthead { padding:16px 18px; }
  .platform-masthead .platform-name { font-size:30px; }
  .platform-masthead>p:last-child { font-size:17px; }
  .platform-products-grid { grid-template-columns:1fr; gap:12px; padding:16px; }
  .platform-node { display:grid; grid-template-columns:32px minmax(0,1fr); align-items:start; gap:8px 14px; min-height:108px; padding:16px; }
  .platform-node .platform-symbol { width:32px; height:32px; grid-row:1/3; }
  .platform-node strong { font-size:18px; }
  .platform-node strong br { display:none; }
  .platform-node-copy { grid-column:2; margin:0; }
  .platform-shared { margin:0 16px 16px; }
  .platform-layer { padding:14px; gap:8px 12px; }
  .platform-layer strong { font-size:19px; }
  .platform-layer>span { font-size:16px; }
  .platform-source-grid { grid-template-columns:1fr; gap:12px; padding:0 16px; }
}
.diagram-caption { display:flex; justify-content:space-between; align-items:start; gap:24px; margin-top:16px; font-size:14px; }
.diagram-caption p { max-width:72ch; margin:0; }
.diagram-caption a { white-space:nowrap; min-height:44px; display:inline-flex; align-items:center; }
.process-diagram { width:100%; border:1px solid var(--line); background:var(--paper); padding:24px; }
.process-diagram img,.process-diagram picture img { min-width:0; width:100%; height:auto; }

/* Feature catalogues, reading and tables */
.feature-highlights { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.feature-highlight { border-top:2px solid var(--blue); padding-top:24px; }
.feature-highlight h2,.feature-highlight h3 { font-size:26px; }
.feature-highlight p { font-size:16px; }
.feature-tools { display:flex; gap:24px; align-items:end; justify-content:space-between; margin-bottom:32px; }
.search-field { display:grid; gap:8px; max-width:540px; width:100%; font-size:14px; font-weight:600; color:var(--ink); }
input[type=search],input[type=text],input[type=email],select,textarea { width:100%; min-height:48px; border:1px solid #8094a5; border-radius:var(--radius); padding:12px 16px; background:white; font-size:16px; color:var(--ink); }
textarea { min-height:120px; resize:vertical; }
input::placeholder,textarea::placeholder { color:var(--muted); opacity:1; }
.feature-tools p { font-size:14px; margin:0 0 12px; }
.feature-group { border-top:1px solid var(--line); }
.feature-group:last-child { border-bottom:1px solid var(--line); }
.feature-group>summary { display:flex; justify-content:space-between; align-items:center; gap:24px; cursor:pointer; padding:24px 0; color:var(--ink); font-size:24px; line-height:1.3; list-style:none; overflow-wrap:anywhere; }
.feature-group>summary::-webkit-details-marker { display:none; }
.feature-group>summary::after { content:'+'; font-size:26px; flex:0 0 32px; text-align:center; }
.feature-group[open]>summary::after { content:'−'; }
.feature-group>summary small { margin-left:auto; font-size:14px; color:var(--muted); }
.feature-items { padding:0 0 32px; display:grid; grid-template-columns:1fr 1fr; gap:0 48px; }
.feature-item { padding:24px 0; border-top:1px solid var(--line); min-width:0; }
.feature-item h3 { font-size:18px; margin:0 0 12px; letter-spacing:-.01em; }
.feature-item p { font-size:16px; margin:0; line-height:1.75; overflow-wrap:anywhere; }
.feature-benefit { color:var(--muted); font-size:14px; margin-top:12px!important; }
.empty { padding:24px; background:var(--paper); color:var(--ink); }
.source-list { display:grid; grid-template-columns:1fr 1fr; gap:0 32px; list-style:none; padding:0; margin:0; }
.source-list li { padding:16px 0; border-top:1px solid var(--line); font-size:18px; color:var(--ink); }
.link-list>a { display:flex; justify-content:space-between; gap:24px; padding:16px 0; border-top:1px solid var(--line); font-size:22px; text-decoration:none; color:var(--ink); }
.link-list>a:hover { color:var(--blue); }
.rich-content { max-width:860px; margin-inline:auto; }
.rich-content h2 { font-size:32px; margin-top:48px; }
.rich-content h3 { font-size:26px; margin-top:32px; }
.rich-content p,.rich-content li { line-height:1.8; }
.rich-content li { margin:12px 0; }
.rich-content a { overflow-wrap:anywhere; }
.rich-content figure { margin:32px 0; }
.rich-content figure img { max-height:640px; width:auto; margin:auto; }
.source-note { border-top:1px solid var(--line); padding-top:16px; margin-top:32px; font-size:14px; }
.article-meta { font-size:14px; margin-bottom:24px; }
.metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin:0 0 48px; }
.metric { border-top:3px solid var(--blue); padding:24px 0; color:var(--ink); }
.metric strong { display:block; font-size:42px; font-weight:600; line-height:1.1; margin-bottom:16px; font-variant-numeric:tabular-nums; letter-spacing:-.025em; }
.metric p { font-size:16px; line-height:1.65; margin:0; }
.case-sections { display:grid; grid-template-columns:240px minmax(0,1fr); gap:64px; }
.case-sections .case-index a { display:block; color:var(--ink); border-bottom:1px solid var(--line); font-size:16px; padding:12px 0; text-decoration:none; min-height:44px; }
.case-sections .rich-content { margin:0; max-width:820px; }
.case-sections .rich-content>section:first-child h2 { margin-top:0; }
.table-wrap { overflow-x:auto; max-width:100%; }
table { border-collapse:collapse; width:100%; font-size:16px; }
td,th { border:1px solid var(--line); padding:16px; vertical-align:top; text-align:left; }
[data-part-numbers] table { min-width:760px; }
[data-part-numbers] thead { background:var(--paper); }
[data-part-numbers] th[scope=row] { white-space:nowrap; font-weight:600; }
.catalog-jump { padding-top:32px; }
.table-help { margin-bottom:16px; }
#numeros-de-parte { scroll-margin-top:104px; }

/* Original media and documents */
.media-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.media-card { margin:0; min-width:0; }
.media-zoom { display:block; position:relative; width:100%; border:1px solid var(--line); border-radius:var(--radius); background:var(--paper); padding:24px; cursor:zoom-in; }
.media-zoom img { width:100%; height:230px; object-fit:contain; }
.media-zoom .expand { position:absolute; right:12px; bottom:12px; border:1px solid var(--line); background:white; width:32px; height:32px; border-radius:var(--radius); display:grid; place-items:center; color:var(--ink); }
.media-card figcaption { padding-top:16px; font-size:14px; line-height:1.6; }
.media-card .download { font-size:14px; display:inline-flex; align-items:center; margin-top:8px; min-height:44px; }
.gallery-tools { display:flex; gap:24px; flex-wrap:wrap; margin-bottom:32px; align-items:end; justify-content:space-between; }
.gallery-tools p { font-size:14px; margin:0 0 12px; }
.media-gallery.single { grid-template-columns:minmax(0,700px); }
.media-gallery.single img { height:360px; }
.video-feature { display:grid; grid-template-columns:1.15fr 1fr; align-items:center; gap:64px; }
.video-feature+.video-feature { margin-top:64px; padding-top:64px; border-top:1px solid var(--line); }
.video-feature h3 { font-size:32px; }
.video-feature p { font-size:17px; }
.video-feature video { width:100%; aspect-ratio:16/9; background:var(--ink); object-fit:contain; }
.youtube-player { aspect-ratio:16/9; width:100%; background:#e2eaf2; }
.youtube-player iframe { width:100%; height:100%; border:0; display:block; }
.youtube-load { width:100%; height:100%; border:1px solid var(--line); position:relative; background:#e2eaf2; color:var(--ink); padding:24px 32px 56px; }
.youtube-load img { width:100%; height:100%; object-fit:contain; max-height:300px; }
.youtube-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:64px; height:64px; border-radius:50%; background:var(--blue); color:white; font-size:24px; display:grid; place-items:center; transition:background-color .16s; }
.youtube-load:hover .youtube-play { background:var(--ink); }
.youtube-label { position:absolute; bottom:16px; left:16px; right:16px; font-size:14px; font-weight:600; }
.video-links { display:flex; gap:24px; flex-wrap:wrap; font-size:16px; }
.video-links a { min-height:44px; display:inline-flex; align-items:center; }
.documents-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px 48px; }
.document-card { display:grid; grid-template-columns:120px minmax(0,1fr); gap:24px; border-top:1px solid var(--line); padding:24px 0; }
.document-cover { background:var(--paper); padding:16px; align-self:start; display:block; }
.document-cover img { width:100%; height:160px; object-fit:contain; }
.document-card h3 { font-size:24px; margin:8px 0 16px; }
.document-card p { font-size:16px; }
.document-card .actions { gap:16px; margin-top:16px; font-size:15px; }
.document-meta { font-size:14px; color:var(--muted); }

/* Contact, conversion and footer */
.cta { background:var(--ink); border-top:4px solid var(--yellow); padding:48px; display:grid; grid-template-columns:1.5fr 1fr; gap:64px; align-items:center; color:#dbe6eb; }
.cta h2 { color:white; font-size:40px; }
.cta p { margin:0; font-size:17px; max-width:62ch; }
.cta .actions { margin:0; display:flex; align-items:flex-start; flex-direction:column; gap:16px; }
.cta .btn { background:var(--yellow); border-color:var(--yellow); color:var(--ink); min-width:220px; }
.cta .btn:hover { background:#f2c618; border-color:#f2c618; color:var(--ink); }
.cta .text-link { color:white; font-weight:500; font-size:15px; }
.contact-panel { background:white; border:1px solid var(--line); border-top:3px solid var(--blue); padding:32px; }
.contact-panel h2 { font-size:32px; }
.contact-method { padding:24px 0; border-top:1px solid var(--line); }
.contact-method h3 { font-size:16px; margin:0 0 8px; font-weight:600; letter-spacing:0; }
.contact-method a { font-size:22px; overflow-wrap:anywhere; }
.contact-method>a { display:block; min-height:44px; }
.contact-method p { font-size:17px; margin:0; }
.site-footer { background:var(--paper); border-top:1px solid var(--line); padding:48px 0 24px; }
.footer-grid { display:grid; grid-template-columns:1.1fr 1.4fr 1fr 1.1fr; gap:32px; }
.footer-brand img { width:154px; margin-bottom:24px; }
.site-footer p { font-size:14px; }
.site-footer h2 { font-size:16px; letter-spacing:0; font-weight:600; margin-bottom:16px; }
.site-footer a { color:var(--text); font-size:14px; display:flex; align-items:center; min-height:32px; text-decoration:none; margin-bottom:4px; overflow-wrap:anywhere; line-height:1.5; }
.site-footer a:hover { text-decoration:underline; color:var(--blue); }
.footer-bottom { border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:32px; padding-top:16px; font-size:14px; }
.footer-bottom a { margin:0; font-size:14px; }
.footer-copyright { display:flex; align-items:center; flex-wrap:wrap; gap:4px 12px; }
.footer-credit { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }
.footer-bottom .footer-linkedin { display:inline-flex; justify-content:center; width:32px; min-width:32px; min-height:32px; border-radius:3px; color:var(--blue); }
.footer-linkedin svg { width:16px; height:16px; flex:none; }
.zoom-dialog { width:min(1100px,94vw); max-height:94vh; border:0; border-radius:var(--radius); padding:0; background:white; color:var(--ink); }
.zoom-dialog::backdrop { background:#102738c9; }
.zoom-head { position:sticky; top:0; display:flex; gap:24px; align-items:center; justify-content:space-between; padding:16px 24px; background:white; border-bottom:1px solid var(--line); }
.zoom-head h2 { font-size:22px; margin:0; line-height:1.4; }
.zoom-close { height:44px; min-width:44px; background:white; border:1px solid var(--line); border-radius:var(--radius); font-size:26px; color:var(--ink); }
.zoom-body { padding:24px; background:var(--paper); }
.zoom-body img { margin:auto; max-height:70vh; width:auto; height:auto; object-fit:contain; }
.zoom-body a { display:table; margin:24px auto 0; font-size:16px; min-height:44px; }
.not-found { padding:96px 0; min-height:65vh; }
.inline-search { padding:32px 0; border-bottom:1px solid var(--line); }
.site-results { list-style:none; margin:32px 0 0; padding:0; }
.site-results li { padding:24px 0; border-bottom:1px solid var(--line); }
.site-results h2 { font-size:26px; margin:0 0 12px; }
.site-results p { font-size:16px; margin:0; }
.site-results .result-type { font-size:14px; color:var(--muted); margin-bottom:8px; }

/* 1120 matches the menu handler in site.js. */
@media(max-width:1120px) {
  :root { --gutter:32px; --section-space:64px; }
  .desktop-nav,.header-cta { display:none; }
  .mobile-toggle { display:block; }
  .hero-grid,.section-heading,.split { gap:48px; }
  .hero-home .hero-grid { gap:32px; min-height:440px; }
  .hero-home h1 { font-size:52px; }
  .hero-home .hero-visual img { height:400px; }
  .case-feature .case-copy { padding:32px; }
  .product-entry>div { grid-template-columns:minmax(220px,.9fr) minmax(0,1.25fr); gap:32px; }
  .case-sections { grid-template-columns:200px minmax(0,1fr); gap:48px; }
  .video-feature { gap:32px; }
  .documents-grid { gap:24px; }
  .document-card { grid-template-columns:96px minmax(0,1fr); gap:16px; }
  .document-cover img { height:140px; }
  .cta { gap:32px; padding:32px; }
}
@media(max-width:850px) {
  .hero-grid,.split { grid-template-columns:1fr; }
  .hero-home .hero-grid { grid-template-columns:1.2fr .9fr; gap:24px; }
  .hero-home h1 { font-size:48px; }
  .hero-home .hero-copy { padding:40px 0; }
  .hero-home .hero-visual img { height:360px; }
  .hero-home p { font-size:17px; }
  .hero-home .actions { flex-wrap:wrap; gap:12px; }
  .section-heading { gap:32px; }
  .product-entry>div { display:block; }
  .product-entry h3 { margin-bottom:12px; }
  .logos { gap:16px; }
  .home-trust .logos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 16px; }
  .case-list,.article-list,.media-gallery { grid-template-columns:1fr 1fr; }
  .case-feature { grid-template-columns:.8fr 1.2fr; }
  .case-feature h3 { font-size:30px; }
  .feature-highlights { grid-template-columns:1fr 1fr; }
  .case-sections { grid-template-columns:1fr; }
  .case-index { display:flex; gap:12px 24px; flex-wrap:wrap; }
  .case-sections .case-index a { border:0; padding:8px 0; }
  .cta { grid-template-columns:1fr; gap:24px; }
  .cta .actions { flex-direction:row; align-items:center; flex-wrap:wrap; }
  .cta .btn { min-width:0; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:32px; }
  .documents-grid { grid-template-columns:1fr; }
  .metrics { gap:24px; }
  .metric strong { font-size:36px; }
  .rich-content { max-width:none; }
  .hero-visual img { height:310px; }
}
@media(max-width:768px) {
  .section-heading { grid-template-columns:1fr; gap:24px; }
  .section-heading p { max-width:66ch; }
  .hero-home .hero-copy { padding:32px 0; }
  .hero-home h1 { font-size:44px; }
  .hero-home .hero-visual img { height:340px; }
  .case-feature { grid-template-columns:1fr; }
  .case-feature img { min-height:0; height:280px; }
  .case-feature h3 { font-size:32px; }
  .video-feature { grid-template-columns:1fr; gap:32px; }
  .feature-items { gap:0 32px; }
}
@media(max-width:600px) {
  :root { --gutter:20px; --section-space:48px; --type-h1:36px; --type-h2:32px; }
  .navrow { min-height:76px; }
  .brand { flex-basis:143px; }
  .brand img { width:143px; }
  .mobile-nav { padding:12px 20px; max-height:calc(100dvh - 76px); }
  .hero { padding:32px 0 40px; }
  .hero-copy p { font-size:17px; }
  .hero-home { padding:0; }
  .hero-home .hero-grid { grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr); gap:24px 16px; min-height:0; padding-block:32px; align-items:center; }
  .hero-home .hero-copy { display:contents; }
  .hero-home h1 { grid-column:1/-1; grid-row:1; font-size:40px; line-height:1.12; margin:0; max-width:22ch; }
  .hero-home h1::after { width:48px; margin-top:16px; }
  .hero-home .hero-copy>p { grid-column:1; grid-row:2; font-size:16px; line-height:1.6; margin:0; }
  .hero-home .hero-visual { grid-column:2; grid-row:2; width:100%; align-self:end; }
  .hero-home .hero-visual img { height:220px; }
  .hero-home .hero-visual::before { height:82%; }
  .hero-home .actions { grid-column:1/-1; grid-row:3; display:grid; grid-template-columns:1.2fr 1fr; align-items:stretch; gap:12px; margin:0; }
  .hero-home .actions .btn { width:100%; padding:12px; min-height:48px; }
  .home-trust .logos { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; padding-block:12px; }
  .home-trust .logos a:last-child { grid-column:1/-1; }
  .logos a { min-height:60px; padding:8px; }
  .logos img { height:44px; width:150px; }
  .actions { gap:16px; margin-top:24px; }
  .btn { padding:12px 20px; font-size:14px; }
  .text-link { font-size:15px; }
  .breadcrumb { margin-bottom:24px; }
  .section-heading { gap:16px; margin-bottom:32px; }
  .section-heading p { font-size:17px; }
  .product-entry { padding:24px 0; grid-template-columns:24px minmax(0,1fr) 44px; gap:12px; align-items:start; }
  .product-index { padding-top:4px; }
  .product-entry h3 { font-size:22px; }
  .product-entry p { font-size:16px; }
  .case-feature img { height:220px; }
  .case-feature .case-copy { padding:24px; }
  .case-feature h3 { font-size:30px; }
  .case-list,.article-list,.media-gallery { grid-template-columns:1fr; gap:32px; }
  .case-card.wide { grid-column:auto; }
  .case-card h3,.article-card h3 { font-size:24px; }
  .diagram-caption { display:block; }
  .diagram-caption a { margin-top:12px; }
  .feature-highlights { grid-template-columns:1fr; gap:24px; }
  .feature-highlight h2,.feature-highlight h3 { font-size:24px; }
  .feature-tools { flex-direction:column; align-items:stretch; gap:12px; margin-bottom:24px; }
  .feature-tools p { margin:0; }
  .feature-group>summary { font-size:20px; padding:24px 0; gap:12px; }
  .feature-group>summary small { font-size:12px; }
  .feature-items { grid-template-columns:1fr; gap:0; }
  .source-list { gap:0 24px; }
  .source-list li { font-size:16px; padding:16px 0; }
  .link-list>a { font-size:22px; }
  .rich-content p,.rich-content li { font-size:17px; }
  .rich-content h2 { font-size:28px; }
  .rich-content h3 { font-size:24px; }
  .metrics { grid-template-columns:1fr; gap:24px; margin-bottom:32px; }
  .metric { padding:24px 0; }
  .metric strong { font-size:36px; }
  .case-sections { gap:32px; }
  .case-index { gap:8px 24px; }
  .video-feature { gap:24px; }
  .video-feature h3 { font-size:28px; }
  .video-feature+.video-feature { margin-top:48px; padding-top:48px; }
  .youtube-load { padding:24px 24px 56px; }
  .youtube-play { width:56px; height:56px; font-size:22px; }
  .document-card { grid-template-columns:88px minmax(0,1fr); gap:16px; padding:24px 0; }
  .document-cover { padding:8px; }
  .document-cover img { height:120px; }
  .document-card h3 { font-size:22px; }
  .document-card .btn { font-size:14px; padding:12px; }
  .media-zoom img { height:230px; }
  .media-gallery.single img { height:270px; }
  .gallery-tools { gap:16px; }
  .contact-panel { padding:24px; }
  .contact-panel h2 { font-size:28px; }
  .contact-method a { font-size:20px; }
  .cta { padding:32px 24px; gap:24px; }
  .cta h2 { font-size:32px; }
  .cta .actions { flex-direction:column; align-items:stretch; }
  .cta .text-link { width:max-content; max-width:100%; }
  .cta p { font-size:17px; }
  .site-footer { padding:40px 0 24px; }
  .footer-grid { gap:32px 24px; }
  .footer-brand { grid-column:1/-1; }
  .site-footer a { min-height:44px; font-size:14px; margin-bottom:4px; }
  .footer-bottom { flex-direction:column; align-items:start; gap:12px; margin-top:24px; }
  .zoom-head { padding:16px; }
  .zoom-head h2 { font-size:18px; }
  .zoom-body { padding:16px; }
  .process-diagram { padding:12px; }
  .process-diagram:focus-visible { outline-offset:2px; }
  .home-company { padding-bottom:32px; }
  .hero h1 { overflow-wrap:break-word; }
}
@media(max-width:430px) {
  :root { --gutter:16px; }
  .product-entry { gap:12px; grid-template-columns:20px minmax(0,1fr) 44px; }
  .product-entry h3 { font-size:20px; }
  .footer-grid { gap:24px 16px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
}

/* Supplied product illustrations: compact alongside the product introduction. */
.hero-product-illustration .hero-grid { grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:48px; align-items:center; }
.hero-product-illustration .hero-copy p { margin-bottom:0; }
.hero-product-illustration .product-illustration { width:100%; max-width:480px; justify-self:end; }
.product-illustration .media-zoom { padding:0; overflow:hidden; }
.product-illustration .media-zoom img { width:100%; height:auto; object-fit:contain; }
@media(max-width:850px) {
  .hero-product-illustration .hero-grid { grid-template-columns:1fr; gap:28px; }
  .hero-product-illustration .product-illustration { max-width:400px; justify-self:start; }
}
@media(max-width:600px) {
  .hero-product-illustration .product-illustration { max-width:320px; }
}

/* Product capabilities and complete, progressively navigable catalogue. */
.feature-overview { padding-top:0; }
.capability-summary { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 40px; }
.capability-summary li { display:flex; gap:16px; padding:24px 0; border-top:1px solid var(--line); min-width:0; }
.capability-number { color:var(--blue); font-size:14px; padding-top:3px; }
.capability-summary h3 { font-size:21px; margin:0 0 10px; line-height:1.35; }
.capability-summary h3 a { color:var(--ink); text-decoration:none; }
.capability-summary h3 a:hover { color:var(--blue); text-decoration:underline; text-underline-offset:4px; }
.capability-summary p { font-size:16px; margin:0; line-height:1.6; }
.capability-map-section { background:radial-gradient(ellipse at center,#edf6fd 0%,#f9fcfe 55%,white 85%); }
.capability-map { position:relative; isolation:isolate; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:22px; }
.capability-map-connectors { display:none; position:absolute; inset:0; width:100%; height:100%; pointer-events:none; overflow:visible; z-index:-1; }
.capability-map-connectors .map-orbit { fill:none; stroke:#ccdfef; stroke-width:2; stroke-dasharray:8 10; }
.capability-map-connectors .map-connection { fill:none; stroke:#9fc9e8; stroke-width:2; }
.capability-map-connectors .map-port { fill:white; stroke:#78aed5; stroke-width:2; }
.capability-map-node { position:relative; display:grid; grid-template-columns:56px minmax(0,1fr); grid-template-rows:auto auto 1fr; align-items:center; gap:8px 14px; padding:24px 20px 20px 40px; min-width:0; background:white; border:1px solid #dfebf3; border-radius:20px; box-shadow:0 8px 26px #124b7910; text-decoration:none; color:var(--ink); }
.capability-map-node:hover { border-color:#82b4d9; background:#fcfdff; box-shadow:0 12px 30px #124b791b; }
.capability-map-index { position:absolute; left:10px; top:10px; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; font-size:12px; font-weight:700; line-height:1; color:#084c88; background:#e9f3fb; }
.capability-map-category-symbol { grid-row:1/3; grid-column:1; display:grid; place-items:center; width:56px; height:56px; border-radius:50%; background:#edf5fc; color:#084c88; }
.capability-map-category-icon { width:32px; height:32px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.capability-map-title { grid-row:1; grid-column:2; font-size:18px; line-height:1.3; font-weight:650; overflow-wrap:break-word; }
.capability-map-count { grid-row:2; grid-column:2; font-size:13px; line-height:1.3; color:var(--muted); }
.capability-map-count strong { margin-right:5px; font-size:26px; font-weight:700; line-height:1.2; color:#084c88; }
.capability-map-description { grid-row:3; grid-column:1/-1; align-self:start; margin-top:4px; font-size:14px; line-height:1.55; color:var(--text); }
.capability-map-center { grid-column:1/-1; grid-row:1; justify-self:center; position:relative; width:100%; max-width:400px; text-align:center; background:linear-gradient(145deg,#28689f,#0a467d 65%,#073d6e); border:1px solid #2b6ba1; color:white; border-radius:32px; padding:28px 24px; box-shadow:0 16px 38px #0d4d8026; }
.capability-map-icon { display:block; width:44px; height:44px; margin:0 auto 12px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.capability-map-label { display:block; font-size:12px; line-height:1.4; color:#deebf7; margin-bottom:10px; }
.capability-map-product { display:block; font-size:26px; font-weight:700; line-height:1.25; overflow-wrap:break-word; }
.capability-map-stats { display:grid; grid-template-columns:1fr 1fr; margin:22px 0; }
.capability-map-stats p { margin:0; color:white; line-height:1.4; }
.capability-map-stats p+p { border-left:1px solid #ffffff65; }
.capability-map-stats strong { display:block; font-size:29px; line-height:1.2; font-weight:700; }
.capability-map-stats span { display:block; margin-top:4px; font-size:14px; color:#e5f0fa; }
.capability-map-center a { display:block; padding-top:14px; border-top:1px solid #ffffff40; color:white; font-size:14px; line-height:1.5; text-underline-offset:4px; }
.capability-map-caption { font-size:14px; color:var(--muted); margin:24px 0 0; }
@media (min-width:1240px) {
  .capability-map { grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:auto repeat(3,minmax(120px,auto)) auto; gap:22px 32px; }
  .capability-map-connectors { display:block; }
  .capability-map-center { grid-column:2; grid-row:2/5; align-self:center; max-width:300px; }
  .capability-map-node { align-self:stretch; }
  .capability-map-node[data-map-position="top"] { grid-column:2; grid-row:1; }
  .capability-map-node[data-map-position="upper-left"] { grid-column:1; grid-row:2; }
  .capability-map-node[data-map-position="left"] { grid-column:1; grid-row:3; }
  .capability-map-node[data-map-position="lower-left"] { grid-column:1; grid-row:4; }
  .capability-map-node[data-map-position="upper-right"] { grid-column:3; grid-row:2; }
  .capability-map-node[data-map-position="right"] { grid-column:3; grid-row:3; }
  .capability-map-node[data-map-position="lower-right"] { grid-column:3; grid-row:4; }
  .capability-map-node[data-map-position="bottom"] { grid-column:2; grid-row:5; }
  .capability-map[data-map-count="4"] { grid-template-rows:auto auto auto; row-gap:80px; }
  .capability-map[data-map-count="4"] .capability-map-center { grid-row:2; }
  .capability-map[data-map-count="4"] .capability-map-node[data-map-position="left"],.capability-map[data-map-count="4"] .capability-map-node[data-map-position="right"] { grid-row:2; align-self:center; }
  .capability-map[data-map-count="4"] .capability-map-node[data-map-position="bottom"] { grid-row:3; }
}
.feature-catalog .feature-tools { margin-bottom:8px; align-items:center; }
.feature-catalog,#featurePanelTitle,.feature-item { scroll-margin-top:120px; }
.feature-reset { border:0; padding:8px 0; font:inherit; font-size:15px; cursor:pointer; background:transparent; white-space:nowrap; }
.feature-catalog .feature-tools p { margin:0; text-align:right; }
.feature-search-hint { font-size:14px; margin:0 0 32px; color:var(--muted); }
.feature-catalog-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:48px; align-items:start; }
.feature-category-sidebar h3 { font-size:16px; margin:0 0 14px; }
.feature-category-nav { display:grid; gap:3px; }
.feature-category-nav a { display:flex; justify-content:space-between; align-items:start; gap:12px; border-left:3px solid transparent; padding:10px 12px; font-size:15px; line-height:1.4; color:var(--text); text-decoration:none; }
.feature-category-nav a:hover { background:var(--paper); color:var(--ink); }
.feature-category-nav a[aria-current=true] { background:#edf3f9; border-left-color:var(--blue); color:var(--ink); font-weight:600; }
.feature-category-nav small { color:var(--muted); font-size:13px; padding-top:1px; font-weight:400; }
.feature-category-mobile { display:none; }
.feature-results { min-width:0; }
#featurePanelTitle { font-size:24px; margin:0 0 24px; line-height:1.4; }
.feature-category { scroll-margin-top:140px; }
.feature-category-heading { font-size:21px; padding:20px 0; margin:0; border-top:2px solid var(--line); }
.feature-category-heading small { display:block; font-size:14px; font-weight:400; color:var(--muted); margin-top:6px; }
.feature-catalog.catalog-enhanced:not(.catalog-all) .feature-category-heading,.feature-catalog.catalog-search .feature-category-heading { display:none; }
.feature-catalog .feature-items { display:block; padding:0; }
.feature-catalog .feature-item { border-top:1px solid var(--line); padding:22px 0; scroll-margin-top:140px; }
.feature-catalog .feature-item:last-child { border-bottom:1px solid var(--line); }
.feature-catalog .feature-title { font-size:18px; font-weight:600; color:var(--ink); line-height:1.45; margin:0 0 8px; letter-spacing:0; overflow-wrap:anywhere; }
.feature-category-name { display:none; font-size:13px; color:var(--blue); margin:0 0 8px; }
.catalog-search .feature-category-name { display:block; }
.feature-catalog .feature-excerpt { font-size:15px; line-height:1.65; color:var(--text); margin:0; overflow-wrap:anywhere; }
.feature-pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 20px; padding:16px; margin:0 0 22px; border:1px solid var(--line); border-radius:4px; background:var(--paper); }
.feature-pagination:last-child { margin:24px 0 0; }
.feature-page-info { margin:0; font-size:14px; line-height:1.5; color:var(--text); }
.feature-page-controls { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.feature-page-controls button { display:inline-flex; align-items:center; justify-content:center; min-width:40px; min-height:44px; padding:8px 10px; border:1px solid var(--line); border-radius:4px; background:white; color:var(--blue); font:inherit; font-size:14px; line-height:1.3; cursor:pointer; }
.feature-page-controls button:hover:not(:disabled) { border-color:var(--blue); background:#edf3f9; }
.feature-page-controls button[aria-current="page"] { background:var(--blue); border-color:var(--blue); color:white; font-weight:600; }
.feature-page-controls button:disabled:not([aria-current="page"]) { cursor:default; color:var(--muted); background:transparent; border-color:var(--line); }
.feature-page-controls .feature-page-direction { padding-inline:12px; }
.feature-page-ellipsis { min-width:18px; text-align:center; color:var(--muted); font-size:14px; }
.feature-catalog mark { background:#fff0a0; color:var(--ink); border-radius:2px; }
.feature-catalog [hidden] { display:none!important; }
@media (max-width:1100px) {
  .capability-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .feature-catalog-layout { grid-template-columns:230px minmax(0,1fr); gap:32px; }
}
@media (max-width:800px) {
  .capability-map { gap:18px; }
  .capability-map-node { grid-template-columns:48px minmax(0,1fr); gap:8px 12px; padding:24px 16px 18px 36px; }
  .capability-map-category-symbol { width:48px; height:48px; }
  .capability-map-title { font-size:17px; }
  .feature-catalog-layout { grid-template-columns:1fr; gap:24px; }
  .feature-category-sidebar { display:none; }
  .catalog-enhanced .feature-category-mobile { display:grid; gap:8px; font-size:14px; font-weight:600; color:var(--ink); }
}
@media (max-width:600px) {
  .capability-summary { grid-template-columns:1fr; }
  .capability-summary h3 { font-size:20px; }
  .capability-map { grid-template-columns:1fr; gap:16px; }
  .capability-map-center { grid-column:1; padding:24px; }
  .capability-map-product { font-size:24px; }
  .feature-catalog .feature-tools p { text-align:left; }
  .feature-catalog .feature-reset { align-self:start; }
  #featurePanelTitle { font-size:22px; }
  .feature-catalog .feature-item { padding:20px 0; }
  .feature-pagination { padding:12px; gap:12px; }
  .feature-page-controls { width:100%; justify-content:center; gap:4px; }
  .feature-page-controls button { min-width:36px; padding-inline:8px; }
  .feature-page-controls .feature-page-direction { order:-1; flex:1 0 calc(50% - 4px); }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Purposeful motion: interaction feedback and a single orientation cue.
   Content is fully visible before JavaScript runs. */
.desktop-nav>a,.desktop-nav>button,.mobile-toggle,
.mega-grid a,.mobile-nav a,.text-link,.product-entry h3 a,
.capability-summary h3 a,.feature-reset,.youtube-play,
.feature-category-nav a,
.feature-item>summary,.feature-more,
.platform-node,.platform-layer,.capability-map-node,
.case-card>a,.article-card>a,.contact-method a {
  transition:color var(--motion-quick) var(--motion-ease),
    background-color var(--motion-quick) var(--motion-ease),
    border-color var(--motion-quick) var(--motion-ease),
    box-shadow var(--motion-quick) var(--motion-ease);
}
.btn,.round-link {
  transition:background-color var(--motion-quick) var(--motion-ease),
    border-color var(--motion-quick) var(--motion-ease),
    color var(--motion-quick) var(--motion-ease),
    transform var(--motion-quick) var(--motion-ease);
}
.desktop-nav>button[aria-expanded=true] { color:var(--blue); text-decoration:underline; }
.mobile-toggle[aria-expanded=true] { border-color:var(--blue); background:var(--paper); }
.mega:not([hidden]),.mobile-nav:not([hidden]) {
  animation:menu-reveal var(--motion-standard) var(--motion-ease) both;
}
@keyframes menu-reveal {
  from { opacity:.86; transform:translateY(-6px); }
  to { opacity:1; transform:translateY(0); }
}
.hero-home h1::after {
  transform-origin:left center;
  animation:accent-reveal 480ms var(--motion-ease) both;
}
.hero-home .hero-copy>p { animation:hero-context 400ms var(--motion-ease) 60ms both; }
.hero-home .hero-copy>.actions { animation:hero-context 400ms var(--motion-ease) 110ms both; }
@keyframes accent-reveal {
  from { opacity:.72; transform:scaleX(.42); }
  to { opacity:1; transform:scaleX(1); }
}
@keyframes hero-context {
  from { opacity:.94; transform:translateY(6px); }
  to { opacity:1; transform:translateY(0); }
}
.mega-grid a:hover,.mega-grid a:focus-visible { border-top-color:var(--yellow); }
.feature-item>summary:hover,.feature-item[open]>summary { background:#f7f9fb; }
.feature-item>summary:hover .feature-more,.feature-item[open] .feature-more { color:var(--ink); }
.feature-category-nav a:focus-visible { background:var(--paper); }
.capability-map-node:focus-visible { border-color:var(--blue); background:#f8fbff; }
.case-card>a,.article-card>a { box-shadow:0 0 0 1px transparent; }
.case-card>a:hover,.article-card>a:hover,
.case-card>a:focus-visible,.article-card>a:focus-visible {
  box-shadow:0 0 0 1px var(--line);
}
.contact-method a:hover { color:var(--blue-hover); }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .btn:hover,.round-link:hover { transform:translateY(-2px); }
  .btn:active,.round-link:active { transform:translateY(0); }
}
@media (prefers-reduced-motion:reduce) {
  .hero-home h1::after,.hero-home .hero-copy>p,.hero-home .hero-copy>.actions,
  .mega:not([hidden]),.mobile-nav:not([hidden]) { animation:none!important; transform:none!important; }
}

/* IFINDIT product navigation: five linked sectors, with the current product
   distinguished by colour, a check mark and an accompanying text label. */
.product-wheel-layout {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:center;
  gap:40px 64px;
}
.platform-section .product-wheel-layout,
.platform-section .product-wheel-context { width:min(1280px,100%); margin-inline:auto; }
figure.product-wheel {
  justify-self:center;
  width:min(100%,560px);
  min-width:0;
  margin:0;
}
.product-wheel-navigation { display:block; }
.product-wheel-diagram {
  display:block;
  width:100%;
  height:auto;
  overflow:visible;
  font-family:'Segoe UI',Arial,sans-serif;
}
.product-wheel-rim {
  fill:none;
  stroke:#ffd127;
  stroke-width:12;
}
.product-wheel-disc { fill:white; stroke:#d4dfe7; stroke-width:2; }
.product-wheel-dots {
  fill:none;
  stroke:#5facc4;
  stroke-width:5;
  stroke-linecap:round;
}
.product-wheel-foundation-connector { display:none; fill:none; stroke:#b7d2e7; stroke-width:2; }
.product-wheel-foundations {
  position:relative;
  width:94.545%;
  margin-inline:auto;
  /* Raise the base by 90/660 of the wheel width to meet the sector at y=570. */
  margin-top:-13.636364%;
  overflow:hidden;
  border:1px solid #b7d2e7;
  border-bottom:3px solid #0b4b82;
  border-radius:5px;
  background:white;
  box-shadow:0 6px 18px rgb(11 75 130 / 8%);
  cursor:default;
}
.product-wheel-foundation-title {
  padding:10px 16px;
  border-bottom:4px solid #ffd127;
  background:#0b4b82;
  color:white;
  font-size:26px;
  font-weight:700;
  line-height:1.2;
  text-align:center;
}
.product-wheel-foundation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.product-wheel-foundation {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:0;
  min-height:88px;
  padding:12px;
  color:#17394f;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
}
.product-wheel-foundation+.product-wheel-foundation { border-left:1px solid #b7d2e7; }
.product-wheel-foundation svg { flex:none; fill:none; stroke:#0b4b82; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.product-wheel-foundation strong { font-size:20px; font-weight:650; line-height:1.3; }
.product-wheel-foundation:focus-visible {
  background:#0b4b82;
  color:white;
  outline:3px solid #ffd127;
  outline-offset:-3px;
}
.product-wheel-foundation:focus-visible svg { stroke:currentColor; }
.product-wheel-label svg { fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.product-wheel-label text { text-anchor:middle; }
.product-wheel-current-mark { fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
.product-wheel-current-mark text { fill:currentColor; stroke:none; font-size:18px; font-weight:500; }
.product-wheel-orbit {
  fill:none;
  stroke:#b7d2e7;
  stroke-width:2;
  stroke-dasharray:5 9;
}
.product-wheel-sector {
  color:#17394f;
  text-decoration:none;
  cursor:pointer;
  outline:none;
  box-shadow:none;
}
.product-wheel-slice {
  fill:#f3f5f7;
  stroke:#e1e7ec;
  stroke-width:1.5;
  vector-effect:non-scaling-stroke;
}
.product-wheel-label {
  color:inherit;
  pointer-events:none;
}
.product-wheel-label text {
  fill:currentColor;
  font-size:24px;
  font-weight:600;
  line-height:1.2;
  letter-spacing:0;
}
.product-wheel-sector[data-wheel-product="ifindit-clasificador-pqrs"] .product-wheel-label text { font-size:22px; }
.product-wheel-sector.is-current,
.product-wheel-sector[aria-current="page"] { color:white; }
.product-wheel-sector.is-current .product-wheel-slice,
.product-wheel-sector[aria-current="page"] .product-wheel-slice {
  fill:#0b4b82;
  stroke:#0b4b82;
}
@media (hover:hover) {
  .product-wheel-foundation:hover { background:#0b4b82; color:white; }
  .product-wheel-foundation:hover svg { stroke:currentColor; }
  .product-wheel-sector:hover { color:white; }
  .product-wheel-sector:hover .product-wheel-slice {
    fill:#0b4b82;
    stroke:#0b4b82;
  }
  .product-wheel-sector.is-current:hover .product-wheel-slice,
  .product-wheel-sector[aria-current="page"]:hover .product-wheel-slice {
    fill:#083e6c;
    stroke:#083e6c;
  }
}
.product-wheel-sector:focus,
.product-wheel-sector:focus-visible,
.product-wheel-diagram:focus { outline:none; box-shadow:none; }
.product-wheel-sector:focus-visible { color:white; }
.product-wheel-sector:focus-visible .product-wheel-slice {
  fill:#0b4b82;
  stroke:#ffd127;
  stroke-width:4;
}
.product-wheel-sector.is-current:focus-visible .product-wheel-slice,
.product-wheel-sector[aria-current="page"]:focus-visible .product-wheel-slice {
  stroke:#ffd127;
  stroke-width:4;
}
.product-wheel-current-mark { display:none; pointer-events:none; }
.product-wheel-sector.is-current .product-wheel-current-mark,
.product-wheel-sector[aria-current="page"] .product-wheel-current-mark { display:block; }

.product-wheel-legend {
  display:grid;
  gap:4px;
  min-width:0;
  margin:0;
  padding:0;
  list-style:none;
}
.product-wheel-legend li { margin:0; padding:0; list-style:none; }
.product-wheel-legend a {
  display:grid;
  gap:7px;
  padding:16px 18px;
  border-bottom:1px solid var(--line);
  border-left:3px solid transparent;
  color:var(--ink);
  text-decoration:none;
}
.product-wheel-legend strong {
  font-size:19px;
  font-weight:650;
  line-height:1.3;
}
.product-wheel-legend a>span {
  color:var(--text);
  font-size:15px;
  line-height:1.6;
}
.product-wheel-legend a:hover { background:#f3f7fb; }
.product-wheel-legend a.is-current,
.product-wheel-legend a[aria-current="page"] {
  border-left-color:#0b4b82;
  background:#eef5fb;
}
.product-wheel-legend a .product-wheel-current {
  justify-self:start;
  width:fit-content;
  padding:3px 9px;
  border:1px solid #c2d6e8;
  border-radius:4px;
  background:white;
  color:#0b4b82;
  font-size:12px;
  font-weight:650;
  line-height:1.5;
}
.product-wheel-legend a.is-wheel-highlighted {
  background:#e7f1fa;
  border-left-color:#ffd127;
}
.product-wheel-legend a.is-wheel-highlighted strong {
  color:#0b4b82;
  text-decoration:underline;
  text-underline-offset:4px;
}

.product-wheel-context {
  margin-top:28px;
  padding-top:24px;
  border-top:1px solid var(--line);
}
.product-wheel-context h3 {
  margin:0 0 10px;
  font-size:18px;
  line-height:1.4;
  letter-spacing:0;
}
.product-wheel-context p {
  margin:0 0 16px;
  color:var(--text);
  font-size:15px;
  line-height:1.6;
}
.product-wheel-shared {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:0 0 16px;
}
.product-wheel-shared a {
  display:grid;
  gap:6px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--paper);
  color:var(--ink);
  text-decoration:none;
}
.product-wheel-shared strong { font-size:16px; line-height:1.35; }
.product-wheel-shared span { color:var(--text); font-size:14px; line-height:1.5; }
.product-wheel-shared a:hover { border-color:#9bbbd5; background:#edf4fa; }

/* Only the directory beside the home diagram becomes a list of five rows. */
.product-wheel-home .product-directory {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  min-width:0;
}
.product-wheel-home .product-entry {
  grid-template-columns:24px minmax(0,1fr) 44px;
  align-items:start;
  gap:14px;
  padding:18px 0;
}
.product-wheel-home .product-entry>div { display:block; min-width:0; }
.product-wheel-home .product-index { padding-top:4px; font-size:13px; }
.product-wheel-home .product-entry h3 {
  margin:0 0 8px;
  font-size:20px;
  line-height:1.3;
  letter-spacing:0;
}
.product-wheel-home .product-entry p { margin:0; font-size:15px; line-height:1.6; }
.product-wheel-home .round-link { transform:none; }
.product-wheel-home .product-entry.is-wheel-highlighted {
  background:#eef5fb;
  border-bottom-color:#9bbbd5;
}
.product-wheel-home .product-entry.is-wheel-highlighted h3 a {
  color:#0b4b82;
  text-decoration:underline;
  text-underline-offset:4px;
}

@media (max-width:1100px) {
  .product-wheel-layout { gap:32px; }
  .product-wheel-home .product-entry { gap:10px; }
  .product-wheel-home .product-entry h3 { font-size:18px; }
  .product-wheel-foundation-title { font-size:24px; }
  .product-wheel-foundation { min-height:84px; gap:6px; }
  .product-wheel-foundation strong { font-size:18px; }
}
@media (max-width:899px) {
  .product-wheel-layout { grid-template-columns:1fr; gap:32px; }
  figure.product-wheel { width:min(100%,440px); }
  .product-wheel-home .product-entry h3 { font-size:20px; }
}
@media (max-width:600px) {
  .product-wheel-layout { gap:24px; }
  .product-wheel-legend a { padding:16px 12px; }
  .product-wheel-legend strong { font-size:18px; }
  .product-wheel-shared { grid-template-columns:1fr; }
  .product-wheel-context { margin-top:24px; padding-top:20px; }
  .product-wheel-home .product-entry { grid-template-columns:20px minmax(0,1fr) 44px; }
  .product-wheel-home .product-entry h3 { font-size:18px; }
}
@media (forced-colors:active) {
  .product-wheel-foundations { border-color:CanvasText; background:Canvas; box-shadow:none; }
  .product-wheel-foundation-title { background:CanvasText; color:Canvas; border-color:CanvasText; }
  .product-wheel-foundation { color:CanvasText; border-color:CanvasText; }
  .product-wheel-foundation+.product-wheel-foundation { border-color:CanvasText; }
  .product-wheel-foundation svg,.product-wheel-foundation-connector { stroke:CanvasText; }
  .product-wheel-foundation:hover,
  .product-wheel-foundation:focus-visible { background:Highlight; color:HighlightText; }
  .product-wheel-foundation:hover svg,
  .product-wheel-foundation:focus-visible svg { stroke:currentColor; }
  .product-wheel-foundation:focus-visible { outline-color:CanvasText; }
  .product-wheel-disc,.product-wheel-rim,.product-wheel-dots { stroke:CanvasText; }
  .product-wheel-slice { fill:Canvas; stroke:CanvasText; }
  .product-wheel-sector { color:CanvasText; }
  .product-wheel-sector.is-current,
  .product-wheel-sector[aria-current="page"] { color:HighlightText; }
  .product-wheel-sector.is-current .product-wheel-slice,
  .product-wheel-sector[aria-current="page"] .product-wheel-slice { fill:Highlight; stroke:Highlight; }
  .product-wheel-sector:hover,
  .product-wheel-sector:focus-visible { color:HighlightText; }
  .product-wheel-sector:hover .product-wheel-slice,
  .product-wheel-sector.is-current:hover .product-wheel-slice,
  .product-wheel-sector[aria-current="page"]:hover .product-wheel-slice,
  .product-wheel-sector:focus-visible .product-wheel-slice { fill:Highlight; stroke:Highlight; }
  .product-wheel-sector:focus-visible .product-wheel-slice { stroke:CanvasText; stroke-width:5; }
  .product-wheel-sector.is-current:focus-visible .product-wheel-slice,
  .product-wheel-sector[aria-current="page"]:focus-visible .product-wheel-slice { stroke:CanvasText; stroke-width:5; }
}

/* Product hero wheel:start */
.hero-product-wheel .product-wheel-product-hero {
  grid-template-columns:360px minmax(0,1fr);
  gap:32px 40px;
  align-items:center;
}
.hero-product-wheel .product-wheel-product-hero>* { min-width:0; }
.hero-product-wheel figure.product-wheel { width:min(100%,360px); }
.hero-product-wheel .hero-copy p { margin-bottom:0; }
.hero-product-wheel .product-wheel-label text { font-size:28px; }
.hero-product-wheel .product-wheel-sector[data-wheel-product="ifindit-clasificador-pqrs"] .product-wheel-label text { font-size:26px; }
.hero-product-wheel .product-wheel-current-mark text { font-size:22px; }
.hero-product-wheel .product-wheel-foundation-title { font-size:20px; padding:8px 12px; }
.hero-product-wheel .product-wheel-foundation { min-height:64px; padding:8px; gap:4px; }
.hero-product-wheel .product-wheel-foundation strong { font-size:16px; }
.hero-product-wheel .product-wheel-foundation svg { width:24px; height:24px; }
.hero-product-wheel .product-illustration { width:100%; max-width:360px; }
.platform-section .product-wheel-related-products { width:min(1280px,100%); margin-inline:auto; }
.product-wheel-related-products .product-wheel-legend { grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
@media (min-width:1200px) {
  .hero-product-wheel.hero-product-illustration .product-wheel-product-hero { grid-template-columns:360px minmax(0,1fr) 300px; gap:32px; }
  .hero-product-wheel .product-illustration { max-width:300px; }
}
@media (min-width:900px) and (max-width:1199px) {
  .hero-product-wheel .product-wheel-product-hero { grid-template-columns:340px minmax(0,1fr); gap:24px 32px; }
  .hero-product-wheel figure.product-wheel { width:min(100%,340px); }
  .hero-product-wheel.hero-product-illustration figure.product-wheel { grid-row:1 / span 2; }
  .hero-product-wheel .product-illustration { grid-column:2; justify-self:start; }
  .product-wheel-related-products .product-wheel-legend { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:899px) {
  .hero-product-wheel .product-wheel-product-hero { grid-template-columns:1fr; gap:28px; }
  .hero-product-wheel .hero-copy { order:-1; }
  .hero-product-wheel figure.product-wheel { justify-self:center; }
  .hero-product-wheel .product-illustration { justify-self:center; }
  .product-wheel-related-products .product-wheel-legend { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  .product-wheel-related-products .product-wheel-legend { grid-template-columns:1fr; }
}
/* Product hero wheel:end */


/* Language selection stays visible outside the collapsed navigation. */
.language-switch { display:flex; align-items:center; flex:0 0 auto; gap:2px; border:1px solid var(--line); border-radius:6px; padding:2px; }
.language-switch a { display:inline-flex; align-items:center; justify-content:center; min-width:36px; min-height:40px; padding:0 6px; border-radius:4px; text-decoration:none; color:var(--ink); font-size:13px; font-weight:600; }
.language-switch span { color:var(--muted); font-size:12px; }
.language-switch a[aria-current="page"],.language-switch a:hover { color:white; background:var(--blue); }
.language-switch a:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.navrow .mobile-toggle { margin-left:0; flex-shrink:0; }
@media(max-width:1240px) {
  .desktop-nav,.header-cta { display:none; }
  .mobile-toggle { display:block; }
  .language-switch { margin-left:auto; }
}
@media(max-width:430px) {
  .navrow { gap:10px; }
  .navrow .brand { flex-basis:126px; }
  .navrow .brand img { width:126px; }
  .language-switch a { min-width:32px; padding:0 4px; }
  .navrow .mobile-toggle { width:44px; height:44px; }
}
