/* ============ FUENTES AUTO-HOSPEDADAS ============ */
@font-face{font-family:'Archivo';src:url('fonts/archivo-variable.woff2') format('woff2-variations');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('fonts/plex-mono-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('fonts/plex-mono-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('fonts/plex-mono-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}

/* ============ PÁGINAS DE SERVICIO ============ */
.page-hero{padding:70px 0 56px}
.page-hero h1{font-weight:900;font-size:clamp(1.9rem,4vw,3rem);color:#fff;letter-spacing:-.02em;line-height:1.12}
.page-hero h1 .blue{color:var(--blue)}
.crumbs{font-family:var(--font-m);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:22px}
.crumbs a{color:var(--muted)}.crumbs a:hover{color:#fff}
.crumbs span{color:var(--bronze);margin:0 8px}
.prose{max-width:46rem}
.prose p{color:var(--muted);margin-top:16px;font-size:1.02rem}
.prose p b,.prose p strong{color:#fff;font-weight:600}
.prose h2{margin-top:48px}
.prose ul{list-style:none;margin-top:18px}
.prose li{display:flex;gap:12px;color:var(--text);padding:7px 0}
.prose li::before{content:"→";color:var(--bronze);font-weight:700;flex:none}
.split2{display:grid;gap:44px;align-items:start}
@media(min-width:1024px){.split2{grid-template-columns:7fr 5fr}}
.cta-band{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:56px 0}
.cta-band .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:22px}
.cta-band h2{font-size:clamp(1.4rem,2.6vw,1.9rem)}
.related{margin-top:56px;border-top:1px solid var(--line);padding-top:32px}
.related .k{font-family:var(--font-m);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:16px}
.related-links{display:flex;flex-wrap:wrap;gap:12px}
.related-links a{border:1px solid var(--line);padding:10px 16px;font-size:.88rem;color:var(--muted);transition:.18s}
.related-links a:hover{border-color:var(--blue);color:#fff}

/* ============ TOKENS ============ */
:root{
  --bg:#0a0f16; --bg2:#0d141f; --surface:#121a28; --surface2:#0f1622;
  --line:rgba(255,255,255,.09); --line-soft:rgba(255,255,255,.05);
  --text:#dde4ee; --muted:#a4b0c1; --faint:#929fb2;
  --blue:#4da3e8; --blue-deep:#1f6fb5; --blue-soft:rgba(77,163,232,.12);
  --bronze:#c8924f; --bronze-deep:#9a6b33; --bronze-soft:rgba(200,146,79,.12);
  --chrome-hi:#f2f5f9; --chrome-mid:#b9c3d0; --chrome-lo:#87929f;
  --wa:#25D366;
  --font-d:'Archivo',system-ui,sans-serif; --font-m:'IBM Plex Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto;scroll-padding-top:96px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{font-family:var(--font-d);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.55}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.mono{font-family:var(--font-m);text-transform:uppercase;letter-spacing:.13em}
.eyebrow{font-family:var(--font-m);text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;color:var(--blue);display:flex;align-items:center;gap:12px;margin-bottom:18px}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--blue)}
.eyebrow.bronze{color:var(--bronze)}.eyebrow.bronze::before{background:var(--bronze)}
h1,h2,h3{font-family:var(--font-d);color:#fff;letter-spacing:-.02em;line-height:1.1}
h2{font-weight:900;font-size:clamp(1.7rem,3.4vw,2.5rem)}
.lead{color:var(--muted);font-size:1.08rem;max-width:44rem;margin-top:14px}
section{padding:88px 0}
.chrome-text{background:linear-gradient(175deg,var(--chrome-hi) 20%,var(--chrome-mid) 55%,var(--chrome-lo) 80%,var(--chrome-hi) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ============ BLUEPRINT BG ============ */
.blueprint{background-image:linear-gradient(rgba(77,163,232,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(77,163,232,.06) 1px,transparent 1px);background-size:34px 34px}

/* ============ TOPBAR + NAV ============ */
.topbar{background:var(--bg2);border-bottom:1px solid var(--line-soft);font-family:var(--font-m);font-size:.7rem;letter-spacing:.08em;color:var(--faint)}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;height:34px;gap:14px}
.topbar a{color:var(--muted)}.topbar a:hover{color:#fff}
.topbar .dot{color:var(--bronze)}
header.nav{position:sticky;top:0;z-index:50;background:rgba(10,15,22,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header.nav .wrap{height:66px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{display:flex;align-items:center;gap:11px}
.logo-badge{width:38px;height:38px;flex:none}
.logo-name{font-weight:900;font-size:1.06rem;letter-spacing:.01em;line-height:1;color:#fff}
.logo-name b{font-weight:900}
.logo-sub{font-family:var(--font-m);font-size:.56rem;letter-spacing:.28em;color:var(--blue);text-transform:uppercase;margin-top:3px}
nav.links{display:none;gap:26px;font-size:.9rem;font-weight:500;color:var(--muted)}
nav.links a:hover{color:#fff}
@media(min-width:1024px){nav.links{display:flex}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:700;border-radius:3px;transition:.18s;cursor:pointer;border:0;font-family:var(--font-d)}
.btn-blue{background:var(--blue);color:#06121e;padding:11px 20px;font-size:.9rem}
.btn-blue:hover{background:#6ab4ef}
.btn-lg{padding:15px 26px;font-size:1rem}
.btn-ghost{border:1px solid rgba(200,146,79,.55);color:var(--bronze);padding:14px 25px;font-size:1rem}
.btn-ghost:hover{background:var(--bronze-soft)}
.btn-wa{background:var(--wa);color:#06121e;padding:15px 26px;font-size:1rem}
.btn-wa:hover{filter:brightness(1.08)}
.nav-cta{display:none}@media(min-width:640px){.nav-cta{display:inline-flex}}

/* ============ HERO ============ */
.hero{padding:72px 0 84px;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 75% 20%,rgba(77,163,232,.08),transparent 70%);pointer-events:none}
.hero .wrap{position:relative;z-index:1;display:grid;gap:52px;align-items:center}
@media(min-width:1024px){.hero .wrap{grid-template-columns:7fr 5fr}}
.hero h1{font-weight:900;font-size:clamp(2.1rem,4.6vw,3.5rem)}
.hero h1 .blue{color:var(--blue)}
.hero p.sub{margin-top:22px;font-size:1.13rem;color:var(--muted);max-width:34rem}
.hero p.sub b{color:#fff;font-weight:600}
.hero-ctas{margin-top:30px;display:flex;flex-wrap:wrap;gap:12px}
.hero-stats{margin-top:38px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:30rem;border-top:1px solid var(--line);padding-top:22px}
.hero-stats p.v{font-weight:900;font-size:1.4rem;color:#fff}
.hero-stats p.k{font-family:var(--font-m);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-top:4px}
/* Photo framed as QC inspection shot */
.qc-frame{position:relative;border:1px solid var(--line);background:var(--surface2);padding:10px}
.qc-frame::before,.qc-frame::after{content:"";position:absolute;width:14px;height:14px;border-color:var(--bronze)}
.qc-frame::before{top:-1px;left:-1px;border-top:2px solid;border-left:2px solid}
.qc-frame::after{bottom:-1px;right:-1px;border-bottom:2px solid;border-right:2px solid}
.qc-frame img{width:100%;height:auto}
.qc-cap{display:flex;justify-content:space-between;gap:10px;font-family:var(--font-m);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);padding:10px 4px 2px}
.qc-cap b{color:var(--blue);font-weight:600}
.hero-spec{margin-top:18px;background:var(--surface);border:1px solid var(--line);padding:22px 24px}
.hero-spec dl{font-family:var(--font-m);font-size:.82rem}
.hero-spec .row{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line-soft)}
.hero-spec .row:last-child{border-bottom:0}
.hero-spec dt{color:var(--faint)}
.hero-spec dd{color:#fff;text-align:right}
.hero-spec dd.b{color:var(--bronze);font-weight:600}
.hero-spec .note{font-size:.66rem;color:var(--faint);margin-top:10px;font-family:var(--font-m)}

/* ============ MATERIALS STRIP ============ */
.materials{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg2);padding:26px 0}
.materials .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.materials .t{font-family:var(--font-m);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-right:8px}
.chip{font-family:var(--font-m);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:8px 15px;border-radius:2px;border:1px solid var(--line);color:#0b1017;font-weight:600}
.chip.inox{background:linear-gradient(160deg,#e9eef4,#aeb9c6 60%,#d6dee7)}
.chip.bronce{background:linear-gradient(160deg,#e2b076,#a8763a 60%,#d19a55)}
.chip.laton{background:linear-gradient(160deg,#ead9a0,#bd9c4e 60%,#dcc077)}
.chip.alu{background:linear-gradient(160deg,#f2f5f8,#c3ccd6 60%,#e4e9ee)}
.chip.acero{background:linear-gradient(160deg,#c3cdd8,#7e8b99 60%,#aab5c1)}
.chip.hierro{background:linear-gradient(160deg,#9aa5b1,#5d6874 60%,#87929e)}

/* ============ CARDS / GRIDS ============ */
.head{max-width:46rem;margin-bottom:52px}
.grid3{display:grid;gap:18px}
@media(min-width:768px){.grid3{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--surface);border:1px solid var(--line);padding:28px;transition:border-color .2s}
.card:hover{border-color:rgba(77,163,232,.45)}
.card .ico{width:44px;height:44px;border-radius:3px;background:var(--blue-soft);color:var(--blue);display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.card h3{font-size:1.22rem;font-weight:700;margin-bottom:9px}
.card p{color:var(--muted);font-size:.95rem}
.card.hl{border-color:rgba(200,146,79,.45)}
.card .tag{position:absolute;top:18px;right:18px;font-family:var(--font-m);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;background:var(--bronze);color:#0b1017;font-weight:700;padding:3px 8px;border-radius:2px}
.card.rel{position:relative}
.card .k{font-family:var(--font-m);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze);margin-bottom:14px}

/* Planta split */
.planta{margin-top:64px;display:grid;gap:36px;align-items:center}
@media(min-width:1024px){.planta{grid-template-columns:5fr 6fr}}
.planta blockquote{font-size:1.35rem;font-weight:700;color:#fff;line-height:1.35;letter-spacing:-.01em}
.planta blockquote span{color:var(--blue)}
.planta .txt p{color:var(--muted);margin-top:16px}
.mini-stats{margin-top:26px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line);border:1px solid var(--line)}
.mini-stats div{background:var(--bg);padding:16px 14px}
.mini-stats .v{font-weight:900;font-size:1.15rem;color:#fff}
.mini-stats .v em{font-style:normal;color:var(--bronze)}
.mini-stats .k{font-family:var(--font-m);font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-top:4px}

/* ============ GALERÍA ============ */
.gal{display:grid;gap:18px}
@media(min-width:640px){.gal{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.gal{grid-template-columns:repeat(4,1fr)}}
.gal figure{background:var(--surface2);border:1px solid var(--line);padding:9px;transition:border-color .2s}
.gal figure:hover{border-color:rgba(200,146,79,.5)}
.gal img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:#f1f1ee}
.gal figcaption{font-family:var(--font-m);font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);padding:10px 3px 3px;display:flex;justify-content:space-between;gap:8px}
.gal figcaption b{color:var(--bronze);font-weight:600}

/* ============ SECTORES ============ */
.sectores-grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
@media(min-width:640px){.sectores-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.sectores-grid{grid-template-columns:repeat(4,1fr)}}
.sector{background:var(--bg);padding:28px;transition:background .2s}
.sector:hover{background:var(--surface2)}
.sector .k{font-family:var(--font-m);font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:var(--bronze);margin-bottom:12px}
.sector h3{font-size:1.1rem;font-weight:700;margin-bottom:8px}
.sector p{color:var(--muted);font-size:.88rem}
.aftergrid{margin-top:22px;color:var(--muted);font-size:.92rem}
.aftergrid a{color:var(--blue);font-weight:600}
.aftergrid a:hover{text-decoration:underline}

/* ============ PROCESO ============ */
.steps{display:grid;gap:18px;counter-reset:paso}
@media(min-width:768px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{background:var(--surface);border:1px solid var(--line);padding:26px;position:relative;counter-increment:paso}
.step::before{content:"0" counter(paso);font-family:var(--font-m);font-weight:600;font-size:.72rem;letter-spacing:.12em;color:var(--blue);display:block;margin-bottom:16px}
.step h3{font-size:1.06rem;font-weight:700;margin-bottom:8px}
.step p{color:var(--muted);font-size:.88rem}
.step .t{margin-top:14px;font-family:var(--font-m);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--bronze)}

/* ============ SUSTITUCIÓN ============ */
.sust{background:var(--bg2)}
.sust .wrap{display:grid;gap:44px;align-items:center}
@media(min-width:1024px){.sust .wrap{grid-template-columns:6fr 5fr}}
.sust ul{list-style:none;margin-top:26px}
.sust li{display:flex;gap:12px;color:var(--text);padding:7px 0}
.sust li::before{content:"→";color:var(--bronze);font-weight:700}
.big-card{background:var(--surface);border:1px solid var(--line);padding:34px;position:relative}
.big-card::before,.big-card::after{content:"";position:absolute;width:14px;height:14px;border-color:var(--blue)}
.big-card::before{top:-1px;left:-1px;border-top:2px solid;border-left:2px solid}
.big-card::after{bottom:-1px;right:-1px;border-bottom:2px solid;border-right:2px solid}
.big-card .n{font-weight:900;font-size:3.2rem;color:#fff;line-height:1}
.big-card .n span{color:var(--blue)}
.big-card .k{font-family:var(--font-m);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-top:8px}
.big-card p.d{color:var(--muted);margin-top:18px}
.big-card p.d b{color:#fff;font-weight:600}

/* ============ FAQ ============ */
.faq-list{max-width:52rem}
.faq-list details{border:1px solid var(--line);background:var(--surface2);margin-bottom:10px}
.faq-list summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:19px 22px;font-weight:600;color:#fff;font-size:1rem}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";font-family:var(--font-m);color:var(--bronze);font-size:1.15rem;flex:none;transition:transform .2s}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list details p{padding:0 22px 20px;color:var(--muted);font-size:.95rem;max-width:46rem}

/* ============ COTIZAR ============ */
.cotizar .wrap{display:grid;gap:52px}
@media(min-width:1024px){.cotizar .wrap{grid-template-columns:5fr 7fr}}
.contact-dl{margin-top:34px;border-top:1px solid var(--line);padding-top:26px;font-family:var(--font-m);font-size:.85rem}
.contact-dl .row{display:flex;gap:14px;padding:7px 0}
.contact-dl dt{color:var(--faint);width:82px;flex:none}
.contact-dl dd a{color:var(--blue)}.contact-dl dd a:hover{text-decoration:underline}
form.rfq{background:var(--surface);border:1px solid var(--line);padding:30px}
@media(min-width:640px){form.rfq{padding:38px}}
.f-grid{display:grid;gap:18px}
@media(min-width:640px){.f-grid{grid-template-columns:1fr 1fr}}
.f-field{margin-bottom:18px}
.f-field label{display:block;font-family:var(--font-m);font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.f-field input,.f-field select,.f-field textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:3px;padding:13px 15px;color:#fff;font-family:var(--font-d);font-size:.95rem}
.f-field input::placeholder,.f-field textarea::placeholder{color:var(--faint)}
.f-field input:focus,.f-field select:focus,.f-field textarea:focus{border-color:var(--blue);outline:none}
.f-note{font-size:.78rem;color:var(--faint);margin:6px 0 20px}
.f-actions{display:grid;gap:10px}
.f-actions .alt{text-align:center;font-size:.82rem;color:var(--faint)}
.f-actions .alt a{color:var(--blue)}.f-actions .alt a:hover{text-decoration:underline}

/* ============ FOOTER ============ */
footer{background:var(--bg2);border-top:1px solid var(--line);padding:56px 0 30px}
.f-cols{display:grid;gap:36px;padding-bottom:38px;border-bottom:1px solid var(--line)}
@media(min-width:640px){.f-cols{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.f-cols{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.f-cols p{color:var(--muted);font-size:.9rem;max-width:20rem}
.f-cols .k{font-family:var(--font-m);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:14px}
.f-cols ul{list-style:none}
.f-cols li{margin-bottom:9px;font-size:.9rem}
.f-cols li a{color:var(--muted)}.f-cols li a:hover{color:#fff}
.f-cols li a.hl{color:var(--blue);font-weight:600}
.f-base{padding-top:22px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:.74rem;color:var(--faint)}
.f-base .mats{font-family:var(--font-m);letter-spacing:.06em}

/* Reveal */
.fade{opacity:1;transform:none}
.fade.in{opacity:1;transform:none}

/* Supplied Tornería Wirth company emblem */
header.nav .wrap{height:96px}
.logo-badge{width:86px;height:86px;object-fit:contain;flex:none}
.footer-brand{display:inline-flex;margin-bottom:22px}
.footer-brand img{width:174px;height:174px;object-fit:contain}
@media(max-width:639px){
  header.nav .wrap{height:84px;gap:12px}
  .logo-badge{width:72px;height:72px}
  .logo{gap:10px;min-width:0}
  .logo-name{font-size:.98rem}
  .logo-sub{font-size:.5rem;letter-spacing:.19em}
}
html{scroll-padding-top:116px}

/* ============ ETAPA 1: INICIO, MATERIALES Y NAVEGACIÓN ============ */
main:focus{outline:none}
.skip-link{position:absolute;top:8px;left:16px;z-index:100;background:var(--blue);color:var(--bg);padding:12px 18px;font-weight:700;transform:translateY(-160%)}
.skip-link:focus{transform:none}
.topbar .wrap{height:auto;min-height:34px;padding-top:7px;padding-bottom:7px;flex-wrap:wrap;gap:6px 18px}
.topbar{font-size:.72rem;letter-spacing:.03em}
header.nav .wrap{height:auto;min-height:88px;gap:22px;position:relative;flex-wrap:wrap}
.logo-badge{width:76px;height:76px}
.logo-sub{display:block;letter-spacing:.16em;font-size:.62rem;margin-top:6px}
.logo-name{font-size:1.06rem;white-space:nowrap}
.wordmark{display:block}
.logo-name b{color:var(--blue)}
nav.links{display:flex;gap:24px}
.nav-actions{display:flex;align-items:center;gap:10px;margin-left:auto}
.nav-cta{display:inline-flex;white-space:nowrap;min-height:44px}
.cta-short{display:none}
.menu-toggle{display:none;background:transparent;border:1px solid var(--line);color:var(--text);border-radius:3px;min-height:44px;padding:10px 12px;align-items:center;gap:8px;cursor:pointer;font:600 .85rem var(--font-d)}
.menu-icon{display:block;width:15px;height:10px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor;position:relative}
.menu-icon::after{content:"";position:absolute;left:0;right:0;top:3px;border-top:1.5px solid currentColor}
.hero{padding:56px 0 60px}
.hero .wrap{gap:56px}
.hero h1{font-size:clamp(2.2rem,4.2vw,3.55rem);line-height:1.07;max-width:650px}
.hero-service{margin-top:18px;font-size:clamp(1.3rem,2.1vw,1.85rem);font-weight:700;line-height:1.25;color:#fff;max-width:32rem}
.hero p.sub{font-size:1.1rem;line-height:1.7;max-width:34rem}
.hero-ctas{gap:12px;margin-top:28px}
.hero-reassurance{color:var(--muted);font-size:.85rem;margin-top:16px;max-width:32rem}
.hero-stats{max-width:none;gap:14px;margin-top:28px;padding-top:20px}
.hero-stats p.v{font-size:1.08rem;white-space:nowrap}
.hero-stats p.k{font-size:.7rem;letter-spacing:.06em}
.hero .qc-frame{transform:rotate(-1.5deg)}
.hero .qc-frame img,.page-hero .qc-frame img{aspect-ratio:1;object-fit:contain}
.hero .qc-frame img.hero-featured-part{object-fit:cover;object-position:50% 75%}
.qc-cap{font-size:.7rem;letter-spacing:.04em;flex-wrap:wrap;line-height:1.5}
.materials{padding:22px 0}
.materials .wrap{gap:10px}
.materials .t{font-size:.73rem;letter-spacing:.08em}
.chip{font-size:.73rem;letter-spacing:.03em;min-height:44px;display:inline-flex;align-items:center;transition:transform .18s}
.chip:hover{transform:translateY(-2px);box-shadow:0 0 0 1px var(--blue)}
.chip.hierro{background:linear-gradient(160deg,#c1cad4,#919dab 60%,#b1becd)}
.chip.grilon{background:#30353c;color:#f2f4f6;border:1px solid #727d8a}
.chip.teflon{background:#eeece1;color:#171b21}
.chip.delrin{background:#bec7d2;color:#171b21}
.head{margin-bottom:34px}
.material-section{background:var(--bg2)}
.material-grid{display:grid;gap:20px;grid-template-columns:repeat(3,minmax(0,1fr))}
.material-card{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);padding:28px;scroll-margin-top:20px}
.material-top{display:flex;align-items:center;gap:12px;margin-bottom:26px}
.material-top .mono{font-size:.72rem;letter-spacing:.09em;color:var(--faint)}
.material-swatch{width:34px;height:34px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.inox .material-swatch{background:linear-gradient(130deg,#f1f5f8,#8695a4,#e0e6ec)}
.bronce .material-swatch{background:linear-gradient(130deg,#dfa167,#825027,#d1a26b)}
.laton .material-swatch{background:linear-gradient(130deg,#f1e0a0,#ac8737,#e7c877)}
.alu .material-swatch{background:linear-gradient(130deg,#fff,#b8c2d0,#e5edf5)}
.acero .material-swatch{background:linear-gradient(130deg,#b4c2d0,#536577,#9eaebf)}
.hierro .material-swatch{background:linear-gradient(130deg,#b1b4b9,#686d76,#9ca3ad)}
.grilon .material-swatch{background:linear-gradient(130deg,#565b61,#14171a)}
.teflon .material-swatch{background:linear-gradient(130deg,#fffef7,#d9d6c6)}
.delrin .material-swatch{background:linear-gradient(130deg,#dde3ea,#929eac)}
.material-card h3{font-size:1.65rem;line-height:1.2;margin-bottom:17px}
.material-card p{font-size:.94rem;line-height:1.65;color:var(--muted)}
.material-card .material-title{font-weight:600;color:var(--text);margin-bottom:10px}
.material-requirements{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);margin-bottom:24px}
.material-requirements>span{font-family:var(--font-m);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--faint)}
.material-requirements p{font-size:.82rem;margin-top:7px}
.material-quote{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:auto;min-height:44px;font-size:.94rem;font-weight:700;color:var(--blue)}
.material-quote:hover{text-decoration:underline;text-underline-offset:4px}
.material-detail{color:var(--muted);font-size:.8rem;min-height:44px;display:flex;align-items:center}
.material-detail:hover{color:#fff}
.material-help{color:var(--muted);font-size:.95rem;margin-top:24px}
.material-help a{color:var(--blue);text-decoration:underline;text-underline-offset:4px}
.capacity-spec{margin-top:26px;padding:24px 28px}
.capacity-spec dl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}
.capacity-spec .row{display:block;border:0;border-right:1px solid var(--line);padding:0 12px 0 0}
.capacity-spec .row:last-child{border:0}
.capacity-spec dt{font-size:.74rem;line-height:1.5;min-height:36px}
.capacity-spec dd{text-align:left;font-size:1.03rem;margin-top:8px}
.capacity-spec .note{font:400 .78rem var(--font-d);line-height:1.6;margin-top:20px}
.gal{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.gal figure{padding:10px}
.gal figcaption{align-items:baseline;justify-content:flex-start;gap:12px;font:500 .93rem var(--font-d);text-transform:none;letter-spacing:0;color:var(--text);padding:18px 6px 10px;min-height:67px}
.gal .photo-number{font:400 .72rem var(--font-m);color:var(--bronze)}
.gallery-next{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:30px;border-top:1px solid var(--line);padding-top:26px}
.gallery-next p{font-weight:600;font-size:1.1rem}
.gallery-subhead{display:flex;justify-content:space-between;align-items:end;gap:28px;margin:56px 0 26px;padding-top:32px;border-top:1px solid var(--line);scroll-margin-top:24px}
.gallery-subhead h3{font-size:clamp(1.45rem,2.5vw,2rem);line-height:1.2}
.gallery-subhead .eyebrow{margin-bottom:14px}
.gallery-subhead>p{max-width:24rem;color:var(--muted);font-size:.96rem}
.part-photo{aspect-ratio:1;overflow:hidden;background:var(--surface)}
.gal .part-photo img,.qc-frame .part-photo img{width:100%;height:100%;object-fit:cover;object-position:50% var(--photo-y,50%);transform:scale(var(--photo-zoom,1))}
.series-section{background:var(--surface2);border-top:1px solid var(--line);padding:64px 0}
.series-layout{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);align-items:center;gap:44px}
.series-copy .lead{font-size:1.02rem;line-height:1.65}
.series-copy h2{font-size:clamp(1.8rem,3.4vw,2.7rem)}
.series-points{list-style:none;margin:22px 0 26px;color:var(--text);font-size:.9rem;display:grid;gap:8px}
.series-points li::before{content:'→';color:var(--bronze);margin-right:10px}
.series-figure{padding:10px;background:var(--bg);border:1px solid var(--line)}
.series-figure img{width:100%;height:auto;display:block}
.series-figure figcaption{color:var(--muted);font-size:.76rem;padding:12px 4px 3px;line-height:1.5}
.machinery-section{background:var(--bg2);border-top:1px solid var(--line)}
.machine-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.machine-card{padding:26px 22px;background:var(--surface);border:1px solid var(--line)}
.machine-number{font:400 .76rem var(--font-m);color:var(--bronze);display:block;margin-bottom:22px}
.machine-card h3{font-size:1.14rem;line-height:1.35;margin-bottom:12px}
.machine-card p{color:var(--muted);font-size:.9rem;line-height:1.65}
.gal.gal-polymers{grid-template-columns:repeat(2,minmax(0,1fr))}
.gal-polymers figure{scroll-margin-top:24px}
@media(max-width:1099px){.machine-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:539px){.machine-grid,.gal.gal-polymers{grid-template-columns:minmax(0,1fr)}}
@media(max-width:767px){
  .series-layout{grid-template-columns:minmax(0,1fr);gap:28px}
  .series-section{padding:48px 0}
  .gallery-subhead{display:block;margin-top:40px}
  .gallery-subhead>p{margin-top:16px;max-width:none}
}
.portfolio-note{color:var(--muted);font-size:.78rem;padding:12px 4px 4px}
.cotizar .wrap>*{min-width:0}
.contact-dl dd{min-width:0;overflow-wrap:anywhere}
.contact-dl dt{width:70px}
.f-cols>div,.f-grid>div,.split2>div{min-width:0}
.f-cols a{overflow-wrap:anywhere}
.f-field label{font-size:.75rem;letter-spacing:.05em}
.f-field input,.f-field select,.f-field textarea{min-width:0;font-size:1rem}
.f-field textarea{resize:vertical}
.f-field input:focus-visible,.f-field select:focus-visible,.f-field textarea:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.form-heading{font-size:1.22rem;font-weight:700;color:#fff;margin-bottom:8px}
.form-intro{color:var(--faint);font-size:.82rem;margin-bottom:24px}
.form-status{font-size:.85rem;color:var(--text);margin-top:16px}
.form-status:empty{display:none}
.f-actions .alt a{display:inline-block;padding:8px 0;text-decoration:underline;text-underline-offset:3px}
.f-note{font-size:.83rem;line-height:1.6}
.btn svg{flex:none}
.f-cols .k,.card .k,.sector .k,.step .t,.big-card .k,.crumbs,.related .k{font-size:.74rem;letter-spacing:.08em}
.card .tag{font-size:.66rem;letter-spacing:.04em}
@media(min-width:1100px){
  header.nav .wrap{flex-wrap:nowrap}
  .nav-actions{margin-left:0}
  .hero .wrap{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
}
@media(max-width:1099px){
  header.nav .wrap{gap:0;min-height:84px}
  .nav-actions{margin-left:auto}
  nav.links{order:3;width:100%;padding:12px 0 22px;flex-wrap:wrap;gap:0}
  nav.links a{padding:12px 16px;min-height:44px}
  .menu-ready nav.links{display:none}
  .menu-ready .menu-toggle{display:inline-flex}
  .menu-ready.menu-open nav.links{display:flex}
  .hero .wrap{grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:28px}
  .hero h1{font-size:clamp(2.2rem,4.3vw,3.3rem)}
  .hero-stats{grid-template-columns:1fr;gap:8px}
  .hero-stats>div{display:flex;align-items:center;gap:12px}
  .hero-stats p.k{margin-top:0}
  .material-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .capacity-spec dl{grid-template-columns:repeat(3,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gal{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
  section{padding:60px 0}
  .topbar .wrap>span:last-child{display:none}
  .topbar .wrap{justify-content:center;text-align:center;font-size:.66rem}
  .hero{padding:36px 0 42px}
  .hero .wrap{grid-template-columns:minmax(0,1fr);gap:30px}
  .hero h1{font-size:clamp(2.15rem,7.2vw,3.2rem)}
  .hero p.sub{font-size:1.03rem}
  .hero .qc-frame{transform:none;max-width:490px;margin:auto}
  .hero-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .hero-stats>div{display:block}
  .hero-stats p.v{font-size:.95rem;white-space:normal}
  .hero-stats p.k{font-size:.66rem;margin-top:5px}
  .wordmark .logo-sub{font-size:.55rem;letter-spacing:.09em}
  .logo{gap:8px}
  .logo-badge{width:64px;height:64px}
  .logo-name{font-size:.9rem}
  .cta-wide{display:none}.cta-short{display:inline}
  .nav-cta{padding:10px 14px}
  .material-card{padding:24px}
  .capacity-spec dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .capacity-spec{padding:24px}
  .capacity-spec dt{min-height:0}
  .gallery-next{align-items:flex-start;flex-direction:column}
}
@media(max-width:539px){
  .wrap{padding-left:18px;padding-right:18px}
  header.nav .wrap{min-height:76px;gap:8px}
  .logo-badge{width:44px;height:44px}
  .wordmark .logo-sub{display:none}
  .logo-name{display:block;font-size:.84rem;line-height:1.1}
  .logo-name b{display:block;font-size:1.06rem;margin-top:3px}
  .nav-actions{gap:8px}
  .nav-cta,.menu-toggle{padding:10px;font-size:.75rem}
  .menu-toggle{gap:6px}
  .hero-ctas{flex-direction:column;align-items:stretch}
  .hero-ctas .btn{width:100%;min-height:48px;padding:13px 14px}
  .material-grid,.gal,.steps{grid-template-columns:minmax(0,1fr)}
  .materials .t{width:100%;margin-bottom:3px}
  .materials .wrap{gap:8px}
  .chip{padding:9px 11px;font-size:.72rem}
  form.rfq{padding:24px 18px}
  .cotizar .wrap{gap:30px}
  .cotizar .btn-wa{padding:14px 15px;font-size:.91rem}
  .contact-dl{font-size:.78rem}
  .card .tag{position:static;display:inline-block;margin-bottom:14px}
  .hero-stats{gap:9px}
  .hero-stats p.v{font-size:.88rem}
  .hero-stats p.k{font-size:.64rem}
  .qc-cap{font-size:.65rem}
  .capacity-spec dl{gap:20px 12px}
  .capacity-spec dd{font-size:.91rem}
  .btn{max-width:100%;text-align:center}
}
@media(max-width:359px){
  header.nav .wrap{padding-left:12px;padding-right:12px}
  .logo-badge{width:40px;height:40px}
}
