/* Client-approved V8 identity; shared usable width is 1270px. */
:root {
  --ink:#151619; --paper:#f3f4f5; --white:#fff; --muted:#64676c;
  --red:#e90038; --red-dark:#e90038; --rule:#dddfe2;
  --font-display:'Manrope',Arial,sans-serif; --body:'DM Sans',Arial,sans-serif;
  --type-home:clamp(2.8rem,4.4vw,4.8rem);
  --type-page:clamp(2.8rem,5.1vw,5.4rem);
  --type-section:clamp(2rem,3.1vw,3.4rem);
  --type-title:clamp(1.5rem,2vw,1.85rem);
}
body { background:var(--white); }
body :is(h1,h2,h3) .red,body .section-heading .red { color:inherit; }
.v8-dot { color:var(--red); }
.hero h1 .hero-line:last-child { color:inherit; }
.hero.hero-restored h1 .hero-line:last-child { color:var(--red); }
.hero.hero-restored { padding-top:0; }
.hero-restored .hero-media { inset:0; width:100%; height:100%; object-position:center; }
.hero-restored .hero-shade { display:block; background:linear-gradient(90deg,rgba(255,255,255,.95),rgba(255,255,255,.86) 35%,rgba(255,255,255,.12) 80%); }
.hero-restored .hero-bottom { grid-template-columns:minmax(0,560px); }
@media(max-width:760px) {
  .hero-restored .hero-shade { background:rgba(255,255,255,.88); }
  .hero-restored .hero-inner { padding-top:56px; }
}

.ral-chart { padding:32px 0; border-top:1px solid var(--rule); }
.ral-chart h2 { font-size:1.25rem; margin:0 0 6px; letter-spacing:normal; }
.ral-chart p { margin:0 0 16px; color:var(--muted); }
.ral-swatches { display:grid; grid-template-columns:repeat(9,minmax(0,1fr)); gap:10px; list-style:none; padding:0; margin:0 0 18px; }
.ral-swatches li { text-align:center; font-size:.8rem; font-weight:600; }
.ral-chip { display:block; height:76px; margin-bottom:10px; background:var(--swatch); border:1px solid #d5d7d9; }
.ral-chart .fine { max-width:100ch; font-size:.85rem; margin:6px 0; }
.ral-choice { display:block; width:100%; padding:6px; border:2px solid transparent; background:var(--white); color:var(--ink); font:inherit; cursor:pointer; border-radius:4px; }
.ral-choice:hover { border-color:var(--muted); }
.ral-choice[aria-pressed="true"] { border-color:var(--ink); font-weight:800; }
.ral-choice:focus-visible,.ral-reset:focus-visible { outline:3px solid var(--red); outline-offset:3px; }
.ral-chart .ral-selection { margin:12px 0 0; color:var(--ink); font-weight:600; }
.ral-reset { min-height:44px; margin:0 0 12px; padding:8px 0; background:transparent; border:0; color:var(--ink); font:inherit; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.ral-reset:disabled { color:var(--muted); cursor:default; text-decoration:none; }
.product-summary .ral-chart-inline { padding:24px 0 16px; }
.ral-chart-inline .ral-swatches { grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; margin-bottom:10px; }
.ral-chart-inline .ral-choice { padding:4px; font-size:.7rem; white-space:nowrap; }
.ral-chart-inline .ral-chip { height:38px; margin-bottom:6px; }
.ral-chart-inline .ral-selection { font-size:.9rem; }
.ral-chart-inline .fine { font-size:.8rem; line-height:1.5; }
.preferences-swatches { grid-template-columns:1fr; }
.preferences-swatches label[hidden] { display:none; }
.product-summary h1 { font-size:clamp(2.5rem,4vw,4rem); }
.product-summary .product-subtitle { font-size:1.2rem; margin:12px 0; }
.product-summary .description { margin:0 0 16px; }
.product-summary .specs { margin:16px 0; }
.product-summary .specs div { padding:8px 0; }
.product-summary .ral-chart-inline { padding:12px 0 8px; border-top:0; }
.product-summary .ral-chart-inline > p { margin-bottom:8px; }
.product-summary .ral-chart-inline .ral-selection { margin:8px 0 0; }
.product-summary .preferences { margin:12px 0; }
.product-summary .product-actions { margin:16px 0 12px; }
.product-summary > .fine { margin:8px 0; }
@media(min-width:761px) {
  .product-layout .product-photo { position:sticky; top:104px; align-self:start; }
  .product-layout .product-photo img { display:block; height:min(42vw,calc(100svh - 128px)); aspect-ratio:auto; }
}
@media(min-width:761px) and (max-width:1000px) {
  .ral-chart-inline .ral-swatches { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:760px) {
  .ral-chart-inline .ral-swatches { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ral-swatches { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px 10px; }
  .ral-chip { height:64px; }
}
p { color:var(--muted); }
.section-heading,.editorial-heading { line-height:1.1; }
.section-lead,.hero-copy { color:var(--muted); }
.button,.desktop-nav .header-cta,.mobile-menu .mobile-cta {
  min-height:50px; padding:13px 27px; border:1px solid var(--red);
  border-radius:40px; background:var(--red); color:#fff;
  text-align:center; text-decoration:none; box-shadow:none;
  transition:background .15s,border-color .15s,color .15s;
}
.button:hover,.desktop-nav .header-cta:hover,.mobile-menu .mobile-cta:hover { background:#c7002f; border-color:#c7002f; color:white; transform:none; }
.button.button-secondary { border-color:var(--ink); color:var(--ink); background:transparent; }
.button.button-secondary:hover { background:var(--ink); color:white; }
button:disabled { opacity:.45; cursor:not-allowed; }
.desktop-nav a:not(.header-cta) { font-family:var(--body); font-weight:600; font-size:.95rem; border-bottom-width:2px; }
.desktop-nav a[aria-current=page]:not(.header-cta) { color:var(--ink); border-bottom-color:var(--red); text-decoration:none; }
.site-header { background:white; }
.text-link,.home-link,.download-item a { color:var(--ink); text-underline-offset:6px; }
.text-link:hover,.home-link:hover,.download-item a:hover { color:var(--red); }
:focus-visible { outline:3px solid var(--red); outline-offset:5px; }
input,select,textarea { caret-color:var(--red); border-color:#c7cbd0; border-radius:4px; }
.footer-nav h3 { font-family:var(--body); letter-spacing:0; font-weight:700; }
.status-note { color:#8c1734; }
.hero.hero-v8 { min-height:0; display:block; padding:40px var(--pad) 0; overflow:visible; }
.hero-v8-frame { width:min(100%,var(--content-max)); margin:auto; display:grid; grid-template-columns:47fr 53fr; min-height:620px; }
.hero-v8-copy { padding:52px 48px 32px 0; display:flex; flex-direction:column; align-items:flex-start; }
.hero.hero-v8 h1 { max-width:100%; margin:0 0 28px; }
.hero-v8-copy .hero-copy { max-width:42ch; font-size:1.2rem; }
.hero-v8-copy .hero-actions { margin:28px 0 44px; }
.hero-signature { margin:auto 0 0; font-size:.8rem; letter-spacing:.03em; }
.hero-signature strong { color:var(--ink); margin-right:12px; }
.hero-v8-figure { margin:0; position:relative; min-height:540px; background:var(--paper); }
.hero-v8-figure img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:55% center; }
.hero-v8-figure figcaption { position:absolute; bottom:24px; left:24px; right:24px; width:fit-content; background:white; padding:18px 22px; font-weight:600; font-size:.9rem; }
#soluciones.section { background:var(--paper); }
#soluciones .v8-route-card { background:var(--white); }
.v8-route-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:32px; }
.v8-route-card { display:flex; flex-direction:column; align-items:flex-start; border:1px solid var(--rule); padding:28px; text-decoration:none; min-height:240px; }
.v8-route-card:hover { border-color:var(--red); }
.v8-route-card h3 { margin:0 0 14px; }
.v8-route-card p { margin:0 0 28px; max-width:38ch; }
.v8-route-card .text-link { margin-top:auto; text-decoration:underline; font-size:.95rem; }
.v8-route-number { color:var(--red); font-weight:700; margin-bottom:24px; }
.v8-solution-nav { display:flex; gap:10px; flex-wrap:wrap; margin:0 0 32px; }
.v8-solution-nav a { display:inline-flex; min-height:44px; padding:10px 19px; align-items:center; border:1px solid var(--rule); border-radius:30px; text-decoration:none; font-weight:600; }
.v8-solution-nav a:hover { border-color:var(--ink); }
.v8-solution-nav a[aria-current=true] { background:var(--ink); border-color:var(--ink); color:white; }
.v8-solution-group { scroll-margin-top:112px; padding:0 0 64px; }
.v8-solution-group[hidden] { display:none; }
.v8-solution-group > h2 { margin:0 0 12px; }
.v8-solution-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:28px; }
.v8-solution-card { padding:28px; border:1px solid var(--rule); display:flex; flex-direction:column; align-items:flex-start; min-height:265px; }
.v8-solution-card h3 { margin:0 0 14px; }
.v8-solution-card p { margin:0 0 20px; }
.v8-solution-card .text-link { margin-top:auto; }
.v8-solution-card .status-note { font-size:.85rem; margin:0 0 16px; }
.download-workspace { display:grid; grid-template-columns:260px minmax(0,1fr); gap:36px; margin:32px 0 64px; align-items:start; }
.download-workspace .download-filters { display:flex; flex-direction:column; gap:20px; padding:24px; margin:0; background:var(--paper); position:sticky; top:108px; }
.download-filters h2 { font-size:1.25rem; margin:0 0 4px; }
.download-filters label { display:block; font-size:.9rem; font-weight:600; }
.download-filters .filter-help { font-size:.85rem; margin:0; }
.download-filters .button { padding:11px 18px; font-size:.9rem; }
.download-results { min-width:0; }
.download-results-head { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 18px; }
.download-results-head p { margin:0; color:var(--ink); font-weight:600; }
.download-results-head span { font-size:.85rem; color:var(--muted); }
.download-results .download-list { margin:0; border-top:1px solid var(--rule); }
.download-results .download-item { grid-template-columns:minmax(0,1fr) 210px; gap:20px; align-items:start; }
.download-results .download-item > p { grid-column:1; font-size:.9rem; }
.download-results .download-actions { grid-column:2; grid-row:1 / span 2; justify-content:flex-end; }
.download-results .download-actions a { font-size:.9rem; }
.download-results .download-item h2 { font-size:1.25rem; }
.downloads-pagination { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:28px; }
.downloads-pagination[hidden] { display:none; }
.downloads-pagination .button { padding:10px 18px; min-height:44px; font-size:.9rem; }
.downloads-pagination span { font-size:.9rem; }
#download-empty { padding:32px 0; }
@media(max-width:1100px) {
  .hero-v8-copy { padding-right:28px; }
  .download-workspace { grid-template-columns:230px minmax(0,1fr); gap:24px; }
  .download-results .download-item { grid-template-columns:1fr; }
  .download-results .download-actions { grid-column:1; grid-row:auto; justify-content:flex-start; }
  .v8-solution-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
  .hero.hero-v8 { padding-top:8px; }
  .hero-v8-frame { grid-template-columns:1fr; min-height:0; }
  .hero-v8-copy { padding:28px 0 32px; }
  .hero.hero-v8 h1 { max-width:13ch; }
  .hero-v8-copy .hero-copy { font-size:1.1rem; }
  .hero-v8-copy .hero-actions { margin-bottom:28px; width:100%; }
  .hero-v8-figure { min-height:350px; }
  .hero-v8-figure figcaption { left:16px; bottom:16px; padding:14px 18px; }
  .v8-route-grid,.v8-solution-grid { grid-template-columns:1fr; }
  .v8-route-card,.v8-solution-card { padding:24px; min-height:230px; }
  .download-workspace { grid-template-columns:1fr; }
  .download-workspace .download-filters { position:static; }
  .download-results-head { align-items:flex-start; }
  .download-results-head span { display:none; }
  .downloads-pagination { flex-wrap:wrap; gap:10px; }
  .downloads-pagination .button { width:auto; }
  .product-summary h1 { font-size:clamp(2.5rem,9vw,3.25rem); }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; }
}
