:root{
    --black:#080909;
    --soft:#151718;
    --red:#e30613;
    --white:#fff;
    --paper:#f4f4f2;
    --gray:#a6a7a7;
    --line:#d9d9d5
}
*{
    box-sizing:border-box
}
html{
    scroll-behavior:smooth
}

body{
    margin:0;
    font-family:Arial,Helvetica,sans-serif;
    color:var(--black);
    line-height:1.55
}

.wrap{
    width:min(1190px,calc(100% - 48px));
    margin:auto
}

/* NOTA: header, navegación, mega menú, footer, redes sociales,
   WhatsApp y botón "volver arriba" están ahora en header-footer.css */

.company a:hover{
    color:var(--red)
}

.hero{
    background:var(--black);
    min-height:695px;
    color:#fff;
    position:relative;
    overflow:hidden
}

.hero:after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,#080909 18%,rgba(8,9,9,.86) 48%,rgba(8,9,9,.08) 100%)
}

.hero-inner{
    padding-top:150px;
    position:relative;
    z-index:1
}

.tag{
    font-size:10px;
    letter-spacing:2px;
    font-weight:800;
    color:#fff;
    margin:0 0 13px
}
.redtext{
    color:var(--red)
}

h1,h2,h3,p{
    margin-top:0
}

h1{
    font-size:clamp(48px,6.3vw,86px);
    letter-spacing:-4px;
    line-height:.96;
    max-width:780px;
    margin-bottom:25px
}

.hero-inner>p:not(.tag){
    font-size:19px;
    max-width:520px;
    color:#dadada
}

.cta{
    display:flex;
    gap:11px;margin-top:35px
}

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:0;
    padding:13px 20px;
    font-size:13px;
    font-weight:bold;
    text-decoration:none;
    cursor:pointer
}

.red{
    background:var(--red);color:#fff
}

.red:hover{
    background:#ff2631
}

.outline{
    border:1px solid #fff;color:#fff
}

.outline:hover{
    background:#fff;
    color:#000
}

.dark{
    background:#111;color:#fff
}

.dark:hover{
    background:var(--red)
}

.hero-products{
    position:absolute;
    right:-6%;
    bottom:-2%;
    width:68%;
    z-index:0
}

.hero-products img{
    display:block;
    width:100%;
    mix-blend-mode:screen
}

.featured{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    margin-top:-70px;
    position:relative;
    z-index:2;
    box-shadow:0 15px 50px rgba(0,0,0,.18)
}

.feature{
    min-height:350px;padding:28px;color:#fff;
    display:flex;
    align-items:end;background-size:cover;background-position:center;
    position:relative;
    isolation:isolate
}

.feature:after{
    content:"";
    inset:0;
    position:absolute;background:linear-gradient(0deg,rgba(0,0,0,.95),rgba(0,0,0,.12));z-index:-1
}

.feature>div{
    position:relative
}

.feature h2{
    font-size:26px;
    line-height:1.05;
    letter-spacing:-1px;margin-bottom:12px
}

.feature p:not(.tag){
    font-size:13px;color:#e4e4e4
}

.feature a{
    color:#fff;
    font-weight:bold;
    text-decoration:none;
    font-size:12px
}

.feature a b{
    color:var(--red);
    margin-left:5px
}

.product-feature{
    background-image:url('assets/img/gama.webp')
}

.machine-feature{
    background-image:url('assets/img/carbon-clean.webp')
}

.tech-feature{
    background:linear-gradient(145deg,#2b2b2b,#080808)
}

.brand-feature{
    background-image:linear-gradient(150deg,#2a2a2a,#0a0a0a)
}

.section{
    padding:112px 0
}

h2{
    font-size:clamp(38px,4.3vw,58px);
    letter-spacing:-2.8px;line-height:1.02
}

.machines{
    background:var(--paper)
}

.machine-grid{
    margin-top:48px
}

.machine-card{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    background:#fff;
    min-height:510px;
    margin-bottom:28px
}

.machine-card.reverse .machine-img{
    order:2
}

.machine-img{
    min-height:510px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    background:#111
}

.machine-img img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center
}

.gdi{
    flex-direction:column;color:#fff;
    background:radial-gradient(circle at 50% 30%,#6f6f6f,#121212 56%,#000)
}

.gdi span{
    font-size:clamp(70px,11vw,150px);
    font-weight:900;color:transparent;
    -webkit-text-stroke:1px #e30613;
    letter-spacing:-10px
}

.gdi small{
    letter-spacing:4px
}

.machine-copy{
    padding:57px
}

.machine-copy>span{
    font-size:10px;
    font-weight:bold;
    letter-spacing:1.5px;
    color:var(--red)
}

.machine-copy h3{
    font-size:34px;
    line-height:1.05;
    letter-spacing:-1.5px;margin:15px 0
}

.machine-copy p{
    font-size:15px;
    color:#4b4b4b
}

.machine-copy ul{
    padding:0;
    list-style:none;
    margin:25px 0
}

.machine-copy li{
    font-size:13px;
    border-top:1px solid var(--line);padding:8px 0
}

.machine-copy li:before{
    content:"+";color:var(--red);
    font-weight:bold;margin-right:8px
}

.solutions{
    background:#fff
}

.solution-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    border-top:1px solid var(--line);
    border-left:1px solid var(--line);
    margin-top:45px
}

.solution-grid a{
    min-height:145px;padding:23px;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
    text-decoration:none;color:var(--black);
    font-size:17px;
    font-weight:bold;display:flex;
    justify-content:space-between;
    align-items:end
}

.solution-grid a:hover{
    background:var(--red);
    color:#fff
}

.solution-grid span{
    font-size:23px
}

.catalog{
    background:#f8f8f7
}

.catalog-title{
    display:flex;
    gap:50px;
    justify-content:space-between;
    align-items:end
}

.catalog-title p{
    max-width:400px;
    color:#555
}

.filters{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin:35px 0
}

.filters button{
    border:1px solid #c6c6c2;
    background:#fff;
    padding:9px 12px;
    font-weight:bold;
    font-size:12px;
    cursor:pointer
}

.filters button.active,.filters button:hover{
    color:#fff;
    background:#111;
    border-color:#111
}

.product-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px
}

.product{
    background:#fff;
    border:1px solid #e2e2df;
    display:flex;
    flex-direction:column
}

.product.hide{
    display:none
}

.product-img{
    height:235px;
    background:#f4f4f4;
    padding:16px;
    display:flex;
    align-items:center;
    justify-content:center
}

.product-img img{
    width:100%;
    height:100%;
    object-fit:contain;
    mix-blend-mode:multiply
}

.product-content{
    padding:17px;
    display:flex;
    flex-direction:column;
    flex:1
}

.product-content small{
    color:var(--red);
    font-size:10px;
    font-weight:bold;
    letter-spacing:1px
}

.product h3{
    font-size:18px;
    line-height:1.1;
    margin:7px 0 10px
}

.product p{
    color:#5b5b5b;
    font-size:12px;
    flex:1
}

.product a{
    font-size:12px;
    color:#111;
    font-weight:bold;
    text-decoration:none
}

.advice{
    background:#101112;
    color:#fff
}

.advice-grid{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:100px
}

.advice-grid>div>p:not(.tag){
    color:#ccc;
    max-width:550px
}

.advice-points{
    border-top:1px solid #4b4b4b
}

.advice-points article{
    display:grid;
    grid-template-columns:45px 1fr;
    column-gap:14px;
    padding:19px 0;
    border-bottom:1px solid #4b4b4b
}

.advice-points b{
    color:var(--red);
    grid-row:1/3
}

.advice-points h3{
    margin:0;
    font-size:20px
}

.advice-points p{
    grid-column:2;
    margin:5px 0 0;
    color:#ccc;
    font-size:13px
}

.error-tool{
    background:var(--paper);
    padding:80px 0;
    text-align:center
}

.error-tool h2{
    font-size:40px
}

.error-tool p{
    max-width:600px;
    margin:0 auto 22px;
    color:#555
}

.search-placeholder{
    display:flex;
    max-width:570px;
    margin:auto
}

.search-placeholder input{
    flex:1;
    padding:14px;
    border:1px solid #bbb
}

.search-placeholder button{
    width:50px;
    border:0;
    background:var(--red);
    color:#fff;
    font-size:24px
}

.company{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:85px;
    align-items:center
}

.company-image{
    height:520px;
    background:linear-gradient(0deg,rgba(0,0,0,.2),rgba(0,0,0,.1)),url('assets/img/top-end.webp') center/cover
}

.company p{
    font-size:16px;color:#4b4b4b
}

.company a{
    color:#111;
    font-size:13px;
    font-weight:bold;
    text-decoration:none
}

.networks{
    padding:78px 0;
    background:#171819;
    color:#fff;
    text-align:center
}

.networks h2{
    font-size:42px
}

.network-list{
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:center;
    margin:40px 0 20px
}

.network-list span{
    font-weight:bold;
    font-size:21px;
    letter-spacing:1px
}

.networks small{
    color:#aaa
}

.contact{
    background:var(--red);
    color:#fff
}

.contact-grid{
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:100px
}

.contact-grid h2{
    font-size:60px
}

.contact-grid>div>a{
    display:block;
    color:#fff;
    text-decoration:none;
    font-weight:bold;
    font-size:17px;
    margin-top:8px
}

.whats-inline{
    margin-top:27px!important;
    text-decoration:underline!important
}

form{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:15px
}

label{
    font-size:11px;
    font-weight:bold;
    display:flex;
    flex-direction:column;
    gap:5px
}

input,textarea{
    border:1px solid rgba(0,0,0,.3);
    font:inherit;
    padding:11px;
    background:#fff;
    color:#111;
    resize:vertical
}

.wide{
    grid-column:1/-1
}

.trap{
    position:absolute!important;
    left:-9999px!important
}

.consent{
    font-weight:normal;
    display:flex;
    flex-direction:row;
    align-items:center
}

.consent input{
    width:17px;
    height:17px
}

.consent a{
    color:#fff
}

.form-legal{
    font-size:11px;
    margin:0
}

/* COOKIES */

.cookies{
    position:fixed;
    right:20px;
    bottom:20px;
    width:min(390px, calc(100% - 40px));
    background:#fff;
    color:#000;
    padding:20px;
    border:1px solid #ddd;
    box-shadow:0 8px 30px rgba(0,0,0,.18);
    z-index:1000;
}

.cookies b{
    display:block;
    margin-bottom:7px;
    font-size:16px;
}

.cookies p{
    margin:0;
    font-size:12px;
    line-height:1.5;
}

.cookies p a{
    color:var(--red);
    text-decoration:underline;
}

.cookies > div:last-child{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:7px;
    margin-top:15px;
    flex-wrap:wrap;
}

.cookies button{
    cursor:pointer;
    font-size:11px;
    font-weight:bold;
    padding:9px 12px;
}

.cookies .plain{
    background:none;
    border:0;
    color:#000;
}

.cookies .plain:hover{
    color:var(--red);
}

.cookies .accept{
    border:0;
}

.cookies .reject{
    border:1px solid #ccc;
}

.plain{
    border:0;
    background:transparent;
    text-decoration:underline;
    white-space:nowrap;
    font-size:12px;
    font-weight:bold;
    cursor:pointer
}

dialog{
    border:0;
    padding:30px;
    max-width:500px;
    box-shadow:0 15px 60px #0006
}

.close{
    float:right;
    border:0;
    background:transparent;
    font-size:30px;
    cursor:pointer
}

.cookie-option{
    color:#111;
    border-top:1px solid var(--line);
    padding:13px 0;
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center
}

.cookie-option span{
    font-size:10px;
    color:#666;
    grid-column:2
}

.cookie-option input{
    grid-column:2;
    grid-row:1;
    width:17px;
    height:17px
}

.save{
    margin-top:16px
}

@media (max-width:900px){
    .hero{
        min-height:650px
    }

    .hero-products{
        width:90%;
        right:-10%;
        opacity:.65;
    }

    html,body{
        overflow-x:hidden;
    }

    .featured{
        grid-template-columns:repeat(2,1fr);
        margin-top:0
    }

    .solution-grid,.product-grid{
        grid-template-columns:repeat(2,1fr)
    }

    .machine-card,.machine-card.reverse,.company,.advice-grid,.contact-grid{
        grid-template-columns:1fr;
        gap:0
    }

    .machine-card.reverse .machine-img{
        order:0
    }

    .machine-img{
        min-height:390px
    }

    .machine-copy{
        padding:36px
    }

    .company{
        gap:35px
    }

    .company-image{
        height:390px
    }

    .contact-grid{
        gap:40px
    }

    .contact-grid h2{
        text-align:left
    }

    form{
        text-align:left
    }

    form .wide{
        text-align:left
    }

    form .cookies{
        text-align:left
    }

    form .dialog{
        text-align:left
    }

    form .close{
        text-align:left
    }

    form .cookie-option{
        text-align:left
    }

    form .save{
        text-align:left
    }
}

@media (max-width:540px){
    .wrap{width:min(100% - 30px,1190px)}
    .hero-inner{padding-top:100px}
    .hero{min-height:600px}
    h1{letter-spacing:-2.4px}
    .featured,.solution-grid,.product-grid{grid-template-columns:1fr}
    .feature{min-height:260px}
    .section{padding:70px 0}
    .machine-img{min-height:320px}
    .catalog-title{display:block}
    .filters{gap:6px}
    .filters button{font-size:11px}
    .product-img{height:210px}
    .advice-grid{gap:40px}
    .company-image{height:320px}
    .contact-grid h2{font-size:42px}
    form{grid-template-columns:1fr}
    .wide{grid-column:1}
    .cookies{right:15px; bottom:15px; width:calc(100% - 30px); padding:16px;}
    .cookies >div:last-child{margin-top:12px;justify-content:stretch}
    .cookies button{flex:1}
}

/* TABLAS LEGALES */

.datos-titular {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #ddd;
}

.datos-titular th,
.datos-titular td {
    border: 1px solid #ddd;
    padding: 12px 15px;
    text-align: left;
}

.datos-titular thead th {
    background-color: #111;
    color: #fff;
}

.datos-titular tbody th {
    background-color: #f5f5f5;
    font-weight: 600;
    width: 30%;
}

.datos-cookies {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #ddd;
}

.datos-cookies th,
.datos-cookies td {
    border: 1px solid #ddd;
    padding: 12px 15px;
    text-align: left;
}

.datos-cookies thead th {
    background-color: #111;
    color: #fff;
}

.datos-cookies tbody tr:nth-child(even) {
    background-color: #f5f5f5;
}

.datos-privacidad {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #ddd;
}

.datos-privacidad th,
.datos-privacidad td {
    border: 1px solid #ddd;
    padding: 12px 15px;
    text-align: left;
    vertical-align: top;
}

.datos-privacidad thead th {
    background-color: #111;
    color: #fff;
}

.datos-privacidad tbody tr:nth-child(even) {
    background-color: #f5f5f5;
}