:root{
    --blue:#1D2BE0;
    --blue-deep:#11168F;
    --black:#0A0A0A;
    --red:#E8342A;
    --red-deep:#B8261E;
    --yellow:#FFC53D;
    --paper:#FFFFFF;
    --mist:#F2F3FB;
    --ink:#15151A;
    --ink-soft:#5A5D68;
    --line:rgba(10,10,10,0.10);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:'Poppins',sans-serif; font-size:16px; line-height:1.65;
  }
  h1,h2,h3{font-family:'Poppins',sans-serif; font-weight:700; margin:0; letter-spacing:-0.01em;}
  p{margin:0;}
  a{color:inherit; text-decoration:none;}
  .script{font-family:'Caveat',cursive; font-weight:700;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
  ul{margin:0; padding:0; list-style:none;}

  /* decorative dot texture */
  .dots{
    background-image:radial-gradient(currentColor 2.2px, transparent 2.2px);
    background-size:16px 16px;
  }

  .pill{display:inline-flex; align-items:center; gap:8px; padding:14px 28px; border-radius:100px; font-weight:600; font-size:14.5px;}
  .pill-red{background:var(--red); color:#fff;}
  .pill-red:hover{background:var(--red-deep);}
  .pill-outline{border:1.5px solid var(--blue); color:var(--blue);}
  .pill-outline:hover{background:var(--blue); color:#fff;}
  .pill-white{background:#fff; color:var(--blue);}

  /* placeholder image block */
  .ph{
    background:#D9DBE1;
    border:1px solid var(--line);
    display:flex; align-items:flex-end; justify-content:flex-start; padding:14px;
  }
  .ph span{font-size:11px; color:var(--ink-soft); background:#fff; border:1px solid var(--line); padding:4px 9px; border-radius:20px;}

  /* header */
  header{position:sticky; top:0; z-index:30; background:#fff; border-bottom:1px solid var(--line);}
  .nav-row{display:flex; align-items:center; justify-content:space-between; height:84px; gap:20px;}
  .brandmark{height:40px; width:auto; display:block; flex-shrink:0;}
  nav ul{display:flex; gap:32px;}
  nav a{font-size:14.5px; font-weight:600; color:var(--ink); padding:6px 2px; border-bottom:2px solid transparent;}
  nav a:hover{border-color:var(--red); color:var(--blue);}
  .menu-toggle{display:none; flex-direction:column; justify-content:center; gap:5px; width:34px; height:34px; background:none; border:none; cursor:pointer; padding:0;}
  .menu-toggle span{display:block; width:100%; height:2.5px; background:var(--ink); border-radius:2px;}
  .header-actions{display:flex; align-items:center; gap:18px;}

  /* HERO */
  .hero{padding:56px 0 0; overflow:hidden;}
  .hero-shell{position:relative;}
  .hero-blob{
    position:relative;
    background:var(--blue);
    border-radius:220px 0 0 0;
    overflow:hidden;
    min-height:560px;
    display:grid; grid-template-columns:1.05fr 1fr;
    align-items:stretch;
  }
  .hero-blob .dots{position:absolute; top:38px; right:230px; width:170px; height:170px; color:rgba(255,197,61,0.5); z-index:1;}
  .hero-copy{position:relative; z-index:2; padding:76px 20px 76px 76px; display:flex; flex-direction:column; justify-content:center;}
  .hero-eyebrow{color:var(--yellow); font-weight:700; font-size:14px; letter-spacing:0.02em; margin-bottom:18px; display:block;}
  .hero-copy h1{color:#fff; font-size:46px; line-height:1.12;}
  .hero-copy h1 .script{color:var(--yellow); font-size:1.28em; display:block; line-height:1;}
  .hero-copy p.lead{color:rgba(255,255,255,0.82); font-size:17px; margin-top:22px; max-width:42ch;}
  .hero-actions{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;}
  .pill-ghost{border:1.5px solid rgba(255,255,255,0.5); color:#fff;}
  .hero-photo{position:relative;}
  .hero-photo .ph{position:absolute; inset:0; border-radius:0 40px 0 0;}
  .hero-redcut{
    position:absolute; top:-30px; right:-30px; width:200px; height:200px;
    background:var(--red); border-radius:0 0 0 140px; z-index:3;
  }
  .swatch-row{display:flex; gap:10px; margin-top:44px;}
  .swatch{width:26px; height:26px; border-radius:50%;}
  .swatch-black{background:var(--black);}
  .swatch-white{background:#fff;}
  .swatch-red{background:var(--red);}
  .swatch-yellow{background:var(--yellow);}
  .foot-logo-card img{filter:none;}
  #lanus-map{width:100%; height:100%; min-height:360px;}

  /* brand strip */
  .brand-strip{padding:54px 0; border-bottom:1px solid var(--line);}
  .brand-strip .label{font-size:13px; font-weight:600; color:var(--ink-soft); text-align:center; margin-bottom:28px;}
  .strip-row{display:flex; justify-content:center; align-items:center; gap:52px; flex-wrap:wrap;}
  .strip-row img{height:34px; width:auto; filter:grayscale(1); opacity:0.55; transition:filter .15s, opacity .15s;}
  .strip-row img:hover{filter:grayscale(0); opacity:1;}

  /* Quienes somos - molinos-style split with blob + script */
  .somos{padding:110px 0;}
  .somos-grid{display:grid; grid-template-columns:0.95fr 1.05fr; gap:70px; align-items:center;}
  .somos-blob{
    position:relative; background:var(--mist); border-radius:0 200px 0 200px;
    padding:64px 52px; min-height:420px; display:flex; flex-direction:column; justify-content:center;
  }
  .somos-blob .dots{position:absolute; bottom:24px; left:24px; width:120px; height:120px; color:rgba(232,52,42,0.35);}
  .somos-blob .script{font-size:46px; color:var(--blue); line-height:1;}
  .somos-blob h2{font-size:32px; margin-top:6px; color:var(--ink);}
  .somos-cards{display:flex; flex-direction:column; gap:22px;}
  .info-card{display:grid; grid-template-columns:96px 1fr; gap:22px; align-items:center; padding:8px 0;}
  .info-card .circle{width:96px; height:96px; border-radius:50%; overflow:hidden;}
  .info-card .circle.ph{align-items:center; justify-content:center; border-radius:14px;}
  .info-card .circle.ph span{font-size:9.5px; padding:3px 6px;}
  .info-card h3{font-size:18px; color:var(--ink); margin-bottom:6px;}
  .info-card p{font-size:14.5px; color:var(--ink-soft);}

  /* Marcas - yellow novedades-style band */
  .marcas{background:var(--yellow); padding:100px 0;}
  .marcas-head{text-align:center; margin-bottom:56px;}
  .marcas-head .script{font-size:48px; color:var(--blue-deep); display:block;}
  .marcas-head p{margin-top:14px; color:rgba(10,10,10,0.65); font-size:16px; max-width:52ch; margin-left:auto; margin-right:auto;}
  .marcas-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
  .marca-card{background:#fff; border-radius:22px; padding:28px; text-align:center;}
  .marca-card .circle{width:150px; height:150px; border-radius:50%; margin:0 auto 22px; overflow:hidden;}
  .marca-card .circle.ph{display:flex; align-items:center; justify-content:center;}
  .marca-card .circle.ph span{font-size:10px;}
  .marca-card .circle.logo-circle{background:#fff; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; padding:26px;}
  .marca-card .circle.logo-circle img{max-width:100%; max-height:100%; object-fit:contain;}
  .marca-card h3{font-size:19px; color:var(--ink); margin-bottom:10px;}
  .marca-card p{font-size:14px; color:var(--ink-soft); margin-bottom:0;}

  .brand-grid{margin-top:52px; background:#fff; border-radius:22px; padding:36px 0; overflow:hidden;}
  .brand-grid .sub-label{font-size:13px; font-weight:600; color:var(--ink-soft); margin-bottom:24px; padding:0 40px;}
  .logo-carousel{
    position:relative; overflow:hidden;
    mask-image:linear-gradient(90deg, transparent 0, #000 48px, #000 calc(100% - 48px), transparent 100%);
    -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 48px, #000 calc(100% - 48px), transparent 100%);
  }
  .logo-track{
    display:flex; align-items:center; gap:56px; width:max-content; padding:0 40px;
    animation:logo-scroll 26s linear infinite;
  }
  .logo-carousel:hover .logo-track{animation-play-state:paused;}
  .logo-track img{height:42px; width:auto; max-width:130px; object-fit:contain; flex:0 0 auto;}
  @keyframes logo-scroll{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }
  @media (prefers-reduced-motion: reduce){
    .logo-track{animation:none;}
    .logo-carousel{overflow-x:auto;}
  }

  /* historia */
  .historia{padding:110px 0;}
  .section-head{max-width:640px; margin-bottom:56px;}
  .section-head .script{font-size:44px; color:var(--red); display:block; line-height:1;}
  .section-head h2{font-size:30px; color:var(--ink); margin-top:4px;}
  .section-head p{margin-top:16px; font-size:16px; color:var(--ink-soft);}
  .timeline{position:relative;}
  .timeline::before{content:''; position:absolute; left:23px; top:6px; bottom:6px; width:2px; background:var(--line);}
  .tl-item{display:grid; grid-template-columns:48px 1fr; gap:26px; padding-bottom:44px;}
  .tl-item:last-child{padding-bottom:0;}
  .tl-dot{width:48px; height:48px; border-radius:50%; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:13px;}
  .tl-item h3{font-size:19px; color:var(--ink); margin-bottom:8px;}
  .tl-item p{color:var(--ink-soft); font-size:15px; max-width:58ch;}

  /* cobertura */
  .coverage{background:var(--blue-deep); color:#fff; position:relative; overflow:hidden;}
  .coverage .dots{position:absolute; top:-40px; right:-40px; width:220px; height:220px; color:rgba(255,255,255,0.08);}
  .coverage .wrap{position:relative; padding:100px 32px;}
  .coverage .section-head .script{color:var(--yellow);}
  .coverage .section-head h2{color:#fff;}
  .coverage .section-head p{color:rgba(255,255,255,0.72);}
  .cov-layout{display:flex; flex-direction:column; gap:24px;}
  .cov-map{min-height:460px; height:460px; width:100%; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.18); border-radius:0 60px 0 60px; overflow:hidden; position:relative;}
  .cov-map .leaflet-container{font-family:'Poppins',sans-serif; background:#dfe3ef;}
  .cov-map .zone-note{position:absolute; left:14px; bottom:14px; z-index:500; font-size:11px; color:var(--ink-soft); background:#fff; border:1px solid var(--line); padding:5px 10px; border-radius:20px;}
  .zone-list{display:flex; flex-direction:column; gap:1px; background:rgba(255,255,255,0.14); border-radius:16px; overflow:hidden;}
  .zone-item{background:var(--blue-deep); padding:26px 28px; display:flex; align-items:center; justify-content:space-between;}
  .zone-item h4{font-size:20px; font-weight:700;}
  .zone-item p{font-size:14px; color:rgba(255,255,255,0.6); margin-top:4px;}
  .zone-item .tag{font-size:12px; color:var(--yellow); border:1px solid rgba(255,197,61,0.5); padding:4px 10px; border-radius:20px;}

  /* footer */
  footer{background:var(--red); color:#fff; padding:0 0 30px; position:relative; overflow:hidden;}
  footer .dots{position:absolute; bottom:-30px; left:-30px; width:200px; height:200px; color:rgba(255,255,255,0.12);}
  .foot-top{padding:70px 0 54px; position:relative;}
  .foot-grid{display:grid; grid-template-columns:1.1fr 1fr 1fr 1fr; gap:40px;}
  .foot-logo-card{background:#fff; border-radius:20px; padding:18px 22px; display:inline-block; margin-bottom:18px;}
  .foot-logo-card img{height:34px; width:auto; display:block;}
  .foot-grid > div:first-child p{color:rgba(255,255,255,0.85); font-size:14.5px; max-width:32ch;}
  footer h5{font-size:13px; color:rgba(255,255,255,0.65); font-weight:600; margin-bottom:16px;}
  footer .foot-col a, footer .foot-col p{display:block; font-size:14.5px; margin-bottom:10px; color:#fff;}
  .foot-bottom{border-top:1px solid rgba(255,255,255,0.22); padding-top:26px; display:flex; justify-content:space-between; font-size:13px; color:rgba(255,255,255,0.7); flex-wrap:wrap; gap:10px;}

  @media (max-width: 900px){
    nav{
      position:fixed; top:84px; left:0; right:0; bottom:0;
      background:#fff; transform:translateX(100%); transition:transform .25s ease;
      z-index:25; overflow-y:auto; padding:12px 0;
    }
    nav.open{transform:translateX(0);}
    nav ul{display:flex; flex-direction:column; gap:0; padding:0 32px;}
    nav ul li{border-bottom:1px solid var(--line);}
    nav a{display:block; padding:20px 2px; font-size:17px;}
    .menu-toggle{display:flex;}
    .hero-blob{grid-template-columns:1fr; border-radius:80px 0 0 0;}
    .hero-photo{display:none;}
    .somos-grid{grid-template-columns:1fr;}
    .marcas-cards{grid-template-columns:1fr;}
    .foot-grid{grid-template-columns:1fr 1fr;}
  }
