/* PLASDEXIN — hoja de estilos compartida
   Extraída de las 6 páginas para permitir cacheo del navegador entre navegaciones
   (antes cada página incluía ~500 líneas de CSS idénticas en <style> inline). */

:root {
    --bg: #f5f6f8;
    --fg: #192133;
    --card: #ffffff;
    --border: #e3e7ed;
    --muted: #56687c; /* oscurecido desde #6b7a8d: el original daba ~4.05:1 sobre --bg, insuficiente para WCAG AA (4.5:1) */
    --secondary: #eef0f4;
    --accent: #e8772e;
    --accent-text: #b35a1f; /* variante oscura del acento para texto pequeño sobre fondos claros (el naranja original da ~2.95:1, no pasa AA) */
    --accent-fg: #ffffff;
    --accent-blue: #0079f2;
    --accent-teal: #00d6a0;
    --tech-gray: #f3f5f7;
    --success: #27a96b;
    --radius: 0.75rem;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Outfit', sans-serif; background: var(--bg); color: var(--fg); -webkit-font-smoothing: antialiased; }
h1,h2,h3,h4,h5,h6 { font-family: 'Outfit', sans-serif; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; }

/* Accesibilidad: enlace "saltar al contenido" + foco visible consistente */
.skip-link { position: absolute; left: -999px; top: 0; z-index: 2000; background: var(--fg); color: #fff; padding: 0.85rem 1.25rem; border-radius: 0 0 0.5rem 0; font-weight: 700; font-size: 0.875rem; }
.skip-link:focus { left: 0; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
    outline: 3px solid var(--accent-blue);
    outline-offset: 2px;
    border-radius: 0.25rem;
}

/* NAVBAR */
.navbar { position: fixed; top: 0; width: 100%; background: rgba(255,255,255,0.95); backdrop-filter: blur(20px); z-index: 1000; border-bottom: 1px solid var(--border); }
.nav-top { display: flex; justify-content: flex-end; gap: 1.5rem; max-width: 1400px; margin: 0 auto; padding: 0.5rem 5%; font-size: 0.75rem; color: var(--muted); }
.nav-top a { display: flex; align-items: center; gap: 0.4rem; transition: color 0.2s; }
.nav-top a:hover { color: var(--accent); }
.nav-main { max-width: 1400px; margin: 0 auto; padding: 0.75rem 5%; display: flex; justify-content: space-between; align-items: center; }
.logo { font-weight: 900; font-size: 1.5rem; letter-spacing: -1px; display: inline-flex; align-items: center; }
.logo img { display: block; }
.logo .logo-plas { color: rgb(255,105,0); }
.logo span { color: rgb(26,134,255); }
.nav-links { display: flex; gap: 0.25rem; }
.nav-links a { padding: 0.5rem 1rem; border-radius: 0.5rem; font-size: 0.875rem; font-weight: 600; color: var(--muted); transition: all 0.2s; }
.nav-links a:hover, .nav-links a[aria-current="page"] { background: var(--secondary); color: var(--fg); }
.nav-links a[aria-current="page"] { background: var(--accent); color: #fff; }
.mobile-toggle { display: none; background: none; border: none; cursor: pointer; padding: 0.5rem; border-radius: 0.5rem; }
.mobile-toggle svg { width: 24px; height: 24px; }
.mobile-menu { display: none; padding: 1rem 5%; border-top: 1px solid var(--border); background: var(--card); }
.mobile-menu.open { display: block; }
.mobile-menu a { display: block; padding: 0.75rem 1rem; border-radius: 0.5rem; font-size: 0.875rem; font-weight: 600; color: var(--muted); }
.mobile-menu a:hover, .mobile-menu a[aria-current="page"] { background: var(--secondary); color: var(--fg); }
.mobile-menu a[aria-current="page"] { background: var(--accent); color: #fff; }
.mobile-contact { padding-top: 1rem; margin-top: 0.5rem; border-top: 1px solid var(--border); }
.mobile-contact a { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: var(--muted); padding: 0.5rem 1rem; }

/* BREADCRUMBS */
.breadcrumbs { max-width: 1400px; margin: 0 auto; padding: 1rem 5% 0; }
.breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 0.4rem; font-size: 0.8rem; color: var(--muted); }
.breadcrumbs li { display: flex; align-items: center; gap: 0.4rem; }
.breadcrumbs a { color: var(--muted); font-weight: 600; }
.breadcrumbs a:hover { color: var(--accent-text); }
.breadcrumbs li[aria-current="page"] { color: var(--fg); font-weight: 700; }

/* HERO (home, con imagen de fondo) */
.hero { position: relative; overflow: hidden; z-index: 1; }
.hero-bg-img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.hero-inner { position: relative; z-index: 2; }
.hero::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: -1; }
.hero-deco1 { position: absolute; top: 5rem; right: 5rem; width: 24rem; height: 24rem; border-radius: 50%; background: linear-gradient(135deg, #0079f2, #00d6a0); filter: blur(80px); opacity: 0.05; }
.hero-deco2 { position: absolute; bottom: 2rem; left: 2rem; width: 18rem; height: 18rem; border-radius: 50%; background: linear-gradient(135deg, #e8772e, #f5a623); filter: blur(80px); opacity: 0.05; }
.hero-inner { max-width: 1400px; margin: 0 auto; padding: 5rem 5% 5rem; }
.hero-badge { display: inline-flex; align-items: center; gap: 0.5rem; background: rgba(255,255,255,0.1); padding: 0.5rem 1rem; border-radius: 50px; margin-bottom: 2rem; }
.hero-badge .dot { width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--accent); animation: pulse 2s infinite; }
.hero-badge span { font-family: 'JetBrains Mono', monospace; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; opacity: 0.8; }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.4; } }
.hero h1 { font-size: clamp(2.5rem, 5vw, 4.5rem); font-weight: 900; line-height: 1.05; letter-spacing: -0.02em; margin-bottom: 1.5rem; max-width: 48rem; color: #fff; }
.hero h1 .gradient { background: linear-gradient(135deg, #0079f2, #00d6a0); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.hero-desc { font-size: 1.125rem; color: #fff; max-width: 42rem; margin-bottom: 2.5rem; line-height: 1.7; font-weight: 500; }
.hero-buttons { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 4rem; }
.btn-orange { display: inline-flex; align-items: center; gap: 0.5rem; background: linear-gradient(135deg, #e8772e, #f5a623); color: #fff; padding: 1rem 2rem; border-radius: 0.75rem; font-weight: 700; font-size: 1.125rem; transition: all 0.3s; border: none; cursor: pointer; font-family: inherit; }
.btn-orange:hover { box-shadow: 0 10px 40px rgba(232,119,46,0.3); transform: translateY(-2px); }
.btn-ghost { display: inline-flex; align-items: center; gap: 0.5rem; background: rgba(255,255,255,0.1); color: #fff; padding: 1rem 2rem; border-radius: 0.75rem; font-weight: 700; font-size: 1.125rem; transition: all 0.3s; border: 2px solid rgba(255,255,255,0.4); }
.btn-ghost:hover { background: rgba(255,255,255,0.2); border-color: rgba(255,255,255,0.6); }
.trust-badges { display: flex; flex-wrap: wrap; gap: 1.5rem 2rem; max-width: 900px; }
.trust-badge { display: flex; align-items: center; gap: 0.75rem; flex: 0 0 auto; min-width: 0; }
.trust-badge > div:last-child { min-width: 0; }
.trust-icon { width: 2.5rem; height: 2.5rem; border-radius: 0.5rem; background: linear-gradient(135deg, #0079f2, #00d6a0); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.trust-icon svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: #fff; stroke-width: 2; }
.trust-icon.trust-icon--logo { width: auto; min-width: 2.5rem; background: #fff; padding: 0.3rem 0.5rem; }
.trust-icon.trust-icon--logo img { height: 100%; width: auto; max-width: none; object-fit: contain; display: block; }
.trust-label, .trust-sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.trust-label { font-size: 0.875rem; font-weight: 700; color: #fff; }
.trust-sub { font-size: 0.75rem; color: #cfe4f5; }

/* HERO (páginas interiores, sin imagen) */
.hero.hero-plain { background: var(--fg); color: #fff; }
.hero.hero-plain .hero-desc { color: rgba(255,255,255,0.6); font-weight: 400; }

/* SECTORS */
.sectors { padding: 5rem 5%; }
.sectors-inner { max-width: 1400px; margin: 0 auto; }
.section-header { text-align: center; margin-bottom: 4rem; }
.section-tag { font-family: 'JetBrains Mono', monospace; font-size: 0.7rem; font-weight: 700; color: var(--accent-text); text-transform: uppercase; letter-spacing: 0.15em; }
.section-title { font-size: clamp(1.75rem, 3vw, 3rem); font-weight: 900; letter-spacing: -0.02em; margin-top: 0.75rem; }
.section-desc { color: var(--muted); margin-top: 1rem; max-width: 36rem; margin-left: auto; margin-right: auto; }
.sectors-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.sector-card { background: var(--card); border-radius: 1rem; padding: 2rem; border: 1px solid var(--border); transition: all 0.3s; display: block; }
.sector-card:hover { transform: translateY(-0.5rem); box-shadow: 0 30px 60px rgba(0,0,0,0.08); border-color: var(--accent); }
.sector-card-img { width: 100%; height: 9rem; object-fit: cover; border-radius: 0.75rem; margin-bottom: 1.5rem; display: block; }
.sector-icon { width: 3.5rem; height: 3.5rem; border-radius: 0.75rem; display: flex; align-items: center; justify-content: center; margin-bottom: 1.5rem; }
.sector-icon svg { width: 1.75rem; height: 1.75rem; fill: none; stroke: #fff; stroke-width: 2; }
.sector-card h3 { font-size: 1.25rem; font-weight: 900; margin-bottom: 0.5rem; }
.sector-card p { font-size: 0.875rem; color: var(--muted); line-height: 1.6; margin-bottom: 1.5rem; }
.sector-link { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; font-weight: 700; color: var(--accent-text); transition: gap 0.3s; }
.sector-card:hover .sector-link { gap: 0.75rem; }

/* ABOUT */
.about { padding: 5rem 5%; background: var(--secondary); }
.about-inner { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.about-text .section-tag { text-align: left; }
.about-text h2 { font-size: clamp(1.5rem, 2.5vw, 2.25rem); font-weight: 900; letter-spacing: -0.02em; margin: 0.75rem 0 1.5rem; }
.about-text > p { color: var(--muted); line-height: 1.7; margin-bottom: 1.5rem; }
.about blockquote { border-left: 4px solid var(--accent); padding: 0.5rem 0 0.5rem 1.5rem; margin: 2rem 0; }
.about blockquote p { font-style: italic; font-weight: 500; color: var(--fg); }
.about blockquote cite { display: block; font-style: normal; font-weight: 700; font-size: 0.875rem; color: var(--muted); margin-top: 0.5rem; }
.values-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.value-card { background: var(--card); border-radius: 0.75rem; padding: 1.5rem; border: 1px solid var(--border); }
.value-card svg { width: 1.5rem; height: 1.5rem; stroke: var(--accent); fill: none; stroke-width: 2; margin-bottom: 0.75rem; }
.value-card h4 { font-weight: 700; font-size: 1.125rem; margin-bottom: 0.5rem; }
.value-card p { font-size: 0.875rem; color: var(--muted); line-height: 1.5; }

/* COMPARISON TABLE */
.comparison { background: var(--card); padding: 5rem 5%; }
.comparison-inner { max-width: 1400px; margin: 0 auto; }
.table-wrap { max-width: 64rem; margin: 0 auto; overflow-x: auto; border-radius: 1rem; border: 1px solid var(--border); }
table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
th { background: var(--fg); color: #fff; text-align: left; padding: 1.25rem; font-weight: 700; }
td { padding: 1.25rem; border-bottom: 1px solid var(--border); }
tr:nth-child(even) { background: rgba(238,240,244,0.3); }
tr:hover { background: rgba(238,240,244,0.6); }
td.feat { font-weight: 700; color: var(--fg); }
td.ready { color: var(--success); font-weight: 700; }

/* DISTRIBUIDORES */
.distributor-section { padding: 5rem 5%; background: var(--bg); }
.helitene-distributor { background: var(--card); }
.distributor-section-inner { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 4rem; align-items: center; }
.stf-distributor .distributor-section-inner { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
.distributor-section-content h2 { font-size: clamp(1.75rem, 3vw, 3rem); font-weight: 900; letter-spacing: -0.02em; margin: 0.75rem 0 1.5rem; }
.distributor-section-content p { color: var(--muted); line-height: 1.7; margin-bottom: 1rem; max-width: 38rem; }
.distributor-section-content .btn-dark { margin-top: 1rem; }
.distributor-section-media { margin: 0; overflow: hidden; border-radius: 1rem; border: 1px solid var(--border); background: var(--card); box-shadow: 0 24px 60px rgba(25,33,51,0.1); }
.distributor-section-media img { display: block; width: 100%; height: auto; }

/* FAQ */
.faq { padding: 5rem 5%; background: var(--secondary); }
.faq-inner { max-width: 48rem; margin: 0 auto; }
.faq-list { margin-top: 2.5rem; display: flex; flex-direction: column; gap: 0.75rem; }
.faq-item { background: var(--card); border: 1px solid var(--border); border-radius: 0.75rem; padding: 0; }
.faq-item summary { cursor: pointer; list-style: none; padding: 1.25rem 1.5rem; font-weight: 700; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; font-size: 1.25rem; font-weight: 400; color: var(--accent-text); flex-shrink: 0; }
.faq-item[open] summary::after { content: '−'; }
.faq-item p { padding: 0 1.5rem 1.25rem; color: var(--muted); line-height: 1.6; font-size: 0.9375rem; }

/* CTA */
.cta { padding: 5rem 5%; text-align: center; }
.cta-inner { max-width: 640px; margin: 0 auto; }
.cta h2 { font-size: clamp(1.75rem, 3vw, 3rem); font-weight: 900; letter-spacing: -0.02em; margin: 0.75rem 0 1.5rem; }
.cta > p, .cta-inner > p { color: var(--muted); font-size: 1.125rem; margin-bottom: 2.5rem; }
.cta-buttons { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }
.btn-dark { display: inline-flex; align-items: center; gap: 0.5rem; background: var(--fg); color: #fff; padding: 1rem 2rem; border-radius: 0.75rem; font-weight: 700; font-size: 1.125rem; transition: all 0.3s; }
.btn-dark:hover { opacity: 0.9; }

/* FOOTER */
footer { background: var(--fg); color: #fff; }
.footer-inner { max-width: 1400px; margin: 0 auto; padding: 4rem 5%; display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr 1fr; gap: 2rem; }
.footer-brand p { color: rgba(255,255,255,0.6); font-size: 0.875rem; line-height: 1.6; margin-top: 1rem; }
.footer-brand .certs { font-family: 'JetBrains Mono', monospace; font-size: 0.7rem; color: rgba(255,255,255,0.4); margin-top: 1rem; }
.footer-col h4 { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: rgba(255,255,255,0.8); margin-bottom: 1rem; }
.footer-col a { display: block; font-size: 0.875rem; color: rgba(255,255,255,0.5); margin-bottom: 0.5rem; transition: color 0.2s; }
.footer-col a:hover { color: var(--accent); }
.footer-contact a, .footer-contact div { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.875rem; color: rgba(255,255,255,0.5); margin-bottom: 0.75rem; }
.footer-contact a:hover { color: var(--accent); }
.footer-contact svg { width: 1rem; height: 1rem; flex-shrink: 0; margin-top: 0.15rem; fill: none; stroke: currentColor; stroke-width: 2; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.1); max-width: 1400px; margin: 0 auto; padding: 2rem 5%; text-align: center; font-size: 0.75rem; color: rgba(255,255,255,0.3); }

.icon { display: inline-block; width: 1em; height: 1em; vertical-align: -0.125em; }

/* CATEGORY HEADER (páginas de sector) */
.cat-header { padding: 4rem 5% 4rem; position: relative; overflow: hidden; color: #fff; }
.cat-header-bg-img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.cat-header::after { content: ''; position: absolute; inset: 0; background: rgba(10,15,25,0.55); z-index: -1; }
.cat-header-inner { max-width: 1400px; margin: 0 auto; position: relative; z-index: 2; }
.cat-header .cat-icon { width: 3.5rem; height: 3.5rem; border-radius: 0.75rem; display: flex; align-items: center; justify-content: center; margin-bottom: 1.5rem; }
.cat-header .cat-icon svg { width: 1.75rem; height: 1.75rem; fill: none; stroke: #fff; stroke-width: 2; }
.cat-header .cat-sub { font-family: 'JetBrains Mono', monospace; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; color: rgba(255,255,255,0.85); margin-bottom: 0.5rem; }
.cat-header h1 { font-size: clamp(2rem, 4vw, 3rem); font-weight: 900; letter-spacing: -0.02em; margin-bottom: 1rem; color: #fff; }
.cat-header > p, .cat-header-inner > p { color: rgba(255,255,255,0.9); max-width: 42rem; font-size: 1.125rem; }
.cat-deco { position: absolute; top: 2rem; right: 5rem; width: 24rem; height: 24rem; border-radius: 50%; background: linear-gradient(135deg, #0079f2, #00d6a0); filter: blur(80px); opacity: 0.05; }

.products { max-width: 1400px; margin: 0 auto; padding: 4rem 5% 6rem; }
.products-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.product-card { background: var(--card); border-radius: 1rem; padding: 2rem; border: 1px solid var(--border); display: flex; flex-direction: column; transition: all 0.3s; }
.product-card:hover { transform: translateY(-0.5rem); box-shadow: 0 30px 60px rgba(0,0,0,0.06); border-color: var(--accent); }
.product-tag { font-family: 'JetBrains Mono', monospace; font-size: 0.7rem; background: var(--tech-gray); padding: 0.25rem 0.75rem; border-radius: 50px; color: var(--accent-blue); font-weight: 700; align-self: flex-start; }
.product-card h3 { font-size: 1.5rem; font-weight: 900; margin: 1.5rem 0 0.5rem; }
.product-card > p { color: var(--muted); font-size: 0.875rem; flex-grow: 1; line-height: 1.6; }
.specs-list { list-style: none; margin-top: 1.5rem; border-top: 1px solid var(--border); padding-top: 1.5rem; }
.specs-list li { display: flex; justify-content: space-between; margin-bottom: 0.75rem; font-size: 0.875rem; }
.specs-list li span:first-child { color: var(--muted); }
.specs-list li span:last-child { font-weight: 700; color: var(--fg); }
.btn-product { display: flex; align-items: center; justify-content: center; gap: 0.5rem; background: var(--fg); color: #fff; padding: 1rem; border-radius: 0.75rem; font-weight: 700; margin-top: 1.5rem; transition: all 0.2s; }
.btn-product:hover { background: var(--accent); box-shadow: 0 8px 24px rgba(0,0,0,0.1); }

/* DESCARGABLES */
.downloads-header .cat-header-bg-img { object-position: center 45%; }
.downloads-section { max-width: 1400px; margin: 0 auto; padding: 4rem 5% 6rem; }
.downloads-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; max-width: 1100px; margin: 0 auto; }
.download-card { overflow: hidden; display: grid; grid-template-columns: minmax(150px, 0.7fr) minmax(0, 1.3fr); background: var(--card); border: 1px solid var(--border); border-radius: 1rem; transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s; }
.download-card:hover { transform: translateY(-0.4rem); border-color: var(--accent); box-shadow: 0 24px 55px rgba(25,33,51,0.09); }
.document-visual { min-height: 23rem; padding: 1.5rem; display: flex; flex-direction: column; justify-content: space-between; color: #fff; position: relative; overflow: hidden; }
.document-visual::before { content: ''; position: absolute; width: 12rem; height: 12rem; border: 1px solid rgba(255,255,255,0.22); border-radius: 50%; right: -5rem; bottom: -3rem; }
.document-visual::after { content: ''; position: absolute; width: 7rem; height: 7rem; border: 1px solid rgba(255,255,255,0.18); border-radius: 50%; right: -1rem; bottom: 1rem; }
.document-visual--catalog { background: linear-gradient(155deg, #192133 0%, #0079f2 100%); }
.document-visual--corporate { background: linear-gradient(155deg, #192133 0%, #e8772e 100%); }
.document-visual--certificate { background: linear-gradient(155deg, #192133 0%, #273b73 100%); }
.document-format { width: fit-content; padding: 0.35rem 0.6rem; border: 1px solid rgba(255,255,255,0.5); border-radius: 0.35rem; font-family: 'JetBrains Mono', monospace; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em; }
.document-year { font-size: clamp(1.35rem, 2.4vw, 2rem); font-weight: 900; letter-spacing: -0.04em; position: relative; z-index: 1; overflow-wrap: anywhere; }
.download-card-body { padding: 2rem; display: flex; flex-direction: column; min-width: 0; }
.document-category { font-family: 'JetBrains Mono', monospace; color: var(--accent-text); font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; }
.download-card h2 { font-size: 1.5rem; font-weight: 900; line-height: 1.15; margin: 0.85rem 0 0.75rem; }
.download-card p { color: var(--muted); font-size: 0.9rem; line-height: 1.6; flex-grow: 1; }
.document-meta { display: flex; gap: 0.75rem; color: var(--muted); font-family: 'JetBrains Mono', monospace; font-size: 0.7rem; margin-top: 1.5rem; }
.document-meta span + span::before { content: '·'; margin-right: 0.75rem; }
.document-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 1rem; }
.btn-document, .btn-document-secondary { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: 0.7rem 1rem; border-radius: 0.65rem; font-size: 0.875rem; font-weight: 700; transition: all 0.2s; }
.btn-document { background: var(--fg); color: #fff; }
.btn-document:hover { background: var(--accent); }
.btn-document-secondary { border: 1px solid var(--border); color: var(--fg); }
.btn-document-secondary:hover { background: var(--secondary); border-color: var(--fg); }
.downloads-help { max-width: 1100px; margin: 3rem auto 0; padding: 2rem 2.5rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; background: var(--secondary); border-radius: 1rem; border: 1px solid var(--border); }
.downloads-help h2 { font-size: 1.5rem; font-weight: 900; margin: 0.5rem 0; }
.downloads-help p { color: var(--muted); line-height: 1.6; }
.downloads-help .btn-dark { flex-shrink: 0; }

/* APLICACIONES */
.applications-header .cat-header-bg-img { object-position: center 45%; }
.application-intro { max-width: 1400px; margin: 0 auto; padding: 4rem 5% 5rem; }
.application-index { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.application-index-card { position: relative; min-height: 12rem; overflow: hidden; border-radius: 1rem; border: 1px solid var(--border); isolation: isolate; transition: transform 0.25s, box-shadow 0.25s; }
.application-index-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,15,25,0.08), rgba(10,15,25,0.8)); z-index: -1; }
.application-index-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 0.35s; }
.application-index-card span { position: absolute; left: 1.25rem; bottom: 1.15rem; color: #fff; font-size: 1.35rem; font-weight: 900; }
.application-index-card:hover { transform: translateY(-0.35rem); box-shadow: 0 20px 45px rgba(25,33,51,0.14); }
.application-index-card:hover img { transform: scale(1.04); }
.application-sector { padding: 5rem 5%; scroll-margin-top: 5.5rem; }
.application-sector--alt { background: var(--secondary); }
.application-sector-inner { max-width: 1400px; margin: 0 auto; }
.application-sector-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 2.5rem; }
.application-sector-header > div { max-width: 54rem; }
.application-sector-header h2 { font-size: clamp(1.8rem, 3vw, 2.75rem); font-weight: 900; letter-spacing: -0.02em; margin: 0.65rem 0 0.8rem; }
.application-sector-header p { color: var(--muted); font-size: 1.05rem; line-height: 1.65; }
.sector-page-link { flex-shrink: 0; color: var(--accent-text); font-size: 0.9rem; font-weight: 700; padding-bottom: 0.15rem; border-bottom: 1px solid currentColor; }
.application-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.application-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.application-card { background: var(--card); border: 1px solid var(--border); border-radius: 1rem; padding: 1.75rem; display: flex; flex-direction: column; transition: transform 0.25s, border-color 0.25s, box-shadow 0.25s; }
.application-card:hover { transform: translateY(-0.3rem); border-color: var(--accent); box-shadow: 0 20px 45px rgba(25,33,51,0.08); }
.application-card--caution { border-top: 4px solid var(--accent); }
.application-material { align-self: flex-start; font-family: 'JetBrains Mono', monospace; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--accent-blue); background: var(--tech-gray); border-radius: 2rem; padding: 0.35rem 0.7rem; }
.application-card h3 { font-size: 1.35rem; font-weight: 900; line-height: 1.2; margin: 1.1rem 0 1.25rem; }
.application-detail { padding: 1rem 0; border-top: 1px solid var(--border); }
.application-detail strong { display: block; color: var(--fg); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 0.4rem; }
.application-detail p { color: var(--muted); font-size: 0.9rem; line-height: 1.6; }
.application-card > a { margin-top: auto; padding-top: 1.15rem; color: var(--accent-text); font-size: 0.875rem; font-weight: 700; }
.application-card > a:hover { color: var(--fg); }
.application-safety { max-width: 1260px; margin: 5rem auto; padding: 2.25rem 2.5rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; background: #fff7f0; border: 1px solid #f0c6a9; border-radius: 1rem; }
.application-safety > div { max-width: 52rem; }
.application-safety h2 { font-size: 1.6rem; font-weight: 900; margin: 0.55rem 0; }
.application-safety p { color: var(--muted); line-height: 1.65; }
.application-safety .btn-dark { flex-shrink: 0; }

/* CONTENIDO TÉCNICO Y SEÑALES DE CONFIANZA */
.sector-answer { max-width: 1100px; margin: 0 auto 4rem; padding: 2rem 2.25rem; background: var(--card); border: 1px solid var(--border); border-left: 4px solid var(--accent); border-radius: 1rem; }
.sector-answer h2 { font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 900; letter-spacing: -0.02em; margin: 0.75rem 0 1rem; }
.sector-answer p { color: var(--muted); line-height: 1.75; }
.sector-answer p a { color: var(--accent-text); font-weight: 700; }
.sector-answer-link { display: inline-block; color: var(--accent-text); font-size: 0.9rem; font-weight: 700; margin-top: 1.15rem; }
.content-review { color: var(--muted); font-family: 'JetBrains Mono', monospace; font-size: 0.7rem; line-height: 1.5; }
.content-review--center { text-align: center; margin-bottom: 1rem; }
.sectors-application-cta { display: flex; justify-content: center; margin-top: 2.5rem; }
.sectors-application-cta a { display: inline-flex; align-items: center; color: var(--accent-text); font-weight: 700; border-bottom: 1px solid currentColor; padding-bottom: 0.2rem; }
.error-page { min-height: 100vh; max-width: 760px; margin: 0 auto; padding: 8rem 5%; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.error-page .logo { margin-bottom: 4rem; }
.error-page h1 { font-size: clamp(2.5rem, 6vw, 4.5rem); font-weight: 900; line-height: 1.05; letter-spacing: -0.03em; margin: 1rem 0 1.5rem; }
.error-page > p { color: var(--muted); font-size: 1.125rem; line-height: 1.7; margin-bottom: 2rem; }
.footer-legal { display: flex; justify-content: center; gap: 1rem; margin-top: 0.75rem; }
.footer-legal a { color: rgba(255,255,255,0.55); }
.footer-legal a:hover { color: var(--accent); }
.legal-page { padding-top: 5.75rem; }
.legal-page .breadcrumbs { padding-top: 1.25rem; }
.legal-header { max-width: 1000px; margin: 0 auto; padding: 4rem 5% 2rem; }
.legal-header h1 { font-size: clamp(2.4rem, 5vw, 4rem); font-weight: 900; letter-spacing: -0.03em; margin: 0.75rem 0 1rem; }
.legal-header p { color: var(--muted); font-size: 1.1rem; }
.legal-content { max-width: 1000px; margin: 0 auto; padding: 1rem 5% 6rem; }
.legal-content section { padding: 2rem 0; border-top: 1px solid var(--border); }
.legal-content h2 { font-size: 1.35rem; font-weight: 900; margin-bottom: 1rem; }
.legal-content p { color: var(--muted); line-height: 1.75; }
.legal-content a { color: var(--accent-text); font-weight: 700; }
.legal-data { display: grid; gap: 0.75rem; }
.legal-data > div { display: grid; grid-template-columns: minmax(8rem, 0.35fr) 1fr; gap: 1rem; }
.legal-data dt { color: var(--muted); font-weight: 600; }
.legal-data dd { font-weight: 700; }

/* CONTACTO */
.contact-section { max-width: 1400px; margin: 0 auto; padding: 4rem 5% 6rem; }
.contact-grid { display: grid; grid-template-columns: 2fr 3fr; gap: 3rem; }
.contact-info h2 { font-size: 1.5rem; font-weight: 900; margin-bottom: 1.5rem; }
.contact-item { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.25rem; }
.contact-icon { width: 2.5rem; height: 2.5rem; border-radius: 0.5rem; background: rgba(232,119,46,0.1); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.contact-icon svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: var(--accent-text); stroke-width: 2; }
.contact-label { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted); margin-bottom: 0.25rem; }
.contact-value { font-weight: 600; color: var(--fg); }
.contact-value a:hover { color: var(--accent-text); }
.map-frame { border-radius: 1rem; overflow: hidden; border: 1px solid var(--border); height: 16rem; margin-top: 2rem; }
.map-frame iframe { width: 100%; height: 100%; border: 0; }

.form-card { background: var(--card); border-radius: 1rem; border: 1px solid var(--border); padding: 2rem 2.5rem; }
.form-card h2 { font-size: 1.5rem; font-weight: 900; margin-bottom: 0.5rem; }
.form-card > p { color: var(--muted); font-size: 0.875rem; margin-bottom: 2rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-bottom: 1.25rem; }
.form-group { margin-bottom: 1.25rem; }
.form-group label { display: block; font-size: 0.875rem; font-weight: 700; margin-bottom: 0.5rem; }
.form-group .req { color: var(--accent-text); }
.form-group input, .form-group select, .form-group textarea { width: 100%; padding: 0.75rem 1rem; border-radius: 0.75rem; border: 1px solid var(--border); background: var(--bg); font-size: 1rem; font-family: 'Outfit', sans-serif; transition: all 0.2s; outline: none; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--accent-blue); box-shadow: 0 0 0 3px rgba(0,121,242,0.15); }
.form-group textarea { resize: none; }
.form-consent label { display: flex; align-items: flex-start; gap: 0.65rem; font-weight: 500; line-height: 1.5; color: var(--muted); }
.form-consent input { width: 1rem; height: 1rem; margin-top: 0.2rem; flex-shrink: 0; accent-color: var(--accent); }
.form-consent a { color: var(--accent-text); font-weight: 700; text-decoration: underline; }
.form-error { color: #c0392b; font-size: 0.8rem; margin-top: 0.35rem; display: none; }
.form-group.invalid input, .form-group.invalid select, .form-group.invalid textarea { border-color: #c0392b; }
.form-group.invalid .form-error { display: block; }
.btn-submit { width: 100%; display: flex; align-items: center; justify-content: center; gap: 0.5rem; background: linear-gradient(135deg, #e8772e, #f5a623); color: #fff; padding: 1rem; border-radius: 0.75rem; font-weight: 700; font-size: 1.125rem; border: none; cursor: pointer; font-family: 'Outfit', sans-serif; transition: all 0.3s; }
.btn-submit:hover { box-shadow: 0 10px 40px rgba(232,119,46,0.3); transform: translateY(-2px); }
.btn-submit:disabled { opacity: 0.7; cursor: progress; transform: none; box-shadow: none; }
.form-success { display: none; align-items: center; gap: 0.75rem; background: rgba(39,169,107,0.1); border: 1px solid var(--success); color: #1c7a4c; padding: 1rem 1.25rem; border-radius: 0.75rem; margin-top: 1.25rem; font-size: 0.875rem; font-weight: 600; }
.form-success.visible { display: flex; }
.form-success svg { width: 1.25rem; height: 1.25rem; stroke: var(--success); fill: none; stroke-width: 2; flex-shrink: 0; }

/* RESPONSIVE */
@media (max-width: 1024px) {
    .sectors-grid { grid-template-columns: repeat(2, 1fr); }
    .footer-inner { grid-template-columns: 1fr 1fr; }
    .products-grid { grid-template-columns: repeat(2, 1fr); }
    .downloads-grid { grid-template-columns: 1fr; }
}
@media (max-width: 1200px) {
    body { padding-top: 60px; }
    .nav-top { display: none; }
    .nav-links { display: none; }
    .mobile-toggle { display: block; width: 48px; height: 48px; color: var(--fg); }
    .mobile-toggle svg { display: block; }
}
@media (max-width: 768px) {
    body { padding-top: 60px; }
    .nav-top { display: none; }
    .nav-links { display: none; }
    .mobile-toggle { display: block; width: 40px; height: 40px; color: var(--fg); }
    .mobile-toggle svg { display: block; }
    .sectors-grid { grid-template-columns: 1fr; }
    .about-inner { grid-template-columns: 1fr; }
    .trust-badges { flex-direction: column; }
    .hero-buttons { flex-direction: column; }
    .hero-buttons a { text-align: center; justify-content: center; }
    .footer-inner { grid-template-columns: 1fr; }
    .values-grid { grid-template-columns: 1fr; }
    .products-grid { grid-template-columns: 1fr; }
    .contact-grid { grid-template-columns: 1fr; }
    .form-row { grid-template-columns: 1fr; }
    .distributor-section-inner { grid-template-columns: 1fr; gap: 2.5rem; }
    .stf-distributor .distributor-section-inner { grid-template-columns: 1fr; }
    .distributor-section-content p { max-width: none; }
    .distributor-section-content .btn-dark { width: 100%; justify-content: center; }
    .download-card { grid-template-columns: 1fr; }
    .document-visual { min-height: 11rem; }
    .downloads-help { align-items: stretch; flex-direction: column; padding: 2rem; }
    .downloads-help .btn-dark { justify-content: center; }
    .application-index { grid-template-columns: repeat(2, 1fr); }
    .application-sector-header { align-items: flex-start; flex-direction: column; }
    .application-grid, .application-grid--2 { grid-template-columns: 1fr; }
    .application-safety { align-items: stretch; flex-direction: column; margin: 3rem 5%; padding: 2rem; }
    .application-safety .btn-dark { justify-content: center; }
    .sector-answer { padding: 1.5rem; }
    .legal-data > div { grid-template-columns: 1fr; gap: 0.25rem; }
}
@media (max-width: 420px) {
    .document-actions { grid-template-columns: 1fr; }
    .application-index { grid-template-columns: 1fr; }
}

/* Variante de 3 columnas para .sectors-grid (páginas de material) */
.sectors-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1024px) {
    .sectors-grid--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .sectors-grid--3 { grid-template-columns: 1fr; }
}
