:root{
    --ink:#14231D;
    --cream:#F6F3EC;
    --moss:#35553F;
    --mustard:#E8A33D;
    --rust:#C1502E;
    --line: rgba(20,35,29,0.14);
    --maxw: 1180px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--cream);
    color:var(--ink);
    font-family:'Work Sans', sans-serif;
    font-weight:400;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3, .display{
    font-family:'Archivo Black', sans-serif;
    font-weight:400;
    line-height:1.02;
    letter-spacing:-0.01em;
  }
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
  section{padding:110px 0;}
  @media(max-width:720px){ section{padding:70px 0;} .wrap{padding:0 22px;} }

  /* Focus visibility */
  a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
    outline:3px solid var(--mustard); outline-offset:3px;
  }

  /* NAV */
  header.site{
    position:sticky; top:0; z-index:50;
    background:rgba(246,243,236,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  nav.wrap{
    display:flex; align-items:center; justify-content:space-between;
    padding-top:20px; padding-bottom:20px;
  }
  .logo{font-family:'Archivo Black'; font-size:19px; letter-spacing:-0.02em; text-transform:lowercase;}
  .logo span{color:var(--rust);}
  .navlinks{display:flex; gap:34px; font-size:15px; font-weight:600;}
  .navlinks a{position:relative; padding:4px 0;}
  .navlinks a:after{
    content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--rust);
    transition:width .25s ease;
  }
  .navlinks a:hover:after{width:100%;}
  .nav-cta{
    background:var(--ink); color:var(--cream); padding:10px 20px; border-radius:2px;
    font-size:14px; font-weight:700;
  }
  .nav-cta:hover{background:var(--moss);}
  .burger{display:none; font-family:'Archivo Black'; font-size:14px; background:none; border:2px solid var(--ink); padding:8px 14px; border-radius:2px;}
  @media(max-width:800px){
    .navlinks{display:none;}
    .burger{display:block;}
  }

  /* HERO */
  .hero{
    background:var(--ink); color:var(--cream);
    padding:150px 0 90px;
    position:relative; overflow:hidden;
  }
  .hero .wrap{
    display:grid; grid-template-columns:1.3fr 0.7fr; gap:60px; align-items:end;
  }
  @media(max-width:860px){ .hero .wrap{grid-template-columns:1fr;} }
  .eyebrow{
    display:inline-block; font-size:13px; font-weight:700; letter-spacing:0.14em;
    text-transform:uppercase; color:var(--mustard); margin-bottom:22px;
  }
  .hero h1{ font-size:clamp(40px, 6.2vw, 84px); }
  .hero h1 em{ font-style:normal; color:var(--mustard); }
  .hero-side p{font-size:17px; color:rgba(246,243,236,0.78); margin-bottom:26px;}
  .btnrow{display:flex; gap:14px; flex-wrap:wrap;}
  .btn{
    display:inline-block; padding:15px 26px; font-weight:700; font-size:15px;
    border-radius:2px; border:2px solid transparent; transition:all .2s ease;
  }
  .btn-primary{background:var(--mustard); color:var(--ink);}
  .btn-primary:hover{background:var(--cream);}
  .btn-outline{border-color:rgba(246,243,236,0.4); color:var(--cream);}
  .btn-outline:hover{border-color:var(--cream);}

  /* TICKER — signature element */
  .ticker{
    background:var(--rust); color:var(--cream);
    overflow:hidden; white-space:nowrap; border-top:1px solid rgba(0,0,0,.15); border-bottom:1px solid rgba(0,0,0,.15);
  }
  .ticker-track{
    display:inline-block; padding:14px 0;
    animation:scroll 26s linear infinite;
    font-family:'Archivo Black'; font-size:15px; letter-spacing:0.02em;
  }
  .ticker-track span{margin:0 26px; opacity:0.95;}
  .ticker-track span:after{content:'✦'; margin-left:26px; opacity:.7;}
  @keyframes scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
  @media (prefers-reduced-motion: reduce){ .ticker-track{animation:none;} }

  /* SECTION HEADS */
  .sec-head{ max-width:640px; margin-bottom:56px; }
  .sec-label{ font-size:13px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--rust); margin-bottom:14px; display:block;}
  .sec-head h2{ font-size:clamp(30px,4vw,46px); }
  .sec-head p{margin-top:16px; font-size:17px; color:rgba(20,35,29,0.72); max-width:520px;}

  /* NOSOTROS */
  .nosotros .wrap{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:start;}
  @media(max-width:860px){.nosotros .wrap{grid-template-columns:1fr;}}
  .stat-grid{display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:36px;}
  .stat b{font-family:'Archivo Black'; font-size:38px; display:block; color:var(--moss);}
  .stat span{font-size:14px; color:rgba(20,35,29,0.65);}
  .nosotros-copy p{font-size:17px; margin-bottom:18px; color:rgba(20,35,29,0.8); max-width:520px;}
  .valores{display:flex; gap:10px; flex-wrap:wrap; margin-top:26px;}
  .valores span{
    border:1.5px solid var(--ink); padding:8px 16px; border-radius:100px; font-size:14px; font-weight:600;
  }

  /* SERVICIOS */
  .servicios{background:var(--ink); color:var(--cream);}
  .servicios .sec-label{color:var(--mustard);}
  .servicios .sec-head p{color:rgba(246,243,236,0.7);}
  .serv-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(246,243,236,0.18); border:1px solid rgba(246,243,236,0.18);}
  @media(max-width:860px){.serv-grid{grid-template-columns:1fr;}}
  .serv-card{background:var(--ink); padding:38px 30px; transition:background .2s ease;}
  .serv-card:hover{background:#1c332a;}
  .serv-card .mark{font-family:'Archivo Black'; font-size:26px; color:var(--mustard); margin-bottom:18px; display:block;}
  .serv-card h3{font-size:21px; margin-bottom:12px; font-family:'Work Sans'; font-weight:700;}
  .serv-card p{font-size:15px; color:rgba(246,243,236,0.68);}

  /* PORTFOLIO */
  .port-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
  @media(max-width:860px){.port-grid{grid-template-columns:1fr;}}
  .port-card{
    background:var(--moss); color:var(--cream); border-radius:4px; overflow:hidden;
    aspect-ratio:4/5; position:relative; display:flex; flex-direction:column; justify-content:flex-end; padding:26px;
  }
  .port-card:nth-child(2){background:var(--rust);}
  .port-card:nth-child(3){background:var(--ink);}
  .port-tag{font-size:12px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; opacity:.75; margin-bottom:8px;}
  .port-card h3{font-family:'Work Sans'; font-weight:700; font-size:22px; margin-bottom:8px;}
  .port-card p{font-size:14px; opacity:.85;}
  .port-result{
    margin-top:16px; font-family:'Archivo Black'; font-size:26px; color:var(--mustard);
  }

  /* TESTIMONIOS */
  .testimonios{background:var(--moss); color:var(--cream);}
  .testimonios .sec-label{color:var(--mustard);}
  .testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
  @media(max-width:860px){.testi-grid{grid-template-columns:1fr;}}
  .testi-card{background:rgba(246,243,236,0.08); border:1px solid rgba(246,243,236,0.18); padding:30px; border-radius:4px;}
  .testi-card p{font-size:16px; margin-bottom:22px;}
  .testi-who{display:flex; align-items:center; gap:12px;}
  .avatar{width:42px; height:42px; border-radius:50%; background:var(--mustard); color:var(--ink); display:flex; align-items:center; justify-content:center; font-family:'Archivo Black'; font-size:15px;}
  .testi-who b{display:block; font-size:14px;}
  .testi-who span{font-size:13px; opacity:.7;}
  .logos-row{display:flex; gap:40px; flex-wrap:wrap; margin-top:56px; opacity:.6; align-items:center;}
  .logos-row span{font-family:'Archivo Black'; font-size:18px;}

  /* CONTACTO */
  .contacto{background:var(--ink); color:var(--cream);}
  .contacto .wrap{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:start;}
  @media(max-width:860px){.contacto .wrap{grid-template-columns:1fr;}}
  .contacto h2{font-size:clamp(30px,4vw,48px); margin-bottom:18px;}
  .contacto-info p{color:rgba(246,243,236,0.7); font-size:17px; margin-bottom:30px; max-width:440px;}
  .info-line{margin-bottom:16px; font-size:15px;}
  .info-line b{display:block; font-size:12px; text-transform:uppercase; letter-spacing:0.1em; color:var(--mustard); margin-bottom:4px;}
  form{display:flex; flex-direction:column; gap:16px;}
  label{font-size:13px; font-weight:700; margin-bottom:6px; display:block; color:rgba(246,243,236,0.85);}
  input, textarea{
    width:100%; background:rgba(246,243,236,0.06); border:1.5px solid rgba(246,243,236,0.25);
    color:var(--cream); padding:14px 16px; font-family:'Work Sans'; font-size:15px; border-radius:2px;
  }
  input::placeholder, textarea::placeholder{color:rgba(246,243,236,0.35);}
  textarea{resize:vertical; min-height:110px;}
  .submit-btn{
    background:var(--mustard); color:var(--ink); border:none; padding:16px 26px; font-weight:700;
    font-size:15px; border-radius:2px; cursor:pointer; align-self:flex-start; margin-top:6px;
    transition:background .2s ease;
  }
  .submit-btn:hover{background:var(--cream);}

  /* FOOTER */
  footer{background:#0E1913; color:rgba(246,243,236,0.55); padding:36px 0; font-size:14px;}
  footer .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;}
  footer a{color:rgba(246,243,236,0.75);}
